This is an automated email from the ASF dual-hosted git repository.

yuqi4733 pushed a commit to branch fix-10464-iceberg-event-decouple
in repository https://gitbox.apache.org/repos/asf/gravitino.git

commit 445eae3ff15cb5d209a5534297c19f21a981946a
Author: yuqi <[email protected]>
AuthorDate: Thu Mar 26 20:02:20 2026 +0800

    [#10464] refactor(iceberg): decouple listener events from Iceberg API models
    
    Refactor Iceberg listener post/failure events to store serializable payload 
maps instead of Iceberg REST request/response classes.
    
    Co-authored-by: Copilot <[email protected]>
---
 .../iceberg/service/IcebergRESTUtils.java          | 10 ++++++++++
 .../api/event/IcebergCreateNamespaceEvent.java     | 23 +++++++++-------------
 .../event/IcebergCreateNamespaceFailureEvent.java  | 12 +++++------
 .../api/event/IcebergCreateTableEvent.java         | 21 +++++++++-----------
 .../api/event/IcebergCreateTableFailureEvent.java  | 11 +++++------
 .../listener/api/event/IcebergCreateViewEvent.java | 21 +++++++++-----------
 .../api/event/IcebergCreateViewFailureEvent.java   | 11 +++++------
 .../api/event/IcebergLoadNamespaceEvent.java       | 11 +++++------
 .../listener/api/event/IcebergLoadTableEvent.java  | 11 +++++------
 .../listener/api/event/IcebergLoadViewEvent.java   | 11 +++++------
 .../api/event/IcebergRegisterTableEvent.java       | 21 +++++++++-----------
 .../event/IcebergRegisterTableFailureEvent.java    | 11 +++++------
 .../api/event/IcebergRenameTableEvent.java         | 11 +++++------
 .../api/event/IcebergRenameTableFailureEvent.java  |  7 +++----
 .../listener/api/event/IcebergRenameViewEvent.java | 11 +++++------
 .../api/event/IcebergRenameViewFailureEvent.java   |  7 +++----
 .../api/event/IcebergReplaceViewEvent.java         | 21 +++++++++-----------
 .../api/event/IcebergReplaceViewFailureEvent.java  | 11 +++++------
 .../api/event/IcebergUpdateNamespaceEvent.java     | 21 +++++++++-----------
 .../event/IcebergUpdateNamespaceFailureEvent.java  | 11 +++++------
 .../api/event/IcebergUpdateTableEvent.java         | 21 +++++++++-----------
 .../api/event/IcebergUpdateTableFailureEvent.java  | 11 +++++------
 22 files changed, 139 insertions(+), 167 deletions(-)

diff --git 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/IcebergRESTUtils.java
 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/IcebergRESTUtils.java
index 84ea56cc37..66bfa03a59 100644
--- 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/IcebergRESTUtils.java
+++ 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/IcebergRESTUtils.java
@@ -115,6 +115,16 @@ public class IcebergRESTUtils {
     }
   }
 
