4040import io .a2a .spec .Message ;
4141import io .a2a .spec .MessageSendConfiguration ;
4242import io .a2a .spec .MessageSendParams ;
43+ import io .a2a .spec .MutualTLSSecurityScheme ;
4344import io .a2a .spec .OAuth2SecurityScheme ;
4445import io .a2a .spec .OAuthFlows ;
4546import io .a2a .spec .OpenIdConnectSecurityScheme ;
@@ -399,6 +400,17 @@ private static io.a2a.grpc.AgentSkill agentSkill(AgentSkill agentSkill) {
399400 if (agentSkill .outputModes () != null ) {
400401 builder .addAllOutputModes (agentSkill .outputModes ());
401402 }
403+ if (agentSkill .security () != null ) {
404+ builder .addAllSecurity (agentSkill .security ().stream ().map (s -> {
405+ io .a2a .grpc .Security .Builder securityBuilder = io .a2a .grpc .Security .newBuilder ();
406+ s .forEach ((key , value ) -> {
407+ io .a2a .grpc .StringList .Builder stringListBuilder = io .a2a .grpc .StringList .newBuilder ();
408+ stringListBuilder .addAllList (value );
409+ securityBuilder .putSchemes (key , stringListBuilder .build ());
410+ });
411+ return securityBuilder .build ();
412+ }).collect (Collectors .toList ()));
413+ }
402414 return builder .build ();
403415 }
404416
@@ -422,6 +434,8 @@ private static io.a2a.grpc.SecurityScheme securityScheme(SecurityScheme security
422434 builder .setOauth2SecurityScheme (oauthSecurityScheme ((OAuth2SecurityScheme ) securityScheme ));
423435 } else if (securityScheme instanceof OpenIdConnectSecurityScheme ) {
424436 builder .setOpenIdConnectSecurityScheme (openIdConnectSecurityScheme ((OpenIdConnectSecurityScheme ) securityScheme ));
437+ } else if (securityScheme instanceof MutualTLSSecurityScheme ) {
438+ builder .setMtlsSecurityScheme (mutualTlsSecurityScheme ((MutualTLSSecurityScheme ) securityScheme ));
425439 }
426440 return builder .build ();
427441 }
@@ -462,6 +476,9 @@ private static io.a2a.grpc.OAuth2SecurityScheme oauthSecurityScheme(OAuth2Securi
462476 if (oauth2SecurityScheme .getFlows () != null ) {
463477 builder .setFlows (oauthFlows (oauth2SecurityScheme .getFlows ()));
464478 }
479+ if (oauth2SecurityScheme .getOauth2MetadataUrl () != null ) {
480+ builder .setOauth2MetadataUrl (oauth2SecurityScheme .getOauth2MetadataUrl ());
481+ }
465482 return builder .build ();
466483 }
467484
@@ -552,6 +569,14 @@ private static io.a2a.grpc.OpenIdConnectSecurityScheme openIdConnectSecuritySche
552569 return builder .build ();
553570 }
554571
572+ private static io .a2a .grpc .MutualTlsSecurityScheme mutualTlsSecurityScheme (MutualTLSSecurityScheme mutualTlsSecurityScheme ) {
573+ io .a2a .grpc .MutualTlsSecurityScheme .Builder builder = io .a2a .grpc .MutualTlsSecurityScheme .newBuilder ();
574+ if (mutualTlsSecurityScheme .getDescription () != null ) {
575+ builder .setDescription (mutualTlsSecurityScheme .getDescription ());
576+ }
577+ return builder .build ();
578+ }
579+
555580 private static io .a2a .grpc .AgentInterface agentInterface (AgentInterface agentInterface ) {
556581 io .a2a .grpc .AgentInterface .Builder builder = io .a2a .grpc .AgentInterface .newBuilder ();
557582 if (agentInterface .transport () != null ) {
0 commit comments