google-api-client 0.8.3 → 0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (497) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +20 -0
  3. data/.rspec +2 -0
  4. data/.rubocop.yml +7 -0
  5. data/.rubocop_todo.yml +63 -0
  6. data/.travis.yml +22 -0
  7. data/.yardopts +12 -0
  8. data/CHANGELOG.md +52 -2
  9. data/CONTRIBUTING.md +31 -0
  10. data/Gemfile +35 -1
  11. data/MIGRATING.md +171 -0
  12. data/README.md +181 -148
  13. data/Rakefile +1 -40
  14. data/api_names.yaml +1036 -0
  15. data/api_names_out.yaml +26053 -0
  16. data/bin/generate-api +95 -0
  17. data/generated/google/apis/adexchangebuyer_v1_3/classes.rb +1335 -0
  18. data/generated/google/apis/adexchangebuyer_v1_3/representations.rb +446 -0
  19. data/generated/google/apis/adexchangebuyer_v1_3/service.rb +872 -0
  20. data/generated/google/apis/adexchangebuyer_v1_3.rb +35 -0
  21. data/generated/google/apis/adexchangeseller_v2_0/classes.rb +792 -0
  22. data/generated/google/apis/adexchangeseller_v2_0/representations.rb +309 -0
  23. data/generated/google/apis/adexchangeseller_v2_0/service.rb +668 -0
  24. data/generated/google/apis/adexchangeseller_v2_0.rb +38 -0
  25. data/generated/google/apis/admin_datatransfer_v1/classes.rb +267 -0
  26. data/generated/google/apis/admin_datatransfer_v1/representations.rb +118 -0
  27. data/generated/google/apis/admin_datatransfer_v1/service.rb +262 -0
  28. data/generated/google/apis/admin_datatransfer_v1.rb +37 -0
  29. data/generated/google/apis/admin_directory_v1/classes.rb +3141 -0
  30. data/generated/google/apis/admin_directory_v1/representations.rb +1029 -0
  31. data/generated/google/apis/admin_directory_v1/service.rb +3818 -0
  32. data/generated/google/apis/admin_directory_v1.rb +113 -0
  33. data/generated/google/apis/admin_reports_v1/classes.rb +582 -0
  34. data/generated/google/apis/admin_reports_v1/representations.rb +231 -0
  35. data/generated/google/apis/admin_reports_v1/service.rb +336 -0
  36. data/generated/google/apis/admin_reports_v1.rb +38 -0
  37. data/generated/google/apis/adsense_v1_4/classes.rb +1285 -0
  38. data/generated/google/apis/adsense_v1_4/representations.rb +494 -0
  39. data/generated/google/apis/adsense_v1_4/service.rb +1714 -0
  40. data/generated/google/apis/adsense_v1_4.rb +38 -0
  41. data/generated/google/apis/adsensehost_v4_1/classes.rb +834 -0
  42. data/generated/google/apis/adsensehost_v4_1/representations.rb +327 -0
  43. data/generated/google/apis/adsensehost_v4_1/service.rb +1164 -0
  44. data/generated/google/apis/adsensehost_v4_1.rb +35 -0
  45. data/generated/google/apis/analytics_v3/classes.rb +5118 -0
  46. data/generated/google/apis/analytics_v3/representations.rb +1662 -0
  47. data/generated/google/apis/analytics_v3/service.rb +3568 -0
  48. data/generated/google/apis/analytics_v3.rb +49 -0
  49. data/generated/google/apis/androidenterprise_v1/classes.rb +1443 -0
  50. data/generated/google/apis/androidenterprise_v1/representations.rb +538 -0
  51. data/generated/google/apis/androidenterprise_v1/service.rb +2602 -0
  52. data/generated/google/apis/androidenterprise_v1.rb +35 -0
  53. data/generated/google/apis/androidpublisher_v2/classes.rb +1411 -0
  54. data/generated/google/apis/androidpublisher_v2/representations.rb +646 -0
  55. data/generated/google/apis/androidpublisher_v2/service.rb +2338 -0
  56. data/generated/google/apis/androidpublisher_v2.rb +34 -0
  57. data/generated/google/apis/appengine_v1beta4/classes.rb +1532 -0
  58. data/generated/google/apis/appengine_v1beta4/representations.rb +526 -0
  59. data/generated/google/apis/appengine_v1beta4/service.rb +476 -0
  60. data/generated/google/apis/appengine_v1beta4.rb +35 -0
  61. data/generated/google/apis/appsactivity_v1/classes.rb +392 -0
  62. data/generated/google/apis/appsactivity_v1/representations.rb +184 -0
  63. data/generated/google/apis/appsactivity_v1/service.rb +128 -0
  64. data/generated/google/apis/appsactivity_v1.rb +46 -0
  65. data/generated/google/apis/appstate_v1/classes.rb +154 -0
  66. data/generated/google/apis/appstate_v1/representations.rb +79 -0
  67. data/generated/google/apis/appstate_v1/service.rb +260 -0
  68. data/generated/google/apis/appstate_v1.rb +34 -0
  69. data/generated/google/apis/autoscaler_v1beta2/classes.rb +747 -0
  70. data/generated/google/apis/autoscaler_v1beta2/representations.rb +281 -0
  71. data/generated/google/apis/autoscaler_v1beta2/service.rb +478 -0
  72. data/generated/google/apis/autoscaler_v1beta2.rb +38 -0
  73. data/generated/google/apis/bigquery_v2/classes.rb +2471 -0
  74. data/generated/google/apis/bigquery_v2/representations.rb +816 -0
  75. data/generated/google/apis/bigquery_v2/service.rb +982 -0
  76. data/generated/google/apis/bigquery_v2.rb +52 -0
  77. data/generated/google/apis/blogger_v3/classes.rb +1354 -0
  78. data/generated/google/apis/blogger_v3/representations.rb +562 -0
  79. data/generated/google/apis/blogger_v3/service.rb +1587 -0
  80. data/generated/google/apis/blogger_v3.rb +37 -0
  81. data/generated/google/apis/books_v1/classes.rb +3956 -0
  82. data/generated/google/apis/books_v1/representations.rb +1538 -0
  83. data/generated/google/apis/books_v1/service.rb +2290 -0
  84. data/generated/google/apis/books_v1.rb +34 -0
  85. data/generated/google/apis/calendar_v3/classes.rb +1742 -0
  86. data/generated/google/apis/calendar_v3/representations.rb +567 -0
  87. data/generated/google/apis/calendar_v3/service.rb +1968 -0
  88. data/generated/google/apis/calendar_v3.rb +37 -0
  89. data/generated/google/apis/civicinfo_v2/classes.rb +1127 -0
  90. data/generated/google/apis/civicinfo_v2/representations.rb +383 -0
  91. data/generated/google/apis/civicinfo_v2/service.rb +279 -0
  92. data/{lib/google/api_client/service_account.rb → generated/google/apis/civicinfo_v2.rb} +18 -8
  93. data/generated/google/apis/classroom_v1/classes.rb +512 -0
  94. data/generated/google/apis/classroom_v1/representations.rb +217 -0
  95. data/generated/google/apis/classroom_v1/service.rb +970 -0
  96. data/generated/google/apis/classroom_v1.rb +49 -0
  97. data/generated/google/apis/classroom_v1beta1/classes.rb +447 -0
  98. data/generated/google/apis/classroom_v1beta1/representations.rb +190 -0
  99. data/generated/google/apis/classroom_v1beta1/service.rb +791 -0
  100. data/generated/google/apis/classroom_v1beta1.rb +49 -0
  101. data/generated/google/apis/cloudbilling_v1/classes.rb +169 -0
  102. data/generated/google/apis/cloudbilling_v1/representations.rb +79 -0
  103. data/generated/google/apis/cloudbilling_v1/service.rb +258 -0
  104. data/generated/google/apis/cloudbilling_v1.rb +35 -0
  105. data/generated/google/apis/clouddebugger_v2/classes.rb +1004 -0
  106. data/generated/google/apis/clouddebugger_v2/representations.rb +410 -0
  107. data/generated/google/apis/clouddebugger_v2/service.rb +370 -0
  108. data/generated/google/apis/clouddebugger_v2.rb +41 -0
  109. data/generated/google/apis/cloudmonitoring_v2beta2/classes.rb +679 -0
  110. data/generated/google/apis/cloudmonitoring_v2beta2/representations.rb +311 -0
  111. data/generated/google/apis/cloudmonitoring_v2beta2/service.rb +452 -0
  112. data/generated/google/apis/cloudmonitoring_v2beta2.rb +37 -0
  113. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +437 -0
  114. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +188 -0
  115. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +623 -0
  116. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +38 -0
  117. data/generated/google/apis/cloudtrace_v1/classes.rb +188 -0
  118. data/generated/google/apis/cloudtrace_v1/representations.rb +92 -0
  119. data/generated/google/apis/cloudtrace_v1/service.rb +190 -0
  120. data/generated/google/apis/cloudtrace_v1.rb +35 -0
  121. data/generated/google/apis/clouduseraccounts_beta/classes.rb +823 -0
  122. data/generated/google/apis/clouduseraccounts_beta/representations.rb +313 -0
  123. data/generated/google/apis/clouduseraccounts_beta/service.rb +854 -0
  124. data/generated/google/apis/clouduseraccounts_beta.rb +43 -0
  125. data/generated/google/apis/compute_beta/classes.rb +9128 -0
  126. data/generated/google/apis/compute_beta/representations.rb +3048 -0
  127. data/generated/google/apis/compute_beta/service.rb +10154 -0
  128. data/generated/google/apis/compute_beta.rb +49 -0
  129. data/generated/google/apis/compute_v1/classes.rb +8681 -0
  130. data/generated/google/apis/compute_v1/representations.rb +2895 -0
  131. data/generated/google/apis/compute_v1/service.rb +9252 -0
  132. data/generated/google/apis/compute_v1.rb +49 -0
  133. data/generated/google/apis/container_v1/classes.rb +463 -0
  134. data/generated/google/apis/container_v1/representations.rb +175 -0
  135. data/generated/google/apis/container_v1/service.rb +367 -0
  136. data/generated/google/apis/container_v1.rb +35 -0
  137. data/generated/google/apis/container_v1beta1/classes.rb +466 -0
  138. data/generated/google/apis/container_v1beta1/representations.rb +177 -0
  139. data/generated/google/apis/container_v1beta1/service.rb +394 -0
  140. data/generated/google/apis/container_v1beta1.rb +35 -0
  141. data/generated/google/apis/content_v2/classes.rb +5986 -0
  142. data/generated/google/apis/content_v2/representations.rb +2288 -0
  143. data/generated/google/apis/content_v2/service.rb +2338 -0
  144. data/generated/google/apis/content_v2.rb +35 -0
  145. data/generated/google/apis/coordinate_v1/classes.rb +669 -0
  146. data/generated/google/apis/coordinate_v1/representations.rb +285 -0
  147. data/generated/google/apis/coordinate_v1/service.rb +678 -0
  148. data/generated/google/apis/coordinate_v1.rb +37 -0
  149. data/generated/google/apis/customsearch_v1/classes.rb +771 -0
  150. data/generated/google/apis/customsearch_v1/representations.rb +276 -0
  151. data/generated/google/apis/customsearch_v1/service.rb +207 -0
  152. data/{lib/google/api_client/auth/compute_service_account.rb → generated/google/apis/customsearch_v1.rb} +13 -10
  153. data/generated/google/apis/datastore_v1beta2/classes.rb +1186 -0
  154. data/generated/google/apis/datastore_v1beta2/representations.rb +526 -0
  155. data/generated/google/apis/datastore_v1beta2/service.rb +294 -0
  156. data/generated/google/apis/datastore_v1beta2.rb +40 -0
  157. data/generated/google/apis/deploymentmanager_v2/classes.rb +1091 -0
  158. data/generated/google/apis/deploymentmanager_v2/representations.rb +422 -0
  159. data/generated/google/apis/deploymentmanager_v2/service.rb +857 -0
  160. data/generated/google/apis/deploymentmanager_v2.rb +44 -0
  161. data/generated/google/apis/deploymentmanager_v2beta2/classes.rb +843 -0
  162. data/generated/google/apis/deploymentmanager_v2beta2/representations.rb +306 -0
  163. data/generated/google/apis/deploymentmanager_v2beta2/service.rb +689 -0
  164. data/generated/google/apis/deploymentmanager_v2beta2.rb +44 -0
  165. data/generated/google/apis/dfareporting_v2_1/classes.rb +10770 -0
  166. data/generated/google/apis/dfareporting_v2_1/representations.rb +3438 -0
  167. data/generated/google/apis/dfareporting_v2_1/service.rb +8585 -0
  168. data/generated/google/apis/dfareporting_v2_1.rb +37 -0
  169. data/generated/google/apis/discovery_v1/classes.rb +961 -0
  170. data/generated/google/apis/discovery_v1/representations.rb +357 -0
  171. data/generated/google/apis/discovery_v1/service.rb +142 -0
  172. data/generated/google/apis/discovery_v1.rb +32 -0
  173. data/generated/google/apis/dns_v1/classes.rb +406 -0
  174. data/generated/google/apis/dns_v1/representations.rb +151 -0
  175. data/generated/google/apis/dns_v1/service.rb +454 -0
  176. data/generated/google/apis/dns_v1.rb +44 -0
  177. data/generated/google/apis/doubleclickbidmanager_v1/classes.rb +716 -0
  178. data/generated/google/apis/doubleclickbidmanager_v1/representations.rb +298 -0
  179. data/generated/google/apis/doubleclickbidmanager_v1/service.rb +341 -0
  180. data/generated/google/apis/doubleclickbidmanager_v1.rb +31 -0
  181. data/generated/google/apis/doubleclicksearch_v2/classes.rb +956 -0
  182. data/generated/google/apis/doubleclicksearch_v2/representations.rb +316 -0
  183. data/generated/google/apis/doubleclicksearch_v2/service.rb +480 -0
  184. data/generated/google/apis/doubleclicksearch_v2.rb +35 -0
  185. data/generated/google/apis/drive_v2/classes.rb +2562 -0
  186. data/generated/google/apis/drive_v2/representations.rb +795 -0
  187. data/generated/google/apis/drive_v2/service.rb +2696 -0
  188. data/generated/google/apis/drive_v2.rb +58 -0
  189. data/generated/google/apis/drive_v3/classes.rb +1534 -0
  190. data/generated/google/apis/drive_v3/representations.rb +497 -0
  191. data/generated/google/apis/drive_v3/service.rb +1541 -0
  192. data/generated/google/apis/drive_v3.rb +55 -0
  193. data/generated/google/apis/fitness_v1/classes.rb +885 -0
  194. data/generated/google/apis/fitness_v1/representations.rb +320 -0
  195. data/generated/google/apis/fitness_v1/service.rb +675 -0
  196. data/generated/google/apis/fitness_v1.rb +49 -0
  197. data/generated/google/apis/fusiontables_v2/classes.rb +1048 -0
  198. data/generated/google/apis/fusiontables_v2/representations.rb +409 -0
  199. data/generated/google/apis/fusiontables_v2/service.rb +1463 -0
  200. data/generated/google/apis/fusiontables_v2.rb +37 -0
  201. data/generated/google/apis/games_configuration_v1configuration/classes.rb +506 -0
  202. data/generated/google/apis/games_configuration_v1configuration/representations.rb +206 -0
  203. data/generated/google/apis/games_configuration_v1configuration/service.rb +565 -0
  204. data/generated/google/apis/games_configuration_v1configuration.rb +34 -0
  205. data/generated/google/apis/games_management_v1management/classes.rb +524 -0
  206. data/generated/google/apis/games_management_v1management/representations.rb +231 -0
  207. data/generated/google/apis/games_management_v1management/service.rb +994 -0
  208. data/generated/google/apis/games_management_v1management.rb +37 -0
  209. data/generated/google/apis/games_v1/classes.rb +4617 -0
  210. data/generated/google/apis/games_v1/representations.rb +1584 -0
  211. data/generated/google/apis/games_v1/service.rb +2290 -0
  212. data/generated/google/apis/games_v1.rb +40 -0
  213. data/generated/google/apis/gan_v1beta1/classes.rb +1428 -0
  214. data/generated/google/apis/gan_v1beta1/representations.rb +428 -0
  215. data/generated/google/apis/gan_v1beta1/service.rb +682 -0
  216. data/generated/google/apis/gan_v1beta1.rb +31 -0
  217. data/generated/google/apis/genomics_v1/classes.rb +2609 -0
  218. data/generated/google/apis/genomics_v1/representations.rb +909 -0
  219. data/generated/google/apis/genomics_v1/service.rb +1676 -0
  220. data/generated/google/apis/genomics_v1.rb +49 -0
  221. data/generated/google/apis/genomics_v1beta2/classes.rb +3288 -0
  222. data/generated/google/apis/genomics_v1beta2/representations.rb +1194 -0
  223. data/generated/google/apis/genomics_v1beta2/service.rb +2392 -0
  224. data/generated/google/apis/genomics_v1beta2.rb +46 -0
  225. data/generated/google/apis/gmail_v1/classes.rb +794 -0
  226. data/generated/google/apis/gmail_v1/representations.rb +339 -0
  227. data/generated/google/apis/gmail_v1/service.rb +1470 -0
  228. data/generated/google/apis/gmail_v1.rb +52 -0
  229. data/generated/google/apis/groupsmigration_v1/classes.rb +51 -0
  230. data/generated/google/apis/groupsmigration_v1/representations.rb +38 -0
  231. data/generated/google/apis/groupsmigration_v1/service.rb +110 -0
  232. data/generated/google/apis/groupsmigration_v1.rb +34 -0
  233. data/generated/google/apis/groupssettings_v1/classes.rb +221 -0
  234. data/generated/google/apis/groupssettings_v1/representations.rb +64 -0
  235. data/generated/google/apis/groupssettings_v1/service.rb +179 -0
  236. data/generated/google/apis/groupssettings_v1.rb +34 -0
  237. data/generated/google/apis/identitytoolkit_v3/classes.rb +1466 -0
  238. data/generated/google/apis/identitytoolkit_v3/representations.rb +509 -0
  239. data/generated/google/apis/identitytoolkit_v3/service.rb +581 -0
  240. data/generated/google/apis/identitytoolkit_v3.rb +31 -0
  241. data/generated/google/apis/kgsearch_v1/classes.rb +59 -0
  242. data/generated/google/apis/kgsearch_v1/representations.rb +39 -0
  243. data/generated/google/apis/kgsearch_v1/service.rb +111 -0
  244. data/{spec/google/api_client/request_spec.rb → generated/google/apis/kgsearch_v1.rb} +16 -13
  245. data/generated/google/apis/licensing_v1/classes.rb +132 -0
  246. data/generated/google/apis/licensing_v1/representations.rb +68 -0
  247. data/generated/google/apis/licensing_v1/service.rb +369 -0
  248. data/generated/google/apis/licensing_v1.rb +34 -0
  249. data/generated/google/apis/logging_v1beta3/classes.rb +1079 -0
  250. data/generated/google/apis/logging_v1beta3/representations.rb +366 -0
  251. data/generated/google/apis/logging_v1beta3/service.rb +1001 -0
  252. data/generated/google/apis/logging_v1beta3.rb +47 -0
  253. data/generated/google/apis/manager_v1beta2/classes.rb +1287 -0
  254. data/generated/google/apis/manager_v1beta2/representations.rb +536 -0
  255. data/generated/google/apis/manager_v1beta2/service.rb +372 -0
  256. data/generated/google/apis/manager_v1beta2.rb +53 -0
  257. data/generated/google/apis/mapsengine_v1/classes.rb +2873 -0
  258. data/generated/google/apis/mapsengine_v1/representations.rb +1235 -0
  259. data/generated/google/apis/mapsengine_v1/service.rb +3388 -0
  260. data/generated/google/apis/mapsengine_v1.rb +38 -0
  261. data/generated/google/apis/mirror_v1/classes.rb +1072 -0
  262. data/generated/google/apis/mirror_v1/representations.rb +350 -0
  263. data/generated/google/apis/mirror_v1/service.rb +977 -0
  264. data/generated/google/apis/mirror_v1.rb +37 -0
  265. data/generated/google/apis/oauth2_v2/classes.rb +245 -0
  266. data/generated/google/apis/oauth2_v2/representations.rb +94 -0
  267. data/generated/google/apis/oauth2_v2/service.rb +199 -0
  268. data/generated/google/apis/oauth2_v2.rb +43 -0
  269. data/generated/google/apis/pagespeedonline_v2/classes.rb +614 -0
  270. data/generated/google/apis/pagespeedonline_v2/representations.rb +244 -0
  271. data/generated/google/apis/pagespeedonline_v2/service.rb +119 -0
  272. data/generated/google/apis/pagespeedonline_v2.rb +32 -0
  273. data/generated/google/apis/partners_v2/classes.rb +942 -0
  274. data/generated/google/apis/partners_v2/representations.rb +402 -0
  275. data/generated/google/apis/partners_v2/service.rb +400 -0
  276. data/generated/google/apis/partners_v2.rb +32 -0
  277. data/generated/google/apis/plus_domains_v1/classes.rb +2609 -0
  278. data/generated/google/apis/plus_domains_v1/representations.rb +987 -0
  279. data/generated/google/apis/plus_domains_v1/service.rb +904 -0
  280. data/generated/google/apis/plus_domains_v1.rb +61 -0
  281. data/generated/google/apis/plus_v1/classes.rb +2094 -0
  282. data/generated/google/apis/plus_v1/representations.rb +805 -0
  283. data/generated/google/apis/plus_v1/service.rb +470 -0
  284. data/generated/google/apis/plus_v1.rb +43 -0
  285. data/generated/google/apis/prediction_v1_6/classes.rb +751 -0
  286. data/generated/google/apis/prediction_v1_6/representations.rb +327 -0
  287. data/generated/google/apis/prediction_v1_6/service.rb +380 -0
  288. data/generated/google/apis/prediction_v1_6.rb +44 -0
  289. data/generated/google/apis/proximitybeacon_v1beta1/classes.rb +639 -0
  290. data/generated/google/apis/proximitybeacon_v1beta1/representations.rb +274 -0
  291. data/generated/google/apis/proximitybeacon_v1beta1/service.rb +591 -0
  292. data/generated/google/apis/proximitybeacon_v1beta1.rb +31 -0
  293. data/generated/google/apis/pubsub_v1/classes.rb +614 -0
  294. data/generated/google/apis/pubsub_v1/representations.rb +281 -0
  295. data/generated/google/apis/pubsub_v1/service.rb +774 -0
  296. data/generated/google/apis/pubsub_v1.rb +37 -0
  297. data/generated/google/apis/pubsub_v1beta2/classes.rb +620 -0
  298. data/generated/google/apis/pubsub_v1beta2/representations.rb +282 -0
  299. data/generated/google/apis/pubsub_v1beta2/service.rb +774 -0
  300. data/generated/google/apis/pubsub_v1beta2.rb +37 -0
  301. data/generated/google/apis/qpx_express_v1/classes.rb +1268 -0
  302. data/generated/google/apis/qpx_express_v1/representations.rb +424 -0
  303. data/generated/google/apis/qpx_express_v1/service.rb +100 -0
  304. data/generated/google/apis/qpx_express_v1.rb +31 -0
  305. data/generated/google/apis/replicapool_v1beta2/classes.rb +631 -0
  306. data/generated/google/apis/replicapool_v1beta2/representations.rb +236 -0
  307. data/generated/google/apis/replicapool_v1beta2/service.rb +608 -0
  308. data/generated/google/apis/replicapool_v1beta2.rb +44 -0
  309. data/generated/google/apis/replicapoolupdater_v1beta1/classes.rb +733 -0
  310. data/generated/google/apis/replicapoolupdater_v1beta1/representations.rb +264 -0
  311. data/generated/google/apis/replicapoolupdater_v1beta1/service.rb +508 -0
  312. data/generated/google/apis/replicapoolupdater_v1beta1.rb +44 -0
  313. data/generated/google/apis/reseller_v1/classes.rb +520 -0
  314. data/generated/google/apis/reseller_v1/representations.rb +200 -0
  315. data/generated/google/apis/reseller_v1/service.rb +623 -0
  316. data/generated/google/apis/reseller_v1.rb +37 -0
  317. data/generated/google/apis/resourceviews_v1beta2/classes.rb +660 -0
  318. data/generated/google/apis/resourceviews_v1beta2/representations.rb +269 -0
  319. data/generated/google/apis/resourceviews_v1beta2/service.rb +563 -0
  320. data/generated/google/apis/resourceviews_v1beta2.rb +50 -0
  321. data/generated/google/apis/script_v1/classes.rb +259 -0
  322. data/generated/google/apis/script_v1/representations.rb +106 -0
  323. data/generated/google/apis/script_v1/service.rb +98 -0
  324. data/generated/google/apis/script_v1.rb +61 -0
  325. data/generated/google/apis/site_verification_v1/classes.rb +185 -0
  326. data/generated/google/apis/site_verification_v1/representations.rb +101 -0
  327. data/generated/google/apis/site_verification_v1/service.rb +315 -0
  328. data/generated/google/apis/site_verification_v1.rb +37 -0
  329. data/generated/google/apis/sqladmin_v1beta4/classes.rb +2001 -0
  330. data/generated/google/apis/sqladmin_v1beta4/representations.rb +758 -0
  331. data/generated/google/apis/sqladmin_v1beta4/service.rb +1625 -0
  332. data/generated/google/apis/sqladmin_v1beta4.rb +37 -0
  333. data/generated/google/apis/storage_v1/classes.rb +1222 -0
  334. data/generated/google/apis/storage_v1/representations.rb +445 -0
  335. data/generated/google/apis/storage_v1/service.rb +1903 -0
  336. data/generated/google/apis/storage_v1.rb +46 -0
  337. data/generated/google/apis/storagetransfer_v1/classes.rb +1046 -0
  338. data/generated/google/apis/storagetransfer_v1/representations.rb +370 -0
  339. data/generated/google/apis/storagetransfer_v1/service.rb +473 -0
  340. data/generated/google/apis/storagetransfer_v1.rb +35 -0
  341. data/generated/google/apis/tagmanager_v1/classes.rb +1384 -0
  342. data/generated/google/apis/tagmanager_v1/representations.rb +515 -0
  343. data/generated/google/apis/tagmanager_v1/service.rb +1817 -0
  344. data/generated/google/apis/tagmanager_v1.rb +52 -0
  345. data/generated/google/apis/taskqueue_v1beta2/classes.rb +254 -0
  346. data/generated/google/apis/taskqueue_v1beta2/representations.rb +114 -0
  347. data/generated/google/apis/taskqueue_v1beta2/service.rb +408 -0
  348. data/generated/google/apis/taskqueue_v1beta2.rb +37 -0
  349. data/generated/google/apis/tasks_v1/classes.rb +296 -0
  350. data/generated/google/apis/tasks_v1/representations.rb +115 -0
  351. data/generated/google/apis/tasks_v1/service.rb +643 -0
  352. data/generated/google/apis/tasks_v1.rb +37 -0
  353. data/generated/google/apis/translate_v2/classes.rb +168 -0
  354. data/generated/google/apis/translate_v2/representations.rb +109 -0
  355. data/generated/google/apis/translate_v2/service.rb +182 -0
  356. data/generated/google/apis/translate_v2.rb +31 -0
  357. data/generated/google/apis/urlshortener_v1/classes.rb +246 -0
  358. data/generated/google/apis/urlshortener_v1/representations.rb +111 -0
  359. data/generated/google/apis/urlshortener_v1/service.rb +176 -0
  360. data/generated/google/apis/urlshortener_v1.rb +34 -0
  361. data/generated/google/apis/webmasters_v3/classes.rb +563 -0
  362. data/generated/google/apis/webmasters_v3/representations.rb +250 -0
  363. data/generated/google/apis/webmasters_v3/service.rb +573 -0
  364. data/generated/google/apis/webmasters_v3.rb +37 -0
  365. data/generated/google/apis/youtube_analytics_v1/classes.rb +546 -0
  366. data/generated/google/apis/youtube_analytics_v1/representations.rb +243 -0
  367. data/generated/google/apis/youtube_analytics_v1/service.rb +562 -0
  368. data/generated/google/apis/youtube_analytics_v1.rb +46 -0
  369. data/generated/google/apis/youtube_v3/classes.rb +8136 -0
  370. data/generated/google/apis/youtube_v3/representations.rb +2838 -0
  371. data/generated/google/apis/youtube_v3/service.rb +4403 -0
  372. data/generated/google/apis/youtube_v3.rb +49 -0
  373. data/generated/google/apis/youtubereporting_v1/classes.rb +258 -0
  374. data/generated/google/apis/youtubereporting_v1/representations.rb +128 -0
  375. data/generated/google/apis/youtubereporting_v1/service.rb +364 -0
  376. data/generated/google/apis/youtubereporting_v1.rb +38 -0
  377. data/google-api-client.gemspec +27 -39
  378. data/lib/google/api_client/auth/installed_app.rb +7 -5
  379. data/lib/google/api_client/auth/key_utils.rb +12 -11
  380. data/lib/google/api_client/auth/storage.rb +5 -2
  381. data/lib/google/api_client/auth/storages/file_store.rb +2 -3
  382. data/lib/google/api_client/auth/storages/redis_store.rb +7 -2
  383. data/lib/google/api_client/client_secrets.rb +4 -5
  384. data/lib/google/apis/core/api_command.rb +135 -0
  385. data/lib/google/apis/core/base_service.rb +317 -0
  386. data/lib/google/apis/core/batch.rb +239 -0
  387. data/lib/google/apis/core/download.rb +94 -0
  388. data/lib/google/apis/core/hashable.rb +44 -0
  389. data/lib/google/apis/core/http_client_adapter.rb +82 -0
  390. data/lib/google/apis/core/http_command.rb +312 -0
  391. data/lib/google/apis/core/json_representation.rb +127 -0
  392. data/lib/google/{api_client/version.rb → apis/core/logging.rb} +12 -8
  393. data/lib/google/apis/core/multipart.rb +187 -0
  394. data/lib/google/apis/core/upload.rb +288 -0
  395. data/lib/google/{api_client → apis}/errors.rb +39 -28
  396. data/lib/google/apis/generator/annotator.rb +295 -0
  397. data/lib/google/apis/generator/helpers.rb +74 -0
  398. data/lib/google/apis/generator/model.rb +143 -0
  399. data/lib/google/apis/generator/template.rb +124 -0
  400. data/lib/google/apis/generator/templates/_class.tmpl +40 -0
  401. data/lib/google/apis/generator/templates/_method.tmpl +92 -0
  402. data/lib/google/apis/generator/templates/_representation.tmpl +51 -0
  403. data/lib/google/apis/generator/templates/_representation_stub.tmpl +15 -0
  404. data/lib/google/apis/generator/templates/_representation_type.tmpl +10 -0
  405. data/lib/google/{api_client/reference.rb → apis/generator/templates/classes.rb.tmpl} +11 -9
  406. data/lib/google/apis/generator/templates/module.rb.tmpl +40 -0
  407. data/lib/google/apis/generator/templates/representations.rb.tmpl +32 -0
  408. data/lib/google/apis/generator/templates/service.rb.tmpl +60 -0
  409. data/lib/google/apis/generator.rb +70 -0
  410. data/lib/google/apis/options.rb +85 -0
  411. data/lib/google/apis/version.rb +39 -0
  412. data/lib/google/apis.rb +48 -0
  413. data/rakelib/metrics.rake +22 -0
  414. data/rakelib/rubocop.rake +10 -0
  415. data/rakelib/spec.rake +11 -0
  416. data/rakelib/yard.rake +11 -0
  417. data/samples/Gemfile +7 -0
  418. data/samples/README.md +51 -0
  419. data/samples/google-api-samples +32 -0
  420. data/samples/lib/base_cli.rb +94 -0
  421. data/samples/lib/samples/analytics.rb +62 -0
  422. data/samples/lib/samples/calendar.rb +83 -0
  423. data/samples/lib/samples/drive.rb +82 -0
  424. data/samples/lib/samples/gmail.rb +50 -0
  425. data/samples/lib/samples/pubsub.rb +114 -0
  426. data/samples/lib/samples/translate.rb +44 -0
  427. data/samples/lib/samples/you_tube.rb +44 -0
  428. data/script/generate +95 -0
  429. data/script/package +8 -0
  430. data/script/release +15 -0
  431. data/spec/fixtures/files/api_names.yaml +3 -0
  432. data/spec/fixtures/files/auth_stored_credentials.json +8 -0
  433. data/spec/fixtures/files/child/.gitignore +0 -0
  434. data/spec/fixtures/files/client_secrets.json +1 -0
  435. data/spec/fixtures/files/invalid.json +1 -0
  436. data/spec/fixtures/files/test.blah +1 -0
  437. data/spec/fixtures/files/test.txt +1 -0
  438. data/spec/fixtures/files/test_api.json +440 -0
  439. data/spec/google/api_client/auth/storage_spec.rb +1 -3
  440. data/spec/google/api_client/auth/storages/file_store_spec.rb +1 -2
  441. data/spec/google/api_client/auth/storages/redis_store_spec.rb +1 -3
  442. data/spec/google/api_client/client_secrets_spec.rb +38 -1
  443. data/spec/google/apis/core/api_command_spec.rb +209 -0
  444. data/spec/google/apis/core/batch_spec.rb +142 -0
  445. data/spec/google/apis/core/download_spec.rb +103 -0
  446. data/spec/google/apis/core/hashable_spec.rb +60 -0
  447. data/spec/google/apis/core/http_command_spec.rb +284 -0
  448. data/spec/google/apis/core/json_representation_spec.rb +192 -0
  449. data/spec/google/apis/core/service_spec.rb +247 -0
  450. data/spec/google/apis/core/upload_spec.rb +300 -0
  451. data/{lib/google/api_client/discovery.rb → spec/google/apis/generated_spec.rb} +13 -5
  452. data/spec/google/apis/generator/generator_spec.rb +272 -0
  453. data/spec/google/apis/logging_spec.rb +45 -0
  454. data/spec/google/apis/options_spec.rb +40 -0
  455. data/spec/integration_tests/adsense_spec.rb +29 -0
  456. data/spec/integration_tests/drive_spec.rb +35 -0
  457. data/spec/integration_tests/pubsub_spec.rb +48 -0
  458. data/spec/integration_tests/url_shortener_spec.rb +45 -0
  459. data/spec/spec_helper/load_path_spec.rb +33 -0
  460. data/spec/spec_helper.rb +131 -44
  461. data/third_party/hurley_patches.rb +103 -0
  462. metadata +533 -170
  463. data/lib/compat/multi_json.rb +0 -19
  464. data/lib/google/api_client/auth/file_storage.rb +0 -59
  465. data/lib/google/api_client/auth/jwt_asserter.rb +0 -126
  466. data/lib/google/api_client/auth/pkcs12.rb +0 -41
  467. data/lib/google/api_client/batch.rb +0 -325
  468. data/lib/google/api_client/charset.rb +0 -33
  469. data/lib/google/api_client/discovery/api.rb +0 -300
  470. data/lib/google/api_client/discovery/media.rb +0 -77
  471. data/lib/google/api_client/discovery/method.rb +0 -363
  472. data/lib/google/api_client/discovery/resource.rb +0 -156
  473. data/lib/google/api_client/discovery/schema.rb +0 -119
  474. data/lib/google/api_client/environment.rb +0 -42
  475. data/lib/google/api_client/gzip.rb +0 -28
  476. data/lib/google/api_client/logging.rb +0 -32
  477. data/lib/google/api_client/media.rb +0 -259
  478. data/lib/google/api_client/railtie.rb +0 -18
  479. data/lib/google/api_client/request.rb +0 -350
  480. data/lib/google/api_client/result.rb +0 -255
  481. data/lib/google/api_client/service/batch.rb +0 -110
  482. data/lib/google/api_client/service/request.rb +0 -144
  483. data/lib/google/api_client/service/resource.rb +0 -40
  484. data/lib/google/api_client/service/result.rb +0 -162
  485. data/lib/google/api_client/service/simple_file_store.rb +0 -151
  486. data/lib/google/api_client/service/stub_generator.rb +0 -61
  487. data/lib/google/api_client/service.rb +0 -233
  488. data/lib/google/api_client.rb +0 -750
  489. data/spec/google/api_client/batch_spec.rb +0 -248
  490. data/spec/google/api_client/discovery_spec.rb +0 -662
  491. data/spec/google/api_client/gzip_spec.rb +0 -98
  492. data/spec/google/api_client/media_spec.rb +0 -178
  493. data/spec/google/api_client/result_spec.rb +0 -207
  494. data/spec/google/api_client/service_account_spec.rb +0 -169
  495. data/spec/google/api_client/service_spec.rb +0 -618
  496. data/spec/google/api_client/simple_file_store_spec.rb +0 -133
  497. data/spec/google/api_client_spec.rb +0 -352