+  public static Map<String, Object> toSerializableMap(Object message) {
+    ObjectMapper icebergObjectMapper = IcebergObjectMapper.getInstance();
+    try {
+      byte[] values = icebergObjectMapper.writeValueAsBytes(message);
+      return icebergObjectMapper.readValue(values, Map.class);
+    } catch (IOException e) {
+      throw new RuntimeException(e);
+    }
+  }
+
   public static NameIdentifier getGravitinoNameIdentifier(
       String metalakeName, String catalogName, Namespace namespace) {
     Stream<String> catalogNS =
diff --git 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateNamespaceEvent.java
 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateNamespaceEvent.java
index d68ea2481b..5514313bc1 100644
--- 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateNamespaceEvent.java
+++ 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateNamespaceEvent.java
@@ -19,38 +19,33 @@
 
 package org.apache.gravitino.listener.api.event;
 
+import java.util.Map;
 import org.apache.gravitino.NameIdentifier;
 import org.apache.gravitino.annotation.DeveloperApi;
 import org.apache.gravitino.iceberg.service.IcebergRESTUtils;
-import org.apache.iceberg.rest.requests.CreateNamespaceRequest;
-import org.apache.iceberg.rest.responses.CreateNamespaceResponse;
 
 /** Represent an event after creating Iceberg namespace successfully. */
 @DeveloperApi
 public class IcebergCreateNamespaceEvent extends IcebergNamespaceEvent {
 
-  private final CreateNamespaceRequest createNamespaceRequest;
-  private final CreateNamespaceResponse createNamespaceResponse;
+  private final Map<String, Object> createNamespaceRequest;
+  private final Map<String, Object> createNamespaceResponse;
 
   public IcebergCreateNamespaceEvent(
       IcebergRequestContext icebergRequestContext,
       NameIdentifier nameIdentifier,
-      CreateNamespaceRequest createNamespaceRequest,
-      CreateNamespaceResponse createNamespaceResponse) {
+      Object createNamespaceRequest,
+      Object createNamespaceResponse) {
     super(icebergRequestContext, nameIdentifier);
-    this.createNamespaceRequest =
-        IcebergRESTUtils.cloneIcebergRESTObject(
-            createNamespaceRequest, CreateNamespaceRequest.class);
-    this.createNamespaceResponse =
-        IcebergRESTUtils.cloneIcebergRESTObject(
-            createNamespaceResponse, CreateNamespaceResponse.class);
+    this.createNamespaceRequest = 
IcebergRESTUtils.toSerializableMap(createNamespaceRequest);
+    this.createNamespaceResponse = 
IcebergRESTUtils.toSerializableMap(createNamespaceResponse);
   }
 
-  public CreateNamespaceRequest createNamespaceRequest() {
+  public Map<String, Object> createNamespaceRequest() {
     return createNamespaceRequest;
   }
 
-  public CreateNamespaceResponse createNamespaceResponse() {
+  public Map<String, Object> createNamespaceResponse() {
     return createNamespaceResponse;
   }
 
diff --git 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateNamespaceFailureEvent.java
 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateNamespaceFailureEvent.java
index c742e782f9..5ead776feb 100644
--- 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateNamespaceFailureEvent.java
+++ 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateNamespaceFailureEvent.java
@@ -19,28 +19,26 @@
 
 package org.apache.gravitino.listener.api.event;
 
+import java.util.Map;
 import org.apache.gravitino.NameIdentifier;
 import org.apache.gravitino.annotation.DeveloperApi;
 import org.apache.gravitino.iceberg.service.IcebergRESTUtils;
-import org.apache.iceberg.rest.requests.CreateNamespaceRequest;
 
 /** Represent a failure event when creating Iceberg namespace failed. */
 @DeveloperApi
 public class IcebergCreateNamespaceFailureEvent extends 
IcebergNamespaceFailureEvent {
-  private final CreateNamespaceRequest createNamespaceRequest;
+  private final Map<String, Object> createNamespaceRequest;
 
   public IcebergCreateNamespaceFailureEvent(
       IcebergRequestContext icebergRequestContext,
       NameIdentifier nameIdentifier,
-      CreateNamespaceRequest createNamespaceRequest,
+      Object createNamespaceRequest,
       Exception e) {
     super(icebergRequestContext, nameIdentifier, e);
-    this.createNamespaceRequest =
-        IcebergRESTUtils.cloneIcebergRESTObject(
-            createNamespaceRequest, CreateNamespaceRequest.class);
+    this.createNamespaceRequest = 
IcebergRESTUtils.toSerializableMap(createNamespaceRequest);
   }
 
-  public CreateNamespaceRequest createNamespaceRequest() {
+  public Map<String, Object> createNamespaceRequest() {
     return createNamespaceRequest;
   }
 
diff --git 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateTableEvent.java
 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateTableEvent.java
index 1ba2417310..d0a8722b72 100644
--- 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateTableEvent.java
+++ 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateTableEvent.java
@@ -19,29 +19,26 @@
 
 package org.apache.gravitino.listener.api.event;
 
+import java.util.Map;
 import org.apache.gravitino.NameIdentifier;
 import org.apache.gravitino.annotation.DeveloperApi;
 import org.apache.gravitino.iceberg.service.IcebergRESTUtils;
-import org.apache.iceberg.rest.requests.CreateTableRequest;
-import org.apache.iceberg.rest.responses.LoadTableResponse;
 
 /** Represent an event after creating Iceberg table successfully. */
 @DeveloperApi
 public class IcebergCreateTableEvent extends IcebergTableEvent {
 
-  private final CreateTableRequest createTableRequest;
-  private final LoadTableResponse loadTableResponse;
+  private final Map<String, Object> createTableRequest;
+  private final Map<String, Object> loadTableResponse;
 
   public IcebergCreateTableEvent(
       IcebergRequestContext icebergRequestContext,
       NameIdentifier resourceIdentifier,
-      CreateTableRequest createTableRequest,
-      LoadTableResponse loadTableResponse) {
+      Object createTableRequest,
+      Object loadTableResponse) {
     super(icebergRequestContext, resourceIdentifier);
-    this.createTableRequest =
-        IcebergRESTUtils.cloneIcebergRESTObject(createTableRequest, 
CreateTableRequest.class);
-    this.loadTableResponse =
-        IcebergRESTUtils.cloneIcebergRESTObject(loadTableResponse, 
LoadTableResponse.class);
+    this.createTableRequest = 
IcebergRESTUtils.toSerializableMap(createTableRequest);
+    this.loadTableResponse = 
IcebergRESTUtils.toSerializableMap(loadTableResponse);
   }
 
   @Override
@@ -49,11 +46,11 @@ public class IcebergCreateTableEvent extends 
IcebergTableEvent {
     return OperationType.CREATE_TABLE;
   }
 
-  public CreateTableRequest createTableRequest() {
+  public Map<String, Object> createTableRequest() {
     return createTableRequest;
   }
 
-  public LoadTableResponse loadTableResponse() {
+  public Map<String, Object> loadTableResponse() {
     return loadTableResponse;
   }
 }
diff --git 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateTableFailureEvent.java
 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateTableFailureEvent.java
index 21c8e2862e..26032ddb63 100644
--- 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateTableFailureEvent.java
+++ 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateTableFailureEvent.java
@@ -19,24 +19,23 @@
 
 package org.apache.gravitino.listener.api.event;
 
+import java.util.Map;
 import org.apache.gravitino.NameIdentifier;
 import org.apache.gravitino.annotation.DeveloperApi;
 import org.apache.gravitino.iceberg.service.IcebergRESTUtils;
-import org.apache.iceberg.rest.requests.CreateTableRequest;
 
 /** Represent a failure event when creating Iceberg table failed. */
 @DeveloperApi
 public class IcebergCreateTableFailureEvent extends IcebergTableFailureEvent {
-  private final CreateTableRequest createTableRequest;
+  private final Map<String, Object> createTableRequest;
 
   public IcebergCreateTableFailureEvent(
       IcebergRequestContext icebergRequestContext,
       NameIdentifier nameIdentifier,
-      CreateTableRequest createTableRequest,
+      Object createTableRequest,
       Exception e) {
     super(icebergRequestContext, nameIdentifier, e);
-    this.createTableRequest =
-        IcebergRESTUtils.cloneIcebergRESTObject(createTableRequest, 
CreateTableRequest.class);
+    this.createTableRequest = 
IcebergRESTUtils.toSerializableMap(createTableRequest);
   }
 
   @Override
@@ -44,7 +43,7 @@ public class IcebergCreateTableFailureEvent extends 
IcebergTableFailureEvent {
     return OperationType.CREATE_TABLE;
   }
 
-  public CreateTableRequest createTableRequest() {
+  public Map<String, Object> createTableRequest() {
     return createTableRequest;
   }
 }
diff --git 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateViewEvent.java
 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateViewEvent.java
index 5179452301..edb64d8d6d 100644
--- 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateViewEvent.java
+++ 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateViewEvent.java
@@ -19,36 +19,33 @@
 
 package org.apache.gravitino.listener.api.event;
 
+import java.util.Map;
 import org.apache.gravitino.NameIdentifier;
 import org.apache.gravitino.annotation.DeveloperApi;
 import org.apache.gravitino.iceberg.service.IcebergRESTUtils;
-import org.apache.iceberg.rest.requests.CreateViewRequest;
-import org.apache.iceberg.rest.responses.LoadViewResponse;
 
 /** Represent an event after creating Iceberg view successfully. */
 @DeveloperApi
 public class IcebergCreateViewEvent extends IcebergViewEvent {
 
-  private final CreateViewRequest createViewRequest;
-  private final LoadViewResponse loadViewResponse;
+  private final Map<String, Object> createViewRequest;
+  private final Map<String, Object> loadViewResponse;
 
   public IcebergCreateViewEvent(
       IcebergRequestContext icebergRequestContext,
       NameIdentifier viewIdentifier,
-      CreateViewRequest createViewRequest,
-      LoadViewResponse loadViewResponse) {
+      Object createViewRequest,
+      Object loadViewResponse) {
     super(icebergRequestContext, viewIdentifier);
-    this.createViewRequest =
-        IcebergRESTUtils.cloneIcebergRESTObject(createViewRequest, 
CreateViewRequest.class);
-    this.loadViewResponse =
-        IcebergRESTUtils.cloneIcebergRESTObject(loadViewResponse, 
LoadViewResponse.class);
+    this.createViewRequest = 
IcebergRESTUtils.toSerializableMap(createViewRequest);
+    this.loadViewResponse = 
IcebergRESTUtils.toSerializableMap(loadViewResponse);
   }
 
-  public CreateViewRequest createViewRequest() {
+  public Map<String, Object> createViewRequest() {
     return createViewRequest;
   }
 
-  public LoadViewResponse loadViewResponse() {
+  public Map<String, Object> loadViewResponse() {
     return loadViewResponse;
   }
 
diff --git 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateViewFailureEvent.java
 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateViewFailureEvent.java
index 232418527f..90ff90f0d3 100644
--- 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateViewFailureEvent.java
+++ 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergCreateViewFailureEvent.java
@@ -19,27 +19,26 @@
 
 package org.apache.gravitino.listener.api.event;
 
+import java.util.Map;
 import org.apache.gravitino.NameIdentifier;
 import org.apache.gravitino.annotation.DeveloperApi;
 import org.apache.gravitino.iceberg.service.IcebergRESTUtils;
-import org.apache.iceberg.rest.requests.CreateViewRequest;
 
 /** Represent a failure event when creating Iceberg view failed. */
 @DeveloperApi
 public class IcebergCreateViewFailureEvent extends IcebergViewFailureEvent {
-  private final CreateViewRequest createViewRequest;
+  private final Map<String, Object> createViewRequest;
 
   public IcebergCreateViewFailureEvent(
       IcebergRequestContext icebergRequestContext,
       NameIdentifier viewIdentifier,
-      CreateViewRequest createViewRequest,
+      Object createViewRequest,
       Exception e) {
     super(icebergRequestContext, viewIdentifier, e);
-    this.createViewRequest =
-        IcebergRESTUtils.cloneIcebergRESTObject(createViewRequest, 
CreateViewRequest.class);
+    this.createViewRequest = 
IcebergRESTUtils.toSerializableMap(createViewRequest);
   }
 
-  public CreateViewRequest createViewRequest() {
+  public Map<String, Object> createViewRequest() {
     return createViewRequest;
   }
 
diff --git 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadNamespaceEvent.java
 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadNamespaceEvent.java
index 1f7fe3b499..e57d488439 100644
--- 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadNamespaceEvent.java
+++ 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadNamespaceEvent.java
@@ -19,26 +19,25 @@
 
 package org.apache.gravitino.listener.api.event;
 
+import java.util.Map;
 import org.apache.gravitino.NameIdentifier;
 import org.apache.gravitino.annotation.DeveloperApi;
 import org.apache.gravitino.iceberg.service.IcebergRESTUtils;
-import org.apache.iceberg.rest.responses.GetNamespaceResponse;
 
 /** Represent an event after loading Iceberg namespace successfully. */
 @DeveloperApi
 public class IcebergLoadNamespaceEvent extends IcebergNamespaceEvent {
-  private final GetNamespaceResponse getNamespaceResponse;
+  private final Map<String, Object> getNamespaceResponse;
 
   public IcebergLoadNamespaceEvent(
       IcebergRequestContext icebergRequestContext,
       NameIdentifier nameIdentifier,
-      GetNamespaceResponse getNamespaceResponse) {
+      Object getNamespaceResponse) {
     super(icebergRequestContext, nameIdentifier);
-    this.getNamespaceResponse =
-        IcebergRESTUtils.cloneIcebergRESTObject(getNamespaceResponse, 
GetNamespaceResponse.class);
+    this.getNamespaceResponse = 
IcebergRESTUtils.toSerializableMap(getNamespaceResponse);
   }
 
-  public GetNamespaceResponse getNamespaceResponse() {
+  public Map<String, Object> getNamespaceResponse() {
     return getNamespaceResponse;
   }
 
diff --git 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadTableEvent.java
 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadTableEvent.java
index 000169856a..b5810ac3e0 100644
--- 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadTableEvent.java
+++ 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadTableEvent.java
@@ -19,23 +19,22 @@
 
 package org.apache.gravitino.listener.api.event;
 
+import java.util.Map;
 import org.apache.gravitino.NameIdentifier;
 import org.apache.gravitino.annotation.DeveloperApi;
 import org.apache.gravitino.iceberg.service.IcebergRESTUtils;
-import org.apache.iceberg.rest.responses.LoadTableResponse;
 
 /** Represent an event after loading Iceberg table successfully. */
 @DeveloperApi
 public class IcebergLoadTableEvent extends IcebergTableEvent {
-  private final LoadTableResponse loadTableResponse;
+  private final Map<String, Object> loadTableResponse;
 
   public IcebergLoadTableEvent(
       IcebergRequestContext icebergRequestContext,
       NameIdentifier resourceIdentifier,
-      LoadTableResponse loadTableResponse) {
+      Object loadTableResponse) {
     super(icebergRequestContext, resourceIdentifier);
-    this.loadTableResponse =
-        IcebergRESTUtils.cloneIcebergRESTObject(loadTableResponse, 
LoadTableResponse.class);
+    this.loadTableResponse = 
IcebergRESTUtils.toSerializableMap(loadTableResponse);
   }
 
   @Override
@@ -43,7 +42,7 @@ public class IcebergLoadTableEvent extends IcebergTableEvent {
     return OperationType.LOAD_TABLE;
   }
 
-  public LoadTableResponse loadTableResponse() {
+  public Map<String, Object> loadTableResponse() {
     return loadTableResponse;
   }
 }
diff --git 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadViewEvent.java
 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadViewEvent.java
index 0709e43d45..c434d7cacb 100644
--- 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadViewEvent.java
+++ 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergLoadViewEvent.java
@@ -19,26 +19,25 @@
 
 package org.apache.gravitino.listener.api.event;
 
+import java.util.Map;
 import org.apache.gravitino.NameIdentifier;
 import org.apache.gravitino.annotation.DeveloperApi;
 import org.apache.gravitino.iceberg.service.IcebergRESTUtils;
-import org.apache.iceberg.rest.responses.LoadViewResponse;
 
 /** Represent an event after loading Iceberg view successfully. */
 @DeveloperApi
 public class IcebergLoadViewEvent extends IcebergViewEvent {
-  private final LoadViewResponse loadViewResponse;
+  private final Map<String, Object> loadViewResponse;
 
   public IcebergLoadViewEvent(
       IcebergRequestContext icebergRequestContext,
       NameIdentifier viewIdentifier,
-      LoadViewResponse loadViewResponse) {
+      Object loadViewResponse) {
     super(icebergRequestContext, viewIdentifier);
-    this.loadViewResponse =
-        IcebergRESTUtils.cloneIcebergRESTObject(loadViewResponse, 
LoadViewResponse.class);
+    this.loadViewResponse = 
IcebergRESTUtils.toSerializableMap(loadViewResponse);
   }
 
-  public LoadViewResponse loadViewResponse() {
+  public Map<String, Object> loadViewResponse() {
     return loadViewResponse;
   }
 
diff --git 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRegisterTableEvent.java
 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRegisterTableEvent.java
index d892036a58..1106140e7b 100644
--- 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRegisterTableEvent.java
+++ 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRegisterTableEvent.java
@@ -19,36 +19,33 @@
 
 package org.apache.gravitino.listener.api.event;
 
+import java.util.Map;
 import org.apache.gravitino.NameIdentifier;
 import org.apache.gravitino.annotation.DeveloperApi;
 import org.apache.gravitino.iceberg.service.IcebergRESTUtils;
-import org.apache.iceberg.rest.requests.RegisterTableRequest;
-import org.apache.iceberg.rest.responses.LoadTableResponse;
 
 /** Represent an event after registering Iceberg table successfully. */
 @DeveloperApi
 public class IcebergRegisterTableEvent extends IcebergTableEvent {
 
-  private final RegisterTableRequest registerTableRequest;
-  private final LoadTableResponse loadTableResponse;
+  private final Map<String, Object> registerTableRequest;
+  private final Map<String, Object> loadTableResponse;
 
   public IcebergRegisterTableEvent(
       IcebergRequestContext icebergRequestContext,
       NameIdentifier resourceIdentifier,
-      RegisterTableRequest registerTableRequest,
-      LoadTableResponse loadTableResponse) {
+      Object registerTableRequest,
+      Object loadTableResponse) {
     super(icebergRequestContext, resourceIdentifier);
-    this.registerTableRequest =
-        IcebergRESTUtils.cloneIcebergRESTObject(registerTableRequest, 
RegisterTableRequest.class);
-    this.loadTableResponse =
-        IcebergRESTUtils.cloneIcebergRESTObject(loadTableResponse, 
LoadTableResponse.class);
+    this.registerTableRequest = 
IcebergRESTUtils.toSerializableMap(registerTableRequest);
+    this.loadTableResponse = 
IcebergRESTUtils.toSerializableMap(loadTableResponse);
   }
 
-  public RegisterTableRequest registerTableRequest() {
+  public Map<String, Object> registerTableRequest() {
     return registerTableRequest;
   }
 
-  public LoadTableResponse loadTableResponse() {
+  public Map<String, Object> loadTableResponse() {
     return loadTableResponse;
   }
 
diff --git 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRegisterTableFailureEvent.java
 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRegisterTableFailureEvent.java
index afdbec54e0..3ed920295a 100644
--- 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRegisterTableFailureEvent.java
+++ 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRegisterTableFailureEvent.java
@@ -19,27 +19,26 @@
 
 package org.apache.gravitino.listener.api.event;
 
+import java.util.Map;
 import org.apache.gravitino.NameIdentifier;
 import org.apache.gravitino.annotation.DeveloperApi;
 import org.apache.gravitino.iceberg.service.IcebergRESTUtils;
-import org.apache.iceberg.rest.requests.RegisterTableRequest;
 
 /** Represent a failure event when registering Iceberg table failed. */
 @DeveloperApi
 public class IcebergRegisterTableFailureEvent extends IcebergTableFailureEvent 
{
-  private final RegisterTableRequest registerTableRequest;
+  private final Map<String, Object> registerTableRequest;
 
   public IcebergRegisterTableFailureEvent(
       IcebergRequestContext icebergRequestContext,
       NameIdentifier nameIdentifier,
-      RegisterTableRequest registerTableRequest,
+      Object registerTableRequest,
       Exception e) {
     super(icebergRequestContext, nameIdentifier, e);
-    this.registerTableRequest =
-        IcebergRESTUtils.cloneIcebergRESTObject(registerTableRequest, 
RegisterTableRequest.class);
+    this.registerTableRequest = 
IcebergRESTUtils.toSerializableMap(registerTableRequest);
   }
 
-  public RegisterTableRequest registerTableRequest() {
+  public Map<String, Object> registerTableRequest() {
     return registerTableRequest;
   }
 
diff --git 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameTableEvent.java
 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameTableEvent.java
index 2f38b1477e..1cbcd0e553 100644
--- 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameTableEvent.java
+++ 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameTableEvent.java
@@ -19,26 +19,25 @@
 
 package org.apache.gravitino.listener.api.event;
 
+import java.util.Map;
 import org.apache.gravitino.NameIdentifier;
 import org.apache.gravitino.annotation.DeveloperApi;
 import org.apache.gravitino.iceberg.service.IcebergRESTUtils;
-import org.apache.iceberg.rest.requests.RenameTableRequest;
 
 /** Represent an event after rename Iceberg table successfully. */
 @DeveloperApi
 public class IcebergRenameTableEvent extends IcebergTableEvent {
-  private final RenameTableRequest renameTableRequest;
+  private final Map<String, Object> renameTableRequest;
 
   public IcebergRenameTableEvent(
       IcebergRequestContext icebergRequestContext,
       NameIdentifier resourceIdentifier,
-      RenameTableRequest renameTableRequest) {
+      Object renameTableRequest) {
     super(icebergRequestContext, resourceIdentifier);
-    this.renameTableRequest =
-        IcebergRESTUtils.cloneIcebergRESTObject(renameTableRequest, 
RenameTableRequest.class);
+    this.renameTableRequest = 
IcebergRESTUtils.toSerializableMap(renameTableRequest);
   }
 
-  public RenameTableRequest renameTableRequest() {
+  public Map<String, Object> renameTableRequest() {
     return renameTableRequest;
   }
 
diff --git 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameTableFailureEvent.java
 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameTableFailureEvent.java
index 19b7e8e267..d58454393f 100644
--- 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameTableFailureEvent.java
+++ 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameTableFailureEvent.java
@@ -21,23 +21,22 @@ package org.apache.gravitino.listener.api.event;
 
 import org.apache.gravitino.NameIdentifier;
 import org.apache.gravitino.annotation.DeveloperApi;
-import org.apache.iceberg.rest.requests.RenameTableRequest;
 
 /** Represent an event when rename Iceberg table failed. */
 @DeveloperApi
 public class IcebergRenameTableFailureEvent extends IcebergTableFailureEvent {
-  private final RenameTableRequest renameTableRequest;
+  private final Object renameTableRequest;
 
   public IcebergRenameTableFailureEvent(
       IcebergRequestContext icebergRequestContext,
       NameIdentifier resourceIdentifier,
-      RenameTableRequest renameTableRequest,
+      Object renameTableRequest,
       Exception e) {
     super(icebergRequestContext, resourceIdentifier, e);
     this.renameTableRequest = renameTableRequest;
   }
 
-  public RenameTableRequest renameTableRequest() {
+  public Object renameTableRequest() {
     return renameTableRequest;
   }
 
diff --git 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameViewEvent.java
 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameViewEvent.java
index 530db1da86..6d7d7f5d7f 100644
--- 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameViewEvent.java
+++ 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameViewEvent.java
@@ -19,26 +19,25 @@
 
 package org.apache.gravitino.listener.api.event;
 
+import java.util.Map;
 import org.apache.gravitino.NameIdentifier;
 import org.apache.gravitino.annotation.DeveloperApi;
 import org.apache.gravitino.iceberg.service.IcebergRESTUtils;
-import org.apache.iceberg.rest.requests.RenameTableRequest;
 
 /** Represent an event after rename Iceberg view successfully. */
 @DeveloperApi
 public class IcebergRenameViewEvent extends IcebergViewEvent {
-  private final RenameTableRequest renameViewRequest;
+  private final Map<String, Object> renameViewRequest;
 
   public IcebergRenameViewEvent(
       IcebergRequestContext icebergRequestContext,
       NameIdentifier viewIdentifier,
-      RenameTableRequest renameViewRequest) {
+      Object renameViewRequest) {
     super(icebergRequestContext, viewIdentifier);
-    this.renameViewRequest =
-        IcebergRESTUtils.cloneIcebergRESTObject(renameViewRequest, 
RenameTableRequest.class);
+    this.renameViewRequest = 
IcebergRESTUtils.toSerializableMap(renameViewRequest);
   }
 
-  public RenameTableRequest renameViewRequest() {
+  public Map<String, Object> renameViewRequest() {
     return renameViewRequest;
   }
 
diff --git 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameViewFailureEvent.java
 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameViewFailureEvent.java
index afdff2ff45..1af178a936 100644
--- 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameViewFailureEvent.java
+++ 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergRenameViewFailureEvent.java
@@ -21,23 +21,22 @@ package org.apache.gravitino.listener.api.event;
 
 import org.apache.gravitino.NameIdentifier;
 import org.apache.gravitino.annotation.DeveloperApi;
-import org.apache.iceberg.rest.requests.RenameTableRequest;
 
 /** Represent an event when rename Iceberg view failed. */
 @DeveloperApi
 public class IcebergRenameViewFailureEvent extends IcebergViewFailureEvent {
-  private final RenameTableRequest renameViewRequest;
+  private final Object renameViewRequest;
 
   public IcebergRenameViewFailureEvent(
       IcebergRequestContext icebergRequestContext,
       NameIdentifier viewIdentifier,
-      RenameTableRequest renameViewRequest,
+      Object renameViewRequest,
       Exception e) {
     super(icebergRequestContext, viewIdentifier, e);
     this.renameViewRequest = renameViewRequest;
   }
 
-  public RenameTableRequest renameViewRequest() {
+  public Object renameViewRequest() {
     return renameViewRequest;
   }
 
diff --git 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergReplaceViewEvent.java
 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergReplaceViewEvent.java
index b894795eba..7a0990f590 100644
--- 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergReplaceViewEvent.java
+++ 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergReplaceViewEvent.java
@@ -19,36 +19,33 @@
 
 package org.apache.gravitino.listener.api.event;
 
+import java.util.Map;
 import org.apache.gravitino.NameIdentifier;
 import org.apache.gravitino.annotation.DeveloperApi;
 import org.apache.gravitino.iceberg.service.IcebergRESTUtils;
-import org.apache.iceberg.rest.requests.UpdateTableRequest;
-import org.apache.iceberg.rest.responses.LoadViewResponse;
 
 /** Represent an event after updating Iceberg view successfully. */
 @DeveloperApi
 public class IcebergReplaceViewEvent extends IcebergViewEvent {
 
-  private final UpdateTableRequest replaceViewRequest;
-  private final LoadViewResponse loadViewResponse;
+  private final Map<String, Object> replaceViewRequest;
+  private final Map<String, Object> loadViewResponse;
 
   public IcebergReplaceViewEvent(
       IcebergRequestContext icebergRequestContext,
       NameIdentifier viewIdentifier,
-      UpdateTableRequest replaceViewRequest,
-      LoadViewResponse loadViewResponse) {
+      Object replaceViewRequest,
+      Object loadViewResponse) {
     super(icebergRequestContext, viewIdentifier);
-    this.replaceViewRequest =
-        IcebergRESTUtils.cloneIcebergRESTObject(replaceViewRequest, 
UpdateTableRequest.class);
-    this.loadViewResponse =
-        IcebergRESTUtils.cloneIcebergRESTObject(loadViewResponse, 
LoadViewResponse.class);
+    this.replaceViewRequest = 
IcebergRESTUtils.toSerializableMap(replaceViewRequest);
+    this.loadViewResponse = 
IcebergRESTUtils.toSerializableMap(loadViewResponse);
   }
 
-  public UpdateTableRequest renameViewRequest() {
+  public Map<String, Object> renameViewRequest() {
     return replaceViewRequest;
   }
 
-  public LoadViewResponse loadViewResponse() {
+  public Map<String, Object> loadViewResponse() {
     return loadViewResponse;
   }
 
diff --git 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergReplaceViewFailureEvent.java
 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergReplaceViewFailureEvent.java
index 336fb8760c..bf0974e830 100644
--- 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergReplaceViewFailureEvent.java
+++ 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergReplaceViewFailureEvent.java
@@ -19,27 +19,26 @@
 
 package org.apache.gravitino.listener.api.event;
 
+import java.util.Map;
 import org.apache.gravitino.NameIdentifier;
 import org.apache.gravitino.annotation.DeveloperApi;
 import org.apache.gravitino.iceberg.service.IcebergRESTUtils;
-import org.apache.iceberg.rest.requests.UpdateTableRequest;
 
 /** Represent a failure event when updating Iceberg view failed. */
 @DeveloperApi
 public class IcebergReplaceViewFailureEvent extends IcebergViewFailureEvent {
-  private final UpdateTableRequest replaceViewRequest;
+  private final Map<String, Object> replaceViewRequest;
 
   public IcebergReplaceViewFailureEvent(
       IcebergRequestContext icebergRequestContext,
       NameIdentifier viewIdentifier,
-      UpdateTableRequest replaceViewRequest,
+      Object replaceViewRequest,
       Exception e) {
     super(icebergRequestContext, viewIdentifier, e);
-    this.replaceViewRequest =
-        IcebergRESTUtils.cloneIcebergRESTObject(replaceViewRequest, 
UpdateTableRequest.class);
+    this.replaceViewRequest = 
IcebergRESTUtils.toSerializableMap(replaceViewRequest);
   }
 
-  public UpdateTableRequest replaceViewRequest() {
+  public Map<String, Object> replaceViewRequest() {
     return replaceViewRequest;
   }
 
diff --git 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateNamespaceEvent.java
 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateNamespaceEvent.java
index dfd66e2ca5..6450026dcc 100644
--- 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateNamespaceEvent.java
+++ 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateNamespaceEvent.java
@@ -19,38 +19,35 @@
 
 package org.apache.gravitino.listener.api.event;
 
+import java.util.Map;
 import org.apache.gravitino.NameIdentifier;
 import org.apache.gravitino.annotation.DeveloperApi;
 import org.apache.gravitino.iceberg.service.IcebergRESTUtils;
-import org.apache.iceberg.rest.requests.UpdateNamespacePropertiesRequest;
-import org.apache.iceberg.rest.responses.UpdateNamespacePropertiesResponse;
 
 /** Represent an event after updating Iceberg namespace successfully. */
 @DeveloperApi
 public class IcebergUpdateNamespaceEvent extends IcebergNamespaceEvent {
 
-  private final UpdateNamespacePropertiesRequest 
updateNamespacePropertiesRequest;
-  private final UpdateNamespacePropertiesResponse 
updateNamespacePropertiesResponse;
+  private final Map<String, Object> updateNamespacePropertiesRequest;
+  private final Map<String, Object> updateNamespacePropertiesResponse;
 
   public IcebergUpdateNamespaceEvent(
       IcebergRequestContext icebergRequestContext,
       NameIdentifier nameIdentifier,
-      UpdateNamespacePropertiesRequest updateNamespacePropertiesRequest,
-      UpdateNamespacePropertiesResponse updateNamespacePropertiesResponse) {
+      Object updateNamespacePropertiesRequest,
+      Object updateNamespacePropertiesResponse) {
     super(icebergRequestContext, nameIdentifier);
     this.updateNamespacePropertiesRequest =
-        IcebergRESTUtils.cloneIcebergRESTObject(
-            updateNamespacePropertiesRequest, 
UpdateNamespacePropertiesRequest.class);
+        IcebergRESTUtils.toSerializableMap(updateNamespacePropertiesRequest);
     this.updateNamespacePropertiesResponse =
-        IcebergRESTUtils.cloneIcebergRESTObject(
-            updateNamespacePropertiesResponse, 
UpdateNamespacePropertiesResponse.class);
+        IcebergRESTUtils.toSerializableMap(updateNamespacePropertiesResponse);
   }
 
-  public UpdateNamespacePropertiesRequest updateNamespacePropertiesRequest() {
+  public Map<String, Object> updateNamespacePropertiesRequest() {
     return updateNamespacePropertiesRequest;
   }
 
-  public UpdateNamespacePropertiesResponse updateNamespacePropertiesResponse() 
{
+  public Map<String, Object> updateNamespacePropertiesResponse() {
     return updateNamespacePropertiesResponse;
   }
 
diff --git 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateNamespaceFailureEvent.java
 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateNamespaceFailureEvent.java
index 258a5b029a..9972a4ae14 100644
--- 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateNamespaceFailureEvent.java
+++ 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateNamespaceFailureEvent.java
@@ -19,28 +19,27 @@
 
 package org.apache.gravitino.listener.api.event;
 
+import java.util.Map;
 import org.apache.gravitino.NameIdentifier;
 import org.apache.gravitino.annotation.DeveloperApi;
 import org.apache.gravitino.iceberg.service.IcebergRESTUtils;
-import org.apache.iceberg.rest.requests.UpdateNamespacePropertiesRequest;
 
 /** Represent a failure event when updating Iceberg namespace failed. */
 @DeveloperApi
 public class IcebergUpdateNamespaceFailureEvent extends 
IcebergNamespaceFailureEvent {
-  private final UpdateNamespacePropertiesRequest 
updateNamespacePropertiesRequest;
+  private final Map<String, Object> updateNamespacePropertiesRequest;
 
   public IcebergUpdateNamespaceFailureEvent(
       IcebergRequestContext icebergRequestContext,
       NameIdentifier nameIdentifier,
-      UpdateNamespacePropertiesRequest updateNamespacePropertiesRequest,
+      Object updateNamespacePropertiesRequest,
       Exception e) {
     super(icebergRequestContext, nameIdentifier, e);
     this.updateNamespacePropertiesRequest =
-        IcebergRESTUtils.cloneIcebergRESTObject(
-            updateNamespacePropertiesRequest, 
UpdateNamespacePropertiesRequest.class);
+        IcebergRESTUtils.toSerializableMap(updateNamespacePropertiesRequest);
   }
 
-  public UpdateNamespacePropertiesRequest updateNamespacePropertiesRequest() {
+  public Map<String, Object> updateNamespacePropertiesRequest() {
     return updateNamespacePropertiesRequest;
   }
 
diff --git 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateTableEvent.java
 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateTableEvent.java
index 159613c757..ebf8d902b8 100644
--- 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateTableEvent.java
+++ 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateTableEvent.java
@@ -19,36 +19,33 @@
 
 package org.apache.gravitino.listener.api.event;
 
+import java.util.Map;
 import org.apache.gravitino.NameIdentifier;
 import org.apache.gravitino.annotation.DeveloperApi;
 import org.apache.gravitino.iceberg.service.IcebergRESTUtils;
-import org.apache.iceberg.rest.requests.UpdateTableRequest;
-import org.apache.iceberg.rest.responses.LoadTableResponse;
 
 /** Represent an event after updating Iceberg table successfully. */
 @DeveloperApi
 public class IcebergUpdateTableEvent extends IcebergTableEvent {
 
-  private final UpdateTableRequest updateTableRequest;
-  private final LoadTableResponse loadTableResponse;
+  private final Map<String, Object> updateTableRequest;
+  private final Map<String, Object> loadTableResponse;
 
   public IcebergUpdateTableEvent(
       IcebergRequestContext icebergRequestContext,
       NameIdentifier resourceIdentifier,
-      UpdateTableRequest updateTableRequest,
-      LoadTableResponse loadTableResponse) {
+      Object updateTableRequest,
+      Object loadTableResponse) {
     super(icebergRequestContext, resourceIdentifier);
-    this.updateTableRequest =
-        IcebergRESTUtils.cloneIcebergRESTObject(updateTableRequest, 
UpdateTableRequest.class);
-    this.loadTableResponse =
-        IcebergRESTUtils.cloneIcebergRESTObject(loadTableResponse, 
LoadTableResponse.class);
+    this.updateTableRequest = 
IcebergRESTUtils.toSerializableMap(updateTableRequest);
+    this.loadTableResponse = 
IcebergRESTUtils.toSerializableMap(loadTableResponse);
   }
 
-  public UpdateTableRequest createTableRequest() {
+  public Map<String, Object> createTableRequest() {
     return updateTableRequest;
   }
 
-  public LoadTableResponse loadTableResponse() {
+  public Map<String, Object> loadTableResponse() {
     return loadTableResponse;
   }
 
diff --git 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateTableFailureEvent.java
 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateTableFailureEvent.java
index 21bc16cb92..9e9308df00 100644
--- 
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateTableFailureEvent.java
+++ 
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/listener/api/event/IcebergUpdateTableFailureEvent.java
@@ -19,27 +19,26 @@
 
 package org.apache.gravitino.listener.api.event;
 
+import java.util.Map;
 import org.apache.gravitino.NameIdentifier;
 import org.apache.gravitino.annotation.DeveloperApi;
 import org.apache.gravitino.iceberg.service.IcebergRESTUtils;
-import org.apache.iceberg.rest.requests.UpdateTableRequest;
 
 /** Represent a failure event when updating Iceberg table failed. */
 @DeveloperApi
 public class IcebergUpdateTableFailureEvent extends IcebergTableFailureEvent {
-  private final UpdateTableRequest updateTableRequest;
+  private final Map<String, Object> updateTableRequest;
 
   public IcebergUpdateTableFailureEvent(
       IcebergRequestContext icebergRequestContext,
       NameIdentifier nameIdentifier,
-      UpdateTableRequest updateTableRequest,
+      Object updateTableRequest,
       Exception e) {
     super(icebergRequestContext, nameIdentifier, e);
-    this.updateTableRequest =
-        IcebergRESTUtils.cloneIcebergRESTObject(updateTableRequest, 
UpdateTableRequest.class);
+    this.updateTableRequest = 
IcebergRESTUtils.toSerializableMap(updateTableRequest);
   }
 
-  public UpdateTableRequest updateTableRequest() {
+  public Map<String, Object> updateTableRequest() {
     return updateTableRequest;
   }
 


Reply via email to