-
Notifications
You must be signed in to change notification settings - Fork 0
/
schema.graphqls
126 lines (101 loc) · 2.09 KB
/
schema.graphqls
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# https://gqlgen.com/getting-started/
# https://graphql.org/learn/schema/
type Program {
id: Int!
error: String
name: String
type: String!
tag: String
runTime: Float
runCount: Int
btfId: Int
verifierLog: String
isPinned: Boolean
maps: [Map!]!
tasks: [Task!]!
}
type Task {
pid: Int!
fd: Int!
# there is no way to reach Task rather than through Program, so no need to have this yet
# programId: Int!
# program: Program!
type: String!
name: String
probeOffset: String
probeAddr: String
}
type Map {
id: Int!
error: String
name: String
type: String!
flags: Int
isPinned: Boolean!
pins: [String!]
keySize: Int
valueSize: Int
maxEntries: Int
isPerCPU: Boolean!
isLookupSupported: Boolean!
entries(
offset: Int, limit: Int,
keyFormat: MapEntryFormat = HEX, valueFormat: MapEntryFormat = HEX
): [MapEntry!]!
entriesCount: Int!
programs: [Program!]!
}
enum MapEntryFormat {
HEX
STRING
NUMBER
}
type MapEntry {
key: String!
value: String
cpuValues: [String!]!
}
enum IdType {
PROGRAM
MAP
}
type ConnectedGraph {
programs: [Program!]!
maps: [Map!]!
}
type Query {
program(id: Int!): Program!
programs: [Program!]!
map(id: Int!): Map!
maps: [Map!]!
connectedGraph(from: Int!, fromType: IdType!): ConnectedGraph!
}
type MapPinningResult {
error: String
}
type MapUpdateValueResult {
error: String
}
type Mutation {
pinMap(id: Int!, path: String!): MapPinningResult
updateMapValue(
mapId: Int!,
key: String!,
cpu: Int,
value: String!,
keyFormat: MapEntryFormat!,
valueFormat: MapEntryFormat!
): MapUpdateValueResult
createMapValue(
mapId: Int!,
key: String!,
values: [String!]!,
keyFormat: MapEntryFormat!,
valueFormat: MapEntryFormat!
): MapUpdateValueResult
deleteMapValues(
mapId: Int!,
keys: [String!]!,
keyFormat: MapEntryFormat!
): MapUpdateValueResult
}