google-api-client 0.8.6 → 0.9.3

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 (537) 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 +23 -0
  7. data/.yardopts +12 -0
  8. data/CHANGELOG.md +58 -2
  9. data/CONTRIBUTING.md +31 -0
  10. data/Gemfile +38 -2
  11. data/MIGRATING.md +171 -0
  12. data/README.md +189 -147
  13. data/Rakefile +1 -40
  14. data/api_names.yaml +1088 -0
  15. data/api_names_out.yaml +26978 -0
  16. data/bin/generate-api +109 -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/adexchangebuyer_v1_4/classes.rb +3025 -0
  22. data/generated/google/apis/adexchangebuyer_v1_4/representations.rb +1240 -0
  23. data/generated/google/apis/adexchangebuyer_v1_4/service.rb +1446 -0
  24. data/generated/google/apis/adexchangebuyer_v1_4.rb +35 -0
  25. data/generated/google/apis/adexchangeseller_v2_0/classes.rb +792 -0
  26. data/generated/google/apis/adexchangeseller_v2_0/representations.rb +347 -0
  27. data/generated/google/apis/adexchangeseller_v2_0/service.rb +668 -0
  28. data/generated/google/apis/adexchangeseller_v2_0.rb +38 -0
  29. data/generated/google/apis/admin_datatransfer_v1/classes.rb +267 -0
  30. data/generated/google/apis/admin_datatransfer_v1/representations.rb +130 -0
  31. data/generated/google/apis/admin_datatransfer_v1/service.rb +262 -0
  32. data/generated/google/apis/admin_datatransfer_v1.rb +37 -0
  33. data/generated/google/apis/admin_directory_v1/classes.rb +3141 -0
  34. data/generated/google/apis/admin_directory_v1/representations.rb +1147 -0
  35. data/generated/google/apis/admin_directory_v1/service.rb +3818 -0
  36. data/generated/google/apis/admin_directory_v1.rb +113 -0
  37. data/generated/google/apis/admin_reports_v1/classes.rb +582 -0
  38. data/generated/google/apis/admin_reports_v1/representations.rb +257 -0
  39. data/generated/google/apis/admin_reports_v1/service.rb +336 -0
  40. data/generated/google/apis/admin_reports_v1.rb +38 -0
  41. data/generated/google/apis/adsense_v1_4/classes.rb +1280 -0
  42. data/generated/google/apis/adsense_v1_4/representations.rb +555 -0
  43. data/generated/google/apis/adsense_v1_4/service.rb +1714 -0
  44. data/generated/google/apis/adsense_v1_4.rb +38 -0
  45. data/generated/google/apis/adsensehost_v4_1/classes.rb +837 -0
  46. data/generated/google/apis/adsensehost_v4_1/representations.rb +367 -0
  47. data/generated/google/apis/adsensehost_v4_1/service.rb +1164 -0
  48. data/generated/google/apis/adsensehost_v4_1.rb +35 -0
  49. data/generated/google/apis/analytics_v3/classes.rb +5118 -0
  50. data/generated/google/apis/analytics_v3/representations.rb +1850 -0
  51. data/generated/google/apis/analytics_v3/service.rb +3568 -0
  52. data/generated/google/apis/analytics_v3.rb +49 -0
  53. data/generated/google/apis/androidenterprise_v1/classes.rb +1443 -0
  54. data/generated/google/apis/androidenterprise_v1/representations.rb +614 -0
  55. data/generated/google/apis/androidenterprise_v1/service.rb +2607 -0
  56. data/generated/google/apis/androidenterprise_v1.rb +35 -0
  57. data/generated/google/apis/androidpublisher_v2/classes.rb +1411 -0
  58. data/generated/google/apis/androidpublisher_v2/representations.rb +738 -0
  59. data/generated/google/apis/androidpublisher_v2/service.rb +2338 -0
  60. data/generated/google/apis/androidpublisher_v2.rb +34 -0
  61. data/generated/google/apis/appengine_v1beta4/classes.rb +1585 -0
  62. data/generated/google/apis/appengine_v1beta4/representations.rb +542 -0
  63. data/generated/google/apis/appengine_v1beta4/service.rb +477 -0
  64. data/generated/google/apis/appengine_v1beta4.rb +35 -0
  65. data/generated/google/apis/appengine_v1beta5/classes.rb +1544 -0
  66. data/generated/google/apis/appengine_v1beta5/representations.rb +594 -0
  67. data/generated/google/apis/appengine_v1beta5/service.rb +521 -0
  68. data/generated/google/apis/appengine_v1beta5.rb +35 -0
  69. data/generated/google/apis/appsactivity_v1/classes.rb +392 -0
  70. data/generated/google/apis/appsactivity_v1/representations.rb +206 -0
  71. data/generated/google/apis/appsactivity_v1/service.rb +128 -0
  72. data/generated/google/apis/appsactivity_v1.rb +46 -0
  73. data/generated/google/apis/appstate_v1/classes.rb +154 -0
  74. data/generated/google/apis/appstate_v1/representations.rb +87 -0
  75. data/generated/google/apis/appstate_v1/service.rb +260 -0
  76. data/generated/google/apis/appstate_v1.rb +34 -0
  77. data/generated/google/apis/autoscaler_v1beta2/classes.rb +747 -0
  78. data/generated/google/apis/autoscaler_v1beta2/representations.rb +313 -0
  79. data/generated/google/apis/autoscaler_v1beta2/service.rb +478 -0
  80. data/generated/google/apis/autoscaler_v1beta2.rb +38 -0
  81. data/generated/google/apis/bigquery_v2/classes.rb +2503 -0
  82. data/generated/google/apis/bigquery_v2/representations.rb +914 -0
  83. data/generated/google/apis/bigquery_v2/service.rb +982 -0
  84. data/generated/google/apis/bigquery_v2.rb +52 -0
  85. data/generated/google/apis/blogger_v3/classes.rb +1354 -0
  86. data/generated/google/apis/blogger_v3/representations.rb +632 -0
  87. data/generated/google/apis/blogger_v3/service.rb +1587 -0
  88. data/generated/google/apis/blogger_v3.rb +37 -0
  89. data/generated/google/apis/books_v1/classes.rb +4006 -0
  90. data/generated/google/apis/books_v1/representations.rb +1742 -0
  91. data/generated/google/apis/books_v1/service.rb +2293 -0
  92. data/generated/google/apis/books_v1.rb +34 -0
  93. data/generated/google/apis/calendar_v3/classes.rb +1742 -0
  94. data/generated/google/apis/calendar_v3/representations.rb +631 -0
  95. data/generated/google/apis/calendar_v3/service.rb +1968 -0
  96. data/generated/google/apis/calendar_v3.rb +37 -0
  97. data/generated/google/apis/civicinfo_v2/classes.rb +1127 -0
  98. data/generated/google/apis/civicinfo_v2/representations.rb +423 -0
  99. data/generated/google/apis/civicinfo_v2/service.rb +279 -0
  100. data/generated/google/apis/civicinfo_v2.rb +31 -0
  101. data/generated/google/apis/classroom_v1/classes.rb +512 -0
  102. data/generated/google/apis/classroom_v1/representations.rb +245 -0
  103. data/generated/google/apis/classroom_v1/service.rb +970 -0
  104. data/generated/google/apis/classroom_v1.rb +49 -0
  105. data/generated/google/apis/classroom_v1beta1/classes.rb +447 -0
  106. data/generated/google/apis/classroom_v1beta1/representations.rb +190 -0
  107. data/generated/google/apis/classroom_v1beta1/service.rb +791 -0
  108. data/generated/google/apis/classroom_v1beta1.rb +49 -0
  109. data/generated/google/apis/cloudbilling_v1/classes.rb +169 -0
  110. data/generated/google/apis/cloudbilling_v1/representations.rb +87 -0
  111. data/generated/google/apis/cloudbilling_v1/service.rb +258 -0
  112. data/generated/google/apis/cloudbilling_v1.rb +35 -0
  113. data/generated/google/apis/cloudbuild_v1/classes.rb +521 -0
  114. data/generated/google/apis/cloudbuild_v1/representations.rb +214 -0
  115. data/generated/google/apis/cloudbuild_v1/service.rb +278 -0
  116. data/generated/google/apis/cloudbuild_v1.rb +35 -0
  117. data/generated/google/apis/clouddebugger_v2/classes.rb +1004 -0
  118. data/generated/google/apis/clouddebugger_v2/representations.rb +464 -0
  119. data/generated/google/apis/clouddebugger_v2/service.rb +370 -0
  120. data/generated/google/apis/clouddebugger_v2.rb +41 -0
  121. data/generated/google/apis/cloudlatencytest_v2/classes.rb +195 -0
  122. data/generated/google/apis/cloudlatencytest_v2/representations.rb +127 -0
  123. data/generated/google/apis/cloudlatencytest_v2/service.rb +135 -0
  124. data/generated/google/apis/cloudlatencytest_v2.rb +34 -0
  125. data/generated/google/apis/cloudmonitoring_v2beta2/classes.rb +679 -0
  126. data/generated/google/apis/cloudmonitoring_v2beta2/representations.rb +353 -0
  127. data/generated/google/apis/cloudmonitoring_v2beta2/service.rb +452 -0
  128. data/generated/google/apis/cloudmonitoring_v2beta2.rb +37 -0
  129. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +450 -0
  130. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +226 -0
  131. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +626 -0
  132. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +38 -0
  133. data/generated/google/apis/cloudtrace_v1/classes.rb +188 -0
  134. data/generated/google/apis/cloudtrace_v1/representations.rb +102 -0
  135. data/generated/google/apis/cloudtrace_v1/service.rb +190 -0
  136. data/generated/google/apis/cloudtrace_v1.rb +35 -0
  137. data/generated/google/apis/clouduseraccounts_beta/classes.rb +823 -0
  138. data/generated/google/apis/clouduseraccounts_beta/representations.rb +351 -0
  139. data/generated/google/apis/clouduseraccounts_beta/service.rb +854 -0
  140. data/generated/google/apis/clouduseraccounts_beta.rb +43 -0
  141. data/generated/google/apis/compute_beta/classes.rb +9741 -0
  142. data/generated/google/apis/compute_beta/representations.rb +3649 -0
  143. data/generated/google/apis/compute_beta/service.rb +10636 -0
  144. data/generated/google/apis/compute_beta.rb +49 -0
  145. data/generated/google/apis/compute_v1/classes.rb +9095 -0
  146. data/generated/google/apis/compute_v1/representations.rb +3389 -0
  147. data/generated/google/apis/compute_v1/service.rb +9627 -0
  148. data/generated/google/apis/compute_v1.rb +49 -0
  149. data/generated/google/apis/container_v1/classes.rb +463 -0
  150. data/generated/google/apis/container_v1/representations.rb +195 -0
  151. data/generated/google/apis/container_v1/service.rb +367 -0
  152. data/generated/google/apis/container_v1.rb +35 -0
  153. data/generated/google/apis/container_v1beta1/classes.rb +466 -0
  154. data/generated/google/apis/container_v1beta1/representations.rb +177 -0
  155. data/generated/google/apis/container_v1beta1/service.rb +394 -0
  156. data/generated/google/apis/container_v1beta1.rb +35 -0
  157. data/generated/google/apis/content_v2/classes.rb +6114 -0
  158. data/generated/google/apis/content_v2/representations.rb +2624 -0
  159. data/generated/google/apis/content_v2/service.rb +2338 -0
  160. data/generated/google/apis/content_v2.rb +35 -0
  161. data/generated/google/apis/coordinate_v1/classes.rb +669 -0
  162. data/generated/google/apis/coordinate_v1/representations.rb +321 -0
  163. data/generated/google/apis/coordinate_v1/service.rb +678 -0
  164. data/generated/google/apis/coordinate_v1.rb +37 -0
  165. data/generated/google/apis/customsearch_v1/classes.rb +771 -0
  166. data/generated/google/apis/customsearch_v1/representations.rb +302 -0
  167. data/generated/google/apis/customsearch_v1/service.rb +207 -0
  168. data/{lib/google/api_client/auth/compute_service_account.rb → generated/google/apis/customsearch_v1.rb} +13 -10
  169. data/generated/google/apis/dataproc_v1/classes.rb +1590 -0
  170. data/generated/google/apis/dataproc_v1/representations.rb +653 -0
  171. data/generated/google/apis/dataproc_v1/service.rb +719 -0
  172. data/generated/google/apis/dataproc_v1.rb +43 -0
  173. data/generated/google/apis/datastore_v1beta2/classes.rb +1186 -0
  174. data/generated/google/apis/datastore_v1beta2/representations.rb +594 -0
  175. data/generated/google/apis/datastore_v1beta2/service.rb +294 -0
  176. data/generated/google/apis/datastore_v1beta2.rb +40 -0
  177. data/generated/google/apis/deploymentmanager_v2/classes.rb +1162 -0
  178. data/generated/google/apis/deploymentmanager_v2/representations.rb +508 -0
  179. data/generated/google/apis/deploymentmanager_v2/service.rb +862 -0
  180. data/generated/google/apis/deploymentmanager_v2.rb +44 -0
  181. data/generated/google/apis/deploymentmanager_v2beta2/classes.rb +843 -0
  182. data/generated/google/apis/deploymentmanager_v2beta2/representations.rb +306 -0
  183. data/generated/google/apis/deploymentmanager_v2beta2/service.rb +689 -0
  184. data/generated/google/apis/deploymentmanager_v2beta2.rb +44 -0
  185. data/generated/google/apis/dfareporting_v2_1/classes.rb +10770 -0
  186. data/generated/google/apis/dfareporting_v2_1/representations.rb +3438 -0
  187. data/generated/google/apis/dfareporting_v2_1/service.rb +8585 -0
  188. data/generated/google/apis/dfareporting_v2_1.rb +37 -0
  189. data/generated/google/apis/dfareporting_v2_3/classes.rb +10830 -0
  190. data/generated/google/apis/dfareporting_v2_3/representations.rb +3829 -0
  191. data/generated/google/apis/dfareporting_v2_3/service.rb +8581 -0
  192. data/generated/google/apis/dfareporting_v2_3.rb +37 -0
  193. data/generated/google/apis/discovery_v1/classes.rb +961 -0
  194. data/generated/google/apis/discovery_v1/representations.rb +397 -0
  195. data/generated/google/apis/discovery_v1/service.rb +142 -0
  196. data/generated/google/apis/discovery_v1.rb +32 -0
  197. data/generated/google/apis/dns_v1/classes.rb +406 -0
  198. data/generated/google/apis/dns_v1/representations.rb +167 -0
  199. data/generated/google/apis/dns_v1/service.rb +454 -0
  200. data/generated/google/apis/dns_v1.rb +44 -0
  201. data/generated/google/apis/doubleclickbidmanager_v1/classes.rb +802 -0
  202. data/generated/google/apis/doubleclickbidmanager_v1/representations.rb +371 -0
  203. data/generated/google/apis/doubleclickbidmanager_v1/service.rb +374 -0
  204. data/generated/google/apis/doubleclickbidmanager_v1.rb +31 -0
  205. data/generated/google/apis/doubleclicksearch_v2/classes.rb +958 -0
  206. data/generated/google/apis/doubleclicksearch_v2/representations.rb +350 -0
  207. data/generated/google/apis/doubleclicksearch_v2/service.rb +480 -0
  208. data/generated/google/apis/doubleclicksearch_v2.rb +35 -0
  209. data/generated/google/apis/drive_v2/classes.rb +2569 -0
  210. data/generated/google/apis/drive_v2/representations.rb +878 -0
  211. data/generated/google/apis/drive_v2/service.rb +2740 -0
  212. data/generated/google/apis/drive_v2.rb +58 -0
  213. data/generated/google/apis/drive_v3/classes.rb +1541 -0
  214. data/generated/google/apis/drive_v3/representations.rb +548 -0
  215. data/generated/google/apis/drive_v3/service.rb +1542 -0
  216. data/generated/google/apis/drive_v3.rb +55 -0
  217. data/generated/google/apis/fitness_v1/classes.rb +885 -0
  218. data/generated/google/apis/fitness_v1/representations.rb +360 -0
  219. data/generated/google/apis/fitness_v1/service.rb +675 -0
  220. data/generated/google/apis/fitness_v1.rb +49 -0
  221. data/generated/google/apis/fusiontables_v2/classes.rb +1048 -0
  222. data/generated/google/apis/fusiontables_v2/representations.rb +457 -0
  223. data/generated/google/apis/fusiontables_v2/service.rb +1463 -0
  224. data/generated/google/apis/fusiontables_v2.rb +37 -0
  225. data/generated/google/apis/games_configuration_v1configuration/classes.rb +506 -0
  226. data/generated/google/apis/games_configuration_v1configuration/representations.rb +228 -0
  227. data/generated/google/apis/games_configuration_v1configuration/service.rb +565 -0
  228. data/generated/google/apis/games_configuration_v1configuration.rb +34 -0
  229. data/generated/google/apis/games_management_v1management/classes.rb +533 -0
  230. data/generated/google/apis/games_management_v1management/representations.rb +262 -0
  231. data/generated/google/apis/games_management_v1management/service.rb +994 -0
  232. data/generated/google/apis/games_management_v1management.rb +37 -0
  233. data/generated/google/apis/games_v1/classes.rb +4626 -0
  234. data/generated/google/apis/games_v1/representations.rb +1783 -0
  235. data/generated/google/apis/games_v1/service.rb +2290 -0
  236. data/generated/google/apis/games_v1.rb +40 -0
  237. data/generated/google/apis/gan_v1beta1/classes.rb +1428 -0
  238. data/generated/google/apis/gan_v1beta1/representations.rb +462 -0
  239. data/generated/google/apis/gan_v1beta1/service.rb +682 -0
  240. data/generated/google/apis/gan_v1beta1.rb +31 -0
  241. data/generated/google/apis/genomics_v1/classes.rb +2609 -0
  242. data/generated/google/apis/genomics_v1/representations.rb +1029 -0
  243. data/generated/google/apis/genomics_v1/service.rb +1676 -0
  244. data/generated/google/apis/genomics_v1.rb +49 -0
  245. data/generated/google/apis/genomics_v1beta2/classes.rb +3288 -0
  246. data/generated/google/apis/genomics_v1beta2/representations.rb +1194 -0
  247. data/generated/google/apis/genomics_v1beta2/service.rb +2392 -0
  248. data/generated/google/apis/genomics_v1beta2.rb +46 -0
  249. data/generated/google/apis/gmail_v1/classes.rb +794 -0
  250. data/generated/google/apis/gmail_v1/representations.rb +383 -0
  251. data/generated/google/apis/gmail_v1/service.rb +1470 -0
  252. data/generated/google/apis/gmail_v1.rb +52 -0
  253. data/generated/google/apis/groupsmigration_v1/classes.rb +51 -0
  254. data/generated/google/apis/groupsmigration_v1/representations.rb +40 -0
  255. data/generated/google/apis/groupsmigration_v1/service.rb +110 -0
  256. data/generated/google/apis/groupsmigration_v1.rb +34 -0
  257. data/generated/google/apis/groupssettings_v1/classes.rb +221 -0
  258. data/generated/google/apis/groupssettings_v1/representations.rb +66 -0
  259. data/generated/google/apis/groupssettings_v1/service.rb +179 -0
  260. data/generated/google/apis/groupssettings_v1.rb +34 -0
  261. data/generated/google/apis/identitytoolkit_v3/classes.rb +1637 -0
  262. data/generated/google/apis/identitytoolkit_v3/representations.rb +618 -0
  263. data/generated/google/apis/identitytoolkit_v3/service.rb +616 -0
  264. data/generated/google/apis/identitytoolkit_v3.rb +31 -0
  265. data/generated/google/apis/kgsearch_v1/classes.rb +59 -0
  266. data/generated/google/apis/kgsearch_v1/representations.rb +41 -0
  267. data/generated/google/apis/kgsearch_v1/service.rb +111 -0
  268. data/{spec/google/api_client/request_spec.rb → generated/google/apis/kgsearch_v1.rb} +16 -13
  269. data/generated/google/apis/licensing_v1/classes.rb +132 -0
  270. data/generated/google/apis/licensing_v1/representations.rb +74 -0
  271. data/generated/google/apis/licensing_v1/service.rb +369 -0
  272. data/generated/google/apis/licensing_v1.rb +34 -0
  273. data/generated/google/apis/logging_v1beta3/classes.rb +1079 -0
  274. data/generated/google/apis/logging_v1beta3/representations.rb +366 -0
  275. data/generated/google/apis/logging_v1beta3/service.rb +1001 -0
  276. data/generated/google/apis/logging_v1beta3.rb +47 -0
  277. data/generated/google/apis/logging_v2beta1/classes.rb +990 -0
  278. data/generated/google/apis/logging_v2beta1/representations.rb +377 -0
  279. data/generated/google/apis/logging_v2beta1/service.rb +547 -0
  280. data/generated/google/apis/logging_v2beta1.rb +47 -0
  281. data/generated/google/apis/manager_v1beta2/classes.rb +1287 -0
  282. data/generated/google/apis/manager_v1beta2/representations.rb +606 -0
  283. data/generated/google/apis/manager_v1beta2/service.rb +372 -0
  284. data/generated/google/apis/manager_v1beta2.rb +53 -0
  285. data/generated/google/apis/mirror_v1/classes.rb +1072 -0
  286. data/generated/google/apis/mirror_v1/representations.rb +390 -0
  287. data/generated/google/apis/mirror_v1/service.rb +977 -0
  288. data/generated/google/apis/mirror_v1.rb +37 -0
  289. data/generated/google/apis/oauth2_v2/classes.rb +245 -0
  290. data/generated/google/apis/oauth2_v2/representations.rb +102 -0
  291. data/generated/google/apis/oauth2_v2/service.rb +199 -0
  292. data/generated/google/apis/oauth2_v2.rb +43 -0
  293. data/generated/google/apis/pagespeedonline_v2/classes.rb +614 -0
  294. data/generated/google/apis/pagespeedonline_v2/representations.rb +272 -0
  295. data/generated/google/apis/pagespeedonline_v2/service.rb +119 -0
  296. data/generated/google/apis/pagespeedonline_v2.rb +32 -0
  297. data/generated/google/apis/partners_v2/classes.rb +942 -0
  298. data/generated/google/apis/partners_v2/representations.rb +454 -0
  299. data/generated/google/apis/partners_v2/service.rb +400 -0
  300. data/generated/google/apis/partners_v2.rb +32 -0
  301. data/generated/google/apis/people_v1/classes.rb +1521 -0
  302. data/generated/google/apis/people_v1/representations.rb +663 -0
  303. data/generated/google/apis/people_v1/service.rb +189 -0
  304. data/generated/google/apis/people_v1.rb +59 -0
  305. data/generated/google/apis/plus_domains_v1/classes.rb +2609 -0
  306. data/generated/google/apis/plus_domains_v1/representations.rb +1111 -0
  307. data/generated/google/apis/plus_domains_v1/service.rb +904 -0
  308. data/generated/google/apis/plus_domains_v1.rb +61 -0
  309. data/generated/google/apis/plus_v1/classes.rb +2094 -0
  310. data/generated/google/apis/plus_v1/representations.rb +907 -0
  311. data/generated/google/apis/plus_v1/service.rb +470 -0
  312. data/generated/google/apis/plus_v1.rb +43 -0
  313. data/generated/google/apis/prediction_v1_6/classes.rb +751 -0
  314. data/generated/google/apis/prediction_v1_6/representations.rb +369 -0
  315. data/generated/google/apis/prediction_v1_6/service.rb +380 -0
  316. data/generated/google/apis/prediction_v1_6.rb +44 -0
  317. data/generated/google/apis/proximitybeacon_v1beta1/classes.rb +639 -0
  318. data/generated/google/apis/proximitybeacon_v1beta1/representations.rb +312 -0
  319. data/generated/google/apis/proximitybeacon_v1beta1/service.rb +591 -0
  320. data/generated/google/apis/proximitybeacon_v1beta1.rb +31 -0
  321. data/generated/google/apis/pubsub_v1/classes.rb +614 -0
  322. data/generated/google/apis/pubsub_v1/representations.rb +323 -0
  323. data/generated/google/apis/pubsub_v1/service.rb +774 -0
  324. data/generated/google/apis/pubsub_v1.rb +37 -0
  325. data/generated/google/apis/pubsub_v1beta2/classes.rb +620 -0
  326. data/generated/google/apis/pubsub_v1beta2/representations.rb +282 -0
  327. data/generated/google/apis/pubsub_v1beta2/service.rb +774 -0
  328. data/generated/google/apis/pubsub_v1beta2.rb +37 -0
  329. data/generated/google/apis/qpx_express_v1/classes.rb +1268 -0
  330. data/generated/google/apis/qpx_express_v1/representations.rb +472 -0
  331. data/generated/google/apis/qpx_express_v1/service.rb +100 -0
  332. data/generated/google/apis/qpx_express_v1.rb +31 -0
  333. data/generated/google/apis/replicapool_v1beta2/classes.rb +631 -0
  334. data/generated/google/apis/replicapool_v1beta2/representations.rb +264 -0
  335. data/generated/google/apis/replicapool_v1beta2/service.rb +608 -0
  336. data/generated/google/apis/replicapool_v1beta2.rb +44 -0
  337. data/generated/google/apis/replicapoolupdater_v1beta1/classes.rb +733 -0
  338. data/generated/google/apis/replicapoolupdater_v1beta1/representations.rb +294 -0
  339. data/generated/google/apis/replicapoolupdater_v1beta1/service.rb +508 -0
  340. data/generated/google/apis/replicapoolupdater_v1beta1.rb +44 -0
  341. data/generated/google/apis/reseller_v1/classes.rb +526 -0
  342. data/generated/google/apis/reseller_v1/representations.rb +223 -0
  343. data/generated/google/apis/reseller_v1/service.rb +623 -0
  344. data/generated/google/apis/reseller_v1.rb +37 -0
  345. data/generated/google/apis/resourceviews_v1beta2/classes.rb +660 -0
  346. data/generated/google/apis/resourceviews_v1beta2/representations.rb +301 -0
  347. data/generated/google/apis/resourceviews_v1beta2/service.rb +563 -0
  348. data/generated/google/apis/resourceviews_v1beta2.rb +50 -0
  349. data/generated/google/apis/script_v1/classes.rb +259 -0
  350. data/generated/google/apis/script_v1/representations.rb +118 -0
  351. data/generated/google/apis/script_v1/service.rb +98 -0
  352. data/generated/google/apis/script_v1.rb +61 -0
  353. data/generated/google/apis/site_verification_v1/classes.rb +185 -0
  354. data/generated/google/apis/site_verification_v1/representations.rb +113 -0
  355. data/generated/google/apis/site_verification_v1/service.rb +315 -0
  356. data/generated/google/apis/site_verification_v1.rb +37 -0
  357. data/generated/google/apis/sqladmin_v1beta4/classes.rb +2030 -0
  358. data/generated/google/apis/sqladmin_v1beta4/representations.rb +856 -0
  359. data/generated/google/apis/sqladmin_v1beta4/service.rb +1625 -0
  360. data/generated/google/apis/sqladmin_v1beta4.rb +37 -0
  361. data/generated/google/apis/storage_v1/classes.rb +1222 -0
  362. data/generated/google/apis/storage_v1/representations.rb +497 -0
  363. data/generated/google/apis/storage_v1/service.rb +1903 -0
  364. data/generated/google/apis/storage_v1.rb +46 -0
  365. data/generated/google/apis/storagetransfer_v1/classes.rb +1046 -0
  366. data/generated/google/apis/storagetransfer_v1/representations.rb +418 -0
  367. data/generated/google/apis/storagetransfer_v1/service.rb +473 -0
  368. data/generated/google/apis/storagetransfer_v1.rb +35 -0
  369. data/generated/google/apis/tagmanager_v1/classes.rb +1494 -0
  370. data/generated/google/apis/tagmanager_v1/representations.rb +611 -0
  371. data/generated/google/apis/tagmanager_v1/service.rb +2119 -0
  372. data/generated/google/apis/tagmanager_v1.rb +52 -0
  373. data/generated/google/apis/taskqueue_v1beta2/classes.rb +254 -0
  374. data/generated/google/apis/taskqueue_v1beta2/representations.rb +126 -0
  375. data/generated/google/apis/taskqueue_v1beta2/service.rb +408 -0
  376. data/generated/google/apis/taskqueue_v1beta2.rb +37 -0
  377. data/generated/google/apis/tasks_v1/classes.rb +296 -0
  378. data/generated/google/apis/tasks_v1/representations.rb +125 -0
  379. data/generated/google/apis/tasks_v1/service.rb +643 -0
  380. data/generated/google/apis/tasks_v1.rb +37 -0
  381. data/generated/google/apis/translate_v2/classes.rb +168 -0
  382. data/generated/google/apis/translate_v2/representations.rb +121 -0
  383. data/generated/google/apis/translate_v2/service.rb +182 -0
  384. data/generated/google/apis/translate_v2.rb +31 -0
  385. data/generated/google/apis/urlshortener_v1/classes.rb +246 -0
  386. data/generated/google/apis/urlshortener_v1/representations.rb +121 -0
  387. data/generated/google/apis/urlshortener_v1/service.rb +176 -0
  388. data/generated/google/apis/urlshortener_v1.rb +34 -0
  389. data/generated/google/apis/vision_v1/classes.rb +1259 -0
  390. data/generated/google/apis/vision_v1/representations.rb +418 -0
  391. data/generated/google/apis/vision_v1/service.rb +91 -0
  392. data/generated/google/apis/vision_v1.rb +37 -0
  393. data/generated/google/apis/webmasters_v3/classes.rb +563 -0
  394. data/generated/google/apis/webmasters_v3/representations.rb +282 -0
  395. data/generated/google/apis/webmasters_v3/service.rb +573 -0
  396. data/generated/google/apis/webmasters_v3.rb +37 -0
  397. data/generated/google/apis/youtube_analytics_v1/classes.rb +546 -0
  398. data/generated/google/apis/youtube_analytics_v1/representations.rb +273 -0
  399. data/generated/google/apis/youtube_analytics_v1/service.rb +562 -0
  400. data/generated/google/apis/youtube_analytics_v1.rb +46 -0
  401. data/generated/google/apis/youtube_v3/classes.rb +8071 -0
  402. data/generated/google/apis/youtube_v3/representations.rb +3134 -0
  403. data/generated/google/apis/youtube_v3/service.rb +4403 -0
  404. data/generated/google/apis/youtube_v3.rb +49 -0
  405. data/generated/google/apis/youtubereporting_v1/classes.rb +258 -0
  406. data/generated/google/apis/youtubereporting_v1/representations.rb +144 -0
  407. data/generated/google/apis/youtubereporting_v1/service.rb +364 -0
  408. data/generated/google/apis/youtubereporting_v1.rb +38 -0
  409. data/google-api-client.gemspec +25 -39
  410. data/lib/google/api_client/auth/installed_app.rb +7 -5
  411. data/lib/google/api_client/auth/key_utils.rb +1 -0
  412. data/lib/google/api_client/auth/storage.rb +4 -2
  413. data/lib/google/api_client/auth/storages/file_store.rb +2 -3
  414. data/lib/google/api_client/auth/storages/redis_store.rb +7 -2
  415. data/lib/google/api_client/client_secrets.rb +7 -9
  416. data/lib/google/apis/core/api_command.rb +136 -0
  417. data/lib/google/apis/core/base_service.rb +317 -0
  418. data/lib/google/apis/core/batch.rb +239 -0
  419. data/lib/google/apis/core/download.rb +94 -0
  420. data/lib/google/apis/core/hashable.rb +44 -0
  421. data/lib/google/apis/core/http_client_adapter.rb +82 -0
  422. data/lib/google/apis/core/http_command.rb +328 -0
  423. data/lib/google/apis/core/json_representation.rb +145 -0
  424. data/lib/google/{api_client/version.rb → apis/core/logging.rb} +12 -8
  425. data/lib/google/apis/core/multipart.rb +187 -0
  426. data/lib/google/apis/core/upload.rb +289 -0
  427. data/lib/google/{api_client → apis}/errors.rb +39 -28
  428. data/lib/google/apis/generator/annotator.rb +295 -0
  429. data/lib/google/apis/generator/helpers.rb +74 -0
  430. data/lib/google/apis/generator/model.rb +143 -0
  431. data/lib/google/apis/generator/template.rb +124 -0
  432. data/lib/google/apis/generator/templates/_class.tmpl +40 -0
  433. data/lib/google/apis/generator/templates/_method.tmpl +92 -0
  434. data/lib/google/apis/generator/templates/_representation.tmpl +51 -0
  435. data/lib/google/apis/generator/templates/_representation_stub.tmpl +17 -0
  436. data/lib/google/apis/generator/templates/_representation_type.tmpl +10 -0
  437. data/lib/google/{api_client/reference.rb → apis/generator/templates/classes.rb.tmpl} +11 -9
  438. data/lib/google/apis/generator/templates/module.rb.tmpl +40 -0
  439. data/lib/google/apis/generator/templates/representations.rb.tmpl +32 -0
  440. data/lib/google/apis/generator/templates/service.rb.tmpl +60 -0
  441. data/lib/google/apis/generator.rb +70 -0
  442. data/lib/google/apis/options.rb +85 -0
  443. data/lib/google/apis/version.rb +39 -0
  444. data/lib/google/apis.rb +48 -0
  445. data/rakelib/metrics.rake +22 -0
  446. data/rakelib/rubocop.rake +10 -0
  447. data/rakelib/spec.rake +11 -0
  448. data/rakelib/yard.rake +11 -0
  449. data/samples/cli/Gemfile +7 -0
  450. data/samples/cli/README.md +51 -0
  451. data/samples/cli/google-api-samples +32 -0
  452. data/samples/cli/lib/base_cli.rb +95 -0
  453. data/samples/cli/lib/samples/analytics.rb +62 -0
  454. data/samples/cli/lib/samples/androidpublisher.rb +47 -0
  455. data/samples/cli/lib/samples/calendar.rb +83 -0
  456. data/samples/cli/lib/samples/drive.rb +82 -0
  457. data/samples/cli/lib/samples/gmail.rb +50 -0
  458. data/samples/cli/lib/samples/pubsub.rb +114 -0
  459. data/samples/cli/lib/samples/translate.rb +44 -0
  460. data/samples/cli/lib/samples/you_tube.rb +44 -0
  461. data/samples/web/Gemfile +7 -0
  462. data/samples/web/README.md +44 -0
  463. data/samples/web/app.rb +120 -0
  464. data/samples/web/views/calendar.erb +34 -0
  465. data/{lib/google/api_client/service_account.rb → samples/web/views/drive.erb} +20 -8
  466. data/samples/web/views/home.erb +35 -0
  467. data/samples/web/views/layout.erb +40 -0
  468. data/script/generate +100 -0
  469. data/script/package +8 -0
  470. data/script/release +15 -0
  471. data/spec/fixtures/files/api_names.yaml +3 -0
  472. data/spec/fixtures/files/auth_stored_credentials.json +8 -0
  473. data/spec/fixtures/files/child/.gitignore +0 -0
  474. data/spec/fixtures/files/client_secrets.json +1 -0
  475. data/spec/fixtures/files/invalid.json +1 -0
  476. data/spec/fixtures/files/test.blah +1 -0
  477. data/spec/fixtures/files/test.txt +1 -0
  478. data/spec/fixtures/files/test_api.json +440 -0
  479. data/spec/google/api_client/auth/storage_spec.rb +1 -3
  480. data/spec/google/api_client/auth/storages/file_store_spec.rb +1 -2
  481. data/spec/google/api_client/auth/storages/redis_store_spec.rb +1 -3
  482. data/spec/google/api_client/client_secrets_spec.rb +338 -2
  483. data/spec/google/apis/core/api_command_spec.rb +209 -0
  484. data/spec/google/apis/core/batch_spec.rb +142 -0
  485. data/spec/google/apis/core/download_spec.rb +103 -0
  486. data/spec/google/apis/core/hashable_spec.rb +60 -0
  487. data/spec/google/apis/core/http_command_spec.rb +303 -0
  488. data/spec/google/apis/core/json_representation_spec.rb +199 -0
  489. data/spec/google/apis/core/service_spec.rb +247 -0
  490. data/spec/google/apis/core/upload_spec.rb +300 -0
  491. data/{lib/google/api_client/discovery.rb → spec/google/apis/generated_spec.rb} +13 -5
  492. data/spec/google/apis/generator/generator_spec.rb +324 -0
  493. data/spec/google/apis/logging_spec.rb +45 -0
  494. data/spec/google/apis/options_spec.rb +40 -0
  495. data/spec/integration_tests/adsense_spec.rb +29 -0
  496. data/spec/integration_tests/drive_spec.rb +35 -0
  497. data/spec/integration_tests/pubsub_spec.rb +48 -0
  498. data/spec/integration_tests/url_shortener_spec.rb +45 -0
  499. data/spec/spec_helper/load_path_spec.rb +33 -0
  500. data/spec/spec_helper.rb +131 -44
  501. data/third_party/hurley_patches.rb +103 -0
  502. metadata +563 -188
  503. data/lib/compat/multi_json.rb +0 -19
  504. data/lib/google/api_client/auth/file_storage.rb +0 -59
  505. data/lib/google/api_client/auth/jwt_asserter.rb +0 -126
  506. data/lib/google/api_client/auth/pkcs12.rb +0 -41
  507. data/lib/google/api_client/batch.rb +0 -326
  508. data/lib/google/api_client/charset.rb +0 -33
  509. data/lib/google/api_client/discovery/api.rb +0 -310
  510. data/lib/google/api_client/discovery/media.rb +0 -77
  511. data/lib/google/api_client/discovery/method.rb +0 -363
  512. data/lib/google/api_client/discovery/resource.rb +0 -156
  513. data/lib/google/api_client/discovery/schema.rb +0 -117
  514. data/lib/google/api_client/environment.rb +0 -42
  515. data/lib/google/api_client/gzip.rb +0 -28
  516. data/lib/google/api_client/logging.rb +0 -32
  517. data/lib/google/api_client/media.rb +0 -259
  518. data/lib/google/api_client/railtie.rb +0 -18
  519. data/lib/google/api_client/request.rb +0 -350
  520. data/lib/google/api_client/result.rb +0 -255
  521. data/lib/google/api_client/service/batch.rb +0 -110
  522. data/lib/google/api_client/service/request.rb +0 -144
  523. data/lib/google/api_client/service/resource.rb +0 -40
  524. data/lib/google/api_client/service/result.rb +0 -162
  525. data/lib/google/api_client/service/simple_file_store.rb +0 -151
  526. data/lib/google/api_client/service/stub_generator.rb +0 -61
  527. data/lib/google/api_client/service.rb +0 -233
  528. data/lib/google/api_client.rb +0 -750
  529. data/spec/google/api_client/batch_spec.rb +0 -248
  530. data/spec/google/api_client/discovery_spec.rb +0 -708
  531. data/spec/google/api_client/gzip_spec.rb +0 -98
  532. data/spec/google/api_client/media_spec.rb +0 -178
  533. data/spec/google/api_client/result_spec.rb +0 -207
  534. data/spec/google/api_client/service_account_spec.rb +0 -169
  535. data/spec/google/api_client/service_spec.rb +0 -618
  536. data/spec/google/api_client/simple_file_store_spec.rb +0 -133
  537. data/spec/google/api_client_spec.rb +0 -352
