blob: 6489077f07620367edb555b9cc3d40baca621f41 [file] [log] [blame]
Yoshi Automation Botb6971b02020-11-26 17:16:03 -08001{
Anthonios Partheniou10f4b672021-04-13 14:47:53 -04002 "auth": {
3 "oauth2": {
4 "scopes": {
5 "https://www.googleapis.com/auth/cloud-platform": {
6 "description": "See, edit, configure, and delete your Google Cloud Platform data"
7 }
8 }
9 }
10 },
11 "basePath": "",
12 "baseUrl": "https://firebaseml.googleapis.com/",
13 "batchPath": "batch",
14 "canonicalName": "Firebase ML",
15 "description": "Access custom machine learning models hosted via Firebase ML.",
16 "discoveryVersion": "v1",
17 "documentationLink": "https://firebase.google.com",
18 "fullyEncodeReservedExpansion": true,
19 "icons": {
20 "x16": "http://www.google.com/images/icons/product/search-16.gif",
21 "x32": "http://www.google.com/images/icons/product/search-32.gif"
22 },
23 "id": "firebaseml:v1beta2",
24 "kind": "discovery#restDescription",
25 "mtlsRootUrl": "https://firebaseml.mtls.googleapis.com/",
26 "name": "firebaseml",
27 "ownerDomain": "google.com",
28 "ownerName": "Google",
29 "parameters": {
30 "$.xgafv": {
31 "description": "V1 error format.",
32 "enum": [
33 "1",
34 "2"
35 ],
36 "enumDescriptions": [
37 "v1 error format",
38 "v2 error format"
39 ],
40 "location": "query",
41 "type": "string"
42 },
43 "access_token": {
44 "description": "OAuth access token.",
45 "location": "query",
46 "type": "string"
47 },
48 "alt": {
49 "default": "json",
50 "description": "Data format for response.",
51 "enum": [
52 "json",
53 "media",
54 "proto"
55 ],
56 "enumDescriptions": [
57 "Responses with Content-Type of application/json",
58 "Media download with context-dependent Content-Type",
59 "Responses with Content-Type of application/x-protobuf"
60 ],
61 "location": "query",
62 "type": "string"
63 },
64 "callback": {
65 "description": "JSONP",
66 "location": "query",
67 "type": "string"
68 },
69 "fields": {
70 "description": "Selector specifying which fields to include in a partial response.",
71 "location": "query",
72 "type": "string"
73 },
74 "key": {
75 "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
76 "location": "query",
77 "type": "string"
78 },
79 "oauth_token": {
80 "description": "OAuth 2.0 token for the current user.",
81 "location": "query",
82 "type": "string"
83 },
84 "prettyPrint": {
85 "default": "true",
86 "description": "Returns response with indentations and line breaks.",
87 "location": "query",
88 "type": "boolean"
89 },
90 "quotaUser": {
91 "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
92 "location": "query",
93 "type": "string"
94 },
95 "uploadType": {
96 "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
97 "location": "query",
98 "type": "string"
99 },
100 "upload_protocol": {
101 "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
102 "location": "query",
103 "type": "string"
104 }
105 },
106 "protocol": "rest",
107 "resources": {
108 "projects": {
109 "resources": {
110 "models": {
111 "methods": {
112 "create": {
113 "description": "Creates a model in Firebase ML. The longrunning operation will eventually return a Model",
114 "flatPath": "v1beta2/projects/{projectsId}/models",
115 "httpMethod": "POST",
116 "id": "firebaseml.projects.models.create",
117 "parameterOrder": [
118 "parent"
119 ],
120 "parameters": {
121 "parent": {
122 "description": "Required. The parent project resource where the model is to be created. The parent must have the form `projects/{project_id}`",
123 "location": "path",
124 "pattern": "^projects/[^/]+$",
125 "required": true,
126 "type": "string"
yoshi-code-botb6dc1b92021-03-02 11:49:08 -0800127 }
Anthonios Partheniou10f4b672021-04-13 14:47:53 -0400128 },
129 "path": "v1beta2/{+parent}/models",
130 "request": {
131 "$ref": "Model"
132 },
133 "response": {
134 "$ref": "Operation"
135 },
136 "scopes": [
137 "https://www.googleapis.com/auth/cloud-platform"
138 ]
139 },
140 "delete": {
141 "description": "Deletes a model",
142 "flatPath": "v1beta2/projects/{projectsId}/models/{modelsId}",
143 "httpMethod": "DELETE",
144 "id": "firebaseml.projects.models.delete",
145 "parameterOrder": [
146 "name"
147 ],
148 "parameters": {
149 "name": {
150 "description": "Required. The name of the model to delete. The name must have the form `projects/{project_id}/models/{model_id}`",
151 "location": "path",
152 "pattern": "^projects/[^/]+/models/[^/]+$",
153 "required": true,
154 "type": "string"
155 }
156 },
157 "path": "v1beta2/{+name}",
158 "response": {
159 "$ref": "Empty"
160 },
161 "scopes": [
162 "https://www.googleapis.com/auth/cloud-platform"
163 ]
164 },
165 "download": {
166 "description": "Gets Download information for a model. This is meant for downloading model resources onto devices. It gives very limited information about the model.",
167 "flatPath": "v1beta2/projects/{projectsId}/models/{modelsId}:download",
168 "httpMethod": "GET",
169 "id": "firebaseml.projects.models.download",
170 "parameterOrder": [
171 "name"
172 ],
173 "parameters": {
174 "name": {
175 "description": "Required. The name of the model to download. The name must have the form `projects/{project}/models/{model}`",
176 "location": "path",
177 "pattern": "^projects/[^/]+/models/[^/]+$",
178 "required": true,
179 "type": "string"
180 }
181 },
182 "path": "v1beta2/{+name}:download",
183 "response": {
184 "$ref": "DownloadModelResponse"
185 }
186 },
187 "get": {
188 "description": "Gets a model resource.",
189 "flatPath": "v1beta2/projects/{projectsId}/models/{modelsId}",
190 "httpMethod": "GET",
191 "id": "firebaseml.projects.models.get",
192 "parameterOrder": [
193 "name"
194 ],
195 "parameters": {
196 "name": {
197 "description": "Required. The name of the model to get. The name must have the form `projects/{project_id}/models/{model_id}`",
198 "location": "path",
199 "pattern": "^projects/[^/]+/models/[^/]+$",
200 "required": true,
201 "type": "string"
202 }
203 },
204 "path": "v1beta2/{+name}",
205 "response": {
206 "$ref": "Model"
207 },
208 "scopes": [
209 "https://www.googleapis.com/auth/cloud-platform"
210 ]
211 },
212 "list": {
213 "description": "Lists the models",
214 "flatPath": "v1beta2/projects/{projectsId}/models",
215 "httpMethod": "GET",
216 "id": "firebaseml.projects.models.list",
217 "parameterOrder": [
218 "parent"
219 ],
220 "parameters": {
221 "filter": {
222 "description": "A filter for the list e.g. 'tags: abc' to list models which are tagged with \"abc\"",
223 "location": "query",
224 "type": "string"
225 },
226 "pageSize": {
227 "description": "The maximum number of items to return",
228 "format": "int32",
229 "location": "query",
230 "type": "integer"
231 },
232 "pageToken": {
233 "description": "The next_page_token value returned from a previous List request, if any.",
234 "location": "query",
235 "type": "string"
236 },
237 "parent": {
238 "description": "Required. The name of the parent to list models for. The parent must have the form `projects/{project_id}'",
239 "location": "path",
240 "pattern": "^projects/[^/]+$",
241 "required": true,
242 "type": "string"
243 }
244 },
245 "path": "v1beta2/{+parent}/models",
246 "response": {
247 "$ref": "ListModelsResponse"
248 },
249 "scopes": [
250 "https://www.googleapis.com/auth/cloud-platform"
251 ]
252 },
253 "patch": {
254 "description": "Updates a model. The longrunning operation will eventually return a Model.",
255 "flatPath": "v1beta2/projects/{projectsId}/models/{modelsId}",
256 "httpMethod": "PATCH",
257 "id": "firebaseml.projects.models.patch",
258 "parameterOrder": [
259 "name"
260 ],
261 "parameters": {
262 "name": {
263 "description": "The resource name of the Model. Model names have the form `projects/{project_id}/models/{model_id}` The name is ignored when creating a model.",
264 "location": "path",
265 "pattern": "^projects/[^/]+/models/[^/]+$",
266 "required": true,
267 "type": "string"
268 },
269 "updateMask": {
270 "description": "The update mask",
271 "format": "google-fieldmask",
272 "location": "query",
273 "type": "string"
274 }
275 },
276 "path": "v1beta2/{+name}",
277 "request": {
278 "$ref": "Model"
279 },
280 "response": {
281 "$ref": "Operation"
282 },
283 "scopes": [
284 "https://www.googleapis.com/auth/cloud-platform"
285 ]
yoshi-code-botb6dc1b92021-03-02 11:49:08 -0800286 }
Anthonios Partheniou10f4b672021-04-13 14:47:53 -0400287 }
Yoshi Automation Botb6971b02020-11-26 17:16:03 -0800288 },
Anthonios Partheniou10f4b672021-04-13 14:47:53 -0400289 "operations": {
290 "methods": {
291 "get": {
292 "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
293 "flatPath": "v1beta2/projects/{projectsId}/operations/{operationsId}",
294 "httpMethod": "GET",
295 "id": "firebaseml.projects.operations.get",
296 "parameterOrder": [
297 "name"
298 ],
299 "parameters": {
300 "name": {
301 "description": "The name of the operation resource.",
302 "location": "path",
303 "pattern": "^projects/[^/]+/operations/[^/]+$",
304 "required": true,
305 "type": "string"
yoshi-code-botb6dc1b92021-03-02 11:49:08 -0800306 }
Anthonios Partheniou10f4b672021-04-13 14:47:53 -0400307 },
308 "path": "v1beta2/{+name}",
309 "response": {
310 "$ref": "Operation"
311 },
312 "scopes": [
313 "https://www.googleapis.com/auth/cloud-platform"
314 ]
Yoshi Automation Botb6971b02020-11-26 17:16:03 -0800315 }
Anthonios Partheniou10f4b672021-04-13 14:47:53 -0400316 }
Yoshi Automation Botb6971b02020-11-26 17:16:03 -0800317 }
Anthonios Partheniou10f4b672021-04-13 14:47:53 -0400318 }
319 }
320 },
yoshi-code-bot33237a82021-06-09 00:26:03 -0700321 "revision": "20210607",
Anthonios Partheniou10f4b672021-04-13 14:47:53 -0400322 "rootUrl": "https://firebaseml.googleapis.com/",
323 "schemas": {
324 "DownloadModelResponse": {
325 "description": "The response for downloading a model to device.",
326 "id": "DownloadModelResponse",
327 "properties": {
328 "downloadUri": {
329 "description": "Output only. A download URI for the model/zip file.",
330 "readOnly": true,
331 "type": "string"
Yoshi Automation Botb6971b02020-11-26 17:16:03 -0800332 },
Anthonios Partheniou10f4b672021-04-13 14:47:53 -0400333 "expireTime": {
334 "description": "Output only. The time that the download URI link expires. If the link has expired, the REST call must be repeated.",
335 "format": "google-datetime",
336 "readOnly": true,
337 "type": "string"
yoshi-code-botb6dc1b92021-03-02 11:49:08 -0800338 },
Anthonios Partheniou10f4b672021-04-13 14:47:53 -0400339 "modelFormat": {
340 "description": "Output only. The format of the model being downloaded.",
341 "enum": [
342 "MODEL_FORMAT_UNSPECIFIED",
343 "TFLITE"
344 ],
345 "enumDescriptions": [
346 "Unknown format",
347 "TFLite model"
348 ],
349 "readOnly": true,
350 "type": "string"
yoshi-code-botb6dc1b92021-03-02 11:49:08 -0800351 },
Anthonios Partheniou10f4b672021-04-13 14:47:53 -0400352 "sizeBytes": {
353 "description": "Output only. The size of the file(s), if this information is available.",
354 "format": "int64",
355 "readOnly": true,
356 "type": "string"
Yoshi Automation Botb6971b02020-11-26 17:16:03 -0800357 }
Anthonios Partheniou10f4b672021-04-13 14:47:53 -0400358 },
359 "type": "object"
Yoshi Automation Botb6971b02020-11-26 17:16:03 -0800360 },
Anthonios Partheniou10f4b672021-04-13 14:47:53 -0400361 "Empty": {
362 "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.",
363 "id": "Empty",
364 "properties": {},
365 "type": "object"
366 },
367 "ListModelsResponse": {
368 "description": "The response for list models",
369 "id": "ListModelsResponse",
370 "properties": {
371 "models": {
372 "description": "The list of models",
373 "items": {
374 "$ref": "Model"
375 },
376 "type": "array"
377 },
378 "nextPageToken": {
379 "description": "Token to retrieve the next page of results, or empty if there are no more results in the list.",
380 "type": "string"
381 }
382 },
383 "type": "object"
384 },
385 "Model": {
386 "description": "An ML model hosted in Firebase ML",
387 "id": "Model",
388 "properties": {
389 "activeOperations": {
390 "description": "Output only. Lists operation ids associated with this model whose status is NOT done.",
391 "items": {
392 "$ref": "Operation"
393 },
394 "readOnly": true,
395 "type": "array"
396 },
397 "createTime": {
398 "description": "Output only. Timestamp when this model was created in Firebase ML.",
399 "format": "google-datetime",
400 "readOnly": true,
401 "type": "string"
402 },
403 "displayName": {
404 "description": "Required. The name of the model to create. The name can be up to 32 characters long and can consist only of ASCII Latin letters A-Z and a-z, underscores(_) and ASCII digits 0-9. It must start with a letter.",
405 "type": "string"
406 },
407 "etag": {
408 "description": "Output only. See RFC7232 https://tools.ietf.org/html/rfc7232#section-2.3",
409 "readOnly": true,
410 "type": "string"
411 },
412 "modelHash": {
413 "description": "Output only. The model_hash will change if a new file is available for download.",
414 "readOnly": true,
415 "type": "string"
416 },
417 "name": {
418 "description": "The resource name of the Model. Model names have the form `projects/{project_id}/models/{model_id}` The name is ignored when creating a model.",
419 "type": "string"
420 },
421 "state": {
422 "$ref": "ModelState",
423 "description": "State common to all model types. Includes publishing and validation information."
424 },
425 "tags": {
426 "description": "User defined tags which can be used to group/filter models during listing",
427 "items": {
428 "type": "string"
429 },
430 "type": "array"
431 },
432 "tfliteModel": {
433 "$ref": "TfLiteModel",
434 "description": "A TFLite Model"
435 },
436 "updateTime": {
437 "description": "Output only. Timestamp when this model was updated in Firebase ML.",
438 "format": "google-datetime",
439 "readOnly": true,
440 "type": "string"
441 }
442 },
443 "type": "object"
444 },
445 "ModelOperationMetadata": {
446 "description": "This is returned in the longrunning operations for create/update.",
447 "id": "ModelOperationMetadata",
448 "properties": {
449 "basicOperationStatus": {
450 "enum": [
451 "BASIC_OPERATION_STATUS_UNSPECIFIED",
452 "BASIC_OPERATION_STATUS_UPLOADING",
453 "BASIC_OPERATION_STATUS_VERIFYING"
454 ],
455 "enumDescriptions": [
456 "The status is unspecified",
457 "The model file is being uploaded",
458 "The model file is being verified"
459 ],
460 "type": "string"
461 },
462 "name": {
463 "description": "The name of the model we are creating/updating The name must have the form `projects/{project_id}/models/{model_id}`",
464 "type": "string"
465 }
466 },
467 "type": "object"
468 },
469 "ModelState": {
470 "description": "State common to all model types. Includes publishing and validation information.",
471 "id": "ModelState",
472 "properties": {
473 "published": {
474 "description": "Indicates if this model has been published.",
475 "type": "boolean"
476 },
477 "validationError": {
478 "$ref": "Status",
479 "description": "Output only. Indicates the latest validation error on the model if any. A model may have validation errors if there were problems during the model creation/update. e.g. in the case of a TfLiteModel, if a tflite model file was missing or in the wrong format. This field will be empty for valid models.",
480 "readOnly": true
481 }
482 },
483 "type": "object"
484 },
485 "Operation": {
486 "description": "This resource represents a long-running operation that is the result of a network API call.",
487 "id": "Operation",
488 "properties": {
489 "done": {
490 "description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.",
491 "type": "boolean"
492 },
493 "error": {
494 "$ref": "Status",
495 "description": "The error result of the operation in case of failure or cancellation."
496 },
497 "metadata": {
498 "additionalProperties": {
499 "description": "Properties of the object. Contains field @type with type URL.",
500 "type": "any"
501 },
502 "description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.",
503 "type": "object"
504 },
505 "name": {
506 "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.",
507 "type": "string"
508 },
509 "response": {
510 "additionalProperties": {
511 "description": "Properties of the object. Contains field @type with type URL.",
512 "type": "any"
513 },
514 "description": "The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.",
515 "type": "object"
516 }
517 },
518 "type": "object"
519 },
520 "Status": {
521 "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).",
522 "id": "Status",
523 "properties": {
524 "code": {
525 "description": "The status code, which should be an enum value of google.rpc.Code.",
526 "format": "int32",
527 "type": "integer"
528 },
529 "details": {
530 "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
531 "items": {
532 "additionalProperties": {
533 "description": "Properties of the object. Contains field @type with type URL.",
534 "type": "any"
535 },
536 "type": "object"
537 },
538 "type": "array"
539 },
540 "message": {
541 "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.",
542 "type": "string"
543 }
544 },
545 "type": "object"
546 },
547 "TfLiteModel": {
548 "description": "Information that is specific to TfLite models.",
549 "id": "TfLiteModel",
550 "properties": {
551 "automlModel": {
552 "description": "The AutoML model id referencing a model you created with the AutoML API. The name should have format 'projects//locations//models/' (This is the model resource name returned from the AutoML API)",
553 "type": "string"
554 },
555 "gcsTfliteUri": {
556 "description": "The TfLite file containing the model. (Stored in Google Cloud). The gcs_tflite_uri should have form: gs://some-bucket/some-model.tflite Note: If you update the file in the original location, it is necessary to call UpdateModel for ML to pick up and validate the updated file.",
557 "type": "string"
558 },
559 "sizeBytes": {
560 "description": "Output only. The size of the TFLite model",
561 "readOnly": true,
562 "type": "string"
563 }
564 },
565 "type": "object"
566 }
567 },
568 "servicePath": "",
569 "title": "Firebase ML API",
570 "version": "v1beta2",
571 "version_module": true
yoshi-code-botb6dc1b92021-03-02 11:49:08 -0800572}