diff --git a/client/base/src/main/java/io/a2a/client/AbstractClient.java b/client/base/src/main/java/io/a2a/client/AbstractClient.java index 3ef1747d5..bb43fb67c 100644 --- a/client/base/src/main/java/io/a2a/client/AbstractClient.java +++ b/client/base/src/main/java/io/a2a/client/AbstractClient.java @@ -14,8 +14,8 @@ import io.a2a.spec.CancelTaskParams; import io.a2a.spec.DeleteTaskPushNotificationConfigParams; import io.a2a.spec.GetTaskPushNotificationConfigParams; -import io.a2a.spec.ListTaskPushNotificationConfigParams; -import io.a2a.spec.ListTaskPushNotificationConfigResult; +import io.a2a.spec.ListTaskPushNotificationConfigsParams; +import io.a2a.spec.ListTaskPushNotificationConfigsResult; import io.a2a.spec.ListTasksParams; import io.a2a.spec.Message; import io.a2a.spec.MessageSendParams; @@ -299,8 +299,8 @@ public abstract TaskPushNotificationConfig getTaskPushNotificationConfiguration( * @return the result containing the list of task push notification configs and pagination information * @throws A2AClientException if getting the task push notification configs fails for any reason */ - public ListTaskPushNotificationConfigResult listTaskPushNotificationConfigurations( - ListTaskPushNotificationConfigParams request) throws A2AClientException { + public ListTaskPushNotificationConfigsResult listTaskPushNotificationConfigurations( + ListTaskPushNotificationConfigsParams request) throws A2AClientException { return listTaskPushNotificationConfigurations(request, null); } @@ -312,8 +312,8 @@ public ListTaskPushNotificationConfigResult listTaskPushNotificationConfiguratio * @return the result containing the list of task push notification configs and pagination information * @throws A2AClientException if getting the task push notification configs fails for any reason */ - public abstract ListTaskPushNotificationConfigResult listTaskPushNotificationConfigurations( - ListTaskPushNotificationConfigParams request, + public abstract ListTaskPushNotificationConfigsResult listTaskPushNotificationConfigurations( + ListTaskPushNotificationConfigsParams request, @Nullable ClientCallContext context) throws A2AClientException; /** diff --git a/client/base/src/main/java/io/a2a/client/Client.java b/client/base/src/main/java/io/a2a/client/Client.java index 5c0d3fce2..32d00d629 100644 --- a/client/base/src/main/java/io/a2a/client/Client.java +++ b/client/base/src/main/java/io/a2a/client/Client.java @@ -20,8 +20,8 @@ import io.a2a.spec.EventKind; import io.a2a.spec.GetExtendedAgentCardParams; import io.a2a.spec.GetTaskPushNotificationConfigParams; -import io.a2a.spec.ListTaskPushNotificationConfigParams; -import io.a2a.spec.ListTaskPushNotificationConfigResult; +import io.a2a.spec.ListTaskPushNotificationConfigsParams; +import io.a2a.spec.ListTaskPushNotificationConfigsResult; import io.a2a.spec.ListTasksParams; import io.a2a.spec.Message; import io.a2a.spec.MessageSendConfiguration; @@ -512,9 +512,9 @@ public TaskPushNotificationConfig getTaskPushNotificationConfiguration( * Example: *
{@code
      * // List all configurations for a context
-     * ListTaskPushNotificationConfigParams params =
-     *     new ListTaskPushNotificationConfigParams("session-123", null, 10, null);
-     * ListTaskPushNotificationConfigResult result =
+     * ListTaskPushNotificationConfigsParams params =
+     *     new ListTaskPushNotificationConfigsParams("session-123", null, 10, null);
+     * ListTaskPushNotificationConfigsResult result =
      *     client.listTaskPushNotificationConfigurations(params);
      * for (TaskPushNotificationConfig config : result.configurations()) {
      *     System.out.println("Task " + config.taskId() + " -> " +
@@ -526,11 +526,11 @@ public TaskPushNotificationConfig getTaskPushNotificationConfiguration(
      * @param context custom call context for request interceptors (optional)
      * @return the list of push notification configurations
      * @throws A2AClientException if the configurations cannot be retrieved
-     * @see ListTaskPushNotificationConfigParams
+     * @see ListTaskPushNotificationConfigsParams
      */
     @Override
-    public ListTaskPushNotificationConfigResult listTaskPushNotificationConfigurations(
-            ListTaskPushNotificationConfigParams request, @Nullable ClientCallContext context) throws A2AClientException {
+    public ListTaskPushNotificationConfigsResult listTaskPushNotificationConfigurations(
+            ListTaskPushNotificationConfigsParams request, @Nullable ClientCallContext context) throws A2AClientException {
         return clientTransport.listTaskPushNotificationConfigurations(request, context);
     }
 
diff --git a/client/transport/grpc/src/main/java/io/a2a/client/transport/grpc/GrpcTransport.java b/client/transport/grpc/src/main/java/io/a2a/client/transport/grpc/GrpcTransport.java
index 0fe63efe1..802b9c0e6 100644
--- a/client/transport/grpc/src/main/java/io/a2a/client/transport/grpc/GrpcTransport.java
+++ b/client/transport/grpc/src/main/java/io/a2a/client/transport/grpc/GrpcTransport.java
@@ -38,8 +38,8 @@
 import io.a2a.spec.EventKind;
 import io.a2a.spec.GetExtendedAgentCardParams;
 import io.a2a.spec.GetTaskPushNotificationConfigParams;
-import io.a2a.spec.ListTaskPushNotificationConfigParams;
-import io.a2a.spec.ListTaskPushNotificationConfigResult;
+import io.a2a.spec.ListTaskPushNotificationConfigsParams;
+import io.a2a.spec.ListTaskPushNotificationConfigsResult;
 import io.a2a.spec.ListTasksParams;
 import io.a2a.spec.MessageSendParams;
 import io.a2a.spec.StreamingEventKind;
@@ -271,8 +271,8 @@ public TaskPushNotificationConfig getTaskPushNotificationConfiguration(GetTaskPu
     }
 
     @Override
-    public ListTaskPushNotificationConfigResult listTaskPushNotificationConfigurations(
-            ListTaskPushNotificationConfigParams request,
+    public ListTaskPushNotificationConfigsResult listTaskPushNotificationConfigurations(
+            ListTaskPushNotificationConfigsParams request,
             @Nullable ClientCallContext context) throws A2AClientException {
         checkNotNullParam("request", request);
 
@@ -288,9 +288,9 @@ public ListTaskPushNotificationConfigResult listTaskPushNotificationConfiguratio
         try {
             A2AServiceBlockingV2Stub stubWithMetadata = createBlockingStubWithMetadata(context, payloadAndHeaders);
             io.a2a.grpc.ListTaskPushNotificationConfigsResponse grpcResponse = stubWithMetadata.listTaskPushNotificationConfigs(grpcRequest);
-            return FromProto.listTaskPushNotificationConfigResult(grpcResponse);
+            return FromProto.listTaskPushNotificationConfigsResult(grpcResponse);
         } catch (StatusRuntimeException | StatusException e) {
-            throw GrpcErrorMapper.mapGrpcError(e, "Failed to list task push notification config: ");
+            throw GrpcErrorMapper.mapGrpcError(e, "Failed to list task push notification configs: ");
         }
     }
 
diff --git a/client/transport/jsonrpc/src/main/java/io/a2a/client/transport/jsonrpc/JSONRPCTransport.java b/client/transport/jsonrpc/src/main/java/io/a2a/client/transport/jsonrpc/JSONRPCTransport.java
index 3530dffea..2bbb25d87 100644
--- a/client/transport/jsonrpc/src/main/java/io/a2a/client/transport/jsonrpc/JSONRPCTransport.java
+++ b/client/transport/jsonrpc/src/main/java/io/a2a/client/transport/jsonrpc/JSONRPCTransport.java
@@ -54,8 +54,8 @@
 import io.a2a.spec.EventKind;
 import io.a2a.spec.GetExtendedAgentCardParams;
 import io.a2a.spec.GetTaskPushNotificationConfigParams;
-import io.a2a.spec.ListTaskPushNotificationConfigParams;
-import io.a2a.spec.ListTaskPushNotificationConfigResult;
+import io.a2a.spec.ListTaskPushNotificationConfigsParams;
+import io.a2a.spec.ListTaskPushNotificationConfigsResult;
 import io.a2a.spec.ListTasksParams;
 import io.a2a.spec.MessageSendParams;
 import io.a2a.spec.StreamingEventKind;
@@ -220,12 +220,12 @@ public TaskPushNotificationConfig getTaskPushNotificationConfiguration(GetTaskPu
     }
 
     @Override
-    public ListTaskPushNotificationConfigResult listTaskPushNotificationConfigurations(
-            ListTaskPushNotificationConfigParams request,
+    public ListTaskPushNotificationConfigsResult listTaskPushNotificationConfigurations(
+            ListTaskPushNotificationConfigsParams request,
             @Nullable ClientCallContext context) throws A2AClientException {
         checkNotNullParam("request", request);
         PayloadAndHeaders payloadAndHeaders = applyInterceptors(LIST_TASK_PUSH_NOTIFICATION_CONFIG_METHOD,
-                ProtoUtils.ToProto.listTaskPushNotificationConfigRequest(request), agentCard, context);
+                ProtoUtils.ToProto.listTaskPushNotificationConfigsRequest(request), agentCard, context);
 
         try {
             String httpResponseBody = sendPostRequest(Utils.buildBaseUrl(agentInterface, request.tenant()), payloadAndHeaders, LIST_TASK_PUSH_NOTIFICATION_CONFIG_METHOD);
diff --git a/client/transport/rest/src/main/java/io/a2a/client/transport/rest/RestTransport.java b/client/transport/rest/src/main/java/io/a2a/client/transport/rest/RestTransport.java
index 1eb15291e..bdb26b830 100644
--- a/client/transport/rest/src/main/java/io/a2a/client/transport/rest/RestTransport.java
+++ b/client/transport/rest/src/main/java/io/a2a/client/transport/rest/RestTransport.java
@@ -48,8 +48,8 @@
 import io.a2a.spec.EventKind;
 import io.a2a.spec.GetExtendedAgentCardParams;
 import io.a2a.spec.GetTaskPushNotificationConfigParams;
-import io.a2a.spec.ListTaskPushNotificationConfigParams;
-import io.a2a.spec.ListTaskPushNotificationConfigResult;
+import io.a2a.spec.ListTaskPushNotificationConfigsParams;
+import io.a2a.spec.ListTaskPushNotificationConfigsResult;
 import io.a2a.spec.ListTasksParams;
 import io.a2a.spec.MessageSendParams;
 import io.a2a.spec.StreamingEventKind;
@@ -326,7 +326,7 @@ public TaskPushNotificationConfig getTaskPushNotificationConfiguration(GetTaskPu
     }
 
     @Override
-    public ListTaskPushNotificationConfigResult listTaskPushNotificationConfigurations(ListTaskPushNotificationConfigParams request, @Nullable ClientCallContext context) throws A2AClientException {
+    public ListTaskPushNotificationConfigsResult listTaskPushNotificationConfigurations(ListTaskPushNotificationConfigsParams request, @Nullable ClientCallContext context) throws A2AClientException {
         checkNotNullParam("request", request);
         io.a2a.grpc.ListTaskPushNotificationConfigsRequest.Builder builder
                 = io.a2a.grpc.ListTaskPushNotificationConfigsRequest.newBuilder();
@@ -348,7 +348,7 @@ public ListTaskPushNotificationConfigResult listTaskPushNotificationConfiguratio
             String httpResponseBody = response.body();
             io.a2a.grpc.ListTaskPushNotificationConfigsResponse.Builder responseBuilder = io.a2a.grpc.ListTaskPushNotificationConfigsResponse.newBuilder();
             JsonFormat.parser().merge(httpResponseBody, responseBuilder);
-            return ProtoUtils.FromProto.listTaskPushNotificationConfigResult(responseBuilder);
+            return ProtoUtils.FromProto.listTaskPushNotificationConfigsResult(responseBuilder);
         } catch (A2AClientException e) {
             throw e;
         } catch (IOException | InterruptedException e) {
diff --git a/client/transport/rest/src/test/java/io/a2a/client/transport/rest/RestTransportTest.java b/client/transport/rest/src/test/java/io/a2a/client/transport/rest/RestTransportTest.java
index efa89006b..a7f041237 100644
--- a/client/transport/rest/src/test/java/io/a2a/client/transport/rest/RestTransportTest.java
+++ b/client/transport/rest/src/test/java/io/a2a/client/transport/rest/RestTransportTest.java
@@ -46,8 +46,8 @@
 import io.a2a.spec.FileWithBytes;
 import io.a2a.spec.FileWithUri;
 import io.a2a.spec.GetTaskPushNotificationConfigParams;
-import io.a2a.spec.ListTaskPushNotificationConfigParams;
-import io.a2a.spec.ListTaskPushNotificationConfigResult;
+import io.a2a.spec.ListTaskPushNotificationConfigsParams;
+import io.a2a.spec.ListTaskPushNotificationConfigsResult;
 import io.a2a.spec.Message;
 import io.a2a.spec.MessageSendConfiguration;
 import io.a2a.spec.MessageSendParams;
@@ -357,8 +357,8 @@ public void testListTaskPushNotificationConfigurations() throws Exception {
                 );
 
         RestTransport client = new RestTransport(CARD);
-        ListTaskPushNotificationConfigResult result = client.listTaskPushNotificationConfigurations(
-                new ListTaskPushNotificationConfigParams("de38c76d-d54c-436c-8b9f-4c2703648d64"), null);
+        ListTaskPushNotificationConfigsResult result = client.listTaskPushNotificationConfigurations(
+                new ListTaskPushNotificationConfigsParams("de38c76d-d54c-436c-8b9f-4c2703648d64"), null);
         assertEquals(2, result.configs().size());
         TaskPushNotificationConfig config0 = result.configs().get(0);
         assertNotNull(config0);
diff --git a/client/transport/spi/src/main/java/io/a2a/client/transport/spi/ClientTransport.java b/client/transport/spi/src/main/java/io/a2a/client/transport/spi/ClientTransport.java
index ee85c1dca..cd63dadfb 100644
--- a/client/transport/spi/src/main/java/io/a2a/client/transport/spi/ClientTransport.java
+++ b/client/transport/spi/src/main/java/io/a2a/client/transport/spi/ClientTransport.java
@@ -11,8 +11,8 @@
 import io.a2a.spec.EventKind;
 import io.a2a.spec.GetExtendedAgentCardParams;
 import io.a2a.spec.GetTaskPushNotificationConfigParams;
-import io.a2a.spec.ListTaskPushNotificationConfigParams;
-import io.a2a.spec.ListTaskPushNotificationConfigResult;
+import io.a2a.spec.ListTaskPushNotificationConfigsParams;
+import io.a2a.spec.ListTaskPushNotificationConfigsResult;
 import io.a2a.spec.ListTasksParams;
 import io.a2a.spec.MessageSendParams;
 import io.a2a.spec.StreamingEventKind;
@@ -111,8 +111,8 @@ TaskPushNotificationConfig getTaskPushNotificationConfiguration(
      * @return the result containing the list of task push notification configs and pagination information
      * @throws A2AClientException if getting the task push notification configs fails for any reason
      */
-    ListTaskPushNotificationConfigResult listTaskPushNotificationConfigurations(
-            ListTaskPushNotificationConfigParams request,
+    ListTaskPushNotificationConfigsResult listTaskPushNotificationConfigurations(
+            ListTaskPushNotificationConfigsParams request,
             @Nullable ClientCallContext context) throws A2AClientException;
 
     /**
diff --git a/extras/opentelemetry/client-propagation/src/main/java/io/a2a/extras/opentelemetry/client/propagation/OpenTelemetryClientPropagatorTransport.java b/extras/opentelemetry/client-propagation/src/main/java/io/a2a/extras/opentelemetry/client/propagation/OpenTelemetryClientPropagatorTransport.java
index fd2f80587..20cb377fd 100644
--- a/extras/opentelemetry/client-propagation/src/main/java/io/a2a/extras/opentelemetry/client/propagation/OpenTelemetryClientPropagatorTransport.java
+++ b/extras/opentelemetry/client-propagation/src/main/java/io/a2a/extras/opentelemetry/client/propagation/OpenTelemetryClientPropagatorTransport.java
@@ -10,8 +10,8 @@
 import io.a2a.spec.EventKind;
 import io.a2a.spec.GetExtendedAgentCardParams;
 import io.a2a.spec.GetTaskPushNotificationConfigParams;
-import io.a2a.spec.ListTaskPushNotificationConfigParams;
-import io.a2a.spec.ListTaskPushNotificationConfigResult;
+import io.a2a.spec.ListTaskPushNotificationConfigsParams;
+import io.a2a.spec.ListTaskPushNotificationConfigsResult;
 import io.a2a.spec.ListTasksParams;
 import io.a2a.spec.MessageSendParams;
 import io.a2a.spec.StreamingEventKind;
@@ -96,7 +96,7 @@ public TaskPushNotificationConfig getTaskPushNotificationConfiguration(GetTaskPu
     }
 
     @Override
-    public ListTaskPushNotificationConfigResult listTaskPushNotificationConfigurations(ListTaskPushNotificationConfigParams request,
+    public ListTaskPushNotificationConfigsResult listTaskPushNotificationConfigurations(ListTaskPushNotificationConfigsParams request,
             @Nullable ClientCallContext context) throws A2AClientException {
         return delegate.listTaskPushNotificationConfigurations(request, propagateContext(context));
     }
diff --git a/extras/opentelemetry/client/src/main/java/io/a2a/extras/opentelemetry/client/OpenTelemetryClientTransport.java b/extras/opentelemetry/client/src/main/java/io/a2a/extras/opentelemetry/client/OpenTelemetryClientTransport.java
index 9051e0c2d..e9b248737 100644
--- a/extras/opentelemetry/client/src/main/java/io/a2a/extras/opentelemetry/client/OpenTelemetryClientTransport.java
+++ b/extras/opentelemetry/client/src/main/java/io/a2a/extras/opentelemetry/client/OpenTelemetryClientTransport.java
@@ -24,8 +24,8 @@
 import io.a2a.spec.EventKind;
 import io.a2a.spec.GetExtendedAgentCardParams;
 import io.a2a.spec.GetTaskPushNotificationConfigParams;
-import io.a2a.spec.ListTaskPushNotificationConfigParams;
-import io.a2a.spec.ListTaskPushNotificationConfigResult;
+import io.a2a.spec.ListTaskPushNotificationConfigsParams;
+import io.a2a.spec.ListTaskPushNotificationConfigsResult;
 import io.a2a.spec.ListTasksParams;
 import io.a2a.spec.MessageSendParams;
 import io.a2a.spec.StreamingEventKind;
@@ -306,7 +306,7 @@ public TaskPushNotificationConfig getTaskPushNotificationConfiguration(GetTaskPu
     }
 
     @Override
-    public ListTaskPushNotificationConfigResult listTaskPushNotificationConfigurations(ListTaskPushNotificationConfigParams request,
+    public ListTaskPushNotificationConfigsResult listTaskPushNotificationConfigurations(ListTaskPushNotificationConfigsParams request,
             @Nullable ClientCallContext context) throws A2AClientException {
         ClientCallContext clientContext = createContext(context);
         SpanBuilder spanBuilder = tracer.spanBuilder(A2AMethods.LIST_TASK_PUSH_NOTIFICATION_CONFIG_METHOD).setSpanKind(SpanKind.CLIENT);
@@ -319,7 +319,7 @@ public ListTaskPushNotificationConfigResult listTaskPushNotificationConfiguratio
         }
         Span span = spanBuilder.startSpan();
         try (Scope scope = span.makeCurrent()) {
-            ListTaskPushNotificationConfigResult result = delegate.listTaskPushNotificationConfigurations(request, clientContext);
+            ListTaskPushNotificationConfigsResult result = delegate.listTaskPushNotificationConfigurations(request, clientContext);
             if (result != null && extractResponse()) {
                 String responseValue = result.configs().stream()
                         .map(TaskPushNotificationConfig::toString)
diff --git a/extras/opentelemetry/client/src/test/java/io/a2a/extras/opentelemetry/client/OpenTelemetryClientTransportTest.java b/extras/opentelemetry/client/src/test/java/io/a2a/extras/opentelemetry/client/OpenTelemetryClientTransportTest.java
index 37d04eeb6..2ef582ed6 100644
--- a/extras/opentelemetry/client/src/test/java/io/a2a/extras/opentelemetry/client/OpenTelemetryClientTransportTest.java
+++ b/extras/opentelemetry/client/src/test/java/io/a2a/extras/opentelemetry/client/OpenTelemetryClientTransportTest.java
@@ -14,8 +14,8 @@
 import io.a2a.spec.EventKind;
 import io.a2a.spec.GetExtendedAgentCardParams;
 import io.a2a.spec.GetTaskPushNotificationConfigParams;
-import io.a2a.spec.ListTaskPushNotificationConfigParams;
-import io.a2a.spec.ListTaskPushNotificationConfigResult;
+import io.a2a.spec.ListTaskPushNotificationConfigsParams;
+import io.a2a.spec.ListTaskPushNotificationConfigsResult;
 import io.a2a.spec.ListTasksParams;
 import io.a2a.spec.Message;
 import io.a2a.spec.MessageSendParams;
@@ -262,16 +262,16 @@ void testGetTaskPushNotificationConfiguration_Success() throws A2AClientExceptio
 
     @Test
     void testListTaskPushNotificationConfigurations_Success() throws A2AClientException {
-        ListTaskPushNotificationConfigParams request = mock(ListTaskPushNotificationConfigParams.class);
+        ListTaskPushNotificationConfigsParams request = mock(ListTaskPushNotificationConfigsParams.class);
         TaskPushNotificationConfig config1 = mock(TaskPushNotificationConfig.class);
         TaskPushNotificationConfig config2 = mock(TaskPushNotificationConfig.class);
         when(config1.toString()).thenReturn("config1");
         when(config2.toString()).thenReturn("config2");
-        ListTaskPushNotificationConfigResult expectedResult = new ListTaskPushNotificationConfigResult(List.of(config1, config2));
+        ListTaskPushNotificationConfigsResult expectedResult = new ListTaskPushNotificationConfigsResult(List.of(config1, config2));
         when(request.toString()).thenReturn("request-string");
         when(delegate.listTaskPushNotificationConfigurations(eq(request), any(ClientCallContext.class))).thenReturn(expectedResult);
 
-        ListTaskPushNotificationConfigResult result = transport.listTaskPushNotificationConfigurations(request, context);
+        ListTaskPushNotificationConfigsResult result = transport.listTaskPushNotificationConfigurations(request, context);
 
         assertEquals(expectedResult, result);
         verify(tracer).spanBuilder(A2AMethods.LIST_TASK_PUSH_NOTIFICATION_CONFIG_METHOD);
diff --git a/extras/opentelemetry/server/src/main/java/io/a2a/extras/opentelemetry/OpenTelemetryRequestHandlerDecorator.java b/extras/opentelemetry/server/src/main/java/io/a2a/extras/opentelemetry/OpenTelemetryRequestHandlerDecorator.java
index ffa7a1322..dfad8a531 100644
--- a/extras/opentelemetry/server/src/main/java/io/a2a/extras/opentelemetry/OpenTelemetryRequestHandlerDecorator.java
+++ b/extras/opentelemetry/server/src/main/java/io/a2a/extras/opentelemetry/OpenTelemetryRequestHandlerDecorator.java
@@ -23,8 +23,8 @@
 import io.a2a.spec.DeleteTaskPushNotificationConfigParams;
 import io.a2a.spec.EventKind;
 import io.a2a.spec.GetTaskPushNotificationConfigParams;
-import io.a2a.spec.ListTaskPushNotificationConfigParams;
-import io.a2a.spec.ListTaskPushNotificationConfigResult;
+import io.a2a.spec.ListTaskPushNotificationConfigsParams;
+import io.a2a.spec.ListTaskPushNotificationConfigsResult;
 import io.a2a.spec.ListTasksParams;
 import io.a2a.spec.MessageSendParams;
 import io.a2a.spec.StreamingEventKind;
@@ -396,7 +396,7 @@ public Flow.Publisher onSubscribeToTask(TaskIdParams params,
     }
 
     @Override
-    public ListTaskPushNotificationConfigResult onListTaskPushNotificationConfig(ListTaskPushNotificationConfigParams params, ServerCallContext context) throws A2AError {
+    public ListTaskPushNotificationConfigsResult onListTaskPushNotificationConfigs(ListTaskPushNotificationConfigsParams params, ServerCallContext context) throws A2AError {
         var spanBuilder = tracer.spanBuilder(A2AMethods.LIST_TASK_PUSH_NOTIFICATION_CONFIG_METHOD)
                 .setSpanKind(SpanKind.SERVER)
                 .setAttribute(GENAI_OPERATION_NAME, A2AMethods.LIST_TASK_PUSH_NOTIFICATION_CONFIG_METHOD);
@@ -411,7 +411,7 @@ public ListTaskPushNotificationConfigResult onListTaskPushNotificationConfig(Lis
         Span span = spanBuilder.startSpan();
 
         try (Scope scope = span.makeCurrent()) {
-            ListTaskPushNotificationConfigResult result = delegate.onListTaskPushNotificationConfig(params, context);
+            ListTaskPushNotificationConfigsResult result = delegate.onListTaskPushNotificationConfigs(params, context);
 
             if (result != null && extractResponse()) {
                 span.setAttribute(GENAI_RESPONSE, result.toString());
diff --git a/extras/opentelemetry/server/src/test/java/io/a2a/extras/opentelemetry/OpenTelemetryRequestHandlerDecoratorTest.java b/extras/opentelemetry/server/src/test/java/io/a2a/extras/opentelemetry/OpenTelemetryRequestHandlerDecoratorTest.java
index 748bb3927..290b40c37 100644
--- a/extras/opentelemetry/server/src/test/java/io/a2a/extras/opentelemetry/OpenTelemetryRequestHandlerDecoratorTest.java
+++ b/extras/opentelemetry/server/src/test/java/io/a2a/extras/opentelemetry/OpenTelemetryRequestHandlerDecoratorTest.java
@@ -393,14 +393,14 @@ void onResubscribeToTask_withError_setsErrorStatus() throws A2AError {
     }
 
     @Nested
-    class ListTaskPushNotificationConfigTests {
+    class ListTaskPushNotificationConfigsTests {
         @Test
-        void onListTaskPushNotificationConfig_createsSpanAndDelegatesToHandler() throws A2AError {
-            ListTaskPushNotificationConfigParams params = new ListTaskPushNotificationConfigParams("task-123");
-            ListTaskPushNotificationConfigResult result = new ListTaskPushNotificationConfigResult(Collections.emptyList(), null);
-            when(delegate.onListTaskPushNotificationConfig(params, context)).thenReturn(result);
+        void onListTaskPushNotificationConfigs_createsSpanAndDelegatesToHandler() throws A2AError {
+            ListTaskPushNotificationConfigsParams params = new ListTaskPushNotificationConfigsParams("task-123");
+            ListTaskPushNotificationConfigsResult result = new ListTaskPushNotificationConfigsResult(Collections.emptyList(), null);
+            when(delegate.onListTaskPushNotificationConfigs(params, context)).thenReturn(result);
 
-            ListTaskPushNotificationConfigResult actualResult = decorator.onListTaskPushNotificationConfig(params, context);
+            ListTaskPushNotificationConfigsResult actualResult = decorator.onListTaskPushNotificationConfigs(params, context);
 
             assertEquals(result, actualResult);
             verify(tracer).spanBuilder(A2AMethods.LIST_TASK_PUSH_NOTIFICATION_CONFIG_METHOD);
@@ -411,12 +411,12 @@ void onListTaskPushNotificationConfig_createsSpanAndDelegatesToHandler() throws
         }
 
         @Test
-        void onListTaskPushNotificationConfig_withError_setsErrorStatus() throws A2AError {
-            ListTaskPushNotificationConfigParams params = new ListTaskPushNotificationConfigParams("task-123");
+        void onListTaskPushNotificationConfigs_withError_setsErrorStatus() throws A2AError {
+            ListTaskPushNotificationConfigsParams params = new ListTaskPushNotificationConfigsParams("task-123");
             A2AError error = new InvalidRequestError("Invalid request");
-            when(delegate.onListTaskPushNotificationConfig(params, context)).thenThrow(error);
+            when(delegate.onListTaskPushNotificationConfigs(params, context)).thenThrow(error);
 
-            assertThrows(InvalidRequestError.class, () -> decorator.onListTaskPushNotificationConfig(params, context));
+            assertThrows(InvalidRequestError.class, () -> decorator.onListTaskPushNotificationConfigs(params, context));
 
             verify(span).setAttribute(ERROR_TYPE, error.getMessage());
             verify(span).setStatus(StatusCode.ERROR, error.getMessage());
diff --git a/extras/push-notification-config-store-database-jpa/src/main/java/io/a2a/extras/pushnotificationconfigstore/database/jpa/JpaDatabasePushNotificationConfigStore.java b/extras/push-notification-config-store-database-jpa/src/main/java/io/a2a/extras/pushnotificationconfigstore/database/jpa/JpaDatabasePushNotificationConfigStore.java
index a34d0b55f..20d88e79c 100644
--- a/extras/push-notification-config-store-database-jpa/src/main/java/io/a2a/extras/pushnotificationconfigstore/database/jpa/JpaDatabasePushNotificationConfigStore.java
+++ b/extras/push-notification-config-store-database-jpa/src/main/java/io/a2a/extras/pushnotificationconfigstore/database/jpa/JpaDatabasePushNotificationConfigStore.java
@@ -13,8 +13,8 @@
 
 import io.a2a.jsonrpc.common.json.JsonProcessingException;
 import io.a2a.server.tasks.PushNotificationConfigStore;
-import io.a2a.spec.ListTaskPushNotificationConfigParams;
-import io.a2a.spec.ListTaskPushNotificationConfigResult;
+import io.a2a.spec.ListTaskPushNotificationConfigsParams;
+import io.a2a.spec.ListTaskPushNotificationConfigsResult;
 import io.a2a.util.Assert;
 import io.a2a.util.PageToken;
 import io.a2a.spec.TaskPushNotificationConfig;
@@ -74,7 +74,7 @@ public TaskPushNotificationConfig setInfo(TaskPushNotificationConfig notificatio
 
     @Transactional
     @Override
-    public ListTaskPushNotificationConfigResult getInfo(ListTaskPushNotificationConfigParams params) {
+    public ListTaskPushNotificationConfigsResult getInfo(ListTaskPushNotificationConfigsParams params) {
         String taskId = params.id();
         LOGGER.debug("Retrieving PushNotificationConfigs for Task '{}' with params: pageSize={}, pageToken={}",
             taskId, params.pageSize(), params.pageToken());
@@ -136,7 +136,7 @@ public ListTaskPushNotificationConfigResult getInfo(ListTaskPushNotificationConf
 
             LOGGER.debug("Successfully retrieved {} PushNotificationConfigs for Task '{}'", taskPushNotificationConfigs.size(), taskId);
 
-            return new ListTaskPushNotificationConfigResult(taskPushNotificationConfigs, nextPageToken);
+            return new ListTaskPushNotificationConfigsResult(taskPushNotificationConfigs, nextPageToken);
         } catch (Exception e) {
             LOGGER.error("Failed to retrieve PushNotificationConfigs for Task '{}'", taskId, e);
             throw e;
diff --git a/extras/push-notification-config-store-database-jpa/src/test/java/io/a2a/extras/pushnotificationconfigstore/database/jpa/JpaDatabasePushNotificationConfigStoreIntegrationTest.java b/extras/push-notification-config-store-database-jpa/src/test/java/io/a2a/extras/pushnotificationconfigstore/database/jpa/JpaDatabasePushNotificationConfigStoreIntegrationTest.java
index 3551f700a..59dc130f5 100644
--- a/extras/push-notification-config-store-database-jpa/src/test/java/io/a2a/extras/pushnotificationconfigstore/database/jpa/JpaDatabasePushNotificationConfigStoreIntegrationTest.java
+++ b/extras/push-notification-config-store-database-jpa/src/test/java/io/a2a/extras/pushnotificationconfigstore/database/jpa/JpaDatabasePushNotificationConfigStoreIntegrationTest.java
@@ -25,8 +25,8 @@
 import io.a2a.spec.AgentCard;
 import io.a2a.spec.DeleteTaskPushNotificationConfigParams;
 import io.a2a.spec.GetTaskPushNotificationConfigParams;
-import io.a2a.spec.ListTaskPushNotificationConfigParams;
-import io.a2a.spec.ListTaskPushNotificationConfigResult;
+import io.a2a.spec.ListTaskPushNotificationConfigsParams;
+import io.a2a.spec.ListTaskPushNotificationConfigsResult;
 import io.a2a.spec.Message;
 import io.a2a.spec.Task;
 import io.a2a.spec.TaskPushNotificationConfig;
@@ -207,8 +207,8 @@ public void testPaginationWithPageSize() {
         // Create 5 configs
         createSamples(taskId, 5);
         // Request first page with pageSize=2
-        ListTaskPushNotificationConfigParams params = new ListTaskPushNotificationConfigParams(taskId, 2, "", "");
-        ListTaskPushNotificationConfigResult result = pushNotificationConfigStore.getInfo(params);
+        ListTaskPushNotificationConfigsParams params = new ListTaskPushNotificationConfigsParams(taskId, 2, "", "");
+        ListTaskPushNotificationConfigsResult result = pushNotificationConfigStore.getInfo(params);
 
         assertNotNull(result);
         assertEquals(2, result.configs().size(), "Should return 2 configs");
@@ -223,14 +223,14 @@ public void testPaginationWithPageToken() {
         createSamples(taskId, 5);
 
         // Get first page
-        ListTaskPushNotificationConfigParams firstPageParams = new ListTaskPushNotificationConfigParams(taskId, 2, "", "");
-        ListTaskPushNotificationConfigResult firstPage = pushNotificationConfigStore.getInfo(firstPageParams);
+        ListTaskPushNotificationConfigsParams firstPageParams = new ListTaskPushNotificationConfigsParams(taskId, 2, "", "");
+        ListTaskPushNotificationConfigsResult firstPage = pushNotificationConfigStore.getInfo(firstPageParams);
         assertNotNull(firstPage.nextPageToken());
 
         // Get second page using nextPageToken
-        ListTaskPushNotificationConfigParams secondPageParams = new ListTaskPushNotificationConfigParams(
+        ListTaskPushNotificationConfigsParams secondPageParams = new ListTaskPushNotificationConfigsParams(
                 taskId, 2, firstPage.nextPageToken(), "");
-        ListTaskPushNotificationConfigResult secondPage = pushNotificationConfigStore.getInfo(secondPageParams);
+        ListTaskPushNotificationConfigsResult secondPage = pushNotificationConfigStore.getInfo(secondPageParams);
 
         assertNotNull(secondPage);
         assertEquals(2, secondPage.configs().size(), "Should return 2 configs for second page");
@@ -268,18 +268,18 @@ public void testPaginationLastPage() {
         createSamples(taskId, 5);
 
         // Get first page (2 items)
-        ListTaskPushNotificationConfigParams firstPageParams = new ListTaskPushNotificationConfigParams(taskId, 2, "", "");
-        ListTaskPushNotificationConfigResult firstPage = pushNotificationConfigStore.getInfo(firstPageParams);
+        ListTaskPushNotificationConfigsParams firstPageParams = new ListTaskPushNotificationConfigsParams(taskId, 2, "", "");
+        ListTaskPushNotificationConfigsResult firstPage = pushNotificationConfigStore.getInfo(firstPageParams);
 
         // Get second page (2 items)
-        ListTaskPushNotificationConfigParams secondPageParams = new ListTaskPushNotificationConfigParams(
+        ListTaskPushNotificationConfigsParams secondPageParams = new ListTaskPushNotificationConfigsParams(
                 taskId, 2, firstPage.nextPageToken(), "");
-        ListTaskPushNotificationConfigResult secondPage = pushNotificationConfigStore.getInfo(secondPageParams);
+        ListTaskPushNotificationConfigsResult secondPage = pushNotificationConfigStore.getInfo(secondPageParams);
 
         // Get last page (1 item remaining)
-        ListTaskPushNotificationConfigParams lastPageParams = new ListTaskPushNotificationConfigParams(
+        ListTaskPushNotificationConfigsParams lastPageParams = new ListTaskPushNotificationConfigsParams(
                 taskId, 2, secondPage.nextPageToken(), "");
-        ListTaskPushNotificationConfigResult lastPage = pushNotificationConfigStore.getInfo(lastPageParams);
+        ListTaskPushNotificationConfigsResult lastPage = pushNotificationConfigStore.getInfo(lastPageParams);
 
         assertNotNull(lastPage);
         assertEquals(1, lastPage.configs().size(), "Last page should have 1 remaining config");
@@ -294,8 +294,8 @@ public void testPaginationWithZeroPageSize() {
         createSamples(taskId, 5);
 
         // Request with pageSize=0 should return all configs
-        ListTaskPushNotificationConfigParams params = new ListTaskPushNotificationConfigParams(taskId, 0, "", "");
-        ListTaskPushNotificationConfigResult result = pushNotificationConfigStore.getInfo(params);
+        ListTaskPushNotificationConfigsParams params = new ListTaskPushNotificationConfigsParams(taskId, 0, "", "");
+        ListTaskPushNotificationConfigsResult result = pushNotificationConfigStore.getInfo(params);
 
         assertNotNull(result);
         assertEquals(5, result.configs().size(), "Should return all 5 configs when pageSize=0");
@@ -310,8 +310,8 @@ public void testPaginationWithNegativePageSize() {
         createSamples(taskId, 3);
 
         // Request with negative pageSize should return all configs
-        ListTaskPushNotificationConfigParams params = new ListTaskPushNotificationConfigParams(taskId, -1, "", "");
-        ListTaskPushNotificationConfigResult result = pushNotificationConfigStore.getInfo(params);
+        ListTaskPushNotificationConfigsParams params = new ListTaskPushNotificationConfigsParams(taskId, -1, "", "");
+        ListTaskPushNotificationConfigsResult result = pushNotificationConfigStore.getInfo(params);
 
         assertNotNull(result);
         assertEquals(3, result.configs().size(), "Should return all configs when pageSize is negative");
@@ -326,8 +326,8 @@ public void testPaginationPageSizeLargerThanConfigs() {
         createSamples(taskId, 3);
 
         // Request with pageSize larger than available configs
-        ListTaskPushNotificationConfigParams params = new ListTaskPushNotificationConfigParams(taskId, 10, "", "");
-        ListTaskPushNotificationConfigResult result = pushNotificationConfigStore.getInfo(params);
+        ListTaskPushNotificationConfigsParams params = new ListTaskPushNotificationConfigsParams(taskId, 10, "", "");
+        ListTaskPushNotificationConfigsResult result = pushNotificationConfigStore.getInfo(params);
 
         assertNotNull(result);
         assertEquals(3, result.configs().size(), "Should return all 3 configs");
@@ -342,8 +342,8 @@ public void testPaginationExactlyPageSize() {
         createSamples(taskId, 3);
 
         // Request with pageSize equal to number of configs
-        ListTaskPushNotificationConfigParams params = new ListTaskPushNotificationConfigParams(taskId, 3, "", "");
-        ListTaskPushNotificationConfigResult result = pushNotificationConfigStore.getInfo(params);
+        ListTaskPushNotificationConfigsParams params = new ListTaskPushNotificationConfigsParams(taskId, 3, "", "");
+        ListTaskPushNotificationConfigsResult result = pushNotificationConfigStore.getInfo(params);
 
         assertNotNull(result);
         assertEquals(3, result.configs().size(), "Should return all 3 configs");
@@ -358,7 +358,7 @@ public void testPaginationWithInvalidToken() {
         createSamples(taskId, 5);
 
         // Request with invalid pageToken - should throw InvalidParamsError for invalid format
-        ListTaskPushNotificationConfigParams params = new ListTaskPushNotificationConfigParams(
+        ListTaskPushNotificationConfigsParams params = new ListTaskPushNotificationConfigsParams(
                 taskId, 2, "invalid_token_that_does_not_exist", "");
 
         assertThrows(io.a2a.spec.InvalidParamsError.class, () -> pushNotificationConfigStore.getInfo(params),
@@ -371,8 +371,8 @@ public void testPaginationEmptyTaskWithPageSize() {
         String taskId = "task_pagination_empty_" + System.currentTimeMillis();
         // No configs created
 
-        ListTaskPushNotificationConfigParams params = new ListTaskPushNotificationConfigParams(taskId, 2, "", "");
-        ListTaskPushNotificationConfigResult result = pushNotificationConfigStore.getInfo(params);
+        ListTaskPushNotificationConfigsParams params = new ListTaskPushNotificationConfigsParams(taskId, 2, "", "");
+        ListTaskPushNotificationConfigsResult result = pushNotificationConfigStore.getInfo(params);
 
         assertNotNull(result);
         assertTrue(result.configs().isEmpty(), "Should return empty list for non-existent task");
@@ -392,8 +392,8 @@ public void testPaginationFullIteration() {
         int pageCount = 0;
 
         do {
-            ListTaskPushNotificationConfigParams params = new ListTaskPushNotificationConfigParams(taskId, 3, pageToken, "");
-            ListTaskPushNotificationConfigResult result = pushNotificationConfigStore.getInfo(params);
+            ListTaskPushNotificationConfigsParams params = new ListTaskPushNotificationConfigsParams(taskId, 3, pageToken, "");
+            ListTaskPushNotificationConfigsResult result = pushNotificationConfigStore.getInfo(params);
 
             totalCollected += result.configs().size();
             pageToken = result.nextPageToken();
@@ -414,8 +414,8 @@ public void testPageTokenWithNonNumericTimestamp() {
       String taskId = "task_malformed_token_" + System.currentTimeMillis();
       createSamples(taskId, 3);
 
-      ListTaskPushNotificationConfigParams params =
-          new ListTaskPushNotificationConfigParams(taskId, 2, "not_a_number:cfg1", "");
+      ListTaskPushNotificationConfigsParams params =
+          new ListTaskPushNotificationConfigsParams(taskId, 2, "not_a_number:cfg1", "");
 
       assertThrows(io.a2a.spec.InvalidParamsError.class,
           () -> pushNotificationConfigStore.getInfo(params),
@@ -428,8 +428,8 @@ public void testPageTokenWithMissingColon() {
       String taskId = "task_missing_colon_" + System.currentTimeMillis();
       createSamples(taskId, 5);
 
-      ListTaskPushNotificationConfigParams params =
-          new ListTaskPushNotificationConfigParams(taskId, 2, "123456789cfg1", "");
+      ListTaskPushNotificationConfigsParams params =
+          new ListTaskPushNotificationConfigsParams(taskId, 2, "123456789cfg1", "");
 
       assertThrows(io.a2a.spec.InvalidParamsError.class, () -> pushNotificationConfigStore.getInfo(params),
           "Should throw InvalidParamsError for invalid pageToken format (missing colon)");
@@ -442,9 +442,9 @@ public void testPaginationBoundaryExactlyMaxResultsPlusOne() {
 
       createSamples(taskId, 4);
 
-      ListTaskPushNotificationConfigParams params =
-          new ListTaskPushNotificationConfigParams(taskId, 4, "", "");
-      ListTaskPushNotificationConfigResult result = pushNotificationConfigStore.getInfo(params);
+      ListTaskPushNotificationConfigsParams params =
+          new ListTaskPushNotificationConfigsParams(taskId, 4, "", "");
+      ListTaskPushNotificationConfigsResult result = pushNotificationConfigStore.getInfo(params);
 
       assertEquals(4, result.configs().size(),
           "Should return all 4 configs when pageSize equals total count");
@@ -461,10 +461,10 @@ public void testMultipleTasksDoNotInterfere() {
       createSamples(taskId1, 3);
       createSamples(taskId2, 2);
 
-      ListTaskPushNotificationConfigResult result1 =
-          pushNotificationConfigStore.getInfo(new ListTaskPushNotificationConfigParams(taskId1));
-      ListTaskPushNotificationConfigResult result2 =
-          pushNotificationConfigStore.getInfo(new ListTaskPushNotificationConfigParams(taskId2));
+      ListTaskPushNotificationConfigsResult result1 =
+          pushNotificationConfigStore.getInfo(new ListTaskPushNotificationConfigsParams(taskId1));
+      ListTaskPushNotificationConfigsResult result2 =
+          pushNotificationConfigStore.getInfo(new ListTaskPushNotificationConfigsParams(taskId2));
 
       assertEquals(3, result1.configs().size(), "Task1 should have 3 configs");
       assertEquals(2, result2.configs().size(), "Task2 should have 2 configs");
@@ -487,9 +487,9 @@ public void testMultipleTasksDoNotInterfere() {
     public void testGetInfoWithNonExistentTaskIdDoesNotThrow() {
       String nonExistentTaskId = "non_existent_task_" + System.currentTimeMillis();
 
-      ListTaskPushNotificationConfigParams params =
-          new ListTaskPushNotificationConfigParams(nonExistentTaskId, 10, "", "");
-      ListTaskPushNotificationConfigResult result = pushNotificationConfigStore.getInfo(params);
+      ListTaskPushNotificationConfigsParams params =
+          new ListTaskPushNotificationConfigsParams(nonExistentTaskId, 10, "", "");
+      ListTaskPushNotificationConfigsResult result = pushNotificationConfigStore.getInfo(params);
 
       assertNotNull(result, "Result should not be null");
       assertTrue(result.configs().isEmpty(),
@@ -508,9 +508,9 @@ public void testGetInfoReturnsTenantFromParams() {
           "http://url.com/callback", "cfg1", "token");
       pushNotificationConfigStore.setInfo(TaskPushNotificationConfig.builder(config).taskId(taskId).build());
 
-      ListTaskPushNotificationConfigParams params =
-          new ListTaskPushNotificationConfigParams(taskId, 0, "", tenant);
-      ListTaskPushNotificationConfigResult result = pushNotificationConfigStore.getInfo(params);
+      ListTaskPushNotificationConfigsParams params =
+          new ListTaskPushNotificationConfigsParams(taskId, 0, "", tenant);
+      ListTaskPushNotificationConfigsResult result = pushNotificationConfigStore.getInfo(params);
 
       assertNotNull(result);
       assertEquals(1, result.configs().size());
@@ -529,9 +529,9 @@ public void testPaginationOrderingConsistency() {
       int pageCount = 0;
 
       do {
-        ListTaskPushNotificationConfigParams params =
-            new ListTaskPushNotificationConfigParams(taskId, 3, pageToken, "");
-        ListTaskPushNotificationConfigResult result = pushNotificationConfigStore.getInfo(params);
+        ListTaskPushNotificationConfigsParams params =
+            new ListTaskPushNotificationConfigsParams(taskId, 3, pageToken, "");
+        ListTaskPushNotificationConfigsResult result = pushNotificationConfigStore.getInfo(params);
 
         result.configs().forEach(c ->
             allConfigIds.add(c.id()));
diff --git a/extras/push-notification-config-store-database-jpa/src/test/java/io/a2a/extras/pushnotificationconfigstore/database/jpa/JpaPushNotificationConfigStoreTest.java b/extras/push-notification-config-store-database-jpa/src/test/java/io/a2a/extras/pushnotificationconfigstore/database/jpa/JpaPushNotificationConfigStoreTest.java
index 9e10e1910..9e0aff233 100644
--- a/extras/push-notification-config-store-database-jpa/src/test/java/io/a2a/extras/pushnotificationconfigstore/database/jpa/JpaPushNotificationConfigStoreTest.java
+++ b/extras/push-notification-config-store-database-jpa/src/test/java/io/a2a/extras/pushnotificationconfigstore/database/jpa/JpaPushNotificationConfigStoreTest.java
@@ -20,8 +20,8 @@
 import io.a2a.client.http.A2AHttpResponse;
 import io.a2a.server.tasks.BasePushNotificationSender;
 import io.a2a.server.tasks.PushNotificationConfigStore;
-import io.a2a.spec.ListTaskPushNotificationConfigParams;
-import io.a2a.spec.ListTaskPushNotificationConfigResult;
+import io.a2a.spec.ListTaskPushNotificationConfigsParams;
+import io.a2a.spec.ListTaskPushNotificationConfigsResult;
 import io.a2a.spec.Task;
 import io.a2a.spec.TaskPushNotificationConfig;
 import io.a2a.spec.TaskState;
@@ -90,7 +90,7 @@ public void testSetInfoAddsNewConfig() {
         assertEquals(config.url(), result.url());
         assertEquals(config.id(), result.id());
 
-        ListTaskPushNotificationConfigResult configResult = configStore.getInfo(new ListTaskPushNotificationConfigParams(taskId));
+        ListTaskPushNotificationConfigsResult configResult = configStore.getInfo(new ListTaskPushNotificationConfigsParams(taskId));
         assertNotNull(configResult);
         assertEquals(1, configResult.configs().size());
         assertEquals(config.url(), configResult.configs().get(0).url());
@@ -109,7 +109,7 @@ public void testSetInfoAppendsToExistingConfig() {
                 "http://updated.url/callback", "cfg_updated", null);
         configStore.setInfo(TaskPushNotificationConfig.builder(updatedConfig).taskId(taskId).build());
 
-        ListTaskPushNotificationConfigResult configResult = configStore.getInfo(new ListTaskPushNotificationConfigParams(taskId));
+        ListTaskPushNotificationConfigsResult configResult = configStore.getInfo(new ListTaskPushNotificationConfigsParams(taskId));
         assertNotNull(configResult);
         assertEquals(2, configResult.configs().size());
 
@@ -143,7 +143,7 @@ public void testSetInfoWithoutConfigId() {
         TaskPushNotificationConfig result = configStore.setInfo(initialConfig);
         assertEquals(taskId, result.id(), "Config ID should default to taskId when not provided");
 
-        ListTaskPushNotificationConfigResult configResult = configStore.getInfo(new ListTaskPushNotificationConfigParams(taskId));
+        ListTaskPushNotificationConfigsResult configResult = configStore.getInfo(new ListTaskPushNotificationConfigsParams(taskId));
         assertEquals(1, configResult.configs().size());
         assertEquals(taskId, configResult.configs().get(0).id());
 
@@ -156,7 +156,7 @@ public void testSetInfoWithoutConfigId() {
         TaskPushNotificationConfig updatedResult = configStore.setInfo(updatedConfig);
         assertEquals(taskId, updatedResult.id());
 
-        configResult = configStore.getInfo(new ListTaskPushNotificationConfigParams(taskId));
+        configResult = configStore.getInfo(new ListTaskPushNotificationConfigsParams(taskId));
         assertEquals(1, configResult.configs().size(), "Should replace existing config with same ID rather than adding new one");
         assertEquals(updatedConfig.url(), configResult.configs().get(0).url());
     }
@@ -168,7 +168,7 @@ public void testGetInfoExistingConfig() {
         TaskPushNotificationConfig config = createSamplePushConfig("http://get.this/callback", "cfg1", null);
         configStore.setInfo(TaskPushNotificationConfig.builder(config).taskId(taskId).build());
 
-        ListTaskPushNotificationConfigResult configResult = configStore.getInfo(new ListTaskPushNotificationConfigParams(taskId));
+        ListTaskPushNotificationConfigsResult configResult = configStore.getInfo(new ListTaskPushNotificationConfigsParams(taskId));
         assertNotNull(configResult);
         assertEquals(1, configResult.configs().size());
         assertEquals(config.url(), configResult.configs().get(0).url());
@@ -179,7 +179,7 @@ public void testGetInfoExistingConfig() {
     @Transactional
     public void testGetInfoNonExistentConfig() {
         String taskId = "task_get_non_exist";
-        ListTaskPushNotificationConfigResult configResult = configStore.getInfo(new ListTaskPushNotificationConfigParams(taskId));
+        ListTaskPushNotificationConfigsResult configResult = configStore.getInfo(new ListTaskPushNotificationConfigsParams(taskId));
         assertNotNull(configResult);
         assertTrue(configResult.configs().isEmpty(), "Should return empty list for non-existent task ID");
     }
@@ -191,13 +191,13 @@ public void testDeleteInfoExistingConfig() {
         TaskPushNotificationConfig config = createSamplePushConfig("http://delete.this/callback", "cfg1", null);
         configStore.setInfo(TaskPushNotificationConfig.builder(config).taskId(taskId).build());
 
-        ListTaskPushNotificationConfigResult configResult = configStore.getInfo(new ListTaskPushNotificationConfigParams(taskId));
+        ListTaskPushNotificationConfigsResult configResult = configStore.getInfo(new ListTaskPushNotificationConfigsParams(taskId));
         assertNotNull(configResult);
         assertEquals(1, configResult.configs().size());
 
         configStore.deleteInfo(taskId, config.id());
 
-        ListTaskPushNotificationConfigResult configsAfterDelete = configStore.getInfo(new ListTaskPushNotificationConfigParams(taskId));
+        ListTaskPushNotificationConfigsResult configsAfterDelete = configStore.getInfo(new ListTaskPushNotificationConfigsParams(taskId));
         assertNotNull(configsAfterDelete);
         assertTrue(configsAfterDelete.configs().isEmpty(), "Should return empty list when no configs remain after deletion");
     }
@@ -209,7 +209,7 @@ public void testDeleteInfoNonExistentConfig() {
         // Should not throw an error
         configStore.deleteInfo(taskId, "non_existent_id");
 
-        ListTaskPushNotificationConfigResult configResult = configStore.getInfo(new ListTaskPushNotificationConfigParams(taskId));
+        ListTaskPushNotificationConfigsResult configResult = configStore.getInfo(new ListTaskPushNotificationConfigsParams(taskId));
         assertNotNull(configResult);
         assertTrue(configResult.configs().isEmpty(), "Should return empty list for non-existent task ID");
     }
@@ -228,7 +228,7 @@ public void testDeleteInfoWithNullConfigId() {
         // Delete with null configId should use taskId
         configStore.deleteInfo(taskId, null);
 
-        ListTaskPushNotificationConfigResult configResult = configStore.getInfo(new ListTaskPushNotificationConfigParams(taskId));
+        ListTaskPushNotificationConfigsResult configResult = configStore.getInfo(new ListTaskPushNotificationConfigsParams(taskId));
         assertNotNull(configResult);
         assertTrue(configResult.configs().isEmpty(), "Should return empty list after deletion when using taskId as configId");
     }
@@ -323,7 +323,7 @@ public void testMultipleConfigsForSameTask() {
         configStore.setInfo(TaskPushNotificationConfig.builder(config1).taskId(taskId).build());
         configStore.setInfo(TaskPushNotificationConfig.builder(config2).taskId(taskId).build());
 
-        ListTaskPushNotificationConfigResult configResult = configStore.getInfo(new ListTaskPushNotificationConfigParams(taskId));
+        ListTaskPushNotificationConfigsResult configResult = configStore.getInfo(new ListTaskPushNotificationConfigsParams(taskId));
         assertNotNull(configResult);
         assertEquals(2, configResult.configs().size());
 
@@ -345,7 +345,7 @@ public void testDeleteSpecificConfigFromMultiple() {
         // Delete only config1
         configStore.deleteInfo(taskId, "cfg1");
 
-        ListTaskPushNotificationConfigResult configResult = configStore.getInfo(new ListTaskPushNotificationConfigParams(taskId));
+        ListTaskPushNotificationConfigsResult configResult = configStore.getInfo(new ListTaskPushNotificationConfigsParams(taskId));
         assertNotNull(configResult);
         assertEquals(1, configResult.configs().size());
         assertEquals("cfg2", configResult.configs().get(0).id());
@@ -362,13 +362,13 @@ public void testConfigStoreIntegration() {
         assertEquals(config.url(), storedConfig.url());
         assertEquals(config.token(), storedConfig.token());
 
-        ListTaskPushNotificationConfigResult configResult = configStore.getInfo(new ListTaskPushNotificationConfigParams(taskId));
+        ListTaskPushNotificationConfigsResult configResult = configStore.getInfo(new ListTaskPushNotificationConfigsParams(taskId));
         assertEquals(1, configResult.configs().size());
         assertEquals(config.url(), configResult.configs().get(0).url());
 
         // Test deletion
         configStore.deleteInfo(taskId, storedConfig.id());
-        ListTaskPushNotificationConfigResult afterDeletion = configStore.getInfo(new ListTaskPushNotificationConfigParams(taskId));
+        ListTaskPushNotificationConfigsResult afterDeletion = configStore.getInfo(new ListTaskPushNotificationConfigsParams(taskId));
         assertTrue(afterDeletion.configs().isEmpty());
     }
 }
diff --git a/jsonrpc-common/src/main/java/io/a2a/jsonrpc/common/wrappers/ListTaskPushNotificationConfigsRequest.java b/jsonrpc-common/src/main/java/io/a2a/jsonrpc/common/wrappers/ListTaskPushNotificationConfigsRequest.java
index 66133f250..82b7a40bc 100644
--- a/jsonrpc-common/src/main/java/io/a2a/jsonrpc/common/wrappers/ListTaskPushNotificationConfigsRequest.java
+++ b/jsonrpc-common/src/main/java/io/a2a/jsonrpc/common/wrappers/ListTaskPushNotificationConfigsRequest.java
@@ -3,7 +3,7 @@
 
 import java.util.UUID;
 
-import io.a2a.spec.ListTaskPushNotificationConfigParams;
+import io.a2a.spec.ListTaskPushNotificationConfigsParams;
 import io.a2a.spec.TaskPushNotificationConfig;
 
 import static io.a2a.spec.A2AMethods.LIST_TASK_PUSH_NOTIFICATION_CONFIG_METHOD;
@@ -17,11 +17,11 @@
  * This class implements the JSON-RPC {@code tasks/pushNotificationConfig/list} method.
  *
  * @see ListTaskPushNotificationConfigsResponse for the response
- * @see ListTaskPushNotificationConfigParams for the parameter structure
+ * @see ListTaskPushNotificationConfigsParams for the parameter structure
  * @see TaskPushNotificationConfig for the configuration structure
  * @see A2A Protocol Specification
  */
-public final class ListTaskPushNotificationConfigsRequest extends NonStreamingJSONRPCRequest {
+public final class ListTaskPushNotificationConfigsRequest extends NonStreamingJSONRPCRequest {
 
     /**
      * Constructs request with all parameters.
@@ -30,7 +30,7 @@ public final class ListTaskPushNotificationConfigsRequest extends NonStreamingJS
      * @param id the request ID
      * @param params the request parameters
      */
-    public ListTaskPushNotificationConfigsRequest(String jsonrpc, Object id, ListTaskPushNotificationConfigParams params) {
+    public ListTaskPushNotificationConfigsRequest(String jsonrpc, Object id, ListTaskPushNotificationConfigsParams params) {
         super(jsonrpc, LIST_TASK_PUSH_NOTIFICATION_CONFIG_METHOD, id, params);
     }
 
@@ -40,7 +40,7 @@ public ListTaskPushNotificationConfigsRequest(String jsonrpc, Object id, ListTas
      * @param id the request ID
      * @param params the request parameters
      */
-    public ListTaskPushNotificationConfigsRequest(String id, ListTaskPushNotificationConfigParams params) {
+    public ListTaskPushNotificationConfigsRequest(String id, ListTaskPushNotificationConfigsParams params) {
         this(null, id, params);
     }
 
@@ -59,7 +59,7 @@ public static Builder builder() {
     public static class Builder {
         private String jsonrpc;
         private Object id;
-        private ListTaskPushNotificationConfigParams params;
+        private ListTaskPushNotificationConfigsParams params;
 
         /**
          * Creates a new Builder with all fields unset.
@@ -95,7 +95,7 @@ public Builder id(Object id) {
          * @param params the params
          * @return this builder for method chaining
          */
-        public Builder params(ListTaskPushNotificationConfigParams params) {
+        public Builder params(ListTaskPushNotificationConfigsParams params) {
             this.params = params;
             return this;
         }
diff --git a/jsonrpc-common/src/main/java/io/a2a/jsonrpc/common/wrappers/ListTaskPushNotificationConfigsResponse.java b/jsonrpc-common/src/main/java/io/a2a/jsonrpc/common/wrappers/ListTaskPushNotificationConfigsResponse.java
index 30b983c06..eb1ef9ff7 100644
--- a/jsonrpc-common/src/main/java/io/a2a/jsonrpc/common/wrappers/ListTaskPushNotificationConfigsResponse.java
+++ b/jsonrpc-common/src/main/java/io/a2a/jsonrpc/common/wrappers/ListTaskPushNotificationConfigsResponse.java
@@ -1,24 +1,24 @@
 package io.a2a.jsonrpc.common.wrappers;
 
 import io.a2a.spec.A2AError;
-import io.a2a.spec.ListTaskPushNotificationConfigResult;
+import io.a2a.spec.ListTaskPushNotificationConfigsResult;
 import io.a2a.spec.TaskPushNotificationConfig;
 
 /**
  * JSON-RPC response containing all push notification configurations for a task with pagination support.
  * 

- * This response returns a {@link ListTaskPushNotificationConfigResult} containing + * This response returns a {@link ListTaskPushNotificationConfigsResult} containing * {@link TaskPushNotificationConfig} entries configured for the requested task, * showing all active notification endpoints with optional pagination information. *

* If an error occurs, the error field will contain a {@link A2AError}. * * @see ListTaskPushNotificationConfigsRequest for the corresponding request - * @see ListTaskPushNotificationConfigResult for the result structure + * @see ListTaskPushNotificationConfigsResult for the result structure * @see TaskPushNotificationConfig for the configuration structure * @see A2A Protocol Specification */ -public final class ListTaskPushNotificationConfigsResponse extends A2AResponse { +public final class ListTaskPushNotificationConfigsResponse extends A2AResponse { /** * Constructs response with all parameters. @@ -28,8 +28,8 @@ public final class ListTaskPushNotificationConfigsResponse extends A2AResponse{@code CancelTask} - Cancel task execution *

  • {@code CreateTaskPushNotificationConfig} - Configure push notifications
  • *
  • {@code GetTaskPushNotificationConfig} - Get push notification config
  • - *
  • {@code ListTaskPushNotificationConfig} - List push notification configs
  • + *
  • {@code ListTaskPushNotificationConfigs} - List push notification configs
  • *
  • {@code DeleteTaskPushNotificationConfig} - Delete push notification config
  • *
  • {@code GetExtendedAgentCard} - Get extended agent card
  • * diff --git a/reference/jsonrpc/src/main/java/io/a2a/server/apps/quarkus/A2AServerRoutes.java b/reference/jsonrpc/src/main/java/io/a2a/server/apps/quarkus/A2AServerRoutes.java index c1e831ebb..6914dc5f9 100644 --- a/reference/jsonrpc/src/main/java/io/a2a/server/apps/quarkus/A2AServerRoutes.java +++ b/reference/jsonrpc/src/main/java/io/a2a/server/apps/quarkus/A2AServerRoutes.java @@ -109,7 +109,7 @@ *
  • {@code listTasks} - List tasks with filtering
  • *
  • {@code setTaskPushNotificationConfig} - Configure push notifications
  • *
  • {@code getTaskPushNotificationConfig} - Get push notification config
  • - *
  • {@code listTaskPushNotificationConfig} - List push notification configs
  • + *
  • {@code listTaskPushNotificationConfigs} - List push notification configs
  • *
  • {@code deleteTaskPushNotificationConfig} - Delete push notification config
  • *
  • {@code getExtendedAgentCard} - Get extended agent capabilities
  • * @@ -366,7 +366,7 @@ public String getAgentCard() throws JsonProcessingException { *
  • {@link SendMessageRequest} → {@link JSONRPCHandler#onMessageSend}
  • *
  • {@link CreateTaskPushNotificationConfigRequest} → {@link JSONRPCHandler#setPushNotificationConfig}
  • *
  • {@link GetTaskPushNotificationConfigRequest} → {@link JSONRPCHandler#getPushNotificationConfig}
  • - *
  • {@link ListTaskPushNotificationConfigRequest} → {@link JSONRPCHandler#listPushNotificationConfig}
  • + *
  • {@link ListTaskPushNotificationConfigsRequest} → {@link JSONRPCHandler#listPushNotificationConfigs}
  • *
  • {@link DeleteTaskPushNotificationConfigRequest} → {@link JSONRPCHandler#deletePushNotificationConfig}
  • *
  • {@link GetExtendedAgentCardRequest} → {@link JSONRPCHandler#onGetExtendedCardRequest}
  • * @@ -395,7 +395,7 @@ private A2AResponse processNonStreamingRequest(NonStreamingJSONRPCRequest return jsonRpcHandler.onMessageSend(req, context); } if (request instanceof ListTaskPushNotificationConfigsRequest req) { - return jsonRpcHandler.listPushNotificationConfig(req, context); + return jsonRpcHandler.listPushNotificationConfigs(req, context); } if (request instanceof DeleteTaskPushNotificationConfigRequest req) { return jsonRpcHandler.deletePushNotificationConfig(req, context); @@ -618,7 +618,7 @@ private static String serializeResponse(A2AResponse response) { *
  • {@link ListTasksResponse} → ListTasksResult protobuf message
  • *
  • {@link CreateTaskPushNotificationConfigResponse} → CreateTaskPushNotificationConfigResponse protobuf message
  • *
  • {@link GetTaskPushNotificationConfigResponse} → GetTaskPushNotificationConfigResponse protobuf message
  • - *
  • {@link ListTaskPushNotificationConfigResponse} → ListTaskPushNotificationConfigResponse protobuf message
  • + *
  • {@link ListTaskPushNotificationConfigsResponse} → ListTaskPushNotificationConfigsResponse protobuf message
  • *
  • {@link DeleteTaskPushNotificationConfigResponse} → Empty protobuf message
  • *
  • {@link GetExtendedAgentCardResponse} → GetExtendedCardResponse protobuf message
  • *
  • {@link SendStreamingMessageResponse} → TaskOrMessageStream protobuf message
  • @@ -643,7 +643,7 @@ private static com.google.protobuf.MessageOrBuilder convertToProto(A2AResponse{@code cancelTask} - Cancel task execution *
  • {@code getTaskPushNotificationConfig} - Get push notification config
  • *
  • {@code setTaskPushNotificationConfig} - Create push notification config
  • - *
  • {@code listTaskPushNotificationConfig} - List push notification configs
  • + *
  • {@code listTaskPushNotificationConfigs} - List push notification configs
  • *
  • {@code deleteTaskPushNotificationConfig} - Delete push notification config
  • *
  • {@code getExtendedAgentCard} - Get extended agent card
  • * diff --git a/reference/jsonrpc/src/test/java/io/a2a/server/apps/quarkus/A2AServerRoutesTest.java b/reference/jsonrpc/src/test/java/io/a2a/server/apps/quarkus/A2AServerRoutesTest.java index 94f67bc71..ab1566308 100644 --- a/reference/jsonrpc/src/test/java/io/a2a/server/apps/quarkus/A2AServerRoutesTest.java +++ b/reference/jsonrpc/src/test/java/io/a2a/server/apps/quarkus/A2AServerRoutesTest.java @@ -54,7 +54,7 @@ import io.a2a.spec.AgentCard; import io.a2a.spec.AgentInterface; import io.a2a.spec.AuthenticationInfo; -import io.a2a.spec.ListTaskPushNotificationConfigResult; +import io.a2a.spec.ListTaskPushNotificationConfigsResult; import io.a2a.spec.Task; import io.a2a.spec.TaskPushNotificationConfig; import io.a2a.spec.TaskState; @@ -411,7 +411,7 @@ public void testGetTaskPushNotificationConfig_MethodNameSetInContext() { } @Test - public void testListTaskPushNotificationConfig_MethodNameSetInContext() { + public void testListTaskPushNotificationConfigs_MethodNameSetInContext() { // Arrange - using protobuf JSON format String jsonRpcRequest = """ { @@ -432,8 +432,8 @@ public void testListTaskPushNotificationConfig_MethodNameSetInContext() { .taskId("de38c76d-d54c-436c-8b9f-4c2703648d64") .url("https://example.com/callback") .build(); - ListTaskPushNotificationConfigsResponse realResponse = new ListTaskPushNotificationConfigsResponse("1", new ListTaskPushNotificationConfigResult(singletonList(config))); - when(mockJsonRpcHandler.listPushNotificationConfig(any(ListTaskPushNotificationConfigsRequest.class), + ListTaskPushNotificationConfigsResponse realResponse = new ListTaskPushNotificationConfigsResponse("1", new ListTaskPushNotificationConfigsResult(singletonList(config))); + when(mockJsonRpcHandler.listPushNotificationConfigs(any(ListTaskPushNotificationConfigsRequest.class), any(ServerCallContext.class))).thenReturn(realResponse); ArgumentCaptor contextCaptor = ArgumentCaptor.forClass(ServerCallContext.class); @@ -442,7 +442,7 @@ public void testListTaskPushNotificationConfig_MethodNameSetInContext() { routes.invokeJSONRPCHandler(jsonRpcRequest, mockRoutingContext); // Assert - verify(mockJsonRpcHandler).listPushNotificationConfig(any(ListTaskPushNotificationConfigsRequest.class), + verify(mockJsonRpcHandler).listPushNotificationConfigs(any(ListTaskPushNotificationConfigsRequest.class), contextCaptor.capture()); ServerCallContext capturedContext = contextCaptor.getValue(); assertNotNull(capturedContext); diff --git a/server-common/src/main/java/io/a2a/server/requesthandlers/DefaultRequestHandler.java b/server-common/src/main/java/io/a2a/server/requesthandlers/DefaultRequestHandler.java index 96c17eced..fdc6ee11d 100644 --- a/server-common/src/main/java/io/a2a/server/requesthandlers/DefaultRequestHandler.java +++ b/server-common/src/main/java/io/a2a/server/requesthandlers/DefaultRequestHandler.java @@ -52,8 +52,8 @@ import io.a2a.spec.GetTaskPushNotificationConfigParams; import io.a2a.spec.InternalError; import io.a2a.spec.InvalidParamsError; -import io.a2a.spec.ListTaskPushNotificationConfigParams; -import io.a2a.spec.ListTaskPushNotificationConfigResult; +import io.a2a.spec.ListTaskPushNotificationConfigsParams; +import io.a2a.spec.ListTaskPushNotificationConfigsResult; import io.a2a.spec.ListTasksParams; import io.a2a.spec.Message; import io.a2a.spec.MessageSendParams; @@ -794,16 +794,16 @@ public TaskPushNotificationConfig onGetTaskPushNotificationConfig( throw new TaskNotFoundError(); } - ListTaskPushNotificationConfigResult listTaskPushNotificationConfigResult = pushConfigStore.getInfo(new ListTaskPushNotificationConfigParams(params.taskId())); - if (listTaskPushNotificationConfigResult == null || listTaskPushNotificationConfigResult.isEmpty()) { + ListTaskPushNotificationConfigsResult listTaskPushNotificationConfigsResult = pushConfigStore.getInfo(new ListTaskPushNotificationConfigsParams(params.taskId())); + if (listTaskPushNotificationConfigsResult == null || listTaskPushNotificationConfigsResult.isEmpty()) { throw new InternalError("No push notification config found"); } String configId = params.id(); - return getTaskPushNotificationConfig(listTaskPushNotificationConfigResult, configId); + return getTaskPushNotificationConfig(listTaskPushNotificationConfigsResult, configId); } - private TaskPushNotificationConfig getTaskPushNotificationConfig(ListTaskPushNotificationConfigResult notificationConfigList, + private TaskPushNotificationConfig getTaskPushNotificationConfig(ListTaskPushNotificationConfigsResult notificationConfigList, String configId) { for (TaskPushNotificationConfig notificationConfig : notificationConfigList.configs()) { if (configId.equals(notificationConfig.id())) { @@ -851,8 +851,8 @@ public Flow.Publisher onSubscribeToTask(TaskIdParams params, } @Override - public ListTaskPushNotificationConfigResult onListTaskPushNotificationConfig( - ListTaskPushNotificationConfigParams params, ServerCallContext context) throws A2AError { + public ListTaskPushNotificationConfigsResult onListTaskPushNotificationConfigs( + ListTaskPushNotificationConfigsParams params, ServerCallContext context) throws A2AError { if (pushConfigStore == null) { throw new UnsupportedOperationError(); } diff --git a/server-common/src/main/java/io/a2a/server/requesthandlers/RequestHandler.java b/server-common/src/main/java/io/a2a/server/requesthandlers/RequestHandler.java index b41a8ac76..06bc11354 100644 --- a/server-common/src/main/java/io/a2a/server/requesthandlers/RequestHandler.java +++ b/server-common/src/main/java/io/a2a/server/requesthandlers/RequestHandler.java @@ -9,8 +9,8 @@ import io.a2a.spec.DeleteTaskPushNotificationConfigParams; import io.a2a.spec.EventKind; import io.a2a.spec.GetTaskPushNotificationConfigParams; -import io.a2a.spec.ListTaskPushNotificationConfigParams; -import io.a2a.spec.ListTaskPushNotificationConfigResult; +import io.a2a.spec.ListTaskPushNotificationConfigsParams; +import io.a2a.spec.ListTaskPushNotificationConfigsResult; import io.a2a.spec.ListTasksParams; import io.a2a.spec.MessageSendParams; import io.a2a.spec.StreamingEventKind; @@ -52,8 +52,8 @@ Flow.Publisher onSubscribeToTask( TaskIdParams params, ServerCallContext context) throws A2AError; - ListTaskPushNotificationConfigResult onListTaskPushNotificationConfig( - ListTaskPushNotificationConfigParams params, + ListTaskPushNotificationConfigsResult onListTaskPushNotificationConfigs( + ListTaskPushNotificationConfigsParams params, ServerCallContext context) throws A2AError; void onDeleteTaskPushNotificationConfig( diff --git a/server-common/src/main/java/io/a2a/server/tasks/BasePushNotificationSender.java b/server-common/src/main/java/io/a2a/server/tasks/BasePushNotificationSender.java index ac64659ec..c11fb598f 100644 --- a/server-common/src/main/java/io/a2a/server/tasks/BasePushNotificationSender.java +++ b/server-common/src/main/java/io/a2a/server/tasks/BasePushNotificationSender.java @@ -19,8 +19,8 @@ import io.a2a.client.http.A2AHttpClient; import io.a2a.client.http.A2AHttpClientFactory; import io.a2a.jsonrpc.common.json.JsonUtil; -import io.a2a.spec.ListTaskPushNotificationConfigParams; -import io.a2a.spec.ListTaskPushNotificationConfigResult; +import io.a2a.spec.ListTaskPushNotificationConfigsParams; +import io.a2a.spec.ListTaskPushNotificationConfigsResult; import io.a2a.spec.Message; import io.a2a.spec.StreamingEventKind; import io.a2a.spec.Task; @@ -76,7 +76,7 @@ public void sendNotification(StreamingEventKind event) { List configs = new ArrayList<>(); String nextPageToken = null; do { - ListTaskPushNotificationConfigResult pageResult = configStore.getInfo(new ListTaskPushNotificationConfigParams(taskId, + ListTaskPushNotificationConfigsResult pageResult = configStore.getInfo(new ListTaskPushNotificationConfigsParams(taskId, DEFAULT_PAGE_SIZE, nextPageToken == null ? "" : nextPageToken, "")); if (!pageResult.configs().isEmpty()) { configs.addAll(pageResult.configs()); diff --git a/server-common/src/main/java/io/a2a/server/tasks/InMemoryPushNotificationConfigStore.java b/server-common/src/main/java/io/a2a/server/tasks/InMemoryPushNotificationConfigStore.java index 8bdc82715..16ab9bf9f 100644 --- a/server-common/src/main/java/io/a2a/server/tasks/InMemoryPushNotificationConfigStore.java +++ b/server-common/src/main/java/io/a2a/server/tasks/InMemoryPushNotificationConfigStore.java @@ -11,8 +11,8 @@ import jakarta.inject.Inject; import io.a2a.util.Assert; -import io.a2a.spec.ListTaskPushNotificationConfigParams; -import io.a2a.spec.ListTaskPushNotificationConfigResult; +import io.a2a.spec.ListTaskPushNotificationConfigsParams; +import io.a2a.spec.ListTaskPushNotificationConfigsResult; import io.a2a.spec.TaskPushNotificationConfig; /** @@ -53,13 +53,13 @@ public TaskPushNotificationConfig setInfo(TaskPushNotificationConfig notificatio } @Override - public ListTaskPushNotificationConfigResult getInfo(ListTaskPushNotificationConfigParams params) { + public ListTaskPushNotificationConfigsResult getInfo(ListTaskPushNotificationConfigsParams params) { List configs = pushNotificationInfos.get(params.id()); if (configs == null) { - return new ListTaskPushNotificationConfigResult(Collections.emptyList()); + return new ListTaskPushNotificationConfigsResult(Collections.emptyList()); } if (params.pageSize() <= 0) { - return new ListTaskPushNotificationConfigResult(new ArrayList<>(configs), null); + return new ListTaskPushNotificationConfigsResult(new ArrayList<>(configs), null); } if (params.pageToken() != null && !params.pageToken().isBlank()) { //find first index @@ -69,10 +69,10 @@ public ListTaskPushNotificationConfigResult getInfo(ListTaskPushNotificationConf } } if (configs.size() <= params.pageSize()) { - return new ListTaskPushNotificationConfigResult(new ArrayList<>(configs), null); + return new ListTaskPushNotificationConfigsResult(new ArrayList<>(configs), null); } String newToken = configs.get(params.pageSize()).id(); - return new ListTaskPushNotificationConfigResult(new ArrayList<>(configs.subList(0, params.pageSize())), newToken); + return new ListTaskPushNotificationConfigsResult(new ArrayList<>(configs.subList(0, params.pageSize())), newToken); } private int findFirstIndex(List configs, String id) { diff --git a/server-common/src/main/java/io/a2a/server/tasks/PushNotificationConfigStore.java b/server-common/src/main/java/io/a2a/server/tasks/PushNotificationConfigStore.java index 50c3b2e28..4c5f35eda 100644 --- a/server-common/src/main/java/io/a2a/server/tasks/PushNotificationConfigStore.java +++ b/server-common/src/main/java/io/a2a/server/tasks/PushNotificationConfigStore.java @@ -1,7 +1,7 @@ package io.a2a.server.tasks; -import io.a2a.spec.ListTaskPushNotificationConfigParams; -import io.a2a.spec.ListTaskPushNotificationConfigResult; +import io.a2a.spec.ListTaskPushNotificationConfigsParams; +import io.a2a.spec.ListTaskPushNotificationConfigsResult; import io.a2a.spec.TaskPushNotificationConfig; /** @@ -21,12 +21,12 @@ * * *

    Pagination Support

    - * {@link #getInfo(ListTaskPushNotificationConfigParams)} supports pagination for tasks + * {@link #getInfo(ListTaskPushNotificationConfigsParams)} supports pagination for tasks * with many push notification configurations: *
      *
    • pageSize: Maximum number of configs to return (0 = unlimited)
    • *
    • pageToken: Continuation token from previous response
    • - *
    • Returns {@link ListTaskPushNotificationConfigResult} with configs and next page token
    • + *
    • Returns {@link ListTaskPushNotificationConfigsResult} with configs and next page token
    • *
    * *

    Default Implementation

    @@ -90,13 +90,13 @@ public interface PushNotificationConfigStore { * Pagination Example: *
    {@code
          * // First page
    -     * ListTaskPushNotificationConfigParams params =
    -     *     new ListTaskPushNotificationConfigParams(taskId, 10, null, tenant);
    -     * ListTaskPushNotificationConfigResult result = store.getInfo(params);
    +     * ListTaskPushNotificationConfigsParams params =
    +     *     new ListTaskPushNotificationConfigsParams(taskId, 10, null, tenant);
    +     * ListTaskPushNotificationConfigsResult result = store.getInfo(params);
          *
          * // Next page
          * if (result.nextPageToken() != null) {
    -     *     params = new ListTaskPushNotificationConfigParams(
    +     *     params = new ListTaskPushNotificationConfigsParams(
          *         taskId, 10, result.nextPageToken(), tenant);
          *     result = store.getInfo(params);
          * }
    @@ -105,7 +105,7 @@ public interface PushNotificationConfigStore {
          * @param params the query parameters including task ID, page size, and page token
          * @return the configurations for this task (empty list if none found)
          */
    -    ListTaskPushNotificationConfigResult getInfo(ListTaskPushNotificationConfigParams params);
    +    ListTaskPushNotificationConfigsResult getInfo(ListTaskPushNotificationConfigsParams params);
     
         /**
          * Deletes a push notification configuration for a task.
    diff --git a/server-common/src/main/java/io/a2a/server/util/sse/SseFormatter.java b/server-common/src/main/java/io/a2a/server/util/sse/SseFormatter.java
    index fec2386cc..8777f0f80 100644
    --- a/server-common/src/main/java/io/a2a/server/util/sse/SseFormatter.java
    +++ b/server-common/src/main/java/io/a2a/server/util/sse/SseFormatter.java
    @@ -121,7 +121,7 @@ private static com.google.protobuf.MessageOrBuilder convertToProto(A2AResponse parseMethodRequest(String version, Object id, Strin
                     if (tenant != null && !tenant.isBlank() && (builder.getTenant() == null || builder.getTenant().isBlank())) {
                         builder.setTenant(tenant);
                     }
    -                return new ListTaskPushNotificationConfigsRequest(version, id, ProtoUtils.FromProto.listTaskPushNotificationConfigParams(builder));
    +                return new ListTaskPushNotificationConfigsRequest(version, id, ProtoUtils.FromProto.listTaskPushNotificationConfigsParams(builder));
                 }
                 case DELETE_TASK_PUSH_NOTIFICATION_CONFIG_METHOD -> {
                     io.a2a.grpc.DeleteTaskPushNotificationConfigRequest.Builder builder = io.a2a.grpc.DeleteTaskPushNotificationConfigRequest.newBuilder();
    @@ -352,7 +352,7 @@ public static A2AResponse parseResponseBody(String body, String method) throw
                 case LIST_TASK_PUSH_NOTIFICATION_CONFIG_METHOD -> {
                     io.a2a.grpc.ListTaskPushNotificationConfigsResponse.Builder builder = io.a2a.grpc.ListTaskPushNotificationConfigsResponse.newBuilder();
                     parseRequestBody(paramsNode, builder, id);
    -                return new ListTaskPushNotificationConfigsResponse(id, ProtoUtils.FromProto.listTaskPushNotificationConfigResult(builder));
    +                return new ListTaskPushNotificationConfigsResponse(id, ProtoUtils.FromProto.listTaskPushNotificationConfigsResult(builder));
                 }
                 case DELETE_TASK_PUSH_NOTIFICATION_CONFIG_METHOD -> {
                     return new DeleteTaskPushNotificationConfigResponse(id);
    diff --git a/spec-grpc/src/main/java/io/a2a/grpc/utils/ProtoUtils.java b/spec-grpc/src/main/java/io/a2a/grpc/utils/ProtoUtils.java
    index 5cb52b96b..e2c98f47c 100644
    --- a/spec-grpc/src/main/java/io/a2a/grpc/utils/ProtoUtils.java
    +++ b/spec-grpc/src/main/java/io/a2a/grpc/utils/ProtoUtils.java
    @@ -8,7 +8,7 @@
     import io.a2a.grpc.mapper.AgentCardMapper;
     import io.a2a.grpc.mapper.DeleteTaskPushNotificationConfigParamsMapper;
     import io.a2a.grpc.mapper.GetTaskPushNotificationConfigParamsMapper;
    -import io.a2a.grpc.mapper.ListTaskPushNotificationConfigParamsMapper;
    +import io.a2a.grpc.mapper.ListTaskPushNotificationConfigsParamsMapper;
     import io.a2a.grpc.mapper.ListTasksParamsMapper;
     import io.a2a.grpc.mapper.ListTasksResultMapper;
     import io.a2a.grpc.mapper.MessageMapper;
    @@ -30,8 +30,8 @@
     import io.a2a.spec.GetExtendedAgentCardParams;
     import io.a2a.spec.GetTaskPushNotificationConfigParams;
     import io.a2a.spec.InvalidParamsError;
    -import io.a2a.spec.ListTaskPushNotificationConfigParams;
    -import io.a2a.spec.ListTaskPushNotificationConfigResult;
    +import io.a2a.spec.ListTaskPushNotificationConfigsParams;
    +import io.a2a.spec.ListTaskPushNotificationConfigsResult;
     import io.a2a.spec.ListTasksParams;
     import io.a2a.spec.Message;
     import io.a2a.spec.MessageSendConfiguration;
    @@ -88,8 +88,8 @@ public static io.a2a.grpc.DeleteTaskPushNotificationConfigRequest deleteTaskPush
                 return DeleteTaskPushNotificationConfigParamsMapper.INSTANCE.toProto(params);
             }
     
    -        public static io.a2a.grpc.ListTaskPushNotificationConfigsRequest listTaskPushNotificationConfigRequest(ListTaskPushNotificationConfigParams params) {
    -            return ListTaskPushNotificationConfigParamsMapper.INSTANCE.toProto(params);
    +        public static io.a2a.grpc.ListTaskPushNotificationConfigsRequest listTaskPushNotificationConfigsRequest(ListTaskPushNotificationConfigsParams params) {
    +            return ListTaskPushNotificationConfigsParamsMapper.INSTANCE.toProto(params);
             }
     
             public static io.a2a.grpc.Task task(Task task) {
    @@ -132,7 +132,7 @@ public static io.a2a.grpc.SendMessageRequest sendMessageRequest(MessageSendParam
                 return MessageSendParamsMapper.INSTANCE.toProto(request);
             }
     
    -        public static io.a2a.grpc.ListTaskPushNotificationConfigsResponse listTaskPushNotificationConfigResponse(ListTaskPushNotificationConfigResult result) {
    +        public static io.a2a.grpc.ListTaskPushNotificationConfigsResponse listTaskPushNotificationConfigsResponse(ListTaskPushNotificationConfigsResult result) {
                 List confs = new ArrayList<>(result.configs().size());
                 for (TaskPushNotificationConfig config : result.configs()) {
                     confs.add(taskPushNotificationConfig(config));
    @@ -264,7 +264,7 @@ public static TaskIdParams taskIdParams(io.a2a.grpc.SubscribeToTaskRequestOrBuil
                 return convert(() -> TaskIdParamsMapper.INSTANCE.fromProtoSubscribeToTaskRequest(reqProto));
             }
     
    -        public static ListTaskPushNotificationConfigResult listTaskPushNotificationConfigResult(io.a2a.grpc.ListTaskPushNotificationConfigsResponseOrBuilder response) {
    +        public static ListTaskPushNotificationConfigsResult listTaskPushNotificationConfigsResult(io.a2a.grpc.ListTaskPushNotificationConfigsResponseOrBuilder response) {
                 List configs = response.getConfigsList();
                 List result = new ArrayList<>(configs.size());
                 for (io.a2a.grpc.TaskPushNotificationConfig config : configs) {
    @@ -274,14 +274,14 @@ public static ListTaskPushNotificationConfigResult listTaskPushNotificationConfi
                 if (nextPageToken != null && nextPageToken.isEmpty()) {
                     nextPageToken = null;
                 }
    -            return new ListTaskPushNotificationConfigResult(result, nextPageToken);
    +            return new ListTaskPushNotificationConfigsResult(result, nextPageToken);
             }
     
    -        public static ListTaskPushNotificationConfigParams listTaskPushNotificationConfigParams(io.a2a.grpc.ListTaskPushNotificationConfigsRequestOrBuilder request) {
    +        public static ListTaskPushNotificationConfigsParams listTaskPushNotificationConfigsParams(io.a2a.grpc.ListTaskPushNotificationConfigsRequestOrBuilder request) {
                 io.a2a.grpc.ListTaskPushNotificationConfigsRequest reqProto = request instanceof io.a2a.grpc.ListTaskPushNotificationConfigsRequest
                         ? (io.a2a.grpc.ListTaskPushNotificationConfigsRequest) request
                         : ((io.a2a.grpc.ListTaskPushNotificationConfigsRequest.Builder) request).build();
    -            return convert(() -> ListTaskPushNotificationConfigParamsMapper.INSTANCE.fromProto(reqProto));
    +            return convert(() -> ListTaskPushNotificationConfigsParamsMapper.INSTANCE.fromProto(reqProto));
             }
     
             public static DeleteTaskPushNotificationConfigParams deleteTaskPushNotificationConfigParams(io.a2a.grpc.DeleteTaskPushNotificationConfigRequestOrBuilder request) {
    diff --git a/spec-grpc/src/test/java/io/a2a/grpc/utils/ToProtoTest.java b/spec-grpc/src/test/java/io/a2a/grpc/utils/ToProtoTest.java
    index a9ef05edc..06759af55 100644
    --- a/spec-grpc/src/test/java/io/a2a/grpc/utils/ToProtoTest.java
    +++ b/spec-grpc/src/test/java/io/a2a/grpc/utils/ToProtoTest.java
    @@ -22,7 +22,7 @@
     import io.a2a.spec.AuthenticationInfo;
     import io.a2a.spec.DeleteTaskPushNotificationConfigParams;
     import io.a2a.spec.HTTPAuthSecurityScheme;
    -import io.a2a.spec.ListTaskPushNotificationConfigParams;
    +import io.a2a.spec.ListTaskPushNotificationConfigsParams;
     import io.a2a.spec.Message;
     import io.a2a.spec.MessageSendConfiguration;
     import io.a2a.spec.Task;
    @@ -323,16 +323,16 @@ public void convertDeleteTaskPushNotificationConfigRequest() {
     
         @Test
         public void convertListTaskPushNotificationConfigsRequest() {
    -        ListTaskPushNotificationConfigParams params = new ListTaskPushNotificationConfigParams("task-789");
    +        ListTaskPushNotificationConfigsParams params = new ListTaskPushNotificationConfigsParams("task-789");
     
             io.a2a.grpc.ListTaskPushNotificationConfigsRequest result =
    -                ProtoUtils.ToProto.listTaskPushNotificationConfigRequest(params);
    +                ProtoUtils.ToProto.listTaskPushNotificationConfigsRequest(params);
     
             assertEquals("task-789", result.getTaskId());
     
             // Test round-trip conversion
    -        ListTaskPushNotificationConfigParams convertedBack =
    -                ProtoUtils.FromProto.listTaskPushNotificationConfigParams(result);
    +        ListTaskPushNotificationConfigsParams convertedBack =
    +                ProtoUtils.FromProto.listTaskPushNotificationConfigsParams(result);
             assertEquals("task-789", convertedBack.id());
         }
     }
    diff --git a/spec/src/main/java/io/a2a/spec/ListTaskPushNotificationConfigParams.java b/spec/src/main/java/io/a2a/spec/ListTaskPushNotificationConfigsParams.java
    similarity index 88%
    rename from spec/src/main/java/io/a2a/spec/ListTaskPushNotificationConfigParams.java
    rename to spec/src/main/java/io/a2a/spec/ListTaskPushNotificationConfigsParams.java
    index f24f3c4ce..9f39987fb 100644
    --- a/spec/src/main/java/io/a2a/spec/ListTaskPushNotificationConfigParams.java
    +++ b/spec/src/main/java/io/a2a/spec/ListTaskPushNotificationConfigsParams.java
    @@ -17,7 +17,7 @@
      * @see TaskPushNotificationConfig for the configuration structure
      * @see A2A Protocol Specification
      */
    -public record ListTaskPushNotificationConfigParams(String id, int pageSize, String pageToken, String tenant) {
    +public record ListTaskPushNotificationConfigsParams(String id, int pageSize, String pageToken, String tenant) {
     
         /**
          * Compact constructor for validation.
    @@ -28,7 +28,7 @@ public record ListTaskPushNotificationConfigParams(String id, int pageSize, Stri
          * @param tenant the tenant identifier
          * @throws IllegalArgumentException if id or tenant is null
          */
    -    public ListTaskPushNotificationConfigParams {
    +    public ListTaskPushNotificationConfigsParams {
             Assert.checkNotNullParam("id", id);
             Assert.checkNotNullParam("tenant", tenant);
         }
    @@ -38,7 +38,7 @@ public record ListTaskPushNotificationConfigParams(String id, int pageSize, Stri
          *
          * @param id the task identifier (required)
          */
    -    public ListTaskPushNotificationConfigParams(String id) {
    +    public ListTaskPushNotificationConfigsParams(String id) {
             this(id, 0, "", "");
         }
     
    @@ -123,13 +123,13 @@ public Builder tenant(String tenant) {
             }
     
             /**
    -         * Builds the ListTaskPushNotificationConfigParams.
    +         * Builds the ListTaskPushNotificationConfigsParams.
              *
    -         * @return a new ListTaskPushNotificationConfigParams instance
    +         * @return a new ListTaskPushNotificationConfigsParams instance
              * @throws IllegalArgumentException if id is null
              */
    -        public ListTaskPushNotificationConfigParams build() {
    -            return new ListTaskPushNotificationConfigParams(
    +        public ListTaskPushNotificationConfigsParams build() {
    +            return new ListTaskPushNotificationConfigsParams(
                     Assert.checkNotNullParam("id", id),
                     pageSize != null ? pageSize : 0,
                     pageToken != null ? pageToken : "",
    diff --git a/spec/src/main/java/io/a2a/spec/ListTaskPushNotificationConfigResult.java b/spec/src/main/java/io/a2a/spec/ListTaskPushNotificationConfigsResult.java
    similarity index 87%
    rename from spec/src/main/java/io/a2a/spec/ListTaskPushNotificationConfigResult.java
    rename to spec/src/main/java/io/a2a/spec/ListTaskPushNotificationConfigsResult.java
    index 1ae125713..a2b9ebb4f 100644
    --- a/spec/src/main/java/io/a2a/spec/ListTaskPushNotificationConfigResult.java
    +++ b/spec/src/main/java/io/a2a/spec/ListTaskPushNotificationConfigsResult.java
    @@ -11,7 +11,7 @@
      * @param configs List of push notification configurations for the task
      * @param nextPageToken Token for retrieving the next page of results (null if no more results)
      */
    -public record ListTaskPushNotificationConfigResult(List configs,
    +public record ListTaskPushNotificationConfigsResult(List configs,
             @Nullable String nextPageToken) {
         /**
          * Compact constructor for validation.
    @@ -21,7 +21,7 @@ public record ListTaskPushNotificationConfigResult(List configs) {
    +    public ListTaskPushNotificationConfigsResult(List configs) {
             this(configs, null);
         }
     
    diff --git a/tests/server-common/src/test/java/io/a2a/server/apps/common/AbstractA2AServerTest.java b/tests/server-common/src/test/java/io/a2a/server/apps/common/AbstractA2AServerTest.java
    index 2c7b2ecee..f7cdacc61 100644
    --- a/tests/server-common/src/test/java/io/a2a/server/apps/common/AbstractA2AServerTest.java
    +++ b/tests/server-common/src/test/java/io/a2a/server/apps/common/AbstractA2AServerTest.java
    @@ -62,8 +62,8 @@
     import io.a2a.spec.InvalidParamsError;
     import io.a2a.spec.InvalidRequestError;
     import io.a2a.spec.JSONParseError;
    -import io.a2a.spec.ListTaskPushNotificationConfigParams;
    -import io.a2a.spec.ListTaskPushNotificationConfigResult;
    +import io.a2a.spec.ListTaskPushNotificationConfigsParams;
    +import io.a2a.spec.ListTaskPushNotificationConfigsResult;
     import io.a2a.spec.ListTasksParams;
     import io.a2a.spec.Message;
     import io.a2a.spec.MessageSendParams;
    @@ -1118,7 +1118,7 @@ private boolean waitForChildQueueCountToBe(String taskId, int expectedCount, lon
         }
     
         @Test
    -    public void testListPushNotificationConfigWithConfigId() throws Exception {
    +    public void testListPushNotificationConfigsWithConfigId() throws Exception {
             saveTaskInTaskStore(MINIMAL_TASK);
             TaskPushNotificationConfig notificationConfig1
                     = TaskPushNotificationConfig.builder()
    @@ -1134,8 +1134,8 @@ public void testListPushNotificationConfigWithConfigId() throws Exception {
             savePushNotificationConfigInStore(MINIMAL_TASK.id(), notificationConfig2);
     
             try {
    -            ListTaskPushNotificationConfigResult result = getClient().listTaskPushNotificationConfigurations(
    -                    new ListTaskPushNotificationConfigParams(MINIMAL_TASK.id()));
    +            ListTaskPushNotificationConfigsResult result = getClient().listTaskPushNotificationConfigurations(
    +                    new ListTaskPushNotificationConfigsParams(MINIMAL_TASK.id()));
                 assertEquals(2, result.size());
                 assertEquals(TaskPushNotificationConfig.builder(notificationConfig1).taskId(MINIMAL_TASK.id()).build(), result.configs().get(0));
                 assertEquals(TaskPushNotificationConfig.builder(notificationConfig2).taskId(MINIMAL_TASK.id()).build(), result.configs().get(1));
    @@ -1149,7 +1149,7 @@ public void testListPushNotificationConfigWithConfigId() throws Exception {
         }
     
         @Test
    -    public void testListPushNotificationConfigWithoutConfigId() throws Exception {
    +    public void testListPushNotificationConfigsWithoutConfigId() throws Exception {
             saveTaskInTaskStore(MINIMAL_TASK);
             TaskPushNotificationConfig notificationConfig1
                     = TaskPushNotificationConfig.builder()
    @@ -1166,8 +1166,8 @@ public void testListPushNotificationConfigWithoutConfigId() throws Exception {
             // will overwrite the previous one
             savePushNotificationConfigInStore(MINIMAL_TASK.id(), notificationConfig2);
             try {
    -            ListTaskPushNotificationConfigResult result = getClient().listTaskPushNotificationConfigurations(
    -                    new ListTaskPushNotificationConfigParams(MINIMAL_TASK.id()));
    +            ListTaskPushNotificationConfigsResult result = getClient().listTaskPushNotificationConfigurations(
    +                    new ListTaskPushNotificationConfigsParams(MINIMAL_TASK.id()));
                 assertEquals(1, result.size());
     
                 TaskPushNotificationConfig expectedNotificationConfig = TaskPushNotificationConfig.builder()
    @@ -1185,10 +1185,10 @@ public void testListPushNotificationConfigWithoutConfigId() throws Exception {
         }
     
         @Test
    -    public void testListPushNotificationConfigTaskNotFound() {
    +    public void testListPushNotificationConfigsTaskNotFound() {
             try {
    -            ListTaskPushNotificationConfigResult result = getClient().listTaskPushNotificationConfigurations(
    -                    new ListTaskPushNotificationConfigParams("non-existent-task"));
    +            ListTaskPushNotificationConfigsResult result = getClient().listTaskPushNotificationConfigurations(
    +                    new ListTaskPushNotificationConfigsParams("non-existent-task"));
                 fail();
             } catch (A2AClientException e) {
                 assertInstanceOf(TaskNotFoundError.class, e.getCause());
    @@ -1196,11 +1196,11 @@ public void testListPushNotificationConfigTaskNotFound() {
         }
     
         @Test
    -    public void testListPushNotificationConfigEmptyList() throws Exception {
    +    public void testListPushNotificationConfigsEmptyList() throws Exception {
             saveTaskInTaskStore(MINIMAL_TASK);
             try {
    -            ListTaskPushNotificationConfigResult result = getClient().listTaskPushNotificationConfigurations(
    -                    new ListTaskPushNotificationConfigParams(MINIMAL_TASK.id()));
    +            ListTaskPushNotificationConfigsResult result = getClient().listTaskPushNotificationConfigurations(
    +                    new ListTaskPushNotificationConfigsParams(MINIMAL_TASK.id()));
                 assertEquals(0, result.size());
             } catch (Exception e) {
                 fail(e.getMessage());
    @@ -1238,13 +1238,13 @@ public void testDeletePushNotificationConfigWithValidConfigId() throws Exception
                         new DeleteTaskPushNotificationConfigParams(MINIMAL_TASK.id(), "config1"));
     
                 // should now be 1 left
    -            ListTaskPushNotificationConfigResult result = getClient().listTaskPushNotificationConfigurations(
    -                    new ListTaskPushNotificationConfigParams(MINIMAL_TASK.id()));
    +            ListTaskPushNotificationConfigsResult result = getClient().listTaskPushNotificationConfigurations(
    +                    new ListTaskPushNotificationConfigsParams(MINIMAL_TASK.id()));
                 assertEquals(1, result.size());
     
                 // should remain unchanged, this is a different task
                 result = getClient().listTaskPushNotificationConfigurations(
    -                    new ListTaskPushNotificationConfigParams("task-456"));
    +                    new ListTaskPushNotificationConfigsParams("task-456"));
                 assertEquals(1, result.size());
             } catch (Exception e) {
                 fail(e.getMessage());
    @@ -1278,8 +1278,8 @@ public void testDeletePushNotificationConfigWithNonExistingConfigId() throws Exc
                         new DeleteTaskPushNotificationConfigParams(MINIMAL_TASK.id(), "non-existent-config-id"));
     
                 // should remain unchanged
    -            ListTaskPushNotificationConfigResult result = getClient().listTaskPushNotificationConfigurations(
    -                    new ListTaskPushNotificationConfigParams(MINIMAL_TASK.id()));
    +            ListTaskPushNotificationConfigsResult result = getClient().listTaskPushNotificationConfigurations(
    +                    new ListTaskPushNotificationConfigsParams(MINIMAL_TASK.id()));
                 assertEquals(2, result.size());
             } catch (Exception e) {
                 fail();
    @@ -1325,8 +1325,8 @@ public void testDeletePushNotificationConfigSetWithoutConfigId() throws Exceptio
                         new DeleteTaskPushNotificationConfigParams(MINIMAL_TASK.id(), MINIMAL_TASK.id()));
     
                 // should now be 0
    -            ListTaskPushNotificationConfigResult result = getClient().listTaskPushNotificationConfigurations(
    -                    new ListTaskPushNotificationConfigParams(MINIMAL_TASK.id()), null);
    +            ListTaskPushNotificationConfigsResult result = getClient().listTaskPushNotificationConfigurations(
    +                    new ListTaskPushNotificationConfigsParams(MINIMAL_TASK.id()), null);
                 assertEquals(0, result.size());
             } catch (Exception e) {
                 fail();
    diff --git a/transport/grpc/src/main/java/io/a2a/transport/grpc/context/GrpcContextKeys.java b/transport/grpc/src/main/java/io/a2a/transport/grpc/context/GrpcContextKeys.java
    index 99062f6fe..bea363271 100644
    --- a/transport/grpc/src/main/java/io/a2a/transport/grpc/context/GrpcContextKeys.java
    +++ b/transport/grpc/src/main/java/io/a2a/transport/grpc/context/GrpcContextKeys.java
    @@ -102,7 +102,7 @@ public final class GrpcContextKeys {
          *   
  • SubscribeToTask → SubscribeToTask
  • *
  • CreateTaskPushNotification → CreateTaskPushNotificationConfig
  • *
  • GetTaskPushNotification → GetTaskPushNotificationConfig
  • - *
  • ListTaskPushNotification → ListTaskPushNotificationConfig
  • + *
  • ListTaskPushNotification → ListTaskPushNotificationConfigs
  • *
  • DeleteTaskPushNotification → DeleteTaskPushNotificationConfig
  • * * diff --git a/transport/grpc/src/main/java/io/a2a/transport/grpc/handler/GrpcHandler.java b/transport/grpc/src/main/java/io/a2a/transport/grpc/handler/GrpcHandler.java index 4d652377c..4eb8c7223 100644 --- a/transport/grpc/src/main/java/io/a2a/transport/grpc/handler/GrpcHandler.java +++ b/transport/grpc/src/main/java/io/a2a/transport/grpc/handler/GrpcHandler.java @@ -43,8 +43,8 @@ import io.a2a.spec.InvalidParamsError; import io.a2a.spec.InvalidRequestError; import io.a2a.spec.JSONParseError; -import io.a2a.spec.ListTaskPushNotificationConfigParams; -import io.a2a.spec.ListTaskPushNotificationConfigResult; +import io.a2a.spec.ListTaskPushNotificationConfigsParams; +import io.a2a.spec.ListTaskPushNotificationConfigsResult; import io.a2a.spec.MessageSendParams; import io.a2a.spec.MethodNotFoundError; import io.a2a.spec.PushNotificationNotSupportedError; @@ -329,9 +329,9 @@ public void listTaskPushNotificationConfigs(io.a2a.grpc.ListTaskPushNotification try { ServerCallContext context = createCallContext(responseObserver); - ListTaskPushNotificationConfigParams params = FromProto.listTaskPushNotificationConfigParams(request); - ListTaskPushNotificationConfigResult result = getRequestHandler().onListTaskPushNotificationConfig(params, context); - io.a2a.grpc.ListTaskPushNotificationConfigsResponse response = ToProto.listTaskPushNotificationConfigResponse(result); + ListTaskPushNotificationConfigsParams params = FromProto.listTaskPushNotificationConfigsParams(request); + ListTaskPushNotificationConfigsResult result = getRequestHandler().onListTaskPushNotificationConfigs(params, context); + io.a2a.grpc.ListTaskPushNotificationConfigsResponse response = ToProto.listTaskPushNotificationConfigsResponse(result); responseObserver.onNext(response); responseObserver.onCompleted(); } catch (A2AError e) { diff --git a/transport/grpc/src/main/java/io/a2a/transport/grpc/handler/package-info.java b/transport/grpc/src/main/java/io/a2a/transport/grpc/handler/package-info.java index b05417c46..3dfc56685 100644 --- a/transport/grpc/src/main/java/io/a2a/transport/grpc/handler/package-info.java +++ b/transport/grpc/src/main/java/io/a2a/transport/grpc/handler/package-info.java @@ -29,7 +29,7 @@ *
  • {@code CancelTask} - Cancel task execution
  • *
  • {@code GetTaskPushNotificationConfig} - Get push notification config
  • *
  • {@code CreateTaskPushNotificationConfig} - Create push notification config
  • - *
  • {@code ListTaskPushNotificationConfig} - List push notification configs
  • + *
  • {@code ListTaskPushNotificationConfigs} - List push notification configs
  • *
  • {@code DeleteTaskPushNotificationConfig} - Delete push notification config
  • *
  • {@code GetExtendedAgentCard} - Get extended agent card
  • * diff --git a/transport/jsonrpc/src/main/java/io/a2a/transport/jsonrpc/handler/JSONRPCHandler.java b/transport/jsonrpc/src/main/java/io/a2a/transport/jsonrpc/handler/JSONRPCHandler.java index 0e30ac414..ec419f465 100644 --- a/transport/jsonrpc/src/main/java/io/a2a/transport/jsonrpc/handler/JSONRPCHandler.java +++ b/transport/jsonrpc/src/main/java/io/a2a/transport/jsonrpc/handler/JSONRPCHandler.java @@ -48,7 +48,7 @@ import io.a2a.spec.InternalError; import io.a2a.spec.InvalidRequestError; import io.a2a.spec.UnsupportedOperationError; -import io.a2a.spec.ListTaskPushNotificationConfigResult; +import io.a2a.spec.ListTaskPushNotificationConfigsResult; import io.a2a.spec.PushNotificationNotSupportedError; import io.a2a.spec.StreamingEventKind; import io.a2a.spec.Task; @@ -571,7 +571,7 @@ public ListTasksResponse onListTasks(ListTasksRequest request, ServerCallContext * { * "jsonrpc": "2.0", * "id": "list-config-123", - * "method": "listTaskPushNotificationConfig", + * "method": "listTaskPushNotificationConfigs", * "params": { * "taskId": "task-456", * "pageSize": 10 @@ -582,17 +582,17 @@ public ListTasksResponse onListTasks(ListTasksRequest request, ServerCallContext * @param request the JSON-RPC request containing task ID and pagination params * @param context the server call context containing authentication and metadata * @return JSON-RPC response with list of configurations - * @see RequestHandler#onListTaskPushNotificationConfig + * @see RequestHandler#onListTaskPushNotificationConfigs */ - public ListTaskPushNotificationConfigsResponse listPushNotificationConfig( + public ListTaskPushNotificationConfigsResponse listPushNotificationConfigs( ListTaskPushNotificationConfigsRequest request, ServerCallContext context) { if ( !agentCard.capabilities().pushNotifications()) { return new ListTaskPushNotificationConfigsResponse(request.getId(), new PushNotificationNotSupportedError()); } try { - ListTaskPushNotificationConfigResult result = - requestHandler.onListTaskPushNotificationConfig(request.getParams(), context); + ListTaskPushNotificationConfigsResult result = + requestHandler.onListTaskPushNotificationConfigs(request.getParams(), context); return new ListTaskPushNotificationConfigsResponse(request.getId(), result); } catch (A2AError e) { return new ListTaskPushNotificationConfigsResponse(request.getId(), e); diff --git a/transport/jsonrpc/src/main/java/io/a2a/transport/jsonrpc/handler/package-info.java b/transport/jsonrpc/src/main/java/io/a2a/transport/jsonrpc/handler/package-info.java index 306e94d86..8bd8eeee7 100644 --- a/transport/jsonrpc/src/main/java/io/a2a/transport/jsonrpc/handler/package-info.java +++ b/transport/jsonrpc/src/main/java/io/a2a/transport/jsonrpc/handler/package-info.java @@ -23,7 +23,7 @@ *
  • {@code cancelTask} - Cancel task execution
  • *
  • {@code getTaskPushNotificationConfig} - Get push notification config
  • *
  • {@code setTaskPushNotificationConfig} - Create push notification config
  • - *
  • {@code listTaskPushNotificationConfig} - List push notification configs
  • + *
  • {@code listTaskPushNotificationConfigs} - List push notification configs
  • *
  • {@code deleteTaskPushNotificationConfig} - Delete push notification config
  • * * diff --git a/transport/jsonrpc/src/test/java/io/a2a/transport/jsonrpc/handler/JSONRPCHandlerTest.java b/transport/jsonrpc/src/test/java/io/a2a/transport/jsonrpc/handler/JSONRPCHandlerTest.java index ac19034e0..72f94404b 100644 --- a/transport/jsonrpc/src/test/java/io/a2a/transport/jsonrpc/handler/JSONRPCHandlerTest.java +++ b/transport/jsonrpc/src/test/java/io/a2a/transport/jsonrpc/handler/JSONRPCHandlerTest.java @@ -61,7 +61,7 @@ import io.a2a.spec.GetTaskPushNotificationConfigParams; import io.a2a.spec.InternalError; import io.a2a.spec.InvalidRequestError; -import io.a2a.spec.ListTaskPushNotificationConfigParams; +import io.a2a.spec.ListTaskPushNotificationConfigsParams; import io.a2a.spec.ListTasksParams; import io.a2a.spec.Message; import io.a2a.spec.MessageSendConfiguration; @@ -1375,8 +1375,8 @@ public void testListPushNotificationConfig() { .tenant("tenant") .build(); ListTaskPushNotificationConfigsRequest listRequest - = new ListTaskPushNotificationConfigsRequest("111", new ListTaskPushNotificationConfigParams(MINIMAL_TASK.id())); - ListTaskPushNotificationConfigsResponse listResponse = handler.listPushNotificationConfig(listRequest, callContext); + = new ListTaskPushNotificationConfigsRequest("111", new ListTaskPushNotificationConfigsParams(MINIMAL_TASK.id())); + ListTaskPushNotificationConfigsResponse listResponse = handler.listPushNotificationConfigs(listRequest, callContext); assertEquals("111", listResponse.getId()); assertEquals(1, listResponse.getResult().size()); @@ -1403,9 +1403,9 @@ public void testListPushNotificationConfigNotSupported() { handler.setPushNotificationConfig(request, callContext); ListTaskPushNotificationConfigsRequest listRequest - = new ListTaskPushNotificationConfigsRequest("111", new ListTaskPushNotificationConfigParams(MINIMAL_TASK.id())); + = new ListTaskPushNotificationConfigsRequest("111", new ListTaskPushNotificationConfigsParams(MINIMAL_TASK.id())); ListTaskPushNotificationConfigsResponse listResponse - = handler.listPushNotificationConfig(listRequest, callContext); + = handler.listPushNotificationConfigs(listRequest, callContext); assertEquals("111", listResponse.getId()); assertNull(listResponse.getResult()); @@ -1422,9 +1422,9 @@ public void testListPushNotificationConfigNoPushConfigStore() { }; ListTaskPushNotificationConfigsRequest listRequest - = new ListTaskPushNotificationConfigsRequest("111", new ListTaskPushNotificationConfigParams(MINIMAL_TASK.id())); + = new ListTaskPushNotificationConfigsRequest("111", new ListTaskPushNotificationConfigsParams(MINIMAL_TASK.id())); ListTaskPushNotificationConfigsResponse listResponse - = handler.listPushNotificationConfig(listRequest, callContext); + = handler.listPushNotificationConfigs(listRequest, callContext); assertEquals("111", listResponse.getId()); assertNull(listResponse.getResult()); @@ -1439,9 +1439,9 @@ public void testListPushNotificationConfigTaskNotFound() { }; ListTaskPushNotificationConfigsRequest listRequest - = new ListTaskPushNotificationConfigsRequest("111", new ListTaskPushNotificationConfigParams(MINIMAL_TASK.id())); + = new ListTaskPushNotificationConfigsRequest("111", new ListTaskPushNotificationConfigsParams(MINIMAL_TASK.id())); ListTaskPushNotificationConfigsResponse listResponse - = handler.listPushNotificationConfig(listRequest, callContext); + = handler.listPushNotificationConfigs(listRequest, callContext); assertEquals("111", listResponse.getId()); assertNull(listResponse.getResult()); diff --git a/transport/rest/src/main/java/io/a2a/transport/rest/handler/RestHandler.java b/transport/rest/src/main/java/io/a2a/transport/rest/handler/RestHandler.java index 75de9cda4..2de6ce675 100644 --- a/transport/rest/src/main/java/io/a2a/transport/rest/handler/RestHandler.java +++ b/transport/rest/src/main/java/io/a2a/transport/rest/handler/RestHandler.java @@ -49,8 +49,8 @@ import io.a2a.spec.InvalidParamsError; import io.a2a.spec.InvalidRequestError; import io.a2a.spec.JSONParseError; -import io.a2a.spec.ListTaskPushNotificationConfigParams; -import io.a2a.spec.ListTaskPushNotificationConfigResult; +import io.a2a.spec.ListTaskPushNotificationConfigsParams; +import io.a2a.spec.ListTaskPushNotificationConfigsResult; import io.a2a.spec.ListTasksParams; import io.a2a.spec.MethodNotFoundError; import io.a2a.spec.PushNotificationNotSupportedError; @@ -571,9 +571,9 @@ public HTTPRestResponse listTaskPushNotificationConfigurations(ServerCallContext if (!agentCard.capabilities().pushNotifications()) { throw new PushNotificationNotSupportedError(); } - ListTaskPushNotificationConfigParams params = new ListTaskPushNotificationConfigParams(taskId, pageSize, pageToken, tenant); - ListTaskPushNotificationConfigResult result = requestHandler.onListTaskPushNotificationConfig(params, context); - return createSuccessResponse(200, io.a2a.grpc.ListTaskPushNotificationConfigsResponse.newBuilder(ProtoUtils.ToProto.listTaskPushNotificationConfigResponse(result))); + ListTaskPushNotificationConfigsParams params = new ListTaskPushNotificationConfigsParams(taskId, pageSize, pageToken, tenant); + ListTaskPushNotificationConfigsResult result = requestHandler.onListTaskPushNotificationConfigs(params, context); + return createSuccessResponse(200, io.a2a.grpc.ListTaskPushNotificationConfigsResponse.newBuilder(ProtoUtils.ToProto.listTaskPushNotificationConfigsResponse(result))); } catch (A2AError e) { return createErrorResponse(e); } catch (Throwable throwable) {