Skip to content

Commit 8b72afc

Browse files
committed
Automatically updated the core API OpenAPI definition.
1 parent 19a379c commit 8b72afc

File tree

1 file changed

+278
-0
lines changed
  • app/src/main/resources-unfiltered/META-INF/resources/api-specifications/registry/v3

1 file changed

+278
-0
lines changed

app/src/main/resources-unfiltered/META-INF/resources/api-specifications/registry/v3/openapi.json

Lines changed: 278 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1219,6 +1219,88 @@
12191219
}
12201220
]
12211221
},
1222+
"/groups/{groupId}/artifacts/{artifactId}/versions/{versionExpression}/references/graph": {
1223+
"summary": "Get a graph representation of artifact references.",
1224+
"get": {
1225+
"tags": [
1226+
"Versions"
1227+
],
1228+
"responses": {
1229+
"200": {
1230+
"content": {
1231+
"application/json": {
1232+
"schema": {
1233+
"$ref": "#/components/schemas/ReferenceGraph"
1234+
}
1235+
}
1236+
},
1237+
"description": "A graph representation of all artifact references."
1238+
},
1239+
"400": {
1240+
"$ref": "#/components/responses/BadRequest"
1241+
},
1242+
"404": {
1243+
"$ref": "#/components/responses/NotFound"
1244+
},
1245+
"500": {
1246+
"$ref": "#/components/responses/ServerError"
1247+
}
1248+
},
1249+
"operationId": "getArtifactVersionReferencesGraph",
1250+
"summary": "Get artifact version references as a graph",
1251+
"description": "Retrieves a graph representation of all references for a single version of an artifact. The graph includes nodes representing artifacts, edges representing references between them, and metadata about the graph structure including cycle detection.\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `artifactId` exists (HTTP error `404`)\n* No version with this `version` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
1252+
},
1253+
"parameters": [
1254+
{
1255+
"name": "groupId",
1256+
"description": "The artifact group ID. Must be a string provided by the client, representing the name of the grouping of artifacts. Must follow the \".{1,512}\" pattern.",
1257+
"schema": {
1258+
"$ref": "#/components/schemas/GroupId"
1259+
},
1260+
"in": "path",
1261+
"required": true
1262+
},
1263+
{
1264+
"name": "artifactId",
1265+
"description": "The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the \".{1,512}\" pattern.",
1266+
"schema": {
1267+
"$ref": "#/components/schemas/ArtifactId"
1268+
},
1269+
"in": "path",
1270+
"required": true
1271+
},
1272+
{
1273+
"name": "versionExpression",
1274+
"description": "An expression resolvable to a specific version ID within the given group and artifact.",
1275+
"schema": {
1276+
"type": "string"
1277+
},
1278+
"in": "path",
1279+
"required": true
1280+
},
1281+
{
1282+
"name": "direction",
1283+
"description": "The direction of references to include in the graph. Can be OUTBOUND (artifacts this version references), INBOUND (artifacts that reference this version), or BOTH. Defaults to OUTBOUND.",
1284+
"schema": {
1285+
"$ref": "#/components/schemas/ReferenceGraphDirection"
1286+
},
1287+
"in": "query",
1288+
"required": false
1289+
},
1290+
{
1291+
"name": "depth",
1292+
"description": "The maximum depth of the reference graph to traverse. Can be 1, 2, 3, or 0 for unlimited. Defaults to 3.",
1293+
"schema": {
1294+
"type": "integer",
1295+
"minimum": 0,
1296+
"maximum": 10,
1297+
"default": 3
1298+
},
1299+
"in": "query",
1300+
"required": false
1301+
}
1302+
]
1303+
},
12221304
"/admin/config/properties": {
12231305
"summary": "Manage configuration properties.",
12241306
"get": {
@@ -5272,6 +5354,202 @@
52725354
"example": {
52735355
"state": "ENABLED"
52745356
}
5357+
},
5358+
"ReferenceGraphDirection": {
5359+
"description": "The direction of references to include in the graph.",
5360+
"enum": [
5361+
"OUTBOUND",
5362+
"INBOUND",
5363+
"BOTH"
5364+
],
5365+
"type": "string",
5366+
"example": "\"OUTBOUND\"",
5367+
"x-codegen-package": "io.apicurio.registry.types"
5368+
},
5369+
"ReferenceGraphNode": {
5370+
"title": "Root Type for ReferenceGraphNode",
5371+
"description": "A node in the reference graph representing an artifact version.",
5372+
"required": [
5373+
"id",
5374+
"groupId",
5375+
"artifactId",
5376+
"version"
5377+
],
5378+
"type": "object",
5379+
"properties": {
5380+
"id": {
5381+
"description": "A unique identifier for this node within the graph.",
5382+
"type": "string"
5383+
},
5384+
"groupId": {
5385+
"description": "The group ID of the artifact.",
5386+
"type": "string"
5387+
},
5388+
"artifactId": {
5389+
"description": "The artifact ID.",
5390+
"type": "string"
5391+
},
5392+
"version": {
5393+
"description": "The version of the artifact.",
5394+
"type": "string"
5395+
},
5396+
"artifactType": {
5397+
"description": "The type of the artifact.",
5398+
"type": "string"
5399+
},
5400+
"name": {
5401+
"description": "The name of the artifact version.",
5402+
"type": "string"
5403+
},
5404+
"isRoot": {
5405+
"description": "Whether this node is the root node of the graph.",
5406+
"type": "boolean"
5407+
},
5408+
"isCycleNode": {
5409+
"description": "Whether this node is part of a circular reference.",
5410+
"type": "boolean"
5411+
}
5412+
},
5413+
"example": {
5414+
"id": "node-1",
5415+
"groupId": "mygroup",
5416+
"artifactId": "my-artifact",
5417+
"version": "1.0",
5418+
"artifactType": "PROTOBUF",
5419+
"name": "My Artifact",
5420+
"isRoot": false,
5421+
"isCycleNode": false
5422+
}
5423+
},
5424+
"ReferenceGraphEdge": {
5425+
"title": "Root Type for ReferenceGraphEdge",
5426+
"description": "An edge in the reference graph representing a reference from one artifact to another.",
5427+
"required": [
5428+
"sourceNodeId",
5429+
"targetNodeId"
5430+
],
5431+
"type": "object",
5432+
"properties": {
5433+
"sourceNodeId": {
5434+
"description": "The ID of the source node (the artifact that has the reference).",
5435+
"type": "string"
5436+
},
5437+
"targetNodeId": {
5438+
"description": "The ID of the target node (the artifact being referenced).",
5439+
"type": "string"
5440+
},
5441+
"name": {
5442+
"description": "The name of the reference as defined in the source artifact.",
5443+
"type": "string"
5444+
}
5445+
},
5446+
"example": {
5447+
"sourceNodeId": "node-1",
5448+
"targetNodeId": "node-2",
5449+
"name": "sample.proto"
5450+
}
5451+
},
5452+
"ReferenceGraphMetadata": {
5453+
"title": "Root Type for ReferenceGraphMetadata",
5454+
"description": "Metadata about the reference graph.",
5455+
"type": "object",
5456+
"properties": {
5457+
"totalNodes": {
5458+
"description": "The total number of nodes in the graph.",
5459+
"type": "integer"
5460+
},
5461+
"totalEdges": {
5462+
"description": "The total number of edges in the graph.",
5463+
"type": "integer"
5464+
},
5465+
"maxDepth": {
5466+
"description": "The maximum depth reached in the graph.",
5467+
"type": "integer"
5468+
},
5469+
"hasCycles": {
5470+
"description": "Whether the graph contains circular references.",
5471+
"type": "boolean"
5472+
}
5473+
},
5474+
"example": {
5475+
"totalNodes": 5,
5476+
"totalEdges": 4,
5477+
"maxDepth": 3,
5478+
"hasCycles": false
5479+
}
5480+
},
5481+
"ReferenceGraph": {
5482+
"title": "Root Type for ReferenceGraph",
5483+
"description": "A graph representation of artifact references.",
5484+
"required": [
5485+
"root",
5486+
"nodes",
5487+
"edges",
5488+
"metadata"
5489+
],
5490+
"type": "object",
5491+
"properties": {
5492+
"root": {
5493+
"description": "The root node of the graph (the artifact for which references were requested).",
5494+
"$ref": "#/components/schemas/ReferenceGraphNode"
5495+
},
5496+
"nodes": {
5497+
"description": "All nodes in the graph, including the root.",
5498+
"type": "array",
5499+
"items": {
5500+
"$ref": "#/components/schemas/ReferenceGraphNode"
5501+
}
5502+
},
5503+
"edges": {
5504+
"description": "All edges (references) in the graph.",
5505+
"type": "array",
5506+
"items": {
5507+
"$ref": "#/components/schemas/ReferenceGraphEdge"
5508+
}
5509+
},
5510+
"metadata": {
5511+
"description": "Metadata about the graph structure.",
5512+
"$ref": "#/components/schemas/ReferenceGraphMetadata"
5513+
}
5514+
},
5515+
"example": {
5516+
"root": {
5517+
"id": "root",
5518+
"groupId": "mygroup",
5519+
"artifactId": "my-artifact",
5520+
"version": "1.0",
5521+
"isRoot": true
5522+
},
5523+
"nodes": [
5524+
{
5525+
"id": "root",
5526+
"groupId": "mygroup",
5527+
"artifactId": "my-artifact",
5528+
"version": "1.0",
5529+
"isRoot": true
5530+
},
5531+
{
5532+
"id": "node-1",
5533+
"groupId": "mygroup",
5534+
"artifactId": "referenced-artifact",
5535+
"version": "2.0",
5536+
"isRoot": false
5537+
}
5538+
],
5539+
"edges": [
5540+
{
5541+
"sourceNodeId": "root",
5542+
"targetNodeId": "node-1",
5543+
"name": "common.proto"
5544+
}
5545+
],
5546+
"metadata": {
5547+
"totalNodes": 2,
5548+
"totalEdges": 1,
5549+
"maxDepth": 1,
5550+
"hasCycles": false
5551+
}
5552+
}
52755553
}
52765554
},
52775555
"responses": {

0 commit comments

Comments
 (0)