@@ -1,8 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- require 'google/api_client'
4
- require 'google/api_client/version'
5
-
3
+ require 'google/api_client/auth/storages/redis_store'
6
4
 
7
5
  describe Google::APIClient::RedisStore do
8
6
  let(:root_path) { File.expand_path(File.join(__FILE__, '..', '..', '..', '..', '..')) }
@@ -21,7 +21,306 @@ require 'google/api_client/client_secrets'
21
21
  FIXTURES_PATH = File.expand_path('../../../fixtures', __FILE__)
22
22
 
23
23
  RSpec.describe Google::APIClient::ClientSecrets do
24
-
24
+ describe '::new' do
25
+ let(:filename) { File.join(FIXTURES_PATH, 'files', 'client_secrets.json') }
26
+ let(:data) { File.open(filename, 'r') { |file| JSON.load(file.read) } }
27
+
28
+ context 'without options' do
29
+ subject { Google::APIClient::ClientSecrets.new(data) }
30
+
31
+ describe 'existence of instance variables' do
32
+ it '@access_token' do
33
+ expect(subject).to respond_to(:access_token)
34
+ end
35
+ it '@authorization_uri' do
36
+ expect(subject).to respond_to(:authorization_uri)
37
+ end
38
+ it '@client_id' do
39
+ expect(subject).to respond_to(:client_id)
40
+ end
41
+ it '@client_secret' do
42
+ expect(subject).to respond_to(:client_secret)
43
+ end
44
+ it '@expires_at' do
45
+ expect(subject).to respond_to(:expires_at)
46
+ end
47
+ it '@expires_in' do
48
+ expect(subject).to respond_to(:expires_in)
49
+ end
50
+ it '@id_token' do
51
+ expect(subject).to respond_to(:id_token)
52
+ end
53
+ it '@issued_at' do
54
+ expect(subject).to respond_to(:issued_at)
55
+ end
56
+ it '@javascript_origins' do
57
+ expect(subject).to respond_to(:javascript_origins)
58
+ end
59
+ it '@redirect_uris' do
60
+ expect(subject).to respond_to(:redirect_uris)
61
+ end
62
+ it '@refresh_token' do
63
+ expect(subject).to respond_to(:refresh_token)
64
+ end
65
+ it '@token_credential_uri' do
66
+ expect(subject).to respond_to(:token_credential_uri)
67
+ end
68
+ end
69
+
70
+ describe 'value of instance variables' do
71
+ it 'should set @access_token' do
72
+ expect(subject.access_token).to be_nil
73
+ end
74
+ it 'should set @authorization_uri' do
75
+ expect(subject.authorization_uri).to eq 'https://accounts.google.com/o/oauth2/auth'
76
+ end
77
+ it 'should set @client_id' do
78
+ expect(subject.client_id).to eq '898243283568.apps.googleusercontent.com'
79
+ end
80
+ it 'should set @client_secret' do
81
+ expect(subject.client_secret).to eq 'i8YaXdGgiQ4_KrTVNGsB7QP1'
82
+ end
83
+ it 'should set @expires_at' do
84
+ expect(subject.expires_at).to be_nil
85
+ end
86
+ it 'should set @expires_in' do
87
+ expect(subject.expires_in).to be_nil
88
+ end
89
+ it 'should set @flow' do
90
+ expect(subject.flow).to eq 'installed'
91
+ end
92
+ it 'should set @id_token' do
93
+ expect(subject.id_token).to be_nil
94
+ end
95
+ it 'should set @issued_at' do
96
+ expect(subject.issued_at).to be_nil
97
+ end
98
+ it 'should set @javascript_origins' do
99
+ expect(subject.javascript_origins).to eq []
100
+ end
101
+ it 'should set @redirect_uris' do
102
+ expect(subject.redirect_uris).to eq []
103
+ end
104
+ it 'should set @refresh_token' do
105
+ expect(subject.refresh_token).to be_nil
106
+ end
107
+ it 'should set @token_credential_uri' do
108
+ expect(subject.token_credential_uri).to eq 'https://accounts.google.com/o/oauth2/token'
109
+ end
110
+ end
111
+ end
112
+
113
+ context 'with options' do
114
+ context 'option keys are string' do
115
+ let(:string_options) do
116
+ { 'samples' =>
117
+ {
118
+ 'access_token' => 'sample_access_token',
119
+ 'auth_uri' => 'sample_auth_uri',
120
+ 'authorization_uri' => 'sample_authorization_uri',
121
+ 'client_id' => 'sample_client_id',
122
+ 'client_secret' => 'sample_client_secret',
123
+ 'expires_at' => 'sample_expires_at',
124
+ 'expires_in' => 'sample_expires_in',
125
+ 'id_token' => 'sample_id_token',
126
+ 'issued_at' => 'sample_issued_at',
127
+ 'javascript_origin' => 'sample_javascript_origin',
128
+ 'javascript_origins' => 'sample_javascript_origins',
129
+ 'redirect_uris' => 'sample_redirect_uris',
130
+ 'refresh_token' => 'sample_refresh_token',
131
+ 'token_credential_uri' => 'sample_token_credential_uri',
132
+ 'token_uri' => 'sample_token_uri' } }
133
+ end
134
+ subject { Google::APIClient::ClientSecrets.new(string_options) }
135
+
136
+ describe 'existence of instance variables' do
137
+ it '@access_token' do
138
+ expect(subject).to respond_to(:access_token)
139
+ end
140
+ it '@authorization_uri' do
141
+ expect(subject).to respond_to(:authorization_uri)
142
+ end
143
+ it '@client_id' do
144
+ expect(subject).to respond_to(:client_id)
145
+ end
146
+ it '@client_secret' do
147
+ expect(subject).to respond_to(:client_secret)
148
+ end
149
+ it '@expires_at' do
150
+ expect(subject).to respond_to(:expires_at)
151
+ end
152
+ it '@expires_in' do
153
+ expect(subject).to respond_to(:expires_in)
154
+ end
155
+ it '@id_token' do
156
+ expect(subject).to respond_to(:id_token)
157
+ end
158
+ it '@issued_at' do
159
+ expect(subject).to respond_to(:issued_at)
160
+ end
161
+ it '@javascript_origins' do
162
+ expect(subject).to respond_to(:javascript_origins)
163
+ end
164
+ it '@redirect_uris' do
165
+ expect(subject).to respond_to(:redirect_uris)
166
+ end
167
+ it '@refresh_token' do
168
+ expect(subject).to respond_to(:refresh_token)
169
+ end
170
+ it '@token_credential_uri' do
171
+ expect(subject).to respond_to(:token_credential_uri)
172
+ end
173
+ end
174
+
175
+ describe 'value of instance variables' do
176
+ it 'should set @access_token' do
177
+ expect(subject.access_token).to eq 'sample_access_token'
178
+ end
179
+ it 'should set @authorization_uri' do
180
+ expect(subject.authorization_uri).to eq 'sample_auth_uri'
181
+ end
182
+ it 'should set @client_id' do
183
+ expect(subject.client_id).to eq 'sample_client_id'
184
+ end
185
+ it 'should set @client_secret' do
186
+ expect(subject.client_secret).to eq 'sample_client_secret'
187
+ end
188
+ it 'should set @expires_at' do
189
+ expect(subject.expires_at).to eq 'sample_expires_at'
190
+ end
191
+ it 'should set @expires_in' do
192
+ expect(subject.expires_in).to eq 'sample_expires_in'
193
+ end
194
+ it 'should set @flow' do
195
+ expect(subject.flow).to eq 'samples'
196
+ end
197
+ it 'should set @id_token' do
198
+ expect(subject.id_token).to eq 'sample_id_token'
199
+ end
200
+ it 'should set @issued_at' do
201
+ expect(subject.issued_at).to eq 'sample_issued_at'
202
+ end
203
+ it 'should set @javascript_origins' do
204
+ expect(subject.javascript_origins).to eq 'sample_javascript_origins'
205
+ end
206
+ it 'should set @redirect_uris' do
207
+ expect(subject.redirect_uris).to eq 'sample_redirect_uris'
208
+ end
209
+ it 'should set @refresh_token' do
210
+ expect(subject.refresh_token).to eq 'sample_refresh_token'
211
+ end
212
+ it 'should set @token_credential_uri' do
213
+ expect(subject.token_credential_uri).to eq 'sample_token_uri'
214
+ end
215
+ end
216
+ end
217
+
218
+ context 'option keys are symbol' do
219
+ let(:symbol_options) do
220
+ { 'samples' =>
221
+ {
222
+ access_token: 'sample_access_token',
223
+ auth_uri: 'sample_auth_uri',
224
+ authorization_uri: 'sample_authorization_uri',
225
+ client_id: 'sample_client_id',
226
+ client_secret: 'sample_client_secret',
227
+ expires_at: 'sample_expires_at',
228
+ expires_in: 'sample_expires_in',
229
+ id_token: 'sample_id_token',
230
+ issued_at: 'sample_issued_at',
231
+ javascript_origin: 'sample_javascript_origin',
232
+ javascript_origins: 'sample_javascript_origins',
233
+ redirect_uris: 'sample_redirect_uris',
234
+ refresh_token: 'sample_refresh_token',
235
+ token_credential_uri: 'sample_token_credential_uri',
236
+ token_uri: 'sample_token_uri' } }
237
+ end
238
+ subject { Google::APIClient::ClientSecrets.new(symbol_options) }
239
+
240
+ describe 'existence of instance variables' do
241
+ it '@access_token' do
242
+ expect(subject).to respond_to(:access_token)
243
+ end
244
+ it '@authorization_uri' do
245
+ expect(subject).to respond_to(:authorization_uri)
246
+ end
247
+ it '@client_id' do
248
+ expect(subject).to respond_to(:client_id)
249
+ end
250
+ it '@client_secret' do
251
+ expect(subject).to respond_to(:client_secret)
252
+ end
253
+ it '@expires_at' do
254
+ expect(subject).to respond_to(:expires_at)
255
+ end
256
+ it '@expires_in' do
257
+ expect(subject).to respond_to(:expires_in)
258
+ end
259
+ it '@id_token' do
260
+ expect(subject).to respond_to(:id_token)
261
+ end
262
+ it '@issued_at' do
263
+ expect(subject).to respond_to(:issued_at)
264
+ end
265
+ it '@javascript_origins' do
266
+ expect(subject).to respond_to(:javascript_origins)
267
+ end
268
+ it '@redirect_uris' do
269
+ expect(subject).to respond_to(:redirect_uris)
270
+ end
271
+ it '@refresh_token' do
272
+ expect(subject).to respond_to(:refresh_token)
273
+ end
274
+ it '@token_credential_uri' do
275
+ expect(subject).to respond_to(:token_credential_uri)
276
+ end
277
+ end
278
+
279
+ describe 'value of instance variables' do
280
+ it 'should set @access_token' do
281
+ expect(subject.access_token).to eq 'sample_access_token'
282
+ end
283
+ it 'should set @authorization_uri' do
284
+ expect(subject.authorization_uri).to eq 'sample_auth_uri'
285
+ end
286
+ it 'should set @client_id' do
287
+ expect(subject.client_id).to eq 'sample_client_id'
288
+ end
289
+ it 'should set @client_secret' do
290
+ expect(subject.client_secret).to eq 'sample_client_secret'
291
+ end
292
+ it 'should set @expires_at' do
293
+ expect(subject.expires_at).to eq 'sample_expires_at'
294
+ end
295
+ it 'should set @expires_in' do
296
+ expect(subject.expires_in).to eq 'sample_expires_in'
297
+ end
298
+ it 'should set @flow' do
299
+ expect(subject.flow).to eq 'samples'
300
+ end
301
+ it 'should set @id_token' do
302
+ expect(subject.id_token).to eq 'sample_id_token'
303
+ end
304
+ it 'should set @issued_at' do
305
+ expect(subject.issued_at).to eq 'sample_issued_at'
306
+ end
307
+ it 'should set @javascript_origins' do
308
+ expect(subject.javascript_origins).to eq 'sample_javascript_origins'
309
+ end
310
+ it 'should set @redirect_uris' do
311
+ expect(subject.redirect_uris).to eq 'sample_redirect_uris'
312
+ end
313
+ it 'should set @refresh_token' do
314
+ expect(subject.refresh_token).to eq 'sample_refresh_token'
315
+ end
316
+ it 'should set @token_credential_uri' do
317
+ expect(subject.token_credential_uri).to eq 'sample_token_uri'
318
+ end
319
+ end
320
+ end
321
+ end
322
+ end
323
+
25
324
  context 'with JSON file' do
