summaryrefslogtreecommitdiff
path: root/web/public/openapi.yaml
blob: d69111cf85aa44f5f9537ac2dbd1c6fab896f5f0 (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
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
info:
  title: Zuul REST API
  version: v1
  description: Incomplete (work in progress) list of the endpoints.
openapi: 3.0.0
tags:
- name: tenant
paths:
  /api/tenant/{tenant}/badge:
    get:
      operationId: get-badge
      parameters:
      - description: The tenant name
        in: path
        name: tenant
        required: true
        schema:
          type: string
      - description: A project name
        in: query
        name: project
        schema:
          type: string
      - description: A pipeline name
        in: query
        name: pipeline
        schema:
          type: string
      - description: A branch name
        in: query
        name: branch
        schema:
          type: string
      responses:
        '200':
          content:
            image/svg+xml:
              schema:
                description: SVG image
                type: object
          description: Badge describing the result of the latest buildset found.
        '404':
          description: No buildset found
      summary: Get a badge describing the result of the latest buildset found.
      tags:
      - tenant
  /api/tenant/{tenant}/builds:
    get:
      operationId: list-builds
      parameters:
      - description: The tenant name
        in: path
        name: tenant
        required: true
        schema:
          type: string
      - description: A project name
        in: query
        name: project
        schema:
          type: string
      - description: A pipeline name
        in: query
        name: pipeline
        schema:
          type: string
      - description: A job name
        in: query
        name: job_name
        schema:
          type: string
      - description: A branch name
        in: query
        name: branch
        schema:
          type: string
      - description: A change number
        in: query
        name: change
        schema:
          type: string
      - description: A patchset number
        in: query
        name: patchset
        schema:
          type: string
      - description: A ref
        in: query
        name: ref
        schema:
          type: string
      - description: A new revision hash
        in: query
        name: newrev
        schema:
          type: string
      - description: A build uuid
        in: query
        name: uuid
        schema:
          type: string
      - description: A build voting status
        in: query
        name: voting
        schema:
          type: string
      - description: A build result
        in: query
        name: result
        schema:
          type: string
      - description: The limit count (default 50)
        in: query
        name: limit
        schema:
          type: string
      - description: Skip number of results
        in: query
        name: skip
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                description: The list of builds
                items:
                  $ref: '#/components/schemas/build'
                type: array
          description: Returns the list of builds
        '404':
          description: Tenant not found
      summary: List the executed builds
      tags:
      - tenant
  /api/tenant/{tenant}/buildsets:
    get:
      operationId: list-buildsets
      parameters:
      - description: The tenant name
        in: path
        name: tenant
        required: true
        schema:
          type: string
      - description: A project name
        in: query
        name: project
        schema:
          type: string
      - description: A pipeline name
        in: query
        name: pipeline
        schema:
          type: string
      - description: A branch name
        in: query
        name: branch
        schema:
          type: string
      - description: A change number
        in: query
        name: change
        schema:
          type: string
      - description: A patchset number
        in: query
        name: patchset
        schema:
          type: string
      - description: A ref
        in: query
        name: ref
        schema:
          type: string
      - description: A new revision hash
        in: query
        name: newrev
        schema:
          type: string
      - description: A buildset uuid
        in: query
        name: uuid
        schema:
          type: string
      - description: A buildset result
        in: query
        name: result
        schema:
          type: string
      - description: The limit count (default 50)
        in: query
        name: limit
        schema:
          type: string
      - description: Skip number of results
        in: query
        name: skip
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                description: The list of buildsets
                items:
                  $ref: '#/components/schemas/buildset'
                type: array
          description: Returns the list of builds
        '404':
          description: Tenant not found
      summary: List the executed builds
      tags:
      - tenant
  /api/tenant/{tenant}/jobs:
    get:
      operationId: list-jobs
      parameters:
      - description: The tenant name
        in: path
        name: tenant
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                description: The list of jobs
                items:
                  description: A job
                  properties:
                    description:
                      description: The job short description
                      type: string
                    name:
                      description: The job name
                      type: string
                  type: object
                type: array
          description: Returns the list of jobs
        '404':
          description: Tenant not found
      summary: List available jobs
      tags:
      - tenant
  /api/tenant/{tenant}/key/{project}.pub:
    get:
      operationId: get-project-key
      parameters:
      - description: The tenant name
        in: path
        name: tenant
        required: true
        schema:
          type: string
      - description: The project name
        in: path
        name: project
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            text/plain:
              example: '-----BEGIN PUBLIC KEY-----

                MIICI...

                -----END PUBLIC KEY-----

                '
              schema:
                description: The project public key
                type: string
          description: Returns the project public key
        '404':
          description: Tenant or Project not found
      summary: Get a project public key
      tags:
      - tenant
  /api/tenant/{tenant}/semaphores:
    get:
      operationId: list-semaphores
      parameters:
      - description: The tenant name
        in: path
        name: tenant
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                description: The list of semaphores
                items:
                  $ref: '#/components/schemas/semaphore'
                type: array
          description: Returns the list of semaphores
        '404':
          description: Tenant not found
      summary: List available semaphores
      tags:
      - tenant
  /api/tenant/{tenant}/status:
    get:
      operationId: get-status
      parameters:
      - description: The tenant name
        in: path
        name: tenant
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                description: The tenant status
                properties:
                  last_reconfigured:
                    description: The Epoch timestamp of the last reconfiguration
                    type: integer
                  pipelines:
                    description: The list of pipelines
                    items:
                      $ref: '#/components/schemas/pipelineStatus'
                    type: array
                  trigger_event_queue:
                    description: The number of running events
                    type: integer
                  zuul_version:
                    description: The Zuul version
                    type: string
                type: object
          description: Returns the list of tenants
        '404':
          description: Tenant not found
      summary: Get tenant status
      tags:
      - tenant
  /api/tenants:
    get:
      operationId: list-tenants
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  properties:
                    name:
                      description: Tenant name
                      type: string
                    projects:
                      description: Tenant project count
                      type: integer
                    queue:
                      description: Active changes count
                      type: integer
                  type: object
                type: array
          description: Returns the list of tenants
      summary: List the tenants
      tags:
      - tenant
components:
  schemas:
    build:
      description: A build
      properties:
        branch:
          description: The build change branch
          type: string
        change:
          description: The build change number
          type: integer
        duration:
          description: The build duration in second
          type: integer
        end_time:
          description: The build end time ISO 8601 format
          type: string
        job_name:
          description: The build job name
          type: string
        log_url:
          description: The build logs url
          type: string
        newrev:
          description: The build newrev
          type: string
        patchset:
          description: The build patchset number
          type: integer
        pipeline:
          description: The build pipeline
          type: string
        project:
          description: The build project name
          type: string
        ref:
          description: The build change reference
          type: string
        ref_url:
          description: The build change reference url
          type: string
        result:
          description: The build result
          type: string
        start_time:
          description: The build start time ISO 8601 format
          type: string
        uuid:
          description: The build uuid
          type: string
        voting:
          description: The build voting status
          type: boolean
      type: object
    buildset:
      description: A buildset
      properties:
        project:
          description: The buildset project name
          type: string
        event_id:
          description: The event id that triggered the buildset
          type: string
        uuid:
          description: The buildset uuid
          type: string
        branch:
          description: The buildset change branch
          type: string
        ref_url:
          description: The buildset change reference url
          type: string
        newrev:
          description: The buildset newrev
          type: string
        result:
          description: The buildset result
          type: string
        change:
          description: The buildset change number
          type: integer
        patchset:
          description: The buildset patchset number
          type: integer
        ref:
          description: The buildset change reference
          type: string
        pipeline:
          description: The buildset pipeline
          type: string
        message:
          description: The message that got reported by the buildset
      type: object
    changeQueue:
      description: A change queue
      properties:
        heads:
          description: The list of queue events
          items:
            items:
              $ref: '#/components/schemas/eventQueue'
            type: array
          type: array
        name:
          description: The queue name
          type: string
        window:
          description: The queue window
          type: integer
      type: object
    eventQueue:
      description: A queue event
      properties:
        active:
          description: Is the event active
          type: boolean
        enqueue_time:
          description: The epoch creation time
          type: integer
        failing_reasons:
          description: The list of failing reasons
          items:
            type: string
          type: array
        id:
          description: The event id
          type: string
        item_ahead:
          description: The event ahead
          type: string
        items_behind:
          description: The list of events behind
          items:
            type: string
          type: array
        jobs:
          description: The event list of jobs
          items:
            $ref: '#/components/schemas/statusJob'
          type: array
        live:
          description: Is the event live
          type: boolean
        owner:
          description: The event owner
          type: string
        project:
          description: The event project
          type: string
        remaining_time:
          description: The estimated remaining time
          type: integer
        url:
          description: The event url
          type: string
        zuul_ref:
          description: The zuul ref
          type: string
      type: object
    pipelineStatus:
      description: A pipeline
      properties:
        change_queues:
          description: The pipeline list of change queues
          items:
            $ref: '#/components/schemas/changeQueue'
          type: array
        description:
          description: The pipeline description
          type: string
        name:
          description: The pipeline name
          type: string
      type: object
    semaphore:
      description: A semaphore
      properties:
        name:
          description: The semaphore name
          type: string
        global:
          description: Whether the semaphore is global
          type: boolean
        max:
          description: The maximum number of holders
          type: integer
        holders:
          $ref: '#/components/schemas/semaphoreHolders'
      type: object
    semaphoreHolders:
      description: Information about the holders of a semaphore
      properties:
        count:
          description: The number of jobs currently holding this semaphore
          type: integer
        this_tenant:
          description: Holders within this tenant
          items:
            $ref: '#/components/schemas/semaphoreHolder'
          type: array
        other_tenants:
          description: The number of jobs in other tenants currently holding this semaphore
          type: integer
      type: object
    semaphoreHolder:
      description: Information about a holder of a semaphore
      properties:
        buildset_uuid:
          description: The UUID of the job's buildset
          type: string
        job_name:
          description: The name of the job
          type: string
      type: object
    statusJob:
      description: A job status
      properties:
        canceled:
          description: Is the job canceled
          type: boolean
        elapsed_time:
          description: The elapsed time
          type: integer
        launch_time:
          description: The epoch launch time
          type: integer
        name:
          description: The job name
          type: string
        number:
          description: The job number
          type: integer
        pipeline:
          description: The job pipeline
          type: string
        remaining_time:
          description: The estimated remaining time
          type: integer
        result:
          description: The job result
          type: string
        retry:
          description: The retry count
          type: integer
        start_time:
          description: The epoch start time
          type: integer
        url:
          description: The job stream url
          type: string
        uuid:
          description: The job uuid
          type: string
        voting:
          description: Is the job voting
          type: boolean
        worker:
          $ref: '#/components/schemas/statusWorker'
      type: object
    statusWorker:
      description: A job worker node
      properties:
        fqdn:
          description: The worker fully qualified domain name
          type: string
        hostname:
          description: The worker hostname
          type: string
        ips:
          description: The list of worker ip addresses
          items:
            type: string
          type: array
        name:
          description: The worker name
          type: string
        program:
          description: The worker program
          type: string
        version:
          description: The worker version
          type: string
      type: object