1212import com .google .protobuf .ByteString ;
1313import com .google .protobuf .Struct ;
1414import com .google .protobuf .Value ;
15+ import io .a2a .grpc .ListTaskPushNotificationConfigResponse ;
1516
1617import io .a2a .grpc .StreamResponse ;
1718import io .a2a .spec .APIKeySecurityScheme ;
@@ -509,6 +510,15 @@ private static io.a2a.grpc.AuthorizationCodeOAuthFlow authorizationCodeOAuthFlow
509510 return builder .build ();
510511 }
511512
513+ public static io .a2a .grpc .ListTaskPushNotificationConfigResponse listTaskPushNotificationConfigResponse (List <TaskPushNotificationConfig > configs ) {
514+ List <io .a2a .grpc .TaskPushNotificationConfig > confs = new ArrayList <>(configs .size ());
515+ ListTaskPushNotificationConfigResponse .Builder response = ListTaskPushNotificationConfigResponse .newBuilder ();
516+ for (TaskPushNotificationConfig config : configs ) {
517+ confs .add (taskPushNotificationConfig (config ));
518+ }
519+ return io .a2a .grpc .ListTaskPushNotificationConfigResponse .newBuilder ().addAllConfigs (confs ).build ();
520+ }
521+
512522 private static io .a2a .grpc .ClientCredentialsOAuthFlow clientCredentialsOAuthFlow (ClientCredentialsOAuthFlow clientCredentialsOAuthFlow ) {
513523 io .a2a .grpc .ClientCredentialsOAuthFlow .Builder builder = io .a2a .grpc .ClientCredentialsOAuthFlow .newBuilder ();
514524 if (clientCredentialsOAuthFlow .refreshUrl () != null ) {
@@ -679,17 +689,31 @@ public static MessageSendParams messageSendParams(io.a2a.grpc.SendMessageRequest
679689 }
680690
681691 public static TaskPushNotificationConfig taskPushNotificationConfig (io .a2a .grpc .CreateTaskPushNotificationConfigRequestOrBuilder request ) {
682- return taskPushNotificationConfig (request .getConfig ());
692+ return taskPushNotificationConfig (request .getConfig (), true );
683693 }
684694
685695 public static TaskPushNotificationConfig taskPushNotificationConfig (io .a2a .grpc .TaskPushNotificationConfigOrBuilder config ) {
696+ return taskPushNotificationConfig (config , false );
697+ }
698+
699+ private static TaskPushNotificationConfig taskPushNotificationConfig (io .a2a .grpc .TaskPushNotificationConfigOrBuilder config , boolean create ) {
686700 String name = config .getName (); // "tasks/{id}/pushNotificationConfigs/{push_id}"
687701 String [] parts = name .split ("/" );
688- if (parts .length < 4 ) {
689- throw new IllegalArgumentException ("Invalid name format for TaskPushNotificationConfig: " + name );
702+ String configId = "" ;
703+ if (create ) {
704+ if (parts .length < 3 ) {
705+ throw new IllegalArgumentException ("Invalid name format for TaskPushNotificationConfig: " + name );
706+ }
707+ if (parts .length == 4 ) {
708+ configId = parts [3 ];
709+ }
710+ } else {
711+ if (parts .length < 4 ) {
712+ throw new IllegalArgumentException ("Invalid name format for TaskPushNotificationConfig: " + name );
713+ }
714+ configId = parts [3 ];
690715 }
691716 String taskId = parts [1 ];
692- String configId = parts [3 ];
693717 PushNotificationConfig pnc = pushNotification (config .getPushNotificationConfig (), configId );
694718 return new TaskPushNotificationConfig (taskId , pnc );
695719 }
@@ -710,13 +734,12 @@ public static TaskIdParams taskIdParams(io.a2a.grpc.TaskSubscriptionRequestOrBui
710734 String id = name .substring (name .lastIndexOf ('/' ) + 1 );
711735 return new TaskIdParams (id );
712736 }
713-
714-
737+
715738 public static List <TaskPushNotificationConfig > listTaskPushNotificationConfigParams (io .a2a .grpc .ListTaskPushNotificationConfigResponseOrBuilder response ) {
716739 List <io .a2a .grpc .TaskPushNotificationConfig > configs = response .getConfigsList ();
717740 List <TaskPushNotificationConfig > result = new ArrayList <>(configs .size ());
718741 for (io .a2a .grpc .TaskPushNotificationConfig config : configs ) {
719- result .add (taskPushNotificationConfig (config ));
742+ result .add (taskPushNotificationConfig (config , false ));
720743 }
721744 return result ;
722745 }
0 commit comments