26
325
  let(:file) { File.join(FIXTURES_PATH, 'files', 'client_secrets.json') }
27
326
  subject(:secrets) { Google::APIClient::ClientSecrets.load(file)}
@@ -48,6 +347,43 @@ RSpec.describe Google::APIClient::ClientSecrets do
48
347
  expect(hash["installed"]["client_secret"]).to be == 'i8YaXdGgiQ4_KrTVNGsB7QP1'
49
348
  end
50
349
 
350
+ it 'should remove empty value' do
351
+ expect(hash["installed"]["redirect_uris"]).to be nil
352
+ end
353
+
354
+ it 'should remove nil values' do
355
+ expect(hash["installed"]["issued_at"]).to be nil
356
+ end
357
+ end
358
+ end
359
+
360
+ context 'with no existing JSON file' do
361
+ it 'should raise exception' do
362
+ file = File.join(FIXTURES_PATH, 'files', 'no_file.json')
363
+ expect { Google::APIClient::ClientSecrets.load(file) }.to raise_exception(Errno::ENOENT)
364
+ end
365
+ end
366
+
367
+ context 'with invalid JSON file' do
368
+ it 'should raise exception' do
369
+ file = File.join(FIXTURES_PATH, 'files', 'invalid.json')
370
+ expect { Google::APIClient::ClientSecrets.load(file) }.to raise_exception(JSON::ParserError)
51
371
  end
