1{
2  "basePath": "/_ah/api",
3  "consumes": [
4    "application/json"
5  ],
6  "definitions": {
7    "WebappSrcProtoModelBuildInfoMessage": {
8      "properties": {
9        "artifact_type": {
10          "type": "string"
11        },
12        "artifacts": {
13          "items": {
14            "type": "string"
15          },
16          "type": "array"
17        },
18        "build_id": {
19          "type": "string"
20        },
21        "build_target": {
22          "type": "string"
23        },
24        "build_type": {
25          "type": "string"
26        },
27        "manifest_branch": {
28          "type": "string"
29        },
30        "signed": {
31          "type": "boolean"
32        }
33      },
34      "type": "object"
35    },
36    "WebappSrcProtoModelBuildResponseMessage": {
37      "properties": {
38        "builds": {
39          "description": "A message for representing an individual build entry.",
40          "items": {
41            "$ref": "#/definitions/#/definitions/#/definitions/#/definitions/#/definitions/WebappSrcProtoModelBuildInfoMessage"
42          },
43          "type": "array"
44        },
45        "has_next": {
46          "type": "boolean"
47        }
48      },
49      "type": "object"
50    },
51    "WebappSrcProtoModelCountRequestMessage": {
52      "properties": {
53        "filter": {
54          "type": "string"
55        }
56      },
57      "type": "object"
58    },
59    "WebappSrcProtoModelCountResponseMessage": {
60      "properties": {
61        "count": {
62          "format": "int64",
63          "type": "string"
64        }
65      },
66      "type": "object"
67    },
68    "WebappSrcProtoModelDefaultResponse": {
69      "properties": {
70        "return_code": {
71          "enum": [
72            "SUCCESS",
73            "FAIL"
74          ],
75          "type": "string"
76        }
77      },
78      "type": "object"
79    },
80    "WebappSrcProtoModelDeviceInfoMessage": {
81      "properties": {
82        "product": {
83          "type": "string"
84        },
85        "scheduling_status": {
86          "format": "int64",
87          "type": "string"
88        },
89        "serial": {
90          "type": "string"
91        },
92        "status": {
93          "format": "int64",
94          "type": "string"
95        }
96      },
97      "type": "object"
98    },
99    "WebappSrcProtoModelDeviceResponseMessage": {
100      "properties": {
101        "devices": {
102          "description": "A message for representing an individual host's device entry.",
103          "items": {
104            "$ref": "#/definitions/#/definitions/#/definitions/#/definitions/WebappSrcProtoModelDeviceInfoMessage"
105          },
106          "type": "array"
107        },
108        "has_next": {
109          "type": "boolean"
110        }
111      },
112      "type": "object"
113    },
114    "WebappSrcProtoModelGetRequestMessage": {
115      "properties": {
116        "direction": {
117          "type": "string"
118        },
119        "filter": {
120          "type": "string"
121        },
122        "offset": {
123          "format": "int64",
124          "type": "string"
125        },
126        "size": {
127          "format": "int64",
128          "type": "string"
129        },
130        "sort": {
131          "type": "string"
132        }
133      },
134      "type": "object"
135    },
136    "WebappSrcProtoModelHostInfoMessage": {
137      "properties": {
138        "devices": {
139          "description": "A message for representing an individual host's device entry.",
140          "items": {
141            "$ref": "#/definitions/#/definitions/#/definitions/#/definitions/WebappSrcProtoModelDeviceInfoMessage"
142          },
143          "type": "array"
144        },
145        "hostname": {
146          "type": "string"
147        }
148      },
149      "type": "object"
150    },
151    "WebappSrcProtoModelJobLeaseResponse": {
152      "properties": {
153        "jobs": {
154          "description": "A message for representing an individual job entry.",
155          "items": {
156            "$ref": "#/definitions/WebappSrcProtoModelJobMessage"
157          },
158          "type": "array"
159        },
160        "return_code": {
161          "enum": [
162            "SUCCESS",
163            "FAIL"
164          ],
165          "type": "string"
166        }
167      },
168      "type": "object"
169    },
170    "WebappSrcProtoModelJobMessage": {
171      "properties": {
172        "build_id": {
173          "type": "string"
174        },
175        "build_storage_type": {
176          "format": "int64",
177          "type": "string"
178        },
179        "build_target": {
180          "type": "string"
181        },
182        "device": {
183          "type": "string"
184        },
185        "gsi_branch": {
186          "type": "string"
187        },
188        "gsi_build_id": {
189          "type": "string"
190        },
191        "gsi_build_target": {
192          "type": "string"
193        },
194        "gsi_pab_account_id": {
195          "type": "string"
196        },
197        "gsi_storage_type": {
198          "format": "int64",
199          "type": "string"
200        },
201        "gsi_vendor_version": {
202          "type": "string"
203        },
204        "has_bootloader_img": {
205          "type": "boolean"
206        },
207        "has_radio_img": {
208          "type": "boolean"
209        },
210        "hostname": {
211          "type": "string"
212        },
213        "image_package_repo_base": {
214          "type": "string"
215        },
216        "infra_log_url": {
217          "type": "string"
218        },
219        "manifest_branch": {
220          "type": "string"
221        },
222        "pab_account_id": {
223          "type": "string"
224        },
225        "param": {
226          "items": {
227            "type": "string"
228          },
229          "type": "array"
230        },
231        "period": {
232          "format": "int64",
233          "type": "string"
234        },
235        "priority": {
236          "type": "string"
237        },
238        "report_bucket": {
239          "items": {
240            "type": "string"
241          },
242          "type": "array"
243        },
244        "report_persistent_url": {
245          "items": {
246            "type": "string"
247          },
248          "type": "array"
249        },
250        "report_reference_url": {
251          "items": {
252            "type": "string"
253          },
254          "type": "array"
255        },
256        "report_spreadsheet_id": {
257          "items": {
258            "type": "string"
259          },
260          "type": "array"
261        },
262        "require_signed_device_build": {
263          "type": "boolean"
264        },
265        "retry_count": {
266          "format": "int64",
267          "type": "string"
268        },
269        "serial": {
270          "items": {
271            "type": "string"
272          },
273          "type": "array"
274        },
275        "shards": {
276          "format": "int64",
277          "type": "string"
278        },
279        "status": {
280          "format": "int64",
281          "type": "string"
282        },
283        "test_branch": {
284          "type": "string"
285        },
286        "test_build_id": {
287          "type": "string"
288        },
289        "test_build_target": {
290          "type": "string"
291        },
292        "test_name": {
293          "type": "string"
294        },
295        "test_pab_account_id": {
296          "type": "string"
297        },
298        "test_storage_type": {
299          "format": "int64",
300          "type": "string"
301        },
302        "test_type": {
303          "format": "int64",
304          "type": "string"
305        }
306      },
307      "type": "object"
308    },
309    "WebappSrcProtoModelJobResponseMessage": {
310      "properties": {
311        "has_next": {
312          "type": "boolean"
313        },
314        "jobs": {
315          "description": "A message for representing an individual job entry.",
316          "items": {
317            "$ref": "#/definitions/WebappSrcProtoModelJobMessage"
318          },
319          "type": "array"
320        }
321      },
322      "type": "object"
323    },
324    "WebappSrcProtoModelLabDeviceInfoMessage": {
325      "properties": {
326        "device_equipment": {
327          "items": {
328            "type": "string"
329          },
330          "type": "array"
331        },
332        "product": {
333          "type": "string"
334        },
335        "serial": {
336          "type": "string"
337        }
338      },
339      "type": "object"
340    },
341    "WebappSrcProtoModelLabHostInfoMessage": {
342      "properties": {
343        "device": {
344          "description": "A message for representing an individual lab host's device entry.",
345          "items": {
346            "$ref": "#/definitions/#/definitions/#/definitions/WebappSrcProtoModelLabDeviceInfoMessage"
347          },
348          "type": "array"
349        },
350        "host_equipment": {
351          "items": {
352            "type": "string"
353          },
354          "type": "array"
355        },
356        "hostname": {
357          "type": "string"
358        },
359        "ip": {
360          "type": "string"
361        },
362        "script": {
363          "type": "string"
364        },
365        "vtslab_version": {
366          "type": "string"
367        }
368      },
369      "type": "object"
370    },
371    "WebappSrcProtoModelLabInfoMessage": {
372      "properties": {
373        "admin": {
374          "items": {
375            "type": "string"
376          },
377          "type": "array"
378        },
379        "host": {
380          "description": "A message for representing an individual lab's host entry.",
381          "items": {
382            "$ref": "#/definitions/#/definitions/#/definitions/WebappSrcProtoModelLabHostInfoMessage"
383          },
384          "type": "array"
385        },
386        "name": {
387          "type": "string"
388        },
389        "owner": {
390          "type": "string"
391        }
392      },
393      "type": "object"
394    },
395    "WebappSrcProtoModelLabMessage": {
396      "properties": {
397        "admin": {
398          "items": {
399            "type": "string"
400          },
401          "type": "array"
402        },
403        "devices": {
404          "type": "string"
405        },
406        "host_equipment": {
407          "items": {
408            "type": "string"
409          },
410          "type": "array"
411        },
412        "hostname": {
413          "type": "string"
414        },
415        "ip": {
416          "type": "string"
417        },
418        "name": {
419          "type": "string"
420        },
421        "owner": {
422          "type": "string"
423        },
424        "vtslab_version": {
425          "type": "string"
426        }
427      },
428      "type": "object"
429    },
430    "WebappSrcProtoModelLabResponseMessage": {
431      "properties": {
432        "has_next": {
433          "type": "boolean"
434        },
435        "labs": {
436          "description": "A model for representing a LabModel entity.",
437          "items": {
438            "$ref": "#/definitions/#/definitions/#/definitions/WebappSrcProtoModelLabMessage"
439          },
440          "type": "array"
441        }
442      },
443      "type": "object"
444    },
445    "WebappSrcProtoModelScheduleInfoMessage": {
446      "properties": {
447        "build_storage_type": {
448          "format": "int64",
449          "type": "string"
450        },
451        "build_target": {
452          "type": "string"
453        },
454        "device": {
455          "items": {
456            "type": "string"
457          },
458          "type": "array"
459        },
460        "device_pab_account_id": {
461          "type": "string"
462        },
463        "gsi_branch": {
464          "type": "string"
465        },
466        "gsi_build_target": {
467          "type": "string"
468        },
469        "gsi_pab_account_id": {
470          "type": "string"
471        },
472        "gsi_storage_type": {
473          "format": "int64",
474          "type": "string"
475        },
476        "gsi_vendor_version": {
477          "type": "string"
478        },
479        "has_bootloader_img": {
480          "type": "boolean"
481        },
482        "has_radio_img": {
483          "type": "boolean"
484        },
485        "image_package_repo_base": {
486          "type": "string"
487        },
488        "manifest_branch": {
489          "type": "string"
490        },
491        "name": {
492          "type": "string"
493        },
494        "owner": {
495          "items": {
496            "type": "string"
497          },
498          "type": "array"
499        },
500        "param": {
501          "items": {
502            "type": "string"
503          },
504          "type": "array"
505        },
506        "period": {
507          "format": "int64",
508          "type": "string"
509        },
510        "priority": {
511          "type": "string"
512        },
513        "report_bucket": {
514          "items": {
515            "type": "string"
516          },
517          "type": "array"
518        },
519        "report_persistent_url": {
520          "items": {
521            "type": "string"
522          },
523          "type": "array"
524        },
525        "report_reference_url": {
526          "items": {
527            "type": "string"
528          },
529          "type": "array"
530        },
531        "report_spreadsheet_id": {
532          "items": {
533            "type": "string"
534          },
535          "type": "array"
536        },
537        "require_signed_device_build": {
538          "type": "boolean"
539        },
540        "required_device_equipment": {
541          "items": {
542            "type": "string"
543          },
544          "type": "array"
545        },
546        "required_host_equipment": {
547          "items": {
548            "type": "string"
549          },
550          "type": "array"
551        },
552        "retry_count": {
553          "format": "int64",
554          "type": "string"
555        },
556        "schedule": {
557          "type": "string"
558        },
559        "schedule_type": {
560          "type": "string"
561        },
562        "shards": {
563          "format": "int64",
564          "type": "string"
565        },
566        "test_branch": {
567          "type": "string"
568        },
569        "test_build_target": {
570          "type": "string"
571        },
572        "test_name": {
573          "type": "string"
574        },
575        "test_pab_account_id": {
576          "type": "string"
577        },
578        "test_storage_type": {
579          "format": "int64",
580          "type": "string"
581        },
582        "timestamp": {
583          "format": "date-time",
584          "type": "string"
585        }
586      },
587      "type": "object"
588    },
589    "WebappSrcProtoModelScheduleResponseMessage": {
590      "properties": {
591        "has_next": {
592          "type": "boolean"
593        },
594        "schedules": {
595          "description": "A message for representing an individual schedule entry.",
596          "items": {
597            "$ref": "#/definitions/#/definitions/WebappSrcProtoModelScheduleInfoMessage"
598          },
599          "type": "array"
600        }
601      },
602      "type": "object"
603    }
604  },
605  "host": "vtslab-schedule-prod.appspot.com",
606  "info": {
607    "description": "Endpoint API for job_queue.",
608    "title": "job",
609    "version": "v1"
610  },
611  "paths": {
612    "/job/v1/count": {
613      "post": {
614        "operationId": "JobQueueApi_count",
615        "parameters": [
616          {
617            "in": "body",
618            "name": "body",
619            "schema": {
620              "$ref": "#/definitions/WebappSrcProtoModelCountRequestMessage"
621            }
622          }
623        ],
624        "responses": {
625          "200": {
626            "description": "A successful response",
627            "schema": {
628              "$ref": "#/definitions/WebappSrcProtoModelCountResponseMessage"
629            }
630          }
631        }
632      }
633    },
634    "/job/v1/get": {
635      "post": {
636        "operationId": "JobQueueApi_get",
637        "parameters": [
638          {
639            "in": "body",
640            "name": "body",
641            "schema": {
642              "$ref": "#/definitions/WebappSrcProtoModelGetRequestMessage"
643            }
644          }
645        ],
646        "responses": {
647          "200": {
648            "description": "A successful response",
649            "schema": {
650              "$ref": "#/definitions/WebappSrcProtoModelJobResponseMessage"
651            }
652          }
653        }
654      }
655    },
656    "/job/v1/heartbeat": {
657      "post": {
658        "operationId": "JobQueueApi_heartbeat",
659        "parameters": [
660          {
661            "in": "body",
662            "name": "body",
663            "schema": {
664              "$ref": "#/definitions/WebappSrcProtoModelJobMessage"
665            }
666          }
667        ],
668        "responses": {
669          "200": {
670            "description": "A successful response",
671            "schema": {
672              "$ref": "#/definitions/WebappSrcProtoModelJobLeaseResponse"
673            }
674          }
675        }
676      }
677    },
678    "/job/v1/lease": {
679      "post": {
680        "operationId": "JobQueueApi_lease",
681        "parameters": [
682          {
683            "in": "body",
684            "name": "body",
685            "schema": {
686              "$ref": "#/definitions/WebappSrcProtoModelJobMessage"
687            }
688          }
689        ],
690        "responses": {
691          "200": {
692            "description": "A successful response",
693            "schema": {
694              "$ref": "#/definitions/WebappSrcProtoModelJobLeaseResponse"
695            }
696          }
697        }
698      }
699    }
700  },
701  "produces": [
702    "application/json"
703  ],
704  "schemes": [
705    "https"
706  ],
707  "securityDefinitions": {
708    "google_id_token": {
709      "authorizationUrl": "",
710      "flow": "implicit",
711      "type": "oauth2",
712      "x-google-issuer": "https://accounts.google.com",
713      "x-google-jwks_uri": "https://www.googleapis.com/oauth2/v3/certs"
714    }
715  },
716  "swagger": "2.0",
717  "x-google-api-name": "job"
718}