@@ -1,662 +0,0 @@
1
- # encoding:utf-8
2
-
3
- # Copyright 2010 Google Inc.
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
-
17
-
18
- require 'spec_helper'
19
-
20
- require 'faraday'
21
- require 'multi_json'
22
- require 'compat/multi_json'
23
- require 'signet/oauth_1/client'
24
- require 'google/api_client'
25
-
26
- fixtures_path = File.expand_path('../../../fixtures', __FILE__)
27
-
28
- RSpec.describe Google::APIClient do
29
- include ConnectionHelpers
30
- CLIENT = Google::APIClient.new(:application_name => 'API Client Tests') unless defined?(CLIENT)
31
-
32
- after do
33
- # Reset client to not-quite-pristine state
34
- CLIENT.key = nil
35
- CLIENT.user_ip = nil
36
- end
37
-
38
- it 'should raise a type error for bogus authorization' do
39
- expect(lambda do
40
- Google::APIClient.new(:application_name => 'API Client Tests', :authorization => 42)
41
- end).to raise_error(TypeError)
42
- end
43
-
44
- it 'should not be able to retrieve the discovery document for a bogus API' do
45
- expect(lambda do
46
- CLIENT.discovery_document('bogus')
47
- end).to raise_error(Google::APIClient::TransmissionError)
48
- expect(lambda do
49
- CLIENT.discovered_api('bogus')
50
- end).to raise_error(Google::APIClient::TransmissionError)
51
- end
52
-
53
- it 'should raise an error for bogus services' do
54
- expect(lambda do
55
- CLIENT.discovered_api(42)
56
- end).to raise_error(TypeError)
57
- end
58
-
59
- it 'should raise an error for bogus services' do
60
- expect(lambda do
61
- CLIENT.preferred_version(42)
62
- end).to raise_error(TypeError)
63
- end
64
-
65
- it 'should raise an error for bogus methods' do
66
- expect(lambda do
67
- CLIENT.execute(42)
68
- end).to raise_error(TypeError)
69
- end
70
-
71
- it 'should not return a preferred version for bogus service names' do
72
- expect(CLIENT.preferred_version('bogus')).to eq(nil)
73
- end
74
-
75
- describe 'with zoo API' do
76
- it 'should return API instance registered from file' do
77
- zoo_json = File.join(fixtures_path, 'files', 'zoo.json')
78
- contents = File.open(zoo_json, 'rb') { |io| io.read }
79
- api = CLIENT.register_discovery_document('zoo', 'v1', contents)
80
- expect(api).to be_kind_of(Google::APIClient::API)
81
- end
82
- end
83
-
84
- describe 'with the prediction API' do
85
- before do
86
- CLIENT.authorization = nil
87
- # The prediction API no longer exposes a v1, so we have to be
88
- # careful about looking up the wrong API version.
89
- @prediction = CLIENT.discovered_api('prediction', 'v1.2')
90
- end
91
-
92
- it 'should correctly determine the discovery URI' do
93
- expect(CLIENT.discovery_uri('prediction')).to be ===
94
- 'https://www.googleapis.com/discovery/v1/apis/prediction/v1/rest'
95
- end
96
-
97
- it 'should correctly determine the discovery URI if :user_ip is set' do
98
- CLIENT.user_ip = '127.0.0.1'
99
-
100
- conn = stub_connection do |stub|
101
- stub.get('/discovery/v1/apis/prediction/v1.2/rest?userIp=127.0.0.1') do |env|
102
- [200, {}, '{}']
103
- end
104
- end
105
- CLIENT.execute(
106
- :http_method => 'GET',
107
- :uri => CLIENT.discovery_uri('prediction', 'v1.2'),
108
- :authenticated => false,
109
- :connection => conn
110
- )
111
- conn.verify
112
- end
113
-
114
- it 'should correctly determine the discovery URI if :key is set' do
115
- CLIENT.key = 'qwerty'
116
- conn = stub_connection do |stub|
117
- stub.get('/discovery/v1/apis/prediction/v1.2/rest?key=qwerty') do |env|
118
- [200, {}, '{}']
119
- end
120
- end
121
- request = CLIENT.execute(
122
- :http_method => 'GET',
123
- :uri => CLIENT.discovery_uri('prediction', 'v1.2'),
124
- :authenticated => false,
125
- :connection => conn
126
- )
127
- conn.verify
128
- end
129
-
130
- it 'should correctly determine the discovery URI if both are set' do
131
- CLIENT.key = 'qwerty'
132
- CLIENT.user_ip = '127.0.0.1'
133
- conn = stub_connection do |stub|
134
- stub.get('/discovery/v1/apis/prediction/v1.2/rest?key=qwerty&userIp=127.0.0.1') do |env|
135
- [200, {}, '{}']
136
- end
137
- end
138
- request = CLIENT.execute(
139
- :http_method => 'GET',
140
- :uri => CLIENT.discovery_uri('prediction', 'v1.2'),
141
- :authenticated => false,
142
- :connection => conn
143
- )
144
- conn.verify
145
- end
146
-
147
- it 'should correctly generate API objects' do
148
- expect(CLIENT.discovered_api('prediction', 'v1.2').name).to eq('prediction')
149
- expect(CLIENT.discovered_api('prediction', 'v1.2').version).to eq('v1.2')
150
- expect(CLIENT.discovered_api(:prediction, 'v1.2').name).to eq('prediction')
151
- expect(CLIENT.discovered_api(:prediction, 'v1.2').version).to eq('v1.2')
152
- end
153
-
154
- it 'should discover methods' do
155
- expect(CLIENT.discovered_method(
156
- 'prediction.training.insert', 'prediction', 'v1.2'
157
- ).name).to eq('insert')
158
- expect(CLIENT.discovered_method(
159
- :'prediction.training.insert', :prediction, 'v1.2'
160
- ).name).to eq('insert')
161
- expect(CLIENT.discovered_method(
162
- 'prediction.training.delete', 'prediction', 'v1.2'
163
- ).name).to eq('delete')
164
- end
165
-
166
- it 'should define the origin API in discovered methods' do
167
- expect(CLIENT.discovered_method(
168
- 'prediction.training.insert', 'prediction', 'v1.2'
169
- ).api.name).to eq('prediction')
170
- end
171
-
172
- it 'should not find methods that are not in the discovery document' do
173
- expect(CLIENT.discovered_method(
174
- 'prediction.bogus', 'prediction', 'v1.2'
175
- )).to eq(nil)
176
- end
177
-
178
- it 'should raise an error for bogus methods' do
179
- expect(lambda do
180
- CLIENT.discovered_method(42, 'prediction', 'v1.2')
181
- end).to raise_error(TypeError)
182
- end
183
-
184
- it 'should raise an error for bogus methods' do
185
- expect(lambda do
186
- CLIENT.execute(:api_method => CLIENT.discovered_api('prediction', 'v1.2'))
187
- end).to raise_error(TypeError)
188
- end
189
-
190
- it 'should correctly determine the preferred version' do
191
- expect(CLIENT.preferred_version('prediction').version).not_to eq('v1')
192
- expect(CLIENT.preferred_version(:prediction).version).not_to eq('v1')
193
- end
194
-
195
- it 'should return a batch path' do
196
- expect(CLIENT.discovered_api('prediction', 'v1.2').batch_path).not_to be_nil
197
- end
198
-
199
- it 'should generate valid requests' do
200
- conn = stub_connection do |stub|
201
- stub.post('/prediction/v1.2/training?data=12345') do |env|
202
- expect(env[:body]).to eq('')
203
- [200, {}, '{}']
204
- end
205
- end
206
- request = CLIENT.execute(
207
- :api_method => @prediction.training.insert,
208
- :parameters => {'data' => '12345'},
209
- :connection => conn
210
- )
211
- conn.verify
212
- end
213
-
214
- it 'should generate valid requests when parameter value includes semicolon' do
215
- conn = stub_connection do |stub|
216
- # semicolon (;) in parameter value was being converted to
217
- # bare ampersand (&) in 0.4.7. ensure that it gets converted
218
- # to a CGI-escaped semicolon (%3B) instead.
219
- stub.post('/prediction/v1.2/training?data=12345%3B67890') do |env|
220
- expect(env[:body]).to eq('')
221
- [200, {}, '{}']
222
- end
223
- end
224
- request = CLIENT.execute(
225
- :api_method => @prediction.training.insert,
226
- :parameters => {'data' => '12345;67890'},
227
- :connection => conn
228
- )
229
- conn.verify
230
- end
231
-
232
- it 'should generate valid requests when multivalued parameters are passed' do
233
- conn = stub_connection do |stub|
234
- stub.post('/prediction/v1.2/training?data=1&data=2') do |env|
235
- expect(env.params['data']).to include('1', '2')
236
- [200, {}, '{}']
237
- end
238
- end
239
- request = CLIENT.execute(
240
- :api_method => @prediction.training.insert,
241
- :parameters => {'data' => ['1', '2']},
242
- :connection => conn
243
- )
244
- conn.verify
245
- end
246
-
247
- it 'should generate requests against the correct URIs' do
248
- conn = stub_connection do |stub|
249
- stub.post('/prediction/v1.2/training?data=12345') do |env|
250
- [200, {}, '{}']
251
- end
252
- end
253
- request = CLIENT.execute(
254
- :api_method => @prediction.training.insert,
255
- :parameters => {'data' => '12345'},
256
- :connection => conn
257
- )
258
- conn.verify
259
- end
260
-
261
- it 'should generate requests against the correct URIs' do
262
- conn = stub_connection do |stub|
263
- stub.post('/prediction/v1.2/training?data=12345') do |env|
264
- [200, {}, '{}']
265
- end
266
- end
267
- request = CLIENT.execute(
268
- :api_method => @prediction.training.insert,
269
- :parameters => {'data' => '12345'},
270
- :connection => conn
271
- )
272
- conn.verify
273
- end
274
-
275
- it 'should allow modification to the base URIs for testing purposes' do
276
- # Using a new client instance here to avoid caching rebased discovery doc
277
- prediction_rebase =
278
- Google::APIClient.new(:application_name => 'API Client Tests').discovered_api('prediction', 'v1.2')
279
- prediction_rebase.method_base =
280
- 'https://testing-domain.example.com/prediction/v1.2/'
281
-
282
- conn = stub_connection do |stub|
283
- stub.post('/prediction/v1.2/training') do |env|
284
- expect(env[:url].host).to eq('testing-domain.example.com')
285
- [200, {}, '{}']
286
- end
287
- end
288
-
289
- request = CLIENT.execute(
290
- :api_method => prediction_rebase.training.insert,
291
- :parameters => {'data' => '123'},
292
- :connection => conn
293
- )
294
- conn.verify
295
- end
296
-
297
- it 'should generate OAuth 1 requests' do
298
- CLIENT.authorization = :oauth_1
299
- CLIENT.authorization.token_credential_key = '12345'
300
- CLIENT.authorization.token_credential_secret = '12345'
301
-
302
- conn = stub_connection do |stub|
303
- stub.post('/prediction/v1.2/training?data=12345') do |env|
304
- expect(env[:request_headers]).to have_key('Authorization')
305
- expect(env[:request_headers]['Authorization']).to match(/^OAuth/)
306
- [200, {}, '{}']
307
- end
308
- end
309
-
310
- request = CLIENT.execute(
311
- :api_method => @prediction.training.insert,
312
- :parameters => {'data' => '12345'},
313
- :connection => conn
314
- )
315
- conn.verify
316
- end
317
-
318
- it 'should generate OAuth 2 requests' do
319
- CLIENT.authorization = :oauth_2
320
- CLIENT.authorization.access_token = '12345'
321
-
322
- conn = stub_connection do |stub|
323
- stub.post('/prediction/v1.2/training?data=12345') do |env|
324
- expect(env[:request_headers]).to have_key('Authorization')
325
- expect(env[:request_headers]['Authorization']).to match(/^Bearer/)
326
- [200, {}, '{}']
327
- end
328
- end
329
-
330
- request = CLIENT.execute(
331
- :api_method => @prediction.training.insert,
332
- :parameters => {'data' => '12345'},
333
- :connection => conn
334
- )
335
- conn.verify
336
- end
337
-
338
- it 'should not be able to execute improperly authorized requests' do
339
- CLIENT.authorization = :oauth_1
340
- CLIENT.authorization.token_credential_key = '12345'
341
- CLIENT.authorization.token_credential_secret = '12345'
342
- result = CLIENT.execute(
343
- @prediction.training.insert,
344
- {'data' => '12345'}
345
- )
346
- expect(result.response.status).to eq(401)
347
- end
348
-
349
- it 'should not be able to execute improperly authorized requests' do
350
- CLIENT.authorization = :oauth_2
351
- CLIENT.authorization.access_token = '12345'
352
- result = CLIENT.execute(
353
- @prediction.training.insert,
354
- {'data' => '12345'}
355
- )
356
- expect(result.response.status).to eq(401)
357
- end
358
-
359
- it 'should not be able to execute improperly authorized requests' do
360
- expect(lambda do
361
- CLIENT.authorization = :oauth_1
362
- CLIENT.authorization.token_credential_key = '12345'
363
- CLIENT.authorization.token_credential_secret = '12345'
364
- result = CLIENT.execute!(
365
- @prediction.training.insert,
366
- {'data' => '12345'}
367
- )
368
- end).to raise_error(Google::APIClient::ClientError)
369
- end
370
-
371
- it 'should not be able to execute improperly authorized requests' do
372
- expect(lambda do
373
- CLIENT.authorization = :oauth_2
374
- CLIENT.authorization.access_token = '12345'
375
- result = CLIENT.execute!(
376
- @prediction.training.insert,
377
- {'data' => '12345'}
378
- )
379
- end).to raise_error(Google::APIClient::ClientError)
380
- end
381
-
382
- it 'should correctly handle unnamed parameters' do
383
- conn = stub_connection do |stub|
384
- stub.post('/prediction/v1.2/training') do |env|
385
- expect(env[:request_headers]).to have_key('Content-Type')
386
- expect(env[:request_headers]['Content-Type']).to eq('application/json')
387
- [200, {}, '{}']
388
- end
389
- end
390
- CLIENT.authorization = :oauth_2
391
- CLIENT.authorization.access_token = '12345'
392
- CLIENT.execute(
393
- :api_method => @prediction.training.insert,
394
- :body => MultiJson.dump({"id" => "bucket/object"}),
395
- :headers => {'Content-Type' => 'application/json'},
396
- :connection => conn
397
- )
398
- conn.verify
399
- end
400
- end
401
-
402
- describe 'with the plus API' do
403
- before do
404
- CLIENT.authorization = nil
405
- @plus = CLIENT.discovered_api('plus')
406
- end
407
-
408
- it 'should correctly determine the discovery URI' do
409
- expect(CLIENT.discovery_uri('plus')).to be ===
410
- 'https://www.googleapis.com/discovery/v1/apis/plus/v1/rest'
411
- end
412
-
413
- it 'should find APIs that are in the discovery document' do
414
- expect(CLIENT.discovered_api('plus').name).to eq('plus')
415
- expect(CLIENT.discovered_api('plus').version).to eq('v1')
416
- expect(CLIENT.discovered_api(:plus).name).to eq('plus')
417
- expect(CLIENT.discovered_api(:plus).version).to eq('v1')
418
- end
419
-
420
- it 'should find methods that are in the discovery document' do
421
- # TODO(bobaman) Fix this when the RPC names are correct
422
- expect(CLIENT.discovered_method(
423
- 'plus.activities.list', 'plus'
424
- ).name).to eq('list')
425
- end
426
-
427
- it 'should define the origin API in discovered methods' do
428
- expect(CLIENT.discovered_method(
429
- 'plus.activities.list', 'plus'
430
- ).api.name).to eq('plus')
431
- end
432
-
433
- it 'should not find methods that are not in the discovery document' do
434
- expect(CLIENT.discovered_method('plus.bogus', 'plus')).to eq(nil)
435
- end
436
-
437
- it 'should generate requests against the correct URIs' do
438
- conn = stub_connection do |stub|
439
- stub.get('/plus/v1/people/107807692475771887386/activities/public') do |env|
440
- [200, {}, '{}']
441
- end
442
- end
443
-
444
- request = CLIENT.execute(
445
- :api_method => @plus.activities.list,
446
- :parameters => {
447
- 'userId' => '107807692475771887386', 'collection' => 'public'
448
- },
449
- :authenticated => false,
450
- :connection => conn
451
- )
452
- conn.verify
453
- end
454
-
455
- it 'should correctly validate parameters' do
456
- expect(lambda do
457
- CLIENT.execute(
458
- :api_method => @plus.activities.list,
459
- :parameters => {'alt' => 'json'},
460
- :authenticated => false
461
- )
462
- end).to raise_error(ArgumentError)
463
- end
464
-
465
- it 'should correctly validate parameters' do
466
- expect(lambda do
467
- CLIENT.execute(
468
- :api_method => @plus.activities.list,
469
- :parameters => {
470
- 'userId' => '107807692475771887386', 'collection' => 'bogus'
471
- },
472
- :authenticated => false
473
- ).to_env(CLIENT.connection)
474
- end).to raise_error(ArgumentError)
475
- end
476
- end
477
-
478
- describe 'with the adsense API' do
479
- before do
480
- CLIENT.authorization = nil
481
- @adsense = CLIENT.discovered_api('adsense', 'v1.3')
482
- end
483
-
484
- it 'should correctly determine the discovery URI' do
485
- expect(CLIENT.discovery_uri('adsense', 'v1.3').to_s).to be ===
486
- 'https://www.googleapis.com/discovery/v1/apis/adsense/v1.3/rest'
487
- end
488
-
489
- it 'should find APIs that are in the discovery document' do
490
- expect(CLIENT.discovered_api('adsense', 'v1.3').name).to eq('adsense')
491
- expect(CLIENT.discovered_api('adsense', 'v1.3').version).to eq('v1.3')
492
- end
493
-
494
- it 'should return a batch path' do
495
- expect(CLIENT.discovered_api('adsense', 'v1.3').batch_path).not_to be_nil
496
- end
497
-
498
- it 'should find methods that are in the discovery document' do
499
- expect(CLIENT.discovered_method(
500
- 'adsense.reports.generate', 'adsense', 'v1.3'
501
- ).name).to eq('generate')
502
- end
503
-
504
- it 'should not find methods that are not in the discovery document' do
505
- expect(CLIENT.discovered_method('adsense.bogus', 'adsense', 'v1.3')).to eq(nil)
506
- end
507
-
508
- it 'should generate requests against the correct URIs' do
509
- conn = stub_connection do |stub|
510
- stub.get('/adsense/v1.3/adclients') do |env|
511
- [200, {}, '{}']
512
- end
513
- end
514
- request = CLIENT.execute(
515
- :api_method => @adsense.adclients.list,
516
- :authenticated => false,
517
- :connection => conn
518
- )
519
- conn.verify
520
- end
521
-
522
- it 'should not be able to execute requests without authorization' do
523
- result = CLIENT.execute(
524
- :api_method => @adsense.adclients.list,
525
- :authenticated => false
526
- )
527
- expect(result.response.status).to eq(401)
528
- end
529
-
530
- it 'should fail when validating missing required parameters' do
531
- expect(lambda do
532
- CLIENT.execute(
533
- :api_method => @adsense.reports.generate,
534
- :authenticated => false
535
- )
536
- end).to raise_error(ArgumentError)
537
- end
538
-
539
- it 'should succeed when validating parameters in a correct call' do
540
- conn = stub_connection do |stub|
541
- stub.get('/adsense/v1.3/reports?dimension=DATE&endDate=2010-01-01&metric=PAGE_VIEWS&startDate=2000-01-01') do |env|
542
- [200, {}, '{}']
543
- end
544
- end
545
- expect(lambda do
546
- CLIENT.execute(
547
- :api_method => @adsense.reports.generate,
548
- :parameters => {
549
- 'startDate' => '2000-01-01',
550
- 'endDate' => '2010-01-01',
551
- 'dimension' => 'DATE',
552
- 'metric' => 'PAGE_VIEWS'
553
- },
554
- :authenticated => false,
555
- :connection => conn
556
- )
557
- end).not_to raise_error
558
- conn.verify
559
- end
560
-
561
- it 'should fail when validating parameters with invalid values' do
562
- expect(lambda do
563
- CLIENT.execute(
564
- :api_method => @adsense.reports.generate,
565
- :parameters => {
566
- 'startDate' => '2000-01-01',
567
- 'endDate' => '2010-01-01',
568
- 'dimension' => 'BAD_CHARACTERS=-&*(£&',
569
- 'metric' => 'PAGE_VIEWS'
570
- },
571
- :authenticated => false
572
- )
573
- end).to raise_error(ArgumentError)
574
- end
575
-
576
- it 'should succeed when validating repeated parameters in a correct call' do
577
- conn = stub_connection do |stub|
578
- stub.get('/adsense/v1.3/reports?dimension=DATE&dimension=PRODUCT_CODE'+
579
- '&endDate=2010-01-01&metric=CLICKS&metric=PAGE_VIEWS&'+
580
- 'startDate=2000-01-01') do |env|
581
- [200, {}, '{}']
582
- end
583
- end
584
- expect(lambda do
585
- CLIENT.execute(
586
- :api_method => @adsense.reports.generate,
587
- :parameters => {
588
- 'startDate' => '2000-01-01',
589
- 'endDate' => '2010-01-01',
590
- 'dimension' => ['DATE', 'PRODUCT_CODE'],
591
- 'metric' => ['PAGE_VIEWS', 'CLICKS']
592
- },
593
- :authenticated => false,
594
- :connection => conn
595
- )
596
- end).not_to raise_error
597
- conn.verify
598
- end
599
-
600
- it 'should fail when validating incorrect repeated parameters' do
601
- expect(lambda do
602
- CLIENT.execute(
603
- :api_method => @adsense.reports.generate,
604
- :parameters => {
605
- 'startDate' => '2000-01-01',
606
- 'endDate' => '2010-01-01',
607
- 'dimension' => ['DATE', 'BAD_CHARACTERS=-&*(£&'],
608
- 'metric' => ['PAGE_VIEWS', 'CLICKS']
609
- },
610
- :authenticated => false
611
- )
612
- end).to raise_error(ArgumentError)
613
- end
614
-
615
- it 'should generate valid requests when multivalued parameters are passed' do
616
- conn = stub_connection do |stub|
617
- stub.get('/adsense/v1.3/reports?dimension=DATE&dimension=PRODUCT_CODE'+
618
- '&endDate=2010-01-01&metric=CLICKS&metric=PAGE_VIEWS&'+
619
- 'startDate=2000-01-01') do |env|
620
- expect(env.params['dimension']).to include('DATE', 'PRODUCT_CODE')
621
- expect(env.params['metric']).to include('CLICKS', 'PAGE_VIEWS')
622
- [200, {}, '{}']
623
- end
624
- end
625
- request = CLIENT.execute(
626
- :api_method => @adsense.reports.generate,
627
- :parameters => {
628
- 'startDate' => '2000-01-01',
629
- 'endDate' => '2010-01-01',
630
- 'dimension' => ['DATE', 'PRODUCT_CODE'],
631
- 'metric' => ['PAGE_VIEWS', 'CLICKS']
632
- },
633
- :authenticated => false,
634
- :connection => conn
635
- )
636
- conn.verify
637
- end
638
- end
639
-
640
- describe 'with the Drive API' do
641
- before do
642
- CLIENT.authorization = nil
643
- @drive = CLIENT.discovered_api('drive', 'v1')
644
- end
645
-
646
- it 'should include media upload info methods' do
647
- expect(@drive.files.insert.media_upload).not_to eq(nil)
648
- end
649
-
650
- it 'should include accepted media types' do
651
- expect(@drive.files.insert.media_upload.accepted_types).not_to be_empty
652
- end
653
-
654
- it 'should have an upload path' do
655
- expect(@drive.files.insert.media_upload.uri_template).not_to eq(nil)
656
- end
657
-
658
- it 'should have a max file size' do
659
- expect(@drive.files.insert.media_upload.max_size).not_to eq(nil)
660
- end
661
- end
662
- end