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/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/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/WebappSrcProtoModelDeviceInfoMessage"
142          },
143          "type": "array"
144        },
145        "hostname": {
146          "type": "string"
147        }
148      },
149      "type": "object"
150    },
151    "WebappSrcProtoModelLabDeviceInfoMessage": {
152      "properties": {
153        "device_equipment": {
154          "items": {
155            "type": "string"
156          },
157          "type": "array"
158        },
159        "product": {
160          "type": "string"
161        },
162        "serial": {
163          "type": "string"
164        }
165      },
166      "type": "object"
167    },
168    "WebappSrcProtoModelLabHostInfoMessage": {
169      "properties": {
170        "device": {
171          "description": "A message for representing an individual lab host's device entry.",
172          "items": {
173            "$ref": "#/definitions/WebappSrcProtoModelLabDeviceInfoMessage"
174          },
175          "type": "array"
176        },
177        "host_equipment": {
178          "items": {
179            "type": "string"
180          },
181          "type": "array"
182        },
183        "hostname": {
184          "type": "string"
185        },
186        "ip": {
187          "type": "string"
188        },
189        "script": {
190          "type": "string"
191        },
192        "vtslab_version": {
193          "type": "string"
194        }
195      },
196      "type": "object"
197    },
198    "WebappSrcProtoModelLabInfoMessage": {
199      "properties": {
200        "admin": {
201          "items": {
202            "type": "string"
203          },
204          "type": "array"
205        },
206        "host": {
207          "description": "A message for representing an individual lab's host entry.",
208          "items": {
209            "$ref": "#/definitions/WebappSrcProtoModelLabHostInfoMessage"
210          },
211          "type": "array"
212        },
213        "name": {
214          "type": "string"
215        },
216        "owner": {
217          "type": "string"
218        }
219      },
220      "type": "object"
221    },
222    "WebappSrcProtoModelLabMessage": {
223      "properties": {
224        "admin": {
225          "items": {
226            "type": "string"
227          },
228          "type": "array"
229        },
230        "devices": {
231          "type": "string"
232        },
233        "host_equipment": {
234          "items": {
235            "type": "string"
236          },
237          "type": "array"
238        },
239        "hostname": {
240          "type": "string"
241        },
242        "ip": {
243          "type": "string"
244        },
245        "name": {
246          "type": "string"
247        },
248        "owner": {
249          "type": "string"
250        },
251        "vtslab_version": {
252          "type": "string"
253        }
254      },
255      "type": "object"
256    },
257    "WebappSrcProtoModelLabResponseMessage": {
258      "properties": {
259        "has_next": {
260          "type": "boolean"
261        },
262        "labs": {
263          "description": "A model for representing a LabModel entity.",
264          "items": {
265            "$ref": "#/definitions/WebappSrcProtoModelLabMessage"
266          },
267          "type": "array"
268        }
269      },
270      "type": "object"
271    }
272  },
273  "host": "vtslab-schedule-prod.appspot.com",
274  "info": {
275    "description": "Endpoint API for lab_info.",
276    "title": "lab",
277    "version": "v1"
278  },
279  "paths": {
280    "/lab/v1/clear": {
281      "post": {
282        "operationId": "LabInfoApi_clear",
283        "parameters": [
284          {
285            "in": "body",
286            "name": "body",
287            "schema": {
288              "$ref": "#/definitions/WebappSrcProtoModelLabInfoMessage"
289            }
290          }
291        ],
292        "responses": {
293          "200": {
294            "description": "A successful response",
295            "schema": {
296              "$ref": "#/definitions/WebappSrcProtoModelDefaultResponse"
297            }
298          }
299        }
300      }
301    },
302    "/lab/v1/count": {
303      "post": {
304        "operationId": "LabInfoApi_count",
305        "parameters": [
306          {
307            "in": "body",
308            "name": "body",
309            "schema": {
310              "$ref": "#/definitions/WebappSrcProtoModelCountRequestMessage"
311            }
312          }
313        ],
314        "responses": {
315          "200": {
316            "description": "A successful response",
317            "schema": {
318              "$ref": "#/definitions/WebappSrcProtoModelCountResponseMessage"
319            }
320          }
321        }
322      }
323    },
324    "/lab/v1/get": {
325      "post": {
326        "operationId": "LabInfoApi_get",
327        "parameters": [
328          {
329            "in": "body",
330            "name": "body",
331            "schema": {
332              "$ref": "#/definitions/WebappSrcProtoModelGetRequestMessage"
333            }
334          }
335        ],
336        "responses": {
337          "200": {
338            "description": "A successful response",
339            "schema": {
340              "$ref": "#/definitions/WebappSrcProtoModelLabResponseMessage"
341            }
342          }
343        }
344      }
345    },
346    "/lab/v1/set": {
347      "post": {
348        "operationId": "LabInfoApi_set",
349        "parameters": [
350          {
351            "in": "body",
352            "name": "body",
353            "schema": {
354              "$ref": "#/definitions/WebappSrcProtoModelLabInfoMessage"
355            }
356          }
357        ],
358        "responses": {
359          "200": {
360            "description": "A successful response",
361            "schema": {
362              "$ref": "#/definitions/WebappSrcProtoModelDefaultResponse"
363            }
364          }
365        }
366      }
367    },
368    "/lab/v1/set_version": {
369      "post": {
370        "operationId": "LabInfoApi_setVersion",
371        "parameters": [
372          {
373            "in": "body",
374            "name": "body",
375            "schema": {
376              "$ref": "#/definitions/WebappSrcProtoModelLabHostInfoMessage"
377            }
378          }
379        ],
380        "responses": {
381          "200": {
382            "description": "A successful response",
383            "schema": {
384              "$ref": "#/definitions/WebappSrcProtoModelDefaultResponse"
385            }
386          }
387        }
388      }
389    }
390  },
391  "produces": [
392    "application/json"
393  ],
394  "schemes": [
395    "https"
396  ],
397  "securityDefinitions": {
398    "google_id_token": {
399      "authorizationUrl": "",
400      "flow": "implicit",
401      "type": "oauth2",
402      "x-google-issuer": "https://accounts.google.com",
403      "x-google-jwks_uri": "https://www.googleapis.com/oauth2/v3/certs"
404    }
405  },
406  "swagger": "2.0",
407  "x-google-api-name": "lab"
408}