52
372
  end
53
- end
373
+
374
+ context 'with folder name, which have json file in parents' do
375
+ it 'should load the correct client id' do
376
+ folder = File.join(FIXTURES_PATH, 'files', 'child')
377
+ secrets = Google::APIClient::ClientSecrets.load(folder)
378
+ expect(secrets.client_id).to be == '898243283568.apps.googleusercontent.com'
379
+ end
380
+ end
381
+
382
+ context 'with folder wihout client_secrets.json' do
383
+ it "should raise exception", fakefs: true do
384
+ FileUtils.mkdir("/tmp")
385
+ expect { Google::APIClient::ClientSecrets.load('/tmp') }.to raise_exception(ArgumentError)
386
+ end
387
+ end
388
+
389
+ end
@@ -0,0 +1,209 @@
1
+ # Copyright 2015 Google Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'spec_helper'
16
+ require 'google/apis/core/api_command'
17
+ require 'google/apis/core/json_representation'
18
+ require 'hurley/test'
19
+
20
+ RSpec.describe Google::Apis::Core::HttpCommand do
21
+ include TestHelpers
22
+ include_context 'HTTP client'
23
+
24
+ let(:model_class) do
25
+ Class.new do
26
+ attr_accessor :value
27
+ end
28
+ end
29
+
30
+ let(:representer_class) do
31
+ Class.new(Google::Apis::Core::JsonRepresentation) do
32
+ property :value
33
+ end
34
+ end
35
+
36
+ context('with a request body') do
37
+ let(:command) do
38
+ request = model_class.new
39
+ request.value = 'hello'
40
+ command = Google::Apis::Core::ApiCommand.new(:post, 'https://www.googleapis.com/zoo/animals')
41
+ command.request_representation = representer_class
42
+ command.request_object = request
43
+ command
44
+ end
45
+
46
+ before(:example) do
47
+ stub_request(:post, 'https://www.googleapis.com/zoo/animals')
48
+ .to_return(headers: { 'Content-Type' => 'application/json' }, body: %({}))
49
+ end
50
+
51
+ it 'should serialize the request object' do
52
+ command.execute(client)
53
+ expect(a_request(:post, 'https://www.googleapis.com/zoo/animals').with do |req|
54
+ be_json_eql(%({"value":"hello"})).matches?(req.body)
55
+ end).to have_been_made
56
+ end
57
+ end
58
+
59
+ context('with a JSON response') do
60
+ let(:command) do
61
+ command = Google::Apis::Core::ApiCommand.new(:get, 'https://www.googleapis.com/zoo/animals')
62
+ command.response_representation = representer_class
63
+ command.response_class = model_class
64
+ command
65
+ end
66
+
67
+ before(:example) do
68
+ stub_request(:get, 'https://www.googleapis.com/zoo/animals')
69
+ .to_return(headers: { 'Content-Type' => 'application/json' }, body: %({"value" : "hello"}))
70
+ end
71
+
72
+ it 'should return a model instance' do
73
+ result = command.execute(client)
74
+ expect(result).to be_kind_of(model_class)
75
+ end
76
+
77
+ it 'should return a populated object' do
78
+ result = command.execute(client)
79
+ expect(result.value).to eql 'hello'
80
+ end
81
+ end
82
+
83
+ context('with an invalid content-type response') do
84
+ let(:command) do
85
+ command = Google::Apis::Core::ApiCommand.new(:get, 'https://www.googleapis.com/zoo/animals')
86
+ command.response_representation = representer_class
87
+ command.response_class = model_class
88
+ command
89
+ end
90
+
91
+ before(:example) do
92
+ stub_request(:get, 'https://www.googleapis.com/zoo/animals')
93
+ .to_return(headers: { 'Content-Type' => 'text/plain' }, body: %(Ignore me))
94
+ end
95
+
96
+ it 'should return nil' do
97
+ result = command.execute(client)
98
+ expect(result).to be_nil
99
+ end
100
+ end
101
+
102
+
103
+ context('with a field parameter') do
104
+ let(:command) do
105
+ command = Google::Apis::Core::ApiCommand.new(:get, 'https://www.googleapis.com/zoo/animals')
106
+ command.query['fields'] = ':items(:id, :long_name, :a_really_long_name), shouldBeLeftAlone '
107
+ command
108
+ end
109
+
110
+ before(:example) do
111
+ stub_request(:get, /.*/)
112
+ .to_return(headers: { 'Content-Type' => 'application/json' }, body: %({}))
113
+ end
114
+
115
+ it 'should normalize fields params' do
116
+ command.execute(client)
117
+ expect(a_request(:get, 'https://www.googleapis.com/zoo/animals')
118
+ .with(query: { 'fields' => 'items(id, longName, aReallyLongName), shouldBeLeftAlone ' })) .to have_been_made
119
+ end
120
+ end
121
+
122
+ context('with a rate limit response') do
123
+ let(:command) do
124
+ Google::Apis::Core::ApiCommand.new(:get, 'https://www.googleapis.com/zoo/animals')
125
+ end
126
+
127
+ before(:example) do
128
+ json = <<EOF
129
+ {
130
+ "error": {
131
+ "errors": [
132
+ {
133
+ "domain": "global",
134
+ "reason": "rateLimitExceeded",
135
+ "message": "Rate limit exceeded"
136
+ }
137
+ ],
138
+ "code": 403,
139
+ "message": "Rate limit exceeded"
140
+ }
141
+ }
142
+ EOF
143
+ stub_request(:get, 'https://www.googleapis.com/zoo/animals')
144
+ .to_return(status: [403, 'Rate Limit Exceeded'], headers: { 'Content-Type' => 'application/json' }, body: json)
145
+ .to_return(headers: { 'Content-Type' => 'application/json' }, body: %({}))
146
+ end
147
+
148
+ it 'should retry' do
149
+ command.execute(client)
150
+ expect(a_request(:get, 'https://www.googleapis.com/zoo/animals')).to have_been_made.times(2)
151
+ end
152
+ end
153
+
154
+ context('with a client error response') do
155
+ let(:command) do
156
+ Google::Apis::Core::ApiCommand.new(:get, 'https://www.googleapis.com/zoo/animals')
157
+ end
158
+
159
+ before(:example) do
160
+ json = <<EOF
161
+ {
162
+ "error": {
163
+ "errors": [
164
+ {
165
+ "domain": "global",
166
+ "reason": "timeRangeEmpty",
167
+ "message": "The specified time range is empty."
168
+ }
169
+ ],
170
+ "code": 400,
171
+ "message": "The specified time range is empty."
172
+ }
173
+ }
174
+ EOF
175
+ stub_request(:get, 'https://www.googleapis.com/zoo/animals')
176
+ .to_return(status: [400, 'Bad Request'], headers: { 'Content-Type' => 'application/json' }, body: json)
177
+ end
178
+
179
+ it 'should raise client error' do
180
+ expect { command.execute(client) }.to raise_error(Google::Apis::ClientError)
181
+ end
182
+
183
+ it 'should raise an error with the reason and message' do
184
+ expect { command.execute(client) }.to raise_error(
185
+ /timeRangeEmpty: The specified time range is empty/)
186
+ end
187
+ end
188
+
189
+ context('with an empty error body') do
190
+ let(:command) do
191
+ Google::Apis::Core::ApiCommand.new(:get, 'https://www.googleapis.com/zoo/animals')
192
+ end
193
+
194
+ before(:example) do
195
+ json = %({})
196
+
197
+ stub_request(:get, 'https://www.googleapis.com/zoo/animals')
198
+ .to_return(status: [403, 'Rate Limit Exceeded'], headers: { 'Content-Type' => 'application/json' }, body: json)
199
+ end
200
+
201
+ it 'should raise client error' do
202
+ expect { command.execute(client) }.to raise_error(Google::Apis::ClientError)
203
+ end
204
+
205
+ it 'should use the default error message' do
206
+ expect { command.execute(client) }.to raise_error(/Invalid request/)
207
+ end
208
+ end
209
+ end