blob: c2de2d68ef57fa4da1be7b32eb8bebf641f8c5fd (
plain)
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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
|
##############################################################################
# Copyright (c) 2017 akhil.batra@research.iiit.ac.in and others.
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
swagger: '2.0'
info:
title: QTIP-API
version: "1.0"
consumes:
- application/json
produces:
- application/json
paths:
/plans:
get:
summary: List all plans
operationId: qtip.api.controllers.plan.list_plans
tags:
- Plan
- Standalone
responses:
200:
description: A list of plans
schema:
type: array
items:
$ref: '#/definitions/Plans'
501:
description: Resource not implemented
schema:
$ref: '#/definitions/Error'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
/plans/{name}:
get:
summary: Get a plan by plan name
operationId: qtip.api.controllers.plan.get_plan
tags:
- Plan
- Standalone
parameters:
- name: name
in: path
description: Plan name
required: true
type: string
responses:
200:
description: Plan information
schema:
$ref: '#/definitions/Plan'
404:
description: Plan not found
schema:
$ref: '#/definitions/Error'
501:
description: Resource not implemented
schema:
$ref: '#/definitions/Error'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
post:
summary: Run a plan and return results
operationId: qtip.api.controllers.plan.run_plan
tags:
- Plan
- Standalone
parameters:
- name: name
in: path
description: Plan name
required: true
type: string
- name: action
in: query
description: action for a plan
required: true
type: string
responses:
200:
description: Result of the run of the plan
#TODO (akhil) define schema
404:
description: Plan not found
schema:
$ref: '#/definitions/Error'
400:
description: Invalid parameters
schema:
$ref: '#/definitions/Error'
501:
description: Resource not implemented
schema:
$ref: '#/definitions/Error'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
/qpis:
get:
summary: List all QPIs
operationId: qtip.api.controllers.qpi.list_qpis
tags:
- QPI
- Standalone
- Agent
responses:
200:
description: A list of QPIs
schema:
items:
$ref: '#/definitions/QPIs'
501:
description: Resource not implemented
schema:
$ref: '#/definitions/Error'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
/qpis/{name}:
get:
summary: Get a QPI
operationId: qtip.api.controllers.qpi.get_qpi
tags:
- QPI
- Standalone
- Agent
parameters:
- name: name
in: path
description: QPI name
required: true
type: string
responses:
200:
description: QPI information
schema:
$ref: '#/definitions/QPI'
404:
description: QPI not found
schema:
$ref: '#/definitions/Error'
501:
description: Resource not implemented
schema:
$ref: '#/definitions/Error'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
/metrics:
get:
summary: List all metrics
operationId: qtip.api.controllers.metric.list_metrics
tags:
- Metric
- Standalone
- Agent
responses:
200:
description: A list of metrics
schema:
items:
$ref: '#/definitions/Metrics'
501:
description: Resource not implemented
schema:
$ref: '#/definitions/Error'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
/metrics/{name}:
get:
summary: Get a metric
operationId: qtip.api.controllers.metric.get_metric
tags:
- Metric
- Standalone
- Agent
parameters:
- name: name
in: path
description: Metric name
required: true
type: string
responses:
200:
description: Metric information
schema:
$ref: '#/definitions/Metric'
404:
description: Metric not found
schema:
$ref: '#/definitions/Error'
501:
description: Resource not implemented
schema:
$ref: '#/definitions/Error'
default:
description: Unexpected error
schema:
$ref: '#/definitions/Error'
definitions:
PlanContent:
type: object
required:
- name
properties:
name:
type: string
description:
type: string
info:
type: object
config:
type: object
QPIs:
type: array
items:
type: object
Plans:
type: object
required:
- name
- abspath
properties:
name:
type: string
abspath:
type: string
Plan:
allOf:
- $ref: '#/definitions/Plans'
- type: object
- required:
- content
properties:
content:
$ref: '#/definitions/PlanContent'
MetricContent:
type: object
required:
- name
properties:
name:
type: string
description:
type: string
links:
type: array
items:
type: string
workloads:
type: array
items:
type: string
Metrics:
type: object
required:
- name
- abspath
properties:
name:
type: string
abspath:
type: string
Metric:
allOf:
- $ref: '#/definitions/Metrics'
- required:
- content
properties:
content:
$ref: '#/definitions/MetricContent'
QPIContent:
type: object
required:
- name
properties:
name:
type: string
description:
type: string
formula:
type: string
sections:
type: array
items:
type: object
QPIs:
type: object
required:
- name
- abspath
properties:
name:
type: string
abspath:
type: string
QPI:
allOf:
- $ref: '#/definitions/QPIs'
- required:
- content
properties:
content:
$ref: '#/definitions/QPIContent'
Error:
type: object
properties:
status:
type: integer
format: int32
title:
type: string
detail:
type: string
type:
type: string
|