Skip to content

Commit 2a10471

Browse files
authored
fix: route managed A2A operations through runtime API (Closes #138)
1 parent 960fa6a commit 2a10471

2 files changed

Lines changed: 76 additions & 0 deletions

File tree

tests/integration/all-resource-types/bicep/source-apim.bicep

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1160,6 +1160,73 @@ resource apiA2a 'Microsoft.ApiManagement/service/apis@2025-09-01-preview' = {
11601160
})
11611161
}
11621162

1163+
resource apiA2aManagedCardOperation 'Microsoft.ApiManagement/service/apis/operations@2025-09-01-preview' = {
1164+
parent: apiA2a
1165+
name: 'get-agent-card'
1166+
properties: {
1167+
displayName: 'Get managed agent card'
1168+
method: 'GET'
1169+
urlTemplate: '/.well-known/agent-card.json'
1170+
responses: [
1171+
{
1172+
statusCode: 200
1173+
description: 'OK'
1174+
representations: [
1175+
{
1176+
contentType: 'application/json'
1177+
}
1178+
]
1179+
}
1180+
]
1181+
}
1182+
}
1183+
1184+
resource apiA2aManagedCardPolicy 'Microsoft.ApiManagement/service/apis/operations/policies@2025-09-01-preview' = {
1185+
parent: apiA2aManagedCardOperation
1186+
name: 'policy'
1187+
properties: {
1188+
format: 'rawxml'
1189+
value: '''<policies><inbound><base /><set-backend-service base-url="https://${apim.name}.azure-api.net/ks/a2a-weather" /></inbound><backend><base /></backend><outbound><base /></outbound><on-error><base /></on-error></policies>'''
1190+
}
1191+
}
1192+
1193+
resource apiA2aManagedJsonRpcOperation 'Microsoft.ApiManagement/service/apis/operations@2025-09-01-preview' = {
1194+
parent: apiA2a
1195+
name: 'post-jsonrpc'
1196+
properties: {
1197+
displayName: 'Managed JSON-RPC endpoint'
1198+
method: 'POST'
1199+
urlTemplate: '/'
1200+
request: {
1201+
representations: [
1202+
{
1203+
contentType: 'application/json'
1204+
}
1205+
]
1206+
}
1207+
responses: [
1208+
{
1209+
statusCode: 200
1210+
description: 'OK'
1211+
representations: [
1212+
{
1213+
contentType: 'application/json'
1214+
}
1215+
]
1216+
}
1217+
]
1218+
}
1219+
}
1220+
1221+
resource apiA2aManagedJsonRpcPolicy 'Microsoft.ApiManagement/service/apis/operations/policies@2025-09-01-preview' = {
1222+
parent: apiA2aManagedJsonRpcOperation
1223+
name: 'policy'
1224+
properties: {
1225+
format: 'rawxml'
1226+
value: '''<policies><inbound><base /><set-backend-service base-url="https://${apim.name}.azure-api.net/ks/a2a-weather" /></inbound><backend><base /></backend><outbound><base /></outbound><on-error><base /></on-error></policies>'''
1227+
}
1228+
}
1229+
11631230
// ---------------------------------------------------------------------------
11641231
// TIER 3: Child Resources
11651232
// ---------------------------------------------------------------------------

tests/integration/all-resource-types/expected-structure.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -601,6 +601,15 @@
601601
"properties.subscriptionKeyParameterNames.query": "subscription-key"
602602
}
603603
},
604+
"children": {
605+
"operations": {
606+
"minCount": 2,
607+
"expected": [
608+
"get-agent-card",
609+
"post-jsonrpc"
610+
]
611+
}
612+
},
604613
"notes": "A2A API with JSON-RPC runtime mediation and agent card settings."
605614
}
606615
]

0 commit comments

Comments
 (0)