#160 - Add option to set encoding of response body
[arvados.git] / spec / fixtures / files / zoo.json
1 {
2  "kind": "discovery#describeItem",
3  "name": "zoo",
4  "version": "v1",
5  "description": "Zoo API used for testing",
6  "basePath": "/zoo/",
7  "rootUrl": "https://www.googleapis.com/",
8  "servicePath": "zoo/v1/",
9  "rpcPath": "/rpc",
10  "parameters": {
11   "alt": {
12    "type": "string",
13    "description": "Data format for the response.",
14    "default": "json",
15    "enum": [
16     "json"
17    ],
18    "enumDescriptions": [
19     "Responses with Content-Type of application/json"
20    ],
21    "location": "query"
22   },
23   "fields": {
24    "type": "string",
25    "description": "Selector specifying which fields to include in a partial response.",
26    "location": "query"
27   },
28   "key": {
29    "type": "string",
30    "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.",
31    "location": "query"
32   },
33   "oauth_token": {
34    "type": "string",
35    "description": "OAuth 2.0 token for the current user.",
36    "location": "query"
37   },
38   "prettyPrint": {
39    "type": "boolean",
40    "description": "Returns response with indentations and line breaks.",
41    "default": "true",
42    "location": "query"
43   },
44   "quotaUser": {
45    "type": "string",
46    "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. Overrides userIp if both are provided.",
47    "location": "query"
48   },
49   "userIp": {
50    "type": "string",
51    "description": "IP address of the site where the request originates. Use this if you want to enforce per-user limits.",
52    "location": "query"
53   }
54  },
55  "features": [
56   "dataWrapper"
57  ],
58  "schemas": {
59   "Animal": {
60    "id": "Animal",
61    "type": "object",
62    "properties": {
63     "etag": {
64      "type": "string"
65     },
66     "kind": {
67      "type": "string",
68      "default": "zoo#animal"
69     },
70     "name": {
71      "type": "string"
72     },
73     "photo": {
74      "type": "object",
75      "properties": {
76       "filename": {
77        "type": "string"
78       },
79       "hash": {
80        "type": "string"
81       },
82       "hashAlgorithm": {
83        "type": "string"
84       },
85       "size": {
86        "type": "integer"
87       },
88       "type": {
89        "type": "string"
90       }
91      }
92     }
93    }
94   },
95   "Animal2": {
96    "id": "Animal2",
97    "type": "object",
98    "properties": {
99     "kind": {
100      "type": "string",
101      "default": "zoo#animal"
102     },
103     "name": {
104      "type": "string"
105     }
106    }
107   },
108   "AnimalFeed": {
109    "id": "AnimalFeed",
110    "type": "object",
111    "properties": {
112     "etag": {
113      "type": "string"
114     },
115     "items": {
116      "type": "array",
117      "items": {
118       "$ref": "Animal"
119      }
120     },
121     "kind": {
122      "type": "string",
123      "default": "zoo#animalFeed"
124     }
125    }
126   },
127   "AnimalMap": {
128    "id": "AnimalMap",
129    "type": "object",
130    "properties": {
131     "etag": {
132      "type": "string"
133     },
134     "animals": {
135      "type": "object",
136      "description": "Map of animal id to animal data",
137      "additionalProperties": {
138       "$ref": "Animal"
139      }
140     },
141     "kind": {
142      "type": "string",
143      "default": "zoo#animalMap"
144     }
145    }
146   },
147   "LoadFeed": {
148    "id": "LoadFeed",
149    "type": "object",
150    "properties": {
151     "items": {
152      "type": "array",
153      "items": {
154       "type": "object",
155       "properties": {
156        "doubleVal": {
157         "type": "number"
158        },
159        "nullVal": {
160         "type": "null"
161        },
162        "booleanVal": {
163         "type": "boolean",
164         "description": "True or False."
165        },
166        "anyVal": {
167         "type": "any",
168         "description": "Anything will do."
169        },
170        "enumVal": {
171         "type": "string"
172        },
173        "kind": {
174         "type": "string",
175         "default": "zoo#loadValue"
176        },
177        "longVal": {
178         "type": "integer"
179        },
180        "stringVal": {
181         "type": "string"
182        }
183       }
184      }
185     },
186     "kind": {
187      "type": "string",
188      "default": "zoo#loadFeed"
189     }
190    }
191   }
192  },
193  "methods": {
194   "query": {
195    "path": "query",
196    "id": "bigquery.query",
197    "httpMethod": "GET",
198    "parameters": {
199     "q": {
200      "type": "string",
201      "location": "query",
202      "required": false,
203      "repeated": false
204     },
205     "i": {
206      "type": "integer",
207      "location": "query",
208      "required": false,
209      "repeated": false,
210      "minimum": "0",
211      "maximum": "4294967295",
212      "default": "20"
213     },
214     "n": {
215      "type": "number",
216      "location": "query",
217      "required": false,
218      "repeated": false
219     },
220     "b": {
221      "type": "boolean",
222      "location": "query",
223      "required": false,
224      "repeated": false
225     },
226     "a": {
227      "type": "any",
228      "location": "query",
229      "required": false,
230      "repeated": false
231     },
232     "o": {
233      "type": "object",
234      "location": "query",
235      "required": false,
236      "repeated": false
237     },
238     "e": {
239      "type": "string",
240      "location": "query",
241      "required": false,
242      "repeated": false,
243      "enum": [
244        "foo",
245        "bar"
246      ]
247     },
248     "er": {
249       "type": "string",
250       "location": "query",
251       "required": false,
252       "repeated": true,
253       "enum": [
254         "one",
255         "two",
256         "three"
257       ]
258     },
259     "rr": {
260      "type": "string",
261      "location": "query",
262      "required": false,
263      "repeated": true,
264      "pattern": "[a-z]+"
265     }
266    }
267   }
268  },
269  "resources": {
270   "my": {
271    "resources": {
272     "favorites": {
273      "methods": {
274       "list": {
275        "path": "favorites/@me/mine",
276        "id": "zoo.animals.mine",
277        "httpMethod": "GET",
278        "parameters": {
279         "max-results": {
280           "location": "query",
281           "required": false
282         }
283        }
284       }
285      }
286     }
287    }
288   },
289   "global": {
290    "resources": {
291     "print": {
292      "methods": {
293       "assert": {
294        "path": "global/print/assert",
295        "id": "zoo.animals.mine",
296        "httpMethod": "GET",
297        "parameters": {
298         "max-results": {
299           "location": "query",
300           "required": false
301         }
302        }
303       }
304      }
305     }
306    }
307   },
308   "animals": {
309    "methods": {
310     "crossbreed": {
311      "path": "animals/crossbreed",
312      "id": "zoo.animals.crossbreed",
313      "httpMethod": "POST",
314      "description": "Cross-breed animals",
315      "response": {
316       "$ref": "Animal2"
317      },
318      "mediaUpload": {
319       "accept": [
320        "image/png"
321       ],
322       "protocols": {
323        "simple": {
324         "multipart": true,
325         "path": "upload/activities/{userId}/@self"
326        },
327        "resumable": {
328         "multipart": true,
329         "path": "upload/activities/{userId}/@self"
330        }
331       }
332      }
333     },
334     "delete": {
335      "path": "animals/{name}",
336      "id": "zoo.animals.delete",
337      "httpMethod": "DELETE",
338      "description": "Delete animals",
339      "parameters": {
340       "name": {
341        "location": "path",
342        "required": true,
343        "description": "Name of the animal to delete",
344        "type": "string"
345       }
346      },
347      "parameterOrder": [
348       "name"
349      ]
350     },
351     "get": {
352      "path": "animals/{name}",
353      "id": "zoo.animals.get",
354      "httpMethod": "GET",
355      "description": "Get animals",
356      "supportsMediaDownload": true,
357      "parameters": {
358       "name": {
359        "location": "path",
360        "required": true,
361        "description": "Name of the animal to load",
362        "type": "string"
363       },
364       "projection": {
365        "location": "query",
366        "type": "string",
367        "enum": [
368         "full"
369        ],
370        "enumDescriptions": [
371         "Include everything"
372        ]
373       }
374      },
375      "parameterOrder": [
376       "name"
377      ],
378      "response": {
379       "$ref": "Animal"
380      }
381     },
382     "getmedia": {
383      "path": "animals/{name}",
384      "id": "zoo.animals.get",
385      "httpMethod": "GET",
386      "description": "Get animals",
387      "parameters": {
388       "name": {
389        "location": "path",
390        "required": true,
391        "description": "Name of the animal to load",
392        "type": "string"
393       },
394       "projection": {
395        "location": "query",
396        "type": "string",
397        "enum": [
398         "full"
399        ],
400        "enumDescriptions": [
401         "Include everything"
402        ]
403       }
404      },
405      "parameterOrder": [
406       "name"
407      ]
408     },
409     "insert": {
410      "path": "animals",
411      "id": "zoo.animals.insert",
412      "httpMethod": "POST",
413      "description": "Insert animals",
414      "request": {
415       "$ref": "Animal"
416      },
417      "response": {
418       "$ref": "Animal"
419      },
420      "mediaUpload": {
421       "accept": [
422        "image/png"
423       ],
424       "maxSize": "1KB",
425       "protocols": {
426        "simple": {
427         "multipart": true,
428         "path": "upload/activities/{userId}/@self"
429        },
430        "resumable": {
431         "multipart": true,
432         "path": "upload/activities/{userId}/@self"
433        }
434       }
435      }
436     },
437     "list": {
438      "path": "animals",
439      "id": "zoo.animals.list",
440      "httpMethod": "GET",
441      "description": "List animals",
442      "parameters": {
443       "max-results": {
444        "location": "query",
445        "description": "Maximum number of results to return",
446        "type": "integer",
447        "minimum": "0"
448       },
449       "name": {
450        "location": "query",
451        "description": "Restrict result to animals with this name",
452        "type": "string"
453       },
454       "projection": {
455        "location": "query",
456        "type": "string",
457        "enum": [
458         "full"
459        ],
460        "enumDescriptions": [
461         "Include absolutely everything"
462        ]
463       },
464       "start-token": {
465        "location": "query",
466        "description": "Pagination token",
467        "type": "string"
468       }
469      },
470      "response": {
471       "$ref": "AnimalFeed"
472      }
473     },
474     "patch": {
475      "path": "animals/{name}",
476      "id": "zoo.animals.patch",
477      "httpMethod": "PATCH",
478      "description": "Update animals",
479      "parameters": {
480       "name": {
481        "location": "path",
482        "required": true,
483        "description": "Name of the animal to update",
484        "type": "string"
485       }
486      },
487      "parameterOrder": [
488       "name"
489      ],
490      "request": {
491       "$ref": "Animal"
492      },
493      "response": {
494       "$ref": "Animal"
495      }
496     },
497     "update": {
498      "path": "animals/{name}",
499      "id": "zoo.animals.update",
500      "httpMethod": "PUT",
501      "description": "Update animals",
502      "parameters": {
503       "name": {
504        "location": "path",
505        "description": "Name of the animal to update",
506        "type": "string"
507       }
508      },
509      "parameterOrder": [
510       "name"
511      ],
512      "request": {
513       "$ref": "Animal"
514      },
515      "response": {
516       "$ref": "Animal"
517      }
518     }
519    }
520   },
521   "load": {
522    "methods": {
523     "list": {
524      "path": "load",
525      "id": "zoo.load.list",
526      "httpMethod": "GET",
527      "response": {
528       "$ref": "LoadFeed"
529      }
530     }
531    }
532   },
533   "loadNoTemplate": {
534    "methods": {
535     "list": {
536      "path": "loadNoTemplate",
537      "id": "zoo.loadNoTemplate.list",
538      "httpMethod": "GET"
539     }
540    }
541   },
542   "scopedAnimals": {
543    "methods": {
544     "list": {
545      "path": "scopedanimals",
546      "id": "zoo.scopedAnimals.list",
547      "httpMethod": "GET",
548      "description": "List animals (scoped)",
549      "parameters": {
550       "max-results": {
551        "location": "query",
552        "description": "Maximum number of results to return",
553        "type": "integer",
554        "minimum": "0"
555       },
556       "name": {
557        "location": "query",
558        "description": "Restrict result to animals with this name",
559        "type": "string"
560       },
561       "projection": {
562        "location": "query",
563        "type": "string",
564        "enum": [
565         "full"
566        ],
567        "enumDescriptions": [
568         "Include absolutely everything"
569        ]
570       },
571       "start-token": {
572        "location": "query",
573        "description": "Pagination token",
574        "type": "string"
575       }
576      },
577      "response": {
578       "$ref": "AnimalFeed"
579      }
580     }
581    }
582   }
583  }
584 }