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
@@ -0,0 +1,2569 @@
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 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module DriveV2
24
+
25
+ # An item with user information and settings.
26
+ class About
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Information about supported additional roles per file type. The most specific
30
+ # type takes precedence.
31
+ # Corresponds to the JSON property `additionalRoleInfo`
32
+ # @return [Array<Google::Apis::DriveV2::About::AdditionalRoleInfo>]
33
+ attr_accessor :additional_role_info
34
+
35
+ # The domain sharing policy for the current user. Possible values are:
36
+ # - allowed
37
+ # - allowedWithWarning
38
+ # - incomingOnly
39
+ # - disallowed
40
+ # Corresponds to the JSON property `domainSharingPolicy`
41
+ # @return [String]
42
+ attr_accessor :domain_sharing_policy
43
+
44
+ # The ETag of the item.
45
+ # Corresponds to the JSON property `etag`
46
+ # @return [String]
47
+ attr_accessor :etag
48
+
49
+ # The allowable export formats.
50
+ # Corresponds to the JSON property `exportFormats`
51
+ # @return [Array<Google::Apis::DriveV2::About::ExportFormat>]
52
+ attr_accessor :export_formats
53
+
54
+ # List of additional features enabled on this account.
55
+ # Corresponds to the JSON property `features`
56
+ # @return [Array<Google::Apis::DriveV2::About::Feature>]
57
+ attr_accessor :features
58
+
59
+ # The palette of allowable folder colors as RGB hex strings.
60
+ # Corresponds to the JSON property `folderColorPalette`
61
+ # @return [Array<String>]
62
+ attr_accessor :folder_color_palette
63
+
64
+ # The allowable import formats.
65
+ # Corresponds to the JSON property `importFormats`
66
+ # @return [Array<Google::Apis::DriveV2::About::ImportFormat>]
67
+ attr_accessor :import_formats
68
+
69
+ # A boolean indicating whether the authenticated app is installed by the
70
+ # authenticated user.
71
+ # Corresponds to the JSON property `isCurrentAppInstalled`
72
+ # @return [Boolean]
73
+ attr_accessor :is_current_app_installed
74
+ alias_method :is_current_app_installed?, :is_current_app_installed
75
+
76
+ # This is always drive#about.
77
+ # Corresponds to the JSON property `kind`
78
+ # @return [String]
79
+ attr_accessor :kind
80
+
81
+ # The user's language or locale code, as defined by BCP 47, with some extensions
82
+ # from Unicode's LDML format (http://www.unicode.org/reports/tr35/).
83
+ # Corresponds to the JSON property `languageCode`
84
+ # @return [String]
85
+ attr_accessor :language_code
86
+
87
+ # The largest change id.
88
+ # Corresponds to the JSON property `largestChangeId`
89
+ # @return [String]
90
+ attr_accessor :largest_change_id
91
+
92
+ # List of max upload sizes for each file type. The most specific type takes
93
+ # precedence.
94
+ # Corresponds to the JSON property `maxUploadSizes`
95
+ # @return [Array<Google::Apis::DriveV2::About::MaxUploadSize>]
96
+ attr_accessor :max_upload_sizes
97
+
98
+ # The name of the current user.
99
+ # Corresponds to the JSON property `name`
100
+ # @return [String]
101
+ attr_accessor :name
102
+
103
+ # The current user's ID as visible in the permissions collection.
104
+ # Corresponds to the JSON property `permissionId`
105
+ # @return [String]
106
+ attr_accessor :permission_id
107
+
108
+ # The amount of storage quota used by different Google services.
109
+ # Corresponds to the JSON property `quotaBytesByService`
110
+ # @return [Array<Google::Apis::DriveV2::About::QuotaBytesByService>]
111
+ attr_accessor :quota_bytes_by_service
112
+
113
+ # The total number of quota bytes.
114
+ # Corresponds to the JSON property `quotaBytesTotal`
115
+ # @return [String]
116
+ attr_accessor :quota_bytes_total
117
+
118
+ # The number of quota bytes used by Google Drive.
119
+ # Corresponds to the JSON property `quotaBytesUsed`
120
+ # @return [String]
121
+ attr_accessor :quota_bytes_used
122
+
123
+ # The number of quota bytes used by all Google apps (Drive, Picasa, etc.).
124
+ # Corresponds to the JSON property `quotaBytesUsedAggregate`
125
+ # @return [String]
126
+ attr_accessor :quota_bytes_used_aggregate
127
+
128
+ # The number of quota bytes used by trashed items.
129
+ # Corresponds to the JSON property `quotaBytesUsedInTrash`
130
+ # @return [String]
131
+ attr_accessor :quota_bytes_used_in_trash
132
+
133
+ # The type of the user's storage quota. Possible values are:
134
+ # - LIMITED
135
+ # - UNLIMITED
136
+ # Corresponds to the JSON property `quotaType`
137
+ # @return [String]
138
+ attr_accessor :quota_type
139
+
140
+ # The number of remaining change ids.
141
+ # Corresponds to the JSON property `remainingChangeIds`
142
+ # @return [String]
143
+ attr_accessor :remaining_change_ids
144
+
145
+ # The id of the root folder.
146
+ # Corresponds to the JSON property `rootFolderId`
147
+ # @return [String]
148
+ attr_accessor :root_folder_id
149
+
150
+ # A link back to this item.
151
+ # Corresponds to the JSON property `selfLink`
152
+ # @return [String]
153
+ attr_accessor :self_link
154
+
155
+ # Information about a Drive user.
156
+ # Corresponds to the JSON property `user`
157
+ # @return [Google::Apis::DriveV2::User]
158
+ attr_accessor :user
159
+
160
+ def initialize(**args)
161
+ update!(**args)
162
+ end
163
+
164
+ # Update properties of this object
165
+ def update!(**args)
166
+ @additional_role_info = args[:additional_role_info] if args.key?(:additional_role_info)
167
+ @domain_sharing_policy = args[:domain_sharing_policy] if args.key?(:domain_sharing_policy)
168
+ @etag = args[:etag] if args.key?(:etag)
169
+ @export_formats = args[:export_formats] if args.key?(:export_formats)
170
+ @features = args[:features] if args.key?(:features)
171
+ @folder_color_palette = args[:folder_color_palette] if args.key?(:folder_color_palette)
172
+ @import_formats = args[:import_formats] if args.key?(:import_formats)
173
+ @is_current_app_installed = args[:is_current_app_installed] if args.key?(:is_current_app_installed)
174
+ @kind = args[:kind] if args.key?(:kind)
175
+ @language_code = args[:language_code] if args.key?(:language_code)
176
+ @largest_change_id = args[:largest_change_id] if args.key?(:largest_change_id)
177
+ @max_upload_sizes = args[:max_upload_sizes] if args.key?(:max_upload_sizes)
178
+ @name = args[:name] if args.key?(:name)
179
+ @permission_id = args[:permission_id] if args.key?(:permission_id)
180
+ @quota_bytes_by_service = args[:quota_bytes_by_service] if args.key?(:quota_bytes_by_service)
181
+ @quota_bytes_total = args[:quota_bytes_total] if args.key?(:quota_bytes_total)
182
+ @quota_bytes_used = args[:quota_bytes_used] if args.key?(:quota_bytes_used)
183
+ @quota_bytes_used_aggregate = args[:quota_bytes_used_aggregate] if args.key?(:quota_bytes_used_aggregate)
184
+ @quota_bytes_used_in_trash = args[:quota_bytes_used_in_trash] if args.key?(:quota_bytes_used_in_trash)
185
+ @quota_type = args[:quota_type] if args.key?(:quota_type)
186
+ @remaining_change_ids = args[:remaining_change_ids] if args.key?(:remaining_change_ids)
187
+ @root_folder_id = args[:root_folder_id] if args.key?(:root_folder_id)
188
+ @self_link = args[:self_link] if args.key?(:self_link)
189
+ @user = args[:user] if args.key?(:user)
190
+ end
191
+
192
+ #
193
+ class AdditionalRoleInfo
194
+ include Google::Apis::Core::Hashable
195
+
196
+ # The supported additional roles per primary role.
197
+ # Corresponds to the JSON property `roleSets`
198
+ # @return [Array<Google::Apis::DriveV2::About::AdditionalRoleInfo::RoleSet>]
199
+ attr_accessor :role_sets
200
+
201
+ # The content type that this additional role info applies to.
202
+ # Corresponds to the JSON property `type`
203
+ # @return [String]
204
+ attr_accessor :type
205
+
206
+ def initialize(**args)
207
+ update!(**args)
208
+ end
209
+
210
+ # Update properties of this object
211
+ def update!(**args)
212
+ @role_sets = args[:role_sets] if args.key?(:role_sets)
213
+ @type = args[:type] if args.key?(:type)
214
+ end
215
+
216
+ #
217
+ class RoleSet
218
+ include Google::Apis::Core::Hashable
219
+
220
+ # The supported additional roles with the primary role.
221
+ # Corresponds to the JSON property `additionalRoles`
222
+ # @return [Array<String>]
223
+ attr_accessor :additional_roles
224
+
225
+ # A primary permission role.
226
+ # Corresponds to the JSON property `primaryRole`
227
+ # @return [String]
228
+ attr_accessor :primary_role
229
+
230
+ def initialize(**args)
231
+ update!(**args)
232
+ end
233
+
234
+ # Update properties of this object
235
+ def update!(**args)
236
+ @additional_roles = args[:additional_roles] if args.key?(:additional_roles)
237
+ @primary_role = args[:primary_role] if args.key?(:primary_role)
238
+ end
239
+ end
240
+ end
241
+
242
+ #
243
+ class ExportFormat
244
+ include Google::Apis::Core::Hashable
245
+
246
+ # The content type to convert from.
247
+ # Corresponds to the JSON property `source`
248
+ # @return [String]
249
+ attr_accessor :source
250
+
251
+ # The possible content types to convert to.
252
+ # Corresponds to the JSON property `targets`
253
+ # @return [Array<String>]
254
+ attr_accessor :targets
255
+
256
+ def initialize(**args)
257
+ update!(**args)
258
+ end
259
+
260
+ # Update properties of this object
261
+ def update!(**args)
262
+ @source = args[:source] if args.key?(:source)
263
+ @targets = args[:targets] if args.key?(:targets)
264
+ end
265
+ end
266
+
267
+ #
268
+ class Feature
269
+ include Google::Apis::Core::Hashable
270
+
271
+ # The name of the feature.
272
+ # Corresponds to the JSON property `featureName`
273
+ # @return [String]
274
+ attr_accessor :feature_name
275
+
276
+ # The request limit rate for this feature, in queries per second.
277
+ # Corresponds to the JSON property `featureRate`
278
+ # @return [Float]
279
+ attr_accessor :feature_rate
280
+
281
+ def initialize(**args)
282
+ update!(**args)
283
+ end
284
+
285
+ # Update properties of this object
286
+ def update!(**args)
287
+ @feature_name = args[:feature_name] if args.key?(:feature_name)
288
+ @feature_rate = args[:feature_rate] if args.key?(:feature_rate)
289
+ end
290
+ end
291
+
292
+ #
293
+ class ImportFormat
294
+ include Google::Apis::Core::Hashable
295
+
296
+ # The imported file's content type to convert from.
297
+ # Corresponds to the JSON property `source`
298
+ # @return [String]
299
+ attr_accessor :source
300
+
301
+ # The possible content types to convert to.
302
+ # Corresponds to the JSON property `targets`
303
+ # @return [Array<String>]
304
+ attr_accessor :targets
305
+
306
+ def initialize(**args)
307
+ update!(**args)
308
+ end
309
+
310
+ # Update properties of this object
311
+ def update!(**args)
312
+ @source = args[:source] if args.key?(:source)
313
+ @targets = args[:targets] if args.key?(:targets)
314
+ end
315
+ end
316
+
317
+ #
318
+ class MaxUploadSize
319
+ include Google::Apis::Core::Hashable
320
+
321
+ # The max upload size for this type.
322
+ # Corresponds to the JSON property `size`
323
+ # @return [String]
324
+ attr_accessor :size
325
+
326
+ # The file type.
327
+ # Corresponds to the JSON property `type`
328
+ # @return [String]
329
+ attr_accessor :type
330
+
331
+ def initialize(**args)
332
+ update!(**args)
333
+ end
334
+
335
+ # Update properties of this object
336
+ def update!(**args)
337
+ @size = args[:size] if args.key?(:size)
338
+ @type = args[:type] if args.key?(:type)
339
+ end
340
+ end
341
+
342
+ #
343
+ class QuotaBytesByService
344
+ include Google::Apis::Core::Hashable
345
+
346
+ # The storage quota bytes used by the service.
347
+ # Corresponds to the JSON property `bytesUsed`
348
+ # @return [String]
349
+ attr_accessor :bytes_used
350
+
351
+ # The service's name, e.g. DRIVE, GMAIL, or PHOTOS.
352
+ # Corresponds to the JSON property `serviceName`
353
+ # @return [String]
354
+ attr_accessor :service_name
355
+
356
+ def initialize(**args)
357
+ update!(**args)
358
+ end
359
+
360
+ # Update properties of this object
361
+ def update!(**args)
362
+ @bytes_used = args[:bytes_used] if args.key?(:bytes_used)
363
+ @service_name = args[:service_name] if args.key?(:service_name)
364
+ end
365
+ end
366
+ end
367
+
368
+ # The apps resource provides a list of the apps that a user has installed, with
369
+ # information about each app's supported MIME types, file extensions, and other
370
+ # details.
371
+ class App
372
+ include Google::Apis::Core::Hashable
373
+
374
+ # Whether the app is authorized to access data on the user's Drive.
375
+ # Corresponds to the JSON property `authorized`
376
+ # @return [Boolean]
377
+ attr_accessor :authorized
378
+ alias_method :authorized?, :authorized
379
+
380
+ # The template url to create a new file with this app in a given folder. The
381
+ # template will contain `folderId` to be replaced by the folder to create the
382
+ # new file in.
383
+ # Corresponds to the JSON property `createInFolderTemplate`
384
+ # @return [String]
385
+ attr_accessor :create_in_folder_template
386
+
387
+ # The url to create a new file with this app.
388
+ # Corresponds to the JSON property `createUrl`
389
+ # @return [String]
390
+ attr_accessor :create_url
391
+
392
+ # Whether the app has drive-wide scope. An app with drive-wide scope can access
393
+ # all files in the user's drive.
394
+ # Corresponds to the JSON property `hasDriveWideScope`
395
+ # @return [Boolean]
396
+ attr_accessor :has_drive_wide_scope
397
+ alias_method :has_drive_wide_scope?, :has_drive_wide_scope
398
+
399
+ # The various icons for the app.
400
+ # Corresponds to the JSON property `icons`
401
+ # @return [Array<Google::Apis::DriveV2::App::Icon>]
402
+ attr_accessor :icons
403
+
404
+ # The ID of the app.
405
+ # Corresponds to the JSON property `id`
406
+ # @return [String]
407
+ attr_accessor :id
408
+
409
+ # Whether the app is installed.
410
+ # Corresponds to the JSON property `installed`
411
+ # @return [Boolean]
412
+ attr_accessor :installed
413
+ alias_method :installed?, :installed
414
+
415
+ # This is always drive#app.
416
+ # Corresponds to the JSON property `kind`
417
+ # @return [String]
418
+ attr_accessor :kind
419
+
420
+ # A long description of the app.
421
+ # Corresponds to the JSON property `longDescription`
422
+ # @return [String]
423
+ attr_accessor :long_description
424
+
425
+ # The name of the app.
426
+ # Corresponds to the JSON property `name`
427
+ # @return [String]
428
+ attr_accessor :name
429
+
430
+ # The type of object this app creates (e.g. Chart). If empty, the app name
431
+ # should be used instead.
432
+ # Corresponds to the JSON property `objectType`
433
+ # @return [String]
434
+ attr_accessor :object_type
435
+
436
+ # The template url for opening files with this app. The template will contain `
437
+ # ids` and/or `exportIds` to be replaced by the actual file ids. See Open Files
438
+ # for the full documentation.
439
+ # Corresponds to the JSON property `openUrlTemplate`
440
+ # @return [String]
441
+ attr_accessor :open_url_template
442
+
443
+ # The list of primary file extensions.
444
+ # Corresponds to the JSON property `primaryFileExtensions`
445
+ # @return [Array<String>]
446
+ attr_accessor :primary_file_extensions
447
+
448
+ # The list of primary mime types.
449
+ # Corresponds to the JSON property `primaryMimeTypes`
450
+ # @return [Array<String>]
451
+ attr_accessor :primary_mime_types
452
+
453
+ # The ID of the product listing for this app.
454
+ # Corresponds to the JSON property `productId`
455
+ # @return [String]
456
+ attr_accessor :product_id
457
+
458
+ # A link to the product listing for this app.
459
+ # Corresponds to the JSON property `productUrl`
460
+ # @return [String]
461
+ attr_accessor :product_url
462
+
463
+ # The list of secondary file extensions.
464
+ # Corresponds to the JSON property `secondaryFileExtensions`
465
+ # @return [Array<String>]
466
+ attr_accessor :secondary_file_extensions
467
+
468
+ # The list of secondary mime types.
469
+ # Corresponds to the JSON property `secondaryMimeTypes`
470
+ # @return [Array<String>]
471
+ attr_accessor :secondary_mime_types
472
+
473
+ # A short description of the app.
474
+ # Corresponds to the JSON property `shortDescription`
475
+ # @return [String]
476
+ attr_accessor :short_description
477
+
478
+ # Whether this app supports creating new objects.
479
+ # Corresponds to the JSON property `supportsCreate`
480
+ # @return [Boolean]
481
+ attr_accessor :supports_create
482
+ alias_method :supports_create?, :supports_create
483
+
484
+ # Whether this app supports importing Google Docs.
485
+ # Corresponds to the JSON property `supportsImport`
486
+ # @return [Boolean]
487
+ attr_accessor :supports_import
488
+ alias_method :supports_import?, :supports_import
489
+
490
+ # Whether this app supports opening more than one file.
491
+ # Corresponds to the JSON property `supportsMultiOpen`
492
+ # @return [Boolean]
493
+ attr_accessor :supports_multi_open
494
+ alias_method :supports_multi_open?, :supports_multi_open
495
+
496
+ # Whether this app supports creating new files when offline.
497
+ # Corresponds to the JSON property `supportsOfflineCreate`
498
+ # @return [Boolean]
499
+ attr_accessor :supports_offline_create
500
+ alias_method :supports_offline_create?, :supports_offline_create
501
+
502
+ # Whether the app is selected as the default handler for the types it supports.
503
+ # Corresponds to the JSON property `useByDefault`
504
+ # @return [Boolean]
505
+ attr_accessor :use_by_default
506
+ alias_method :use_by_default?, :use_by_default
507
+
508
+ def initialize(**args)
509
+ update!(**args)
510
+ end
511
+
512
+ # Update properties of this object
513
+ def update!(**args)
514
+ @authorized = args[:authorized] if args.key?(:authorized)
515
+ @create_in_folder_template = args[:create_in_folder_template] if args.key?(:create_in_folder_template)
516
+ @create_url = args[:create_url] if args.key?(:create_url)
517
+ @has_drive_wide_scope = args[:has_drive_wide_scope] if args.key?(:has_drive_wide_scope)
518
+ @icons = args[:icons] if args.key?(:icons)
519
+ @id = args[:id] if args.key?(:id)
520
+ @installed = args[:installed] if args.key?(:installed)
521
+ @kind = args[:kind] if args.key?(:kind)
522
+ @long_description = args[:long_description] if args.key?(:long_description)
523
+ @name = args[:name] if args.key?(:name)
524
+ @object_type = args[:object_type] if args.key?(:object_type)
525
+ @open_url_template = args[:open_url_template] if args.key?(:open_url_template)
526
+ @primary_file_extensions = args[:primary_file_extensions] if args.key?(:primary_file_extensions)
527
+ @primary_mime_types = args[:primary_mime_types] if args.key?(:primary_mime_types)
528
+ @product_id = args[:product_id] if args.key?(:product_id)
529
+ @product_url = args[:product_url] if args.key?(:product_url)
530
+ @secondary_file_extensions = args[:secondary_file_extensions] if args.key?(:secondary_file_extensions)
531
+ @secondary_mime_types = args[:secondary_mime_types] if args.key?(:secondary_mime_types)
532
+ @short_description = args[:short_description] if args.key?(:short_description)
533
+ @supports_create = args[:supports_create] if args.key?(:supports_create)
534
+ @supports_import = args[:supports_import] if args.key?(:supports_import)
535
+ @supports_multi_open = args[:supports_multi_open] if args.key?(:supports_multi_open)
536
+ @supports_offline_create = args[:supports_offline_create] if args.key?(:supports_offline_create)
537
+ @use_by_default = args[:use_by_default] if args.key?(:use_by_default)
538
+ end
539
+
540
+ #
541
+ class Icon
542
+ include Google::Apis::Core::Hashable
543
+
544
+ # Category of the icon. Allowed values are:
545
+ # - application - icon for the application
546
+ # - document - icon for a file associated with the app
547
+ # - documentShared - icon for a shared file associated with the app
548
+ # Corresponds to the JSON property `category`
549
+ # @return [String]
550
+ attr_accessor :category
551
+
552
+ # URL for the icon.
553
+ # Corresponds to the JSON property `iconUrl`
554
+ # @return [String]
555
+ attr_accessor :icon_url
556
+
557
+ # Size of the icon. Represented as the maximum of the width and height.
558
+ # Corresponds to the JSON property `size`
559
+ # @return [Fixnum]
560
+ attr_accessor :size
561
+
562
+ def initialize(**args)
563
+ update!(**args)
564
+ end
565
+
566
+ # Update properties of this object
567
+ def update!(**args)
568
+ @category = args[:category] if args.key?(:category)
569
+ @icon_url = args[:icon_url] if args.key?(:icon_url)
570
+ @size = args[:size] if args.key?(:size)
571
+ end
572
+ end
573
+ end
574
+
575
+ # A list of third-party applications which the user has installed or given
576
+ # access to Google Drive.
577
+ class AppList
578
+ include Google::Apis::Core::Hashable
579
+
580
+ # List of app IDs that the user has specified to use by default. The list is in
581
+ # reverse-priority order (lowest to highest).
582
+ # Corresponds to the JSON property `defaultAppIds`
583
+ # @return [Array<String>]
584
+ attr_accessor :default_app_ids
585
+
586
+ # The ETag of the list.
587
+ # Corresponds to the JSON property `etag`
588
+ # @return [String]
589
+ attr_accessor :etag
590
+
591
+ # The actual list of apps.
592
+ # Corresponds to the JSON property `items`
593
+ # @return [Array<Google::Apis::DriveV2::App>]
594
+ attr_accessor :items
595
+
596
+ # This is always drive#appList.
597
+ # Corresponds to the JSON property `kind`
598
+ # @return [String]
599
+ attr_accessor :kind
600
+
601
+ # A link back to this list.
602
+ # Corresponds to the JSON property `selfLink`
603
+ # @return [String]
604
+ attr_accessor :self_link
605
+
606
+ def initialize(**args)
607
+ update!(**args)
608
+ end
609
+
610
+ # Update properties of this object
611
+ def update!(**args)
612
+ @default_app_ids = args[:default_app_ids] if args.key?(:default_app_ids)
613
+ @etag = args[:etag] if args.key?(:etag)
614
+ @items = args[:items] if args.key?(:items)
615
+ @kind = args[:kind] if args.key?(:kind)
616
+ @self_link = args[:self_link] if args.key?(:self_link)
617
+ end
618
+ end
619
+
620
+ # Representation of a change to a file.
621
+ class Change
622
+ include Google::Apis::Core::Hashable
623
+
624
+ # Whether the file has been deleted.
625
+ # Corresponds to the JSON property `deleted`
626
+ # @return [Boolean]
627
+ attr_accessor :deleted
628
+ alias_method :deleted?, :deleted
629
+
630
+ # The metadata for a file.
631
+ # Corresponds to the JSON property `file`
632
+ # @return [Google::Apis::DriveV2::File]
633
+ attr_accessor :file
634
+
635
+ # The ID of the file associated with this change.
636
+ # Corresponds to the JSON property `fileId`
637
+ # @return [String]
638
+ attr_accessor :file_id
639
+
640
+ # The ID of the change.
641
+ # Corresponds to the JSON property `id`
642
+ # @return [String]
643
+ attr_accessor :id
644
+
645
+ # This is always drive#change.
646
+ # Corresponds to the JSON property `kind`
647
+ # @return [String]
648
+ attr_accessor :kind
649
+
650
+ # The time of this modification.
651
+ # Corresponds to the JSON property `modificationDate`
652
+ # @return [DateTime]
653
+ attr_accessor :modification_date
654
+
655
+ # A link back to this change.
656
+ # Corresponds to the JSON property `selfLink`
657
+ # @return [String]
658
+ attr_accessor :self_link
659
+
660
+ def initialize(**args)
661
+ update!(**args)
662
+ end
663
+
664
+ # Update properties of this object
665
+ def update!(**args)
666
+ @deleted = args[:deleted] if args.key?(:deleted)
667
+ @file = args[:file] if args.key?(:file)
668
+ @file_id = args[:file_id] if args.key?(:file_id)
669
+ @id = args[:id] if args.key?(:id)
670
+ @kind = args[:kind] if args.key?(:kind)
671
+ @modification_date = args[:modification_date] if args.key?(:modification_date)
672
+ @self_link = args[:self_link] if args.key?(:self_link)
673
+ end
674
+ end
675
+
676
+ # A list of changes for a user.
677
+ class ChangeList
678
+ include Google::Apis::Core::Hashable
679
+
680
+ # The ETag of the list.
681
+ # Corresponds to the JSON property `etag`
682
+ # @return [String]
683
+ attr_accessor :etag
684
+
685
+ # The actual list of changes.
686
+ # Corresponds to the JSON property `items`
687
+ # @return [Array<Google::Apis::DriveV2::Change>]
688
+ attr_accessor :items
689
+
690
+ # This is always drive#changeList.
691
+ # Corresponds to the JSON property `kind`
692
+ # @return [String]
693
+ attr_accessor :kind
694
+
695
+ # The current largest change ID.
696
+ # Corresponds to the JSON property `largestChangeId`
697
+ # @return [String]
698
+ attr_accessor :largest_change_id
699
+
700
+ # A link to the next page of changes.
701
+ # Corresponds to the JSON property `nextLink`
702
+ # @return [String]
703
+ attr_accessor :next_link
704
+
705
+ # The page token for the next page of changes.
706
+ # Corresponds to the JSON property `nextPageToken`
707
+ # @return [String]
708
+ attr_accessor :next_page_token
709
+
710
+ # A link back to this list.
711
+ # Corresponds to the JSON property `selfLink`
712
+ # @return [String]
713
+ attr_accessor :self_link
714
+
715
+ def initialize(**args)
716
+ update!(**args)
717
+ end
718
+
719
+ # Update properties of this object
720
+ def update!(**args)
721
+ @etag = args[:etag] if args.key?(:etag)
722
+ @items = args[:items] if args.key?(:items)
723
+ @kind = args[:kind] if args.key?(:kind)
724
+ @largest_change_id = args[:largest_change_id] if args.key?(:largest_change_id)
725
+ @next_link = args[:next_link] if args.key?(:next_link)
726
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
727
+ @self_link = args[:self_link] if args.key?(:self_link)
728
+ end
729
+ end
730
+
731
+ # An notification channel used to watch for resource changes.
732
+ class Channel
733
+ include Google::Apis::Core::Hashable
734
+
735
+ # The address where notifications are delivered for this channel.
736
+ # Corresponds to the JSON property `address`
737
+ # @return [String]
738
+ attr_accessor :address
739
+
740
+ # Date and time of notification channel expiration, expressed as a Unix
741
+ # timestamp, in milliseconds. Optional.
742
+ # Corresponds to the JSON property `expiration`
743
+ # @return [String]
744
+ attr_accessor :expiration
745
+
746
+ # A UUID or similar unique string that identifies this channel.
747
+ # Corresponds to the JSON property `id`
748
+ # @return [String]
749
+ attr_accessor :id
750
+
751
+ # Identifies this as a notification channel used to watch for changes to a
752
+ # resource. Value: the fixed string "api#channel".
753
+ # Corresponds to the JSON property `kind`
754
+ # @return [String]
755
+ attr_accessor :kind
756
+
757
+ # Additional parameters controlling delivery channel behavior. Optional.
758
+ # Corresponds to the JSON property `params`
759
+ # @return [Hash<String,String>]
760
+ attr_accessor :params
761
+
762
+ # A Boolean value to indicate whether payload is wanted. Optional.
763
+ # Corresponds to the JSON property `payload`
764
+ # @return [Boolean]
765
+ attr_accessor :payload
766
+ alias_method :payload?, :payload
767
+
768
+ # An opaque ID that identifies the resource being watched on this channel.
769
+ # Stable across different API versions.
770
+ # Corresponds to the JSON property `resourceId`
771
+ # @return [String]
772
+ attr_accessor :resource_id
773
+
774
+ # A version-specific identifier for the watched resource.
775
+ # Corresponds to the JSON property `resourceUri`
776
+ # @return [String]
777
+ attr_accessor :resource_uri
778
+
779
+ # An arbitrary string delivered to the target address with each notification
780
+ # delivered over this channel. Optional.
781
+ # Corresponds to the JSON property `token`
782
+ # @return [String]
783
+ attr_accessor :token
784
+
785
+ # The type of delivery mechanism used for this channel.
786
+ # Corresponds to the JSON property `type`
787
+ # @return [String]
788
+ attr_accessor :type
789
+
790
+ def initialize(**args)
791
+ update!(**args)
792
+ end
793
+
794
+ # Update properties of this object
795
+ def update!(**args)
796
+ @address = args[:address] if args.key?(:address)
797
+ @expiration = args[:expiration] if args.key?(:expiration)
798
+ @id = args[:id] if args.key?(:id)
799
+ @kind = args[:kind] if args.key?(:kind)
800
+ @params = args[:params] if args.key?(:params)
801
+ @payload = args[:payload] if args.key?(:payload)
802
+ @resource_id = args[:resource_id] if args.key?(:resource_id)
803
+ @resource_uri = args[:resource_uri] if args.key?(:resource_uri)
804
+ @token = args[:token] if args.key?(:token)
805
+ @type = args[:type] if args.key?(:type)
806
+ end
807
+ end
808
+
809
+ # A list of children of a file.
810
+ class ChildList
811
+ include Google::Apis::Core::Hashable
812
+
813
+ # The ETag of the list.
814
+ # Corresponds to the JSON property `etag`
815
+ # @return [String]
816
+ attr_accessor :etag
817
+
818
+ # The actual list of children.
819
+ # Corresponds to the JSON property `items`
820
+ # @return [Array<Google::Apis::DriveV2::ChildReference>]
821
+ attr_accessor :items
822
+
823
+ # This is always drive#childList.
824
+ # Corresponds to the JSON property `kind`
825
+ # @return [String]
826
+ attr_accessor :kind
827
+
828
+ # A link to the next page of children.
829
+ # Corresponds to the JSON property `nextLink`
830
+ # @return [String]
831
+ attr_accessor :next_link
832
+
833
+ # The page token for the next page of children.
834
+ # Corresponds to the JSON property `nextPageToken`
835
+ # @return [String]
836
+ attr_accessor :next_page_token
837
+
838
+ # A link back to this list.
839
+ # Corresponds to the JSON property `selfLink`
840
+ # @return [String]
841
+ attr_accessor :self_link
842
+
843
+ def initialize(**args)
844
+ update!(**args)
845
+ end
846
+
847
+ # Update properties of this object
848
+ def update!(**args)
849
+ @etag = args[:etag] if args.key?(:etag)
850
+ @items = args[:items] if args.key?(:items)
851
+ @kind = args[:kind] if args.key?(:kind)
852
+ @next_link = args[:next_link] if args.key?(:next_link)
853
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
854
+ @self_link = args[:self_link] if args.key?(:self_link)
855
+ end
856
+ end
857
+
858
+ # A reference to a folder's child.
859
+ class ChildReference
860
+ include Google::Apis::Core::Hashable
861
+
862
+ # A link to the child.
863
+ # Corresponds to the JSON property `childLink`
864
+ # @return [String]
865
+ attr_accessor :child_link
866
+
867
+ # The ID of the child.
868
+ # Corresponds to the JSON property `id`
869
+ # @return [String]
870
+ attr_accessor :id
871
+
872
+ # This is always drive#childReference.
873
+ # Corresponds to the JSON property `kind`
874
+ # @return [String]
875
+ attr_accessor :kind
876
+
877
+ # A link back to this reference.
878
+ # Corresponds to the JSON property `selfLink`
879
+ # @return [String]
880
+ attr_accessor :self_link
881
+
882
+ def initialize(**args)
883
+ update!(**args)
884
+ end
885
+
886
+ # Update properties of this object
887
+ def update!(**args)
888
+ @child_link = args[:child_link] if args.key?(:child_link)
889
+ @id = args[:id] if args.key?(:id)
890
+ @kind = args[:kind] if args.key?(:kind)
891
+ @self_link = args[:self_link] if args.key?(:self_link)
892
+ end
893
+ end
894
+
895
+ # A comment on a file in Google Drive.
896
+ class Comment
897
+ include Google::Apis::Core::Hashable
898
+
899
+ # A region of the document represented as a JSON string. See anchor
900
+ # documentation for details on how to define and interpret anchor properties.
901
+ # Corresponds to the JSON property `anchor`
902
+ # @return [String]
903
+ attr_accessor :anchor
904
+
905
+ # Information about a Drive user.
906
+ # Corresponds to the JSON property `author`
907
+ # @return [Google::Apis::DriveV2::User]
908
+ attr_accessor :author
909
+
910
+ # The ID of the comment.
911
+ # Corresponds to the JSON property `commentId`
912
+ # @return [String]
913
+ attr_accessor :comment_id
914
+
915
+ # The plain text content used to create this comment. This is not HTML safe and
916
+ # should only be used as a starting point to make edits to a comment's content.
917
+ # Corresponds to the JSON property `content`
918
+ # @return [String]
919
+ attr_accessor :content
920
+
921
+ # The context of the file which is being commented on.
922
+ # Corresponds to the JSON property `context`
923
+ # @return [Google::Apis::DriveV2::Comment::Context]
924
+ attr_accessor :context
925
+
926
+ # The date when this comment was first created.
927
+ # Corresponds to the JSON property `createdDate`
928
+ # @return [DateTime]
929
+ attr_accessor :created_date
930
+
931
+ # Whether this comment has been deleted. If a comment has been deleted the
932
+ # content will be cleared and this will only represent a comment that once
933
+ # existed.
934
+ # Corresponds to the JSON property `deleted`
935
+ # @return [Boolean]
936
+ attr_accessor :deleted
937
+ alias_method :deleted?, :deleted
938
+
939
+ # The file which this comment is addressing.
940
+ # Corresponds to the JSON property `fileId`
941
+ # @return [String]
942
+ attr_accessor :file_id
943
+
944
+ # The title of the file which this comment is addressing.
945
+ # Corresponds to the JSON property `fileTitle`
946
+ # @return [String]
947
+ attr_accessor :file_title
948
+
949
+ # HTML formatted content for this comment.
950
+ # Corresponds to the JSON property `htmlContent`
951
+ # @return [String]
952
+ attr_accessor :html_content
953
+
954
+ # This is always drive#comment.
955
+ # Corresponds to the JSON property `kind`
956
+ # @return [String]
957
+ attr_accessor :kind
958
+
959
+ # The date when this comment or any of its replies were last modified.
960
+ # Corresponds to the JSON property `modifiedDate`
961
+ # @return [DateTime]
962
+ attr_accessor :modified_date
963
+
964
+ # Replies to this post.
965
+ # Corresponds to the JSON property `replies`
966
+ # @return [Array<Google::Apis::DriveV2::CommentReply>]
967
+ attr_accessor :replies
968
+
969
+ # A link back to this comment.
970
+ # Corresponds to the JSON property `selfLink`
971
+ # @return [String]
972
+ attr_accessor :self_link
973
+
974
+ # The status of this comment. Status can be changed by posting a reply to a
975
+ # comment with the desired status.
976
+ # - "open" - The comment is still open.
977
+ # - "resolved" - The comment has been resolved by one of its replies.
978
+ # Corresponds to the JSON property `status`
979
+ # @return [String]
980
+ attr_accessor :status
981
+
982
+ def initialize(**args)
983
+ update!(**args)
984
+ end
985
+
986
+ # Update properties of this object
987
+ def update!(**args)
988
+ @anchor = args[:anchor] if args.key?(:anchor)
989
+ @author = args[:author] if args.key?(:author)
990
+ @comment_id = args[:comment_id] if args.key?(:comment_id)
991
+ @content = args[:content] if args.key?(:content)
992
+ @context = args[:context] if args.key?(:context)
993
+ @created_date = args[:created_date] if args.key?(:created_date)
994
+ @deleted = args[:deleted] if args.key?(:deleted)
995
+ @file_id = args[:file_id] if args.key?(:file_id)
996
+ @file_title = args[:file_title] if args.key?(:file_title)
997
+ @html_content = args[:html_content] if args.key?(:html_content)
998
+ @kind = args[:kind] if args.key?(:kind)
999
+ @modified_date = args[:modified_date] if args.key?(:modified_date)
1000
+ @replies = args[:replies] if args.key?(:replies)
1001
+ @self_link = args[:self_link] if args.key?(:self_link)
1002
+ @status = args[:status] if args.key?(:status)
1003
+ end
1004
+
1005
+ # The context of the file which is being commented on.
1006
+ class Context
1007
+ include Google::Apis::Core::Hashable
1008
+
1009
+ # The MIME type of the context snippet.
1010
+ # Corresponds to the JSON property `type`
1011
+ # @return [String]
1012
+ attr_accessor :type
1013
+
1014
+ # Data representation of the segment of the file being commented on. In the case
1015
+ # of a text file for example, this would be the actual text that the comment is
1016
+ # about.
1017
+ # Corresponds to the JSON property `value`
1018
+ # @return [String]
1019
+ attr_accessor :value
1020
+
1021
+ def initialize(**args)
1022
+ update!(**args)
1023
+ end
1024
+
1025
+ # Update properties of this object
1026
+ def update!(**args)
1027
+ @type = args[:type] if args.key?(:type)
1028
+ @value = args[:value] if args.key?(:value)
1029
+ end
1030
+ end
1031
+ end
1032
+
1033
+ # A list of comments on a file in Google Drive.
1034
+ class CommentList
1035
+ include Google::Apis::Core::Hashable
1036
+
1037
+ # List of comments.
1038
+ # Corresponds to the JSON property `items`
1039
+ # @return [Array<Google::Apis::DriveV2::Comment>]
1040
+ attr_accessor :items
1041
+
1042
+ # This is always drive#commentList.
1043
+ # Corresponds to the JSON property `kind`
1044
+ # @return [String]
1045
+ attr_accessor :kind
1046
+
1047
+ # A link to the next page of comments.
1048
+ # Corresponds to the JSON property `nextLink`
1049
+ # @return [String]
1050
+ attr_accessor :next_link
1051
+
1052
+ # The token to use to request the next page of results.
1053
+ # Corresponds to the JSON property `nextPageToken`
1054
+ # @return [String]
1055
+ attr_accessor :next_page_token
1056
+
1057
+ # A link back to this list.
1058
+ # Corresponds to the JSON property `selfLink`
1059
+ # @return [String]
1060
+ attr_accessor :self_link
1061
+
1062
+ def initialize(**args)
1063
+ update!(**args)
1064
+ end
1065
+
1066
+ # Update properties of this object
1067
+ def update!(**args)
1068
+ @items = args[:items] if args.key?(:items)
1069
+ @kind = args[:kind] if args.key?(:kind)
1070
+ @next_link = args[:next_link] if args.key?(:next_link)
1071
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1072
+ @self_link = args[:self_link] if args.key?(:self_link)
1073
+ end
1074
+ end
1075
+
1076
+ # A comment on a file in Google Drive.
1077
+ class CommentReply
1078
+ include Google::Apis::Core::Hashable
1079
+
1080
+ # Information about a Drive user.
1081
+ # Corresponds to the JSON property `author`
1082
+ # @return [Google::Apis::DriveV2::User]
1083
+ attr_accessor :author
1084
+
1085
+ # The plain text content used to create this reply. This is not HTML safe and
1086
+ # should only be used as a starting point to make edits to a reply's content.
1087
+ # This field is required on inserts if no verb is specified (resolve/reopen).
1088
+ # Corresponds to the JSON property `content`
1089
+ # @return [String]
1090
+ attr_accessor :content
1091
+
1092
+ # The date when this reply was first created.
1093
+ # Corresponds to the JSON property `createdDate`
1094
+ # @return [DateTime]
1095
+ attr_accessor :created_date
1096
+
1097
+ # Whether this reply has been deleted. If a reply has been deleted the content
1098
+ # will be cleared and this will only represent a reply that once existed.
1099
+ # Corresponds to the JSON property `deleted`
1100
+ # @return [Boolean]
1101
+ attr_accessor :deleted
1102
+ alias_method :deleted?, :deleted
1103
+
1104
+ # HTML formatted content for this reply.
1105
+ # Corresponds to the JSON property `htmlContent`
1106
+ # @return [String]
1107
+ attr_accessor :html_content
1108
+
1109
+ # This is always drive#commentReply.
1110
+ # Corresponds to the JSON property `kind`
1111
+ # @return [String]
1112
+ attr_accessor :kind
1113
+
1114
+ # The date when this reply was last modified.
1115
+ # Corresponds to the JSON property `modifiedDate`
1116
+ # @return [DateTime]
1117
+ attr_accessor :modified_date
1118
+
1119
+ # The ID of the reply.
1120
+ # Corresponds to the JSON property `replyId`
1121
+ # @return [String]
1122
+ attr_accessor :reply_id
1123
+
1124
+ # The action this reply performed to the parent comment. When creating a new
1125
+ # reply this is the action to be perform to the parent comment. Possible values
1126
+ # are:
1127
+ # - "resolve" - To resolve a comment.
1128
+ # - "reopen" - To reopen (un-resolve) a comment.
1129
+ # Corresponds to the JSON property `verb`
1130
+ # @return [String]
1131
+ attr_accessor :verb
1132
+
1133
+ def initialize(**args)
1134
+ update!(**args)
1135
+ end
1136
+
1137
+ # Update properties of this object
1138
+ def update!(**args)
1139
+ @author = args[:author] if args.key?(:author)
1140
+ @content = args[:content] if args.key?(:content)
1141
+ @created_date = args[:created_date] if args.key?(:created_date)
1142
+ @deleted = args[:deleted] if args.key?(:deleted)
1143
+ @html_content = args[:html_content] if args.key?(:html_content)
1144
+ @kind = args[:kind] if args.key?(:kind)
1145
+ @modified_date = args[:modified_date] if args.key?(:modified_date)
1146
+ @reply_id = args[:reply_id] if args.key?(:reply_id)
1147
+ @verb = args[:verb] if args.key?(:verb)
1148
+ end
1149
+ end
1150
+
1151
+ # A list of replies to a comment on a file in Google Drive.
1152
+ class CommentReplyList
1153
+ include Google::Apis::Core::Hashable
1154
+
1155
+ # List of reply.
1156
+ # Corresponds to the JSON property `items`
1157
+ # @return [Array<Google::Apis::DriveV2::CommentReply>]
1158
+ attr_accessor :items
1159
+
1160
+ # This is always drive#commentReplyList.
1161
+ # Corresponds to the JSON property `kind`
1162
+ # @return [String]
1163
+ attr_accessor :kind
1164
+
1165
+ # A link to the next page of replies.
1166
+ # Corresponds to the JSON property `nextLink`
1167
+ # @return [String]
1168
+ attr_accessor :next_link
1169
+
1170
+ # The token to use to request the next page of results.
1171
+ # Corresponds to the JSON property `nextPageToken`
1172
+ # @return [String]
1173
+ attr_accessor :next_page_token
1174
+
1175
+ # A link back to this list.
1176
+ # Corresponds to the JSON property `selfLink`
1177
+ # @return [String]
1178
+ attr_accessor :self_link
1179
+
1180
+ def initialize(**args)
1181
+ update!(**args)
1182
+ end
1183
+
1184
+ # Update properties of this object
1185
+ def update!(**args)
1186
+ @items = args[:items] if args.key?(:items)
1187
+ @kind = args[:kind] if args.key?(:kind)
1188
+ @next_link = args[:next_link] if args.key?(:next_link)
1189
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1190
+ @self_link = args[:self_link] if args.key?(:self_link)
1191
+ end
1192
+ end
1193
+
1194
+ # The metadata for a file.
1195
+ class File
1196
+ include Google::Apis::Core::Hashable
1197
+
1198
+ # A link for opening the file in a relevant Google editor or viewer.
1199
+ # Corresponds to the JSON property `alternateLink`
1200
+ # @return [String]
1201
+ attr_accessor :alternate_link
1202
+
1203
+ # Whether this file is in the Application Data folder.
1204
+ # Corresponds to the JSON property `appDataContents`
1205
+ # @return [Boolean]
1206
+ attr_accessor :app_data_contents
1207
+ alias_method :app_data_contents?, :app_data_contents
1208
+
1209
+ # Whether the current user can comment on the file.
1210
+ # Corresponds to the JSON property `canComment`
1211
+ # @return [Boolean]
1212
+ attr_accessor :can_comment
1213
+ alias_method :can_comment?, :can_comment
1214
+
1215
+ # Whether the current user has read access to the Revisions resource of the file.
1216
+ # Corresponds to the JSON property `canReadRevisions`
1217
+ # @return [Boolean]
1218
+ attr_accessor :can_read_revisions
1219
+ alias_method :can_read_revisions?, :can_read_revisions
1220
+
1221
+ # Whether the file can be copied by the current user.
1222
+ # Corresponds to the JSON property `copyable`
1223
+ # @return [Boolean]
1224
+ attr_accessor :copyable
1225
+ alias_method :copyable?, :copyable
1226
+
1227
+ # Create time for this file (formatted RFC 3339 timestamp).
1228
+ # Corresponds to the JSON property `createdDate`
1229
+ # @return [DateTime]
1230
+ attr_accessor :created_date
1231
+
1232
+ # A link to open this file with the user's default app for this file. Only
1233
+ # populated when the drive.apps.readonly scope is used.
1234
+ # Corresponds to the JSON property `defaultOpenWithLink`
1235
+ # @return [String]
1236
+ attr_accessor :default_open_with_link
1237
+
1238
+ # A short description of the file.
1239
+ # Corresponds to the JSON property `description`
1240
+ # @return [String]
1241
+ attr_accessor :description
1242
+
1243
+ #
1244
+ # Corresponds to the JSON property `downloadUrl`
1245
+ # @return [String]
1246
+ attr_accessor :download_url
1247
+
1248
+ # Whether the file can be edited by the current user.
1249
+ # Corresponds to the JSON property `editable`
1250
+ # @return [Boolean]
1251
+ attr_accessor :editable
1252
+ alias_method :editable?, :editable
1253
+
1254
+ # A link for embedding the file.
1255
+ # Corresponds to the JSON property `embedLink`
1256
+ # @return [String]
1257
+ attr_accessor :embed_link
1258
+
1259
+ # ETag of the file.
1260
+ # Corresponds to the JSON property `etag`
1261
+ # @return [String]
1262
+ attr_accessor :etag
1263
+
1264
+ # Whether this file has been explicitly trashed, as opposed to recursively
1265
+ # trashed.
1266
+ # Corresponds to the JSON property `explicitlyTrashed`
1267
+ # @return [Boolean]
1268
+ attr_accessor :explicitly_trashed
1269
+ alias_method :explicitly_trashed?, :explicitly_trashed
1270
+
1271
+ # Links for exporting Google Docs to specific formats.
1272
+ # Corresponds to the JSON property `exportLinks`
1273
+ # @return [Hash<String,String>]
1274
+ attr_accessor :export_links
1275
+
1276
+ # The final component of fullFileExtension with trailing text that does not
1277
+ # appear to be part of the extension removed. This field is only populated for
1278
+ # files with content stored in Drive; it is not populated for Google Docs or
1279
+ # shortcut files.
1280
+ # Corresponds to the JSON property `fileExtension`
1281
+ # @return [String]
1282
+ attr_accessor :file_extension
1283
+
1284
+ # The size of the file in bytes. This field is only populated for files with
1285
+ # content stored in Drive; it is not populated for Google Docs or shortcut files.
1286
+ # Corresponds to the JSON property `fileSize`
1287
+ # @return [String]
1288
+ attr_accessor :file_size
1289
+
1290
+ # Folder color as an RGB hex string if the file is a folder. The list of
1291
+ # supported colors is available in the folderColorPalette field of the About
1292
+ # resource. If an unsupported color is specified, it will be changed to the
1293
+ # closest color in the palette.
1294
+ # Corresponds to the JSON property `folderColorRgb`
1295
+ # @return [String]
1296
+ attr_accessor :folder_color_rgb
1297
+
1298
+ # The full file extension; extracted from the title. May contain multiple
1299
+ # concatenated extensions, such as "tar.gz". Removing an extension from the
1300
+ # title does not clear this field; however, changing the extension on the title
1301
+ # does update this field. This field is only populated for files with content
1302
+ # stored in Drive; it is not populated for Google Docs or shortcut files.
1303
+ # Corresponds to the JSON property `fullFileExtension`
1304
+ # @return [String]
1305
+ attr_accessor :full_file_extension
1306
+
1307
+ # The ID of the file's head revision. This field is only populated for files
1308
+ # with content stored in Drive; it is not populated for Google Docs or shortcut
1309
+ # files.
1310
+ # Corresponds to the JSON property `headRevisionId`
1311
+ # @return [String]
1312
+ attr_accessor :head_revision_id
1313
+
1314
+ # A link to the file's icon.
1315
+ # Corresponds to the JSON property `iconLink`
1316
+ # @return [String]
1317
+ attr_accessor :icon_link
1318
+
1319
+ # The ID of the file.
1320
+ # Corresponds to the JSON property `id`
1321
+ # @return [String]
1322
+ attr_accessor :id
1323
+
1324
+ # Metadata about image media. This will only be present for image types, and its
1325
+ # contents will depend on what can be parsed from the image content.
1326
+ # Corresponds to the JSON property `imageMediaMetadata`
1327
+ # @return [Google::Apis::DriveV2::File::ImageMediaMetadata]
1328
+ attr_accessor :image_media_metadata
1329
+
1330
+ # Indexable text attributes for the file (can only be written)
1331
+ # Corresponds to the JSON property `indexableText`
1332
+ # @return [Google::Apis::DriveV2::File::IndexableText]
1333
+ attr_accessor :indexable_text
1334
+
1335
+ # The type of file. This is always drive#file.
1336
+ # Corresponds to the JSON property `kind`
1337
+ # @return [String]
1338
+ attr_accessor :kind
1339
+
1340
+ # A group of labels for the file.
1341
+ # Corresponds to the JSON property `labels`
1342
+ # @return [Google::Apis::DriveV2::File::Labels]
1343
+ attr_accessor :labels
1344
+
1345
+ # Information about a Drive user.
1346
+ # Corresponds to the JSON property `lastModifyingUser`
1347
+ # @return [Google::Apis::DriveV2::User]
1348
+ attr_accessor :last_modifying_user
1349
+
1350
+ # Name of the last user to modify this file.
1351
+ # Corresponds to the JSON property `lastModifyingUserName`
1352
+ # @return [String]
1353
+ attr_accessor :last_modifying_user_name
1354
+
1355
+ # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
1356
+ # Corresponds to the JSON property `lastViewedByMeDate`
1357
+ # @return [DateTime]
1358
+ attr_accessor :last_viewed_by_me_date
1359
+
1360
+ # Deprecated.
1361
+ # Corresponds to the JSON property `markedViewedByMeDate`
1362
+ # @return [DateTime]
1363
+ attr_accessor :marked_viewed_by_me_date
1364
+
1365
+ # An MD5 checksum for the content of this file. This field is only populated for
1366
+ # files with content stored in Drive; it is not populated for Google Docs or
1367
+ # shortcut files.
1368
+ # Corresponds to the JSON property `md5Checksum`
1369
+ # @return [String]
1370
+ attr_accessor :md5_checksum
1371
+
1372
+ # The MIME type of the file. This is only mutable on update when uploading new
1373
+ # content. This field can be left blank, and the mimetype will be determined
1374
+ # from the uploaded content's MIME type.
1375
+ # Corresponds to the JSON property `mimeType`
1376
+ # @return [String]
1377
+ attr_accessor :mime_type
1378
+
1379
+ # Last time this file was modified by the user (formatted RFC 3339 timestamp).
1380
+ # Note that setting modifiedDate will also update the modifiedByMe date for the
1381
+ # user which set the date.
1382
+ # Corresponds to the JSON property `modifiedByMeDate`
1383
+ # @return [DateTime]
1384
+ attr_accessor :modified_by_me_date
1385
+
1386
+ # Last time this file was modified by anyone (formatted RFC 3339 timestamp).
1387
+ # This is only mutable on update when the setModifiedDate parameter is set.
1388
+ # Corresponds to the JSON property `modifiedDate`
1389
+ # @return [DateTime]
1390
+ attr_accessor :modified_date
1391
+
1392
+ # A map of the id of each of the user's apps to a link to open this file with
1393
+ # that app. Only populated when the drive.apps.readonly scope is used.
1394
+ # Corresponds to the JSON property `openWithLinks`
1395
+ # @return [Hash<String,String>]
1396
+ attr_accessor :open_with_links
1397
+
1398
+ # The original filename if the file was uploaded manually, or the original title
1399
+ # if the file was inserted through the API. Note that renames of the title will
1400
+ # not change the original filename. This field is only populated for files with
1401
+ # content stored in Drive; it is not populated for Google Docs or shortcut files.
1402
+ # Corresponds to the JSON property `originalFilename`
1403
+ # @return [String]
1404
+ attr_accessor :original_filename
1405
+
1406
+ # Whether the file is owned by the current user.
1407
+ # Corresponds to the JSON property `ownedByMe`
1408
+ # @return [Boolean]
1409
+ attr_accessor :owned_by_me
1410
+ alias_method :owned_by_me?, :owned_by_me
1411
+
1412
+ # Name(s) of the owner(s) of this file.
1413
+ # Corresponds to the JSON property `ownerNames`
1414
+ # @return [Array<String>]
1415
+ attr_accessor :owner_names
1416
+
1417
+ # The owner(s) of this file.
1418
+ # Corresponds to the JSON property `owners`
1419
+ # @return [Array<Google::Apis::DriveV2::User>]
1420
+ attr_accessor :owners
1421
+
1422
+ # Collection of parent folders which contain this file.
1423
+ # Setting this field will put the file in all of the provided folders. On insert,
1424
+ # if no folders are provided, the file will be placed in the default root
1425
+ # folder.
1426
+ # Corresponds to the JSON property `parents`
1427
+ # @return [Array<Google::Apis::DriveV2::ParentReference>]
1428
+ attr_accessor :parents
1429
+
1430
+ # The list of permissions for users with access to this file.
1431
+ # Corresponds to the JSON property `permissions`
1432
+ # @return [Array<Google::Apis::DriveV2::Permission>]
1433
+ attr_accessor :permissions
1434
+
1435
+ # The list of properties.
1436
+ # Corresponds to the JSON property `properties`
1437
+ # @return [Array<Google::Apis::DriveV2::Property>]
1438
+ attr_accessor :properties
1439
+
1440
+ # The number of quota bytes used by this file.
1441
+ # Corresponds to the JSON property `quotaBytesUsed`
1442
+ # @return [String]
1443
+ attr_accessor :quota_bytes_used
1444
+
1445
+ # A link back to this file.
1446
+ # Corresponds to the JSON property `selfLink`
1447
+ # @return [String]
1448
+ attr_accessor :self_link
1449
+
1450
+ # Whether the file's sharing settings can be modified by the current user.
1451
+ # Corresponds to the JSON property `shareable`
1452
+ # @return [Boolean]
1453
+ attr_accessor :shareable
1454
+ alias_method :shareable?, :shareable
1455
+
1456
+ # Whether the file has been shared.
1457
+ # Corresponds to the JSON property `shared`
1458
+ # @return [Boolean]
1459
+ attr_accessor :shared
1460
+ alias_method :shared?, :shared
1461
+
1462
+ # Time at which this file was shared with the user (formatted RFC 3339 timestamp)
1463
+ # .
1464
+ # Corresponds to the JSON property `sharedWithMeDate`
1465
+ # @return [DateTime]
1466
+ attr_accessor :shared_with_me_date
1467
+
1468
+ # Information about a Drive user.
1469
+ # Corresponds to the JSON property `sharingUser`
1470
+ # @return [Google::Apis::DriveV2::User]
1471
+ attr_accessor :sharing_user
1472
+
1473
+ # The list of spaces which contain the file. Supported values are 'drive', '
1474
+ # appDataFolder' and 'photos'.
1475
+ # Corresponds to the JSON property `spaces`
1476
+ # @return [Array<String>]
1477
+ attr_accessor :spaces
1478
+
1479
+ # Thumbnail for the file. Only accepted on upload and for files that are not
1480
+ # already thumbnailed by Google.
1481
+ # Corresponds to the JSON property `thumbnail`
1482
+ # @return [Google::Apis::DriveV2::File::Thumbnail]
1483
+ attr_accessor :thumbnail
1484
+
1485
+ # A short-lived link to the file's thumbnail. Typically lasts on the order of
1486
+ # hours.
1487
+ # Corresponds to the JSON property `thumbnailLink`
1488
+ # @return [String]
1489
+ attr_accessor :thumbnail_link
1490
+
1491
+ # The title of this file.
1492
+ # Corresponds to the JSON property `title`
1493
+ # @return [String]
1494
+ attr_accessor :title
1495
+
1496
+ # A permission for a file.
1497
+ # Corresponds to the JSON property `userPermission`
1498
+ # @return [Google::Apis::DriveV2::Permission]
1499
+ attr_accessor :user_permission
1500
+
1501
+ # A monotonically increasing version number for the file. This reflects every
1502
+ # change made to the file on the server, even those not visible to the
1503
+ # requesting user.
1504
+ # Corresponds to the JSON property `version`
1505
+ # @return [String]
1506
+ attr_accessor :version
1507
+
1508
+ # Metadata about video media. This will only be present for video types.
1509
+ # Corresponds to the JSON property `videoMediaMetadata`
1510
+ # @return [Google::Apis::DriveV2::File::VideoMediaMetadata]
1511
+ attr_accessor :video_media_metadata
1512
+
1513
+ # A link for downloading the content of the file in a browser using cookie based
1514
+ # authentication. In cases where the content is shared publicly, the content can
1515
+ # be downloaded without any credentials.
1516
+ # Corresponds to the JSON property `webContentLink`
1517
+ # @return [String]
1518
+ attr_accessor :web_content_link
1519
+
1520
+ # A link only available on public folders for viewing their static web assets (
1521
+ # HTML, CSS, JS, etc) via Google Drive's Website Hosting.
1522
+ # Corresponds to the JSON property `webViewLink`
1523
+ # @return [String]
1524
+ attr_accessor :web_view_link
1525
+
1526
+ # Whether writers can share the document with other users.
1527
+ # Corresponds to the JSON property `writersCanShare`
1528
+ # @return [Boolean]
1529
+ attr_accessor :writers_can_share
1530
+ alias_method :writers_can_share?, :writers_can_share
1531
+
1532
+ def initialize(**args)
1533
+ update!(**args)
1534
+ end
1535
+
1536
+ # Update properties of this object
1537
+ def update!(**args)
1538
+ @alternate_link = args[:alternate_link] if args.key?(:alternate_link)
1539
+ @app_data_contents = args[:app_data_contents] if args.key?(:app_data_contents)
1540
+ @can_comment = args[:can_comment] if args.key?(:can_comment)
1541
+ @can_read_revisions = args[:can_read_revisions] if args.key?(:can_read_revisions)
1542
+ @copyable = args[:copyable] if args.key?(:copyable)
1543
+ @created_date = args[:created_date] if args.key?(:created_date)
1544
+ @default_open_with_link = args[:default_open_with_link] if args.key?(:default_open_with_link)
1545
+ @description = args[:description] if args.key?(:description)
1546
+ @download_url = args[:download_url] if args.key?(:download_url)
1547
+ @editable = args[:editable] if args.key?(:editable)
1548
+ @embed_link = args[:embed_link] if args.key?(:embed_link)
1549
+ @etag = args[:etag] if args.key?(:etag)
1550
+ @explicitly_trashed = args[:explicitly_trashed] if args.key?(:explicitly_trashed)
1551
+ @export_links = args[:export_links] if args.key?(:export_links)
1552
+ @file_extension = args[:file_extension] if args.key?(:file_extension)
1553
+ @file_size = args[:file_size] if args.key?(:file_size)
1554
+ @folder_color_rgb = args[:folder_color_rgb] if args.key?(:folder_color_rgb)
1555
+ @full_file_extension = args[:full_file_extension] if args.key?(:full_file_extension)
1556
+ @head_revision_id = args[:head_revision_id] if args.key?(:head_revision_id)
1557
+ @icon_link = args[:icon_link] if args.key?(:icon_link)
1558
+ @id = args[:id] if args.key?(:id)
1559
+ @image_media_metadata = args[:image_media_metadata] if args.key?(:image_media_metadata)
1560
+ @indexable_text = args[:indexable_text] if args.key?(:indexable_text)
1561
+ @kind = args[:kind] if args.key?(:kind)
1562
+ @labels = args[:labels] if args.key?(:labels)
1563
+ @last_modifying_user = args[:last_modifying_user] if args.key?(:last_modifying_user)
1564
+ @last_modifying_user_name = args[:last_modifying_user_name] if args.key?(:last_modifying_user_name)
1565
+ @last_viewed_by_me_date = args[:last_viewed_by_me_date] if args.key?(:last_viewed_by_me_date)
1566
+ @marked_viewed_by_me_date = args[:marked_viewed_by_me_date] if args.key?(:marked_viewed_by_me_date)
1567
+ @md5_checksum = args[:md5_checksum] if args.key?(:md5_checksum)
1568
+ @mime_type = args[:mime_type] if args.key?(:mime_type)
1569
+ @modified_by_me_date = args[:modified_by_me_date] if args.key?(:modified_by_me_date)
1570
+ @modified_date = args[:modified_date] if args.key?(:modified_date)
1571
+ @open_with_links = args[:open_with_links] if args.key?(:open_with_links)
1572
+ @original_filename = args[:original_filename] if args.key?(:original_filename)
1573
+ @owned_by_me = args[:owned_by_me] if args.key?(:owned_by_me)
1574
+ @owner_names = args[:owner_names] if args.key?(:owner_names)
1575
+ @owners = args[:owners] if args.key?(:owners)
1576
+ @parents = args[:parents] if args.key?(:parents)
1577
+ @permissions = args[:permissions] if args.key?(:permissions)
1578
+ @properties = args[:properties] if args.key?(:properties)
1579
+ @quota_bytes_used = args[:quota_bytes_used] if args.key?(:quota_bytes_used)
1580
+ @self_link = args[:self_link] if args.key?(:self_link)
1581
+ @shareable = args[:shareable] if args.key?(:shareable)
1582
+ @shared = args[:shared] if args.key?(:shared)
1583
+ @shared_with_me_date = args[:shared_with_me_date] if args.key?(:shared_with_me_date)
1584
+ @sharing_user = args[:sharing_user] if args.key?(:sharing_user)
1585
+ @spaces = args[:spaces] if args.key?(:spaces)
1586
+ @thumbnail = args[:thumbnail] if args.key?(:thumbnail)
1587
+ @thumbnail_link = args[:thumbnail_link] if args.key?(:thumbnail_link)
1588
+ @title = args[:title] if args.key?(:title)
1589
+ @user_permission = args[:user_permission] if args.key?(:user_permission)
1590
+ @version = args[:version] if args.key?(:version)
1591
+ @video_media_metadata = args[:video_media_metadata] if args.key?(:video_media_metadata)
1592
+ @web_content_link = args[:web_content_link] if args.key?(:web_content_link)
1593
+ @web_view_link = args[:web_view_link] if args.key?(:web_view_link)
1594
+ @writers_can_share = args[:writers_can_share] if args.key?(:writers_can_share)
1595
+ end
1596
+
1597
+ # Metadata about image media. This will only be present for image types, and its
1598
+ # contents will depend on what can be parsed from the image content.
1599
+ class ImageMediaMetadata
1600
+ include Google::Apis::Core::Hashable
1601
+
1602
+ # The aperture used to create the photo (f-number).
1603
+ # Corresponds to the JSON property `aperture`
1604
+ # @return [Float]
1605
+ attr_accessor :aperture
1606
+
1607
+ # The make of the camera used to create the photo.
1608
+ # Corresponds to the JSON property `cameraMake`
1609
+ # @return [String]
1610
+ attr_accessor :camera_make
1611
+
1612
+ # The model of the camera used to create the photo.
1613
+ # Corresponds to the JSON property `cameraModel`
1614
+ # @return [String]
1615
+ attr_accessor :camera_model
1616
+
1617
+ # The color space of the photo.
1618
+ # Corresponds to the JSON property `colorSpace`
1619
+ # @return [String]
1620
+ attr_accessor :color_space
1621
+
1622
+ # The date and time the photo was taken (EXIF format timestamp).
1623
+ # Corresponds to the JSON property `date`
1624
+ # @return [String]
1625
+ attr_accessor :date
1626
+
1627
+ # The exposure bias of the photo (APEX value).
1628
+ # Corresponds to the JSON property `exposureBias`
1629
+ # @return [Float]
1630
+ attr_accessor :exposure_bias
1631
+
1632
+ # The exposure mode used to create the photo.
1633
+ # Corresponds to the JSON property `exposureMode`
1634
+ # @return [String]
1635
+ attr_accessor :exposure_mode
1636
+
1637
+ # The length of the exposure, in seconds.
1638
+ # Corresponds to the JSON property `exposureTime`
1639
+ # @return [Float]
1640
+ attr_accessor :exposure_time
1641
+
1642
+ # Whether a flash was used to create the photo.
1643
+ # Corresponds to the JSON property `flashUsed`
1644
+ # @return [Boolean]
1645
+ attr_accessor :flash_used
1646
+ alias_method :flash_used?, :flash_used
1647
+
1648
+ # The focal length used to create the photo, in millimeters.
1649
+ # Corresponds to the JSON property `focalLength`
1650
+ # @return [Float]
1651
+ attr_accessor :focal_length
1652
+
1653
+ # The height of the image in pixels.
1654
+ # Corresponds to the JSON property `height`
1655
+ # @return [Fixnum]
1656
+ attr_accessor :height
1657
+
1658
+ # The ISO speed used to create the photo.
1659
+ # Corresponds to the JSON property `isoSpeed`
1660
+ # @return [Fixnum]
1661
+ attr_accessor :iso_speed
1662
+
1663
+ # The lens used to create the photo.
1664
+ # Corresponds to the JSON property `lens`
1665
+ # @return [String]
1666
+ attr_accessor :lens
1667
+
1668
+ # Geographic location information stored in the image.
1669
+ # Corresponds to the JSON property `location`
1670
+ # @return [Google::Apis::DriveV2::File::ImageMediaMetadata::Location]
1671
+ attr_accessor :location
1672
+
1673
+ # The smallest f-number of the lens at the focal length used to create the photo
1674
+ # (APEX value).
1675
+ # Corresponds to the JSON property `maxApertureValue`
1676
+ # @return [Float]
1677
+ attr_accessor :max_aperture_value
1678
+
1679
+ # The metering mode used to create the photo.
1680
+ # Corresponds to the JSON property `meteringMode`
1681
+ # @return [String]
1682
+ attr_accessor :metering_mode
1683
+
1684
+ # The rotation in clockwise degrees from the image's original orientation.
1685
+ # Corresponds to the JSON property `rotation`
1686
+ # @return [Fixnum]
1687
+ attr_accessor :rotation
1688
+
1689
+ # The type of sensor used to create the photo.
1690
+ # Corresponds to the JSON property `sensor`
1691
+ # @return [String]
1692
+ attr_accessor :sensor
1693
+
1694
+ # The distance to the subject of the photo, in meters.
1695
+ # Corresponds to the JSON property `subjectDistance`
1696
+ # @return [Fixnum]
1697
+ attr_accessor :subject_distance
1698
+
1699
+ # The white balance mode used to create the photo.
1700
+ # Corresponds to the JSON property `whiteBalance`
1701
+ # @return [String]
1702
+ attr_accessor :white_balance
1703
+
1704
+ # The width of the image in pixels.
1705
+ # Corresponds to the JSON property `width`
1706
+ # @return [Fixnum]
1707
+ attr_accessor :width
1708
+
1709
+ def initialize(**args)
1710
+ update!(**args)
1711
+ end
1712
+
1713
+ # Update properties of this object
1714
+ def update!(**args)
1715
+ @aperture = args[:aperture] if args.key?(:aperture)
1716
+ @camera_make = args[:camera_make] if args.key?(:camera_make)
1717
+ @camera_model = args[:camera_model] if args.key?(:camera_model)
1718
+ @color_space = args[:color_space] if args.key?(:color_space)
1719
+ @date = args[:date] if args.key?(:date)
1720
+ @exposure_bias = args[:exposure_bias] if args.key?(:exposure_bias)
1721
+ @exposure_mode = args[:exposure_mode] if args.key?(:exposure_mode)
1722
+ @exposure_time = args[:exposure_time] if args.key?(:exposure_time)
1723
+ @flash_used = args[:flash_used] if args.key?(:flash_used)
1724
+ @focal_length = args[:focal_length] if args.key?(:focal_length)
1725
+ @height = args[:height] if args.key?(:height)
1726
+ @iso_speed = args[:iso_speed] if args.key?(:iso_speed)
1727
+ @lens = args[:lens] if args.key?(:lens)
1728
+ @location = args[:location] if args.key?(:location)
1729
+ @max_aperture_value = args[:max_aperture_value] if args.key?(:max_aperture_value)
1730
+ @metering_mode = args[:metering_mode] if args.key?(:metering_mode)
1731
+ @rotation = args[:rotation] if args.key?(:rotation)
1732
+ @sensor = args[:sensor] if args.key?(:sensor)
1733
+ @subject_distance = args[:subject_distance] if args.key?(:subject_distance)
1734
+ @white_balance = args[:white_balance] if args.key?(:white_balance)
1735
+ @width = args[:width] if args.key?(:width)
1736
+ end
1737
+
1738
+ # Geographic location information stored in the image.
1739
+ class Location
1740
+ include Google::Apis::Core::Hashable
1741
+
1742
+ # The altitude stored in the image.
1743
+ # Corresponds to the JSON property `altitude`
1744
+ # @return [Float]
1745
+ attr_accessor :altitude
1746
+
1747
+ # The latitude stored in the image.
1748
+ # Corresponds to the JSON property `latitude`
1749
+ # @return [Float]
1750
+ attr_accessor :latitude
1751
+
1752
+ # The longitude stored in the image.
1753
+ # Corresponds to the JSON property `longitude`
1754
+ # @return [Float]
1755
+ attr_accessor :longitude
1756
+
1757
+ def initialize(**args)
1758
+ update!(**args)
1759
+ end
1760
+
1761
+ # Update properties of this object
1762
+ def update!(**args)
1763
+ @altitude = args[:altitude] if args.key?(:altitude)
1764
+ @latitude = args[:latitude] if args.key?(:latitude)
1765
+ @longitude = args[:longitude] if args.key?(:longitude)
1766
+ end
1767
+ end
1768
+ end
1769
+
1770
+ # Indexable text attributes for the file (can only be written)
1771
+ class IndexableText
1772
+ include Google::Apis::Core::Hashable
1773
+
1774
+ # The text to be indexed for this file.
1775
+ # Corresponds to the JSON property `text`
1776
+ # @return [String]
1777
+ attr_accessor :text
1778
+
1779
+ def initialize(**args)
1780
+ update!(**args)
1781
+ end
1782
+
1783
+ # Update properties of this object
1784
+ def update!(**args)
1785
+ @text = args[:text] if args.key?(:text)
1786
+ end
1787
+ end
1788
+
1789
+ # A group of labels for the file.
1790
+ class Labels
1791
+ include Google::Apis::Core::Hashable
1792
+
1793
+ # Deprecated.
1794
+ # Corresponds to the JSON property `hidden`
1795
+ # @return [Boolean]
1796
+ attr_accessor :hidden
1797
+ alias_method :hidden?, :hidden
1798
+
1799
+ # Whether viewers and commenters are prevented from downloading, printing, and
1800
+ # copying this file.
1801
+ # Corresponds to the JSON property `restricted`
1802
+ # @return [Boolean]
1803
+ attr_accessor :restricted
1804
+ alias_method :restricted?, :restricted
1805
+
1806
+ # Whether this file is starred by the user.
1807
+ # Corresponds to the JSON property `starred`
1808
+ # @return [Boolean]
1809
+ attr_accessor :starred
1810
+ alias_method :starred?, :starred
1811
+
1812
+ # Whether this file has been trashed. This label applies to all users accessing
1813
+ # the file; however, only owners are allowed to see and untrash files.
1814
+ # Corresponds to the JSON property `trashed`
1815
+ # @return [Boolean]
1816
+ attr_accessor :trashed
1817
+ alias_method :trashed?, :trashed
1818
+
1819
+ # Whether this file has been viewed by this user.
1820
+ # Corresponds to the JSON property `viewed`
1821
+ # @return [Boolean]
1822
+ attr_accessor :viewed
1823
+ alias_method :viewed?, :viewed
1824
+
1825
+ def initialize(**args)
1826
+ update!(**args)
1827
+ end
1828
+
1829
+ # Update properties of this object
1830
+ def update!(**args)
1831
+ @hidden = args[:hidden] if args.key?(:hidden)
1832
+ @restricted = args[:restricted] if args.key?(:restricted)
1833
+ @starred = args[:starred] if args.key?(:starred)
1834
+ @trashed = args[:trashed] if args.key?(:trashed)
1835
+ @viewed = args[:viewed] if args.key?(:viewed)
1836
+ end
1837
+ end
1838
+
1839
+ # Thumbnail for the file. Only accepted on upload and for files that are not
1840
+ # already thumbnailed by Google.
1841
+ class Thumbnail
1842
+ include Google::Apis::Core::Hashable
1843
+
1844
+ # The URL-safe Base64 encoded bytes of the thumbnail image. It should conform to
1845
+ # RFC 4648 section 5.
1846
+ # Corresponds to the JSON property `image`
1847
+ # @return [String]
1848
+ attr_accessor :image
1849
+
1850
+ # The MIME type of the thumbnail.
1851
+ # Corresponds to the JSON property `mimeType`
1852
+ # @return [String]
1853
+ attr_accessor :mime_type
1854
+
1855
+ def initialize(**args)
1856
+ update!(**args)
1857
+ end
1858
+
1859
+ # Update properties of this object
1860
+ def update!(**args)
1861
+ @image = args[:image] if args.key?(:image)
1862
+ @mime_type = args[:mime_type] if args.key?(:mime_type)
1863
+ end
1864
+ end
1865
+
1866
+ # Metadata about video media. This will only be present for video types.
1867
+ class VideoMediaMetadata
1868
+ include Google::Apis::Core::Hashable
1869
+
1870
+ # The duration of the video in milliseconds.
1871
+ # Corresponds to the JSON property `durationMillis`
1872
+ # @return [String]
1873
+ attr_accessor :duration_millis
1874
+
1875
+ # The height of the video in pixels.
1876
+ # Corresponds to the JSON property `height`
1877
+ # @return [Fixnum]
1878
+ attr_accessor :height
1879
+
1880
+ # The width of the video in pixels.
1881
+ # Corresponds to the JSON property `width`
1882
+ # @return [Fixnum]
1883
+ attr_accessor :width
1884
+
1885
+ def initialize(**args)
1886
+ update!(**args)
1887
+ end
1888
+
1889
+ # Update properties of this object
1890
+ def update!(**args)
1891
+ @duration_millis = args[:duration_millis] if args.key?(:duration_millis)
1892
+ @height = args[:height] if args.key?(:height)
1893
+ @width = args[:width] if args.key?(:width)
1894
+ end
1895
+ end
1896
+ end
1897
+
1898
+ # A list of files.
1899
+ class FileList
1900
+ include Google::Apis::Core::Hashable
1901
+
1902
+ # The ETag of the list.
1903
+ # Corresponds to the JSON property `etag`
1904
+ # @return [String]
1905
+ attr_accessor :etag
1906
+
1907
+ # The actual list of files.
1908
+ # Corresponds to the JSON property `items`
1909
+ # @return [Array<Google::Apis::DriveV2::File>]
1910
+ attr_accessor :items
1911
+
1912
+ # This is always drive#fileList.
1913
+ # Corresponds to the JSON property `kind`
1914
+ # @return [String]
1915
+ attr_accessor :kind
1916
+
1917
+ # A link to the next page of files.
1918
+ # Corresponds to the JSON property `nextLink`
1919
+ # @return [String]
1920
+ attr_accessor :next_link
1921
+
1922
+ # The page token for the next page of files.
1923
+ # Corresponds to the JSON property `nextPageToken`
1924
+ # @return [String]
1925
+ attr_accessor :next_page_token
1926
+
1927
+ # A link back to this list.
1928
+ # Corresponds to the JSON property `selfLink`
1929
+ # @return [String]
1930
+ attr_accessor :self_link
1931
+
1932
+ def initialize(**args)
1933
+ update!(**args)
1934
+ end
1935
+
1936
+ # Update properties of this object
1937
+ def update!(**args)
1938
+ @etag = args[:etag] if args.key?(:etag)
1939
+ @items = args[:items] if args.key?(:items)
1940
+ @kind = args[:kind] if args.key?(:kind)
1941
+ @next_link = args[:next_link] if args.key?(:next_link)
1942
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1943
+ @self_link = args[:self_link] if args.key?(:self_link)
1944
+ end
1945
+ end
1946
+
1947
+ # A list of generated IDs which can be provided in insert requests
1948
+ class GeneratedIds
1949
+ include Google::Apis::Core::Hashable
1950
+
1951
+ # The IDs generated for the requesting user in the specified space.
1952
+ # Corresponds to the JSON property `ids`
1953
+ # @return [Array<String>]
1954
+ attr_accessor :ids
1955
+
1956
+ # This is always drive#generatedIds
1957
+ # Corresponds to the JSON property `kind`
1958
+ # @return [String]
1959
+ attr_accessor :kind
1960
+
1961
+ # The type of file that can be created with these IDs.
1962
+ # Corresponds to the JSON property `space`
1963
+ # @return [String]
1964
+ attr_accessor :space
1965
+
1966
+ def initialize(**args)
1967
+ update!(**args)
1968
+ end
1969
+
1970
+ # Update properties of this object
1971
+ def update!(**args)
1972
+ @ids = args[:ids] if args.key?(:ids)
1973
+ @kind = args[:kind] if args.key?(:kind)
1974
+ @space = args[:space] if args.key?(:space)
1975
+ end
1976
+ end
1977
+
1978
+ # A list of a file's parents.
1979
+ class ParentList
1980
+ include Google::Apis::Core::Hashable
1981
+
1982
+ # The ETag of the list.
1983
+ # Corresponds to the JSON property `etag`
1984
+ # @return [String]
1985
+ attr_accessor :etag
1986
+
1987
+ # The actual list of parents.
1988
+ # Corresponds to the JSON property `items`
1989
+ # @return [Array<Google::Apis::DriveV2::ParentReference>]
1990
+ attr_accessor :items
1991
+
1992
+ # This is always drive#parentList.
1993
+ # Corresponds to the JSON property `kind`
1994
+ # @return [String]
1995
+ attr_accessor :kind
1996
+
1997
+ # A link back to this list.
1998
+ # Corresponds to the JSON property `selfLink`
1999
+ # @return [String]
2000
+ attr_accessor :self_link
2001
+
2002
+ def initialize(**args)
2003
+ update!(**args)
2004
+ end
2005
+
2006
+ # Update properties of this object
2007
+ def update!(**args)
2008
+ @etag = args[:etag] if args.key?(:etag)
2009
+ @items = args[:items] if args.key?(:items)
2010
+ @kind = args[:kind] if args.key?(:kind)
2011
+ @self_link = args[:self_link] if args.key?(:self_link)
2012
+ end
2013
+ end
2014
+
2015
+ # A reference to a file's parent.
2016
+ class ParentReference
2017
+ include Google::Apis::Core::Hashable
2018
+
2019
+ # The ID of the parent.
2020
+ # Corresponds to the JSON property `id`
2021
+ # @return [String]
2022
+ attr_accessor :id
2023
+
2024
+ # Whether or not the parent is the root folder.
2025
+ # Corresponds to the JSON property `isRoot`
2026
+ # @return [Boolean]
2027
+ attr_accessor :is_root
2028
+ alias_method :is_root?, :is_root
2029
+
2030
+ # This is always drive#parentReference.
2031
+ # Corresponds to the JSON property `kind`
2032
+ # @return [String]
2033
+ attr_accessor :kind
2034
+
2035
+ # A link to the parent.
2036
+ # Corresponds to the JSON property `parentLink`
2037
+ # @return [String]
2038
+ attr_accessor :parent_link
2039
+
2040
+ # A link back to this reference.
2041
+ # Corresponds to the JSON property `selfLink`
2042
+ # @return [String]
2043
+ attr_accessor :self_link
2044
+
2045
+ def initialize(**args)
2046
+ update!(**args)
2047
+ end
2048
+
2049
+ # Update properties of this object
2050
+ def update!(**args)
2051
+ @id = args[:id] if args.key?(:id)
2052
+ @is_root = args[:is_root] if args.key?(:is_root)
2053
+ @kind = args[:kind] if args.key?(:kind)
2054
+ @parent_link = args[:parent_link] if args.key?(:parent_link)
2055
+ @self_link = args[:self_link] if args.key?(:self_link)
2056
+ end
2057
+ end
2058
+
2059
+ # A permission for a file.
2060
+ class Permission
2061
+ include Google::Apis::Core::Hashable
2062
+
2063
+ # Additional roles for this user. Only commenter is currently allowed.
2064
+ # Corresponds to the JSON property `additionalRoles`
2065
+ # @return [Array<String>]
2066
+ attr_accessor :additional_roles
2067
+
2068
+ # The authkey parameter required for this permission.
2069
+ # Corresponds to the JSON property `authKey`
2070
+ # @return [String]
2071
+ attr_accessor :auth_key
2072
+
2073
+ # The domain name of the entity this permission refers to. This is an output-
2074
+ # only field which is present when the permission type is user, group or domain.
2075
+ # Corresponds to the JSON property `domain`
2076
+ # @return [String]
2077
+ attr_accessor :domain
2078
+
2079
+ # The email address of the user or group this permission refers to. This is an
2080
+ # output-only field which is present when the permission type is user or group.
2081
+ # Corresponds to the JSON property `emailAddress`
2082
+ # @return [String]
2083
+ attr_accessor :email_address
2084
+
2085
+ # The ETag of the permission.
2086
+ # Corresponds to the JSON property `etag`
2087
+ # @return [String]
2088
+ attr_accessor :etag
2089
+
2090
+ # The ID of the user this permission refers to, and identical to the
2091
+ # permissionId in the About and Files resources. When making a drive.permissions.
2092
+ # insert request, exactly one of the id or value fields must be specified.
2093
+ # Corresponds to the JSON property `id`
2094
+ # @return [String]
2095
+ attr_accessor :id
2096
+
2097
+ # This is always drive#permission.
2098
+ # Corresponds to the JSON property `kind`
2099
+ # @return [String]
2100
+ attr_accessor :kind
2101
+
2102
+ # The name for this permission.
2103
+ # Corresponds to the JSON property `name`
2104
+ # @return [String]
2105
+ attr_accessor :name
2106
+
2107
+ # A link to the profile photo, if available.
2108
+ # Corresponds to the JSON property `photoLink`
2109
+ # @return [String]
2110
+ attr_accessor :photo_link
2111
+
2112
+ # The primary role for this user. Allowed values are:
2113
+ # - owner
2114
+ # - reader
2115
+ # - writer
2116
+ # Corresponds to the JSON property `role`
2117
+ # @return [String]
2118
+ attr_accessor :role
2119
+
2120
+ # A link back to this permission.
2121
+ # Corresponds to the JSON property `selfLink`
2122
+ # @return [String]
2123
+ attr_accessor :self_link
2124
+
2125
+ # The account type. Allowed values are:
2126
+ # - user
2127
+ # - group
2128
+ # - domain
2129
+ # - anyone
2130
+ # Corresponds to the JSON property `type`
2131
+ # @return [String]
2132
+ attr_accessor :type
2133
+
2134
+ # The email address or domain name for the entity. This is used during inserts
2135
+ # and is not populated in responses. When making a drive.permissions.insert
2136
+ # request, exactly one of the id or value fields must be specified.
2137
+ # Corresponds to the JSON property `value`
2138
+ # @return [String]
2139
+ attr_accessor :value
2140
+
2141
+ # Whether the link is required for this permission.
2142
+ # Corresponds to the JSON property `withLink`
2143
+ # @return [Boolean]
2144
+ attr_accessor :with_link
2145
+ alias_method :with_link?, :with_link
2146
+
2147
+ def initialize(**args)
2148
+ update!(**args)
2149
+ end
2150
+
2151
+ # Update properties of this object
2152
+ def update!(**args)
2153
+ @additional_roles = args[:additional_roles] if args.key?(:additional_roles)
2154
+ @auth_key = args[:auth_key] if args.key?(:auth_key)
2155
+ @domain = args[:domain] if args.key?(:domain)
2156
+ @email_address = args[:email_address] if args.key?(:email_address)
2157
+ @etag = args[:etag] if args.key?(:etag)
2158
+ @id = args[:id] if args.key?(:id)
2159
+ @kind = args[:kind] if args.key?(:kind)
2160
+ @name = args[:name] if args.key?(:name)
2161
+ @photo_link = args[:photo_link] if args.key?(:photo_link)
2162
+ @role = args[:role] if args.key?(:role)
2163
+ @self_link = args[:self_link] if args.key?(:self_link)
2164
+ @type = args[:type] if args.key?(:type)
2165
+ @value = args[:value] if args.key?(:value)
2166
+ @with_link = args[:with_link] if args.key?(:with_link)
2167
+ end
2168
+ end
2169
+
2170
+ # An ID for a user or group as seen in Permission items.
2171
+ class PermissionId
2172
+ include Google::Apis::Core::Hashable
2173
+
2174
+ # The permission ID.
2175
+ # Corresponds to the JSON property `id`
2176
+ # @return [String]
2177
+ attr_accessor :id
2178
+
2179
+ # This is always drive#permissionId.
2180
+ # Corresponds to the JSON property `kind`
2181
+ # @return [String]
2182
+ attr_accessor :kind
2183
+
2184
+ def initialize(**args)
2185
+ update!(**args)
2186
+ end
2187
+
2188
+ # Update properties of this object
2189
+ def update!(**args)
2190
+ @id = args[:id] if args.key?(:id)
2191
+ @kind = args[:kind] if args.key?(:kind)
2192
+ end
2193
+ end
2194
+
2195
+ # A list of permissions associated with a file.
2196
+ class PermissionList
2197
+ include Google::Apis::Core::Hashable
2198
+
2199
+ # The ETag of the list.
2200
+ # Corresponds to the JSON property `etag`
2201
+ # @return [String]
2202
+ attr_accessor :etag
2203
+
2204
+ # The actual list of permissions.
2205
+ # Corresponds to the JSON property `items`
2206
+ # @return [Array<Google::Apis::DriveV2::Permission>]
2207
+ attr_accessor :items
2208
+
2209
+ # This is always drive#permissionList.
2210
+ # Corresponds to the JSON property `kind`
2211
+ # @return [String]
2212
+ attr_accessor :kind
2213
+
2214
+ # A link back to this list.
2215
+ # Corresponds to the JSON property `selfLink`
2216
+ # @return [String]
2217
+ attr_accessor :self_link
2218
+
2219
+ def initialize(**args)
2220
+ update!(**args)
2221
+ end
2222
+
2223
+ # Update properties of this object
2224
+ def update!(**args)
2225
+ @etag = args[:etag] if args.key?(:etag)
2226
+ @items = args[:items] if args.key?(:items)
2227
+ @kind = args[:kind] if args.key?(:kind)
2228
+ @self_link = args[:self_link] if args.key?(:self_link)
2229
+ end
2230
+ end
2231
+
2232
+ # A key-value pair attached to a file that is either public or private to an
2233
+ # application.
2234
+ # The following limits apply to file properties:
2235
+ # - Maximum of 100 properties total per file
2236
+ # - Maximum of 30 private properties per app
2237
+ # - Maximum of 30 public properties
2238
+ # - Maximum of 124 bytes size limit on (key + value) string in UTF-8 encoding
2239
+ # for a single property.
2240
+ class Property
2241
+ include Google::Apis::Core::Hashable
2242
+
2243
+ # ETag of the property.
2244
+ # Corresponds to the JSON property `etag`
2245
+ # @return [String]
2246
+ attr_accessor :etag
2247
+
2248
+ # The key of this property.
2249
+ # Corresponds to the JSON property `key`
2250
+ # @return [String]
2251
+ attr_accessor :key
2252
+
2253
+ # This is always drive#property.
2254
+ # Corresponds to the JSON property `kind`
2255
+ # @return [String]
2256
+ attr_accessor :kind
2257
+
2258
+ # The link back to this property.
2259
+ # Corresponds to the JSON property `selfLink`
2260
+ # @return [String]
2261
+ attr_accessor :self_link
2262
+
2263
+ # The value of this property.
2264
+ # Corresponds to the JSON property `value`
2265
+ # @return [String]
2266
+ attr_accessor :value
2267
+
2268
+ # The visibility of this property.
2269
+ # Corresponds to the JSON property `visibility`
2270
+ # @return [String]
2271
+ attr_accessor :visibility
2272
+
2273
+ def initialize(**args)
2274
+ update!(**args)
2275
+ end
2276
+
2277
+ # Update properties of this object
2278
+ def update!(**args)
2279
+ @etag = args[:etag] if args.key?(:etag)
2280
+ @key = args[:key] if args.key?(:key)
2281
+ @kind = args[:kind] if args.key?(:kind)
2282
+ @self_link = args[:self_link] if args.key?(:self_link)
2283
+ @value = args[:value] if args.key?(:value)
2284
+ @visibility = args[:visibility] if args.key?(:visibility)
2285
+ end
2286
+ end
2287
+
2288
+ # A collection of properties, key-value pairs that are either public or private
2289
+ # to an application.
2290
+ class PropertyList
2291
+ include Google::Apis::Core::Hashable
2292
+
2293
+ # The ETag of the list.
2294
+ # Corresponds to the JSON property `etag`
2295
+ # @return [String]
2296
+ attr_accessor :etag
2297
+
2298
+ # The list of properties.
2299
+ # Corresponds to the JSON property `items`
2300
+ # @return [Array<Google::Apis::DriveV2::Property>]
2301
+ attr_accessor :items
2302
+
2303
+ # This is always drive#propertyList.
2304
+ # Corresponds to the JSON property `kind`
2305
+ # @return [String]
2306
+ attr_accessor :kind
2307
+
2308
+ # The link back to this list.
2309
+ # Corresponds to the JSON property `selfLink`
2310
+ # @return [String]
2311
+ attr_accessor :self_link
2312
+
2313
+ def initialize(**args)
2314
+ update!(**args)
2315
+ end
2316
+
2317
+ # Update properties of this object
2318
+ def update!(**args)
2319
+ @etag = args[:etag] if args.key?(:etag)
2320
+ @items = args[:items] if args.key?(:items)
2321
+ @kind = args[:kind] if args.key?(:kind)
2322
+ @self_link = args[:self_link] if args.key?(:self_link)
2323
+ end
2324
+ end
2325
+
2326
+ # A revision of a file.
2327
+ class Revision
2328
+ include Google::Apis::Core::Hashable
2329
+
2330
+ # Short term download URL for the file. This will only be populated on files
2331
+ # with content stored in Drive.
2332
+ # Corresponds to the JSON property `downloadUrl`
2333
+ # @return [String]
2334
+ attr_accessor :download_url
2335
+
2336
+ # The ETag of the revision.
2337
+ # Corresponds to the JSON property `etag`
2338
+ # @return [String]
2339
+ attr_accessor :etag
2340
+
2341
+ # Links for exporting Google Docs to specific formats.
2342
+ # Corresponds to the JSON property `exportLinks`
2343
+ # @return [Hash<String,String>]
2344
+ attr_accessor :export_links
2345
+
2346
+ # The size of the revision in bytes. This will only be populated on files with
2347
+ # content stored in Drive.
2348
+ # Corresponds to the JSON property `fileSize`
2349
+ # @return [String]
2350
+ attr_accessor :file_size
2351
+
2352
+ # The ID of the revision.
2353
+ # Corresponds to the JSON property `id`
2354
+ # @return [String]
2355
+ attr_accessor :id
2356
+
2357
+ # This is always drive#revision.
2358
+ # Corresponds to the JSON property `kind`
2359
+ # @return [String]
2360
+ attr_accessor :kind
2361
+
2362
+ # Information about a Drive user.
2363
+ # Corresponds to the JSON property `lastModifyingUser`
2364
+ # @return [Google::Apis::DriveV2::User]
2365
+ attr_accessor :last_modifying_user
2366
+
2367
+ # Name of the last user to modify this revision.
2368
+ # Corresponds to the JSON property `lastModifyingUserName`
2369
+ # @return [String]
2370
+ attr_accessor :last_modifying_user_name
2371
+
2372
+ # An MD5 checksum for the content of this revision. This will only be populated
2373
+ # on files with content stored in Drive.
2374
+ # Corresponds to the JSON property `md5Checksum`
2375
+ # @return [String]
2376
+ attr_accessor :md5_checksum
2377
+
2378
+ # The MIME type of the revision.
2379
+ # Corresponds to the JSON property `mimeType`
2380
+ # @return [String]
2381
+ attr_accessor :mime_type
2382
+
2383
+ # Last time this revision was modified (formatted RFC 3339 timestamp).
2384
+ # Corresponds to the JSON property `modifiedDate`
2385
+ # @return [DateTime]
2386
+ attr_accessor :modified_date
2387
+
2388
+ # The original filename when this revision was created. This will only be
2389
+ # populated on files with content stored in Drive.
2390
+ # Corresponds to the JSON property `originalFilename`
2391
+ # @return [String]
2392
+ attr_accessor :original_filename
2393
+
2394
+ # Whether this revision is pinned to prevent automatic purging. This will only
2395
+ # be populated and can only be modified on files with content stored in Drive
2396
+ # which are not Google Docs. Revisions can also be pinned when they are created
2397
+ # through the drive.files.insert/update/copy by using the pinned query parameter.
2398
+ # Corresponds to the JSON property `pinned`
2399
+ # @return [Boolean]
2400
+ attr_accessor :pinned
2401
+ alias_method :pinned?, :pinned
2402
+
2403
+ # Whether subsequent revisions will be automatically republished. This is only
2404
+ # populated and can only be modified for Google Docs.
2405
+ # Corresponds to the JSON property `publishAuto`
2406
+ # @return [Boolean]
2407
+ attr_accessor :publish_auto
2408
+ alias_method :publish_auto?, :publish_auto
2409
+
2410
+ # Whether this revision is published. This is only populated and can only be
2411
+ # modified for Google Docs.
2412
+ # Corresponds to the JSON property `published`
2413
+ # @return [Boolean]
2414
+ attr_accessor :published
2415
+ alias_method :published?, :published
2416
+
2417
+ # A link to the published revision.
2418
+ # Corresponds to the JSON property `publishedLink`
2419
+ # @return [String]
2420
+ attr_accessor :published_link
2421
+
2422
+ # Whether this revision is published outside the domain. This is only populated
2423
+ # and can only be modified for Google Docs.
2424
+ # Corresponds to the JSON property `publishedOutsideDomain`
2425
+ # @return [Boolean]
2426
+ attr_accessor :published_outside_domain
2427
+ alias_method :published_outside_domain?, :published_outside_domain
2428
+
2429
+ # A link back to this revision.
2430
+ # Corresponds to the JSON property `selfLink`
2431
+ # @return [String]
2432
+ attr_accessor :self_link
2433
+
2434
+ def initialize(**args)
2435
+ update!(**args)
2436
+ end
2437
+
2438
+ # Update properties of this object
2439
+ def update!(**args)
2440
+ @download_url = args[:download_url] if args.key?(:download_url)
2441
+ @etag = args[:etag] if args.key?(:etag)
2442
+ @export_links = args[:export_links] if args.key?(:export_links)
2443
+ @file_size = args[:file_size] if args.key?(:file_size)
2444
+ @id = args[:id] if args.key?(:id)
2445
+ @kind = args[:kind] if args.key?(:kind)
2446
+ @last_modifying_user = args[:last_modifying_user] if args.key?(:last_modifying_user)
2447
+ @last_modifying_user_name = args[:last_modifying_user_name] if args.key?(:last_modifying_user_name)
2448
+ @md5_checksum = args[:md5_checksum] if args.key?(:md5_checksum)
2449
+ @mime_type = args[:mime_type] if args.key?(:mime_type)
2450
+ @modified_date = args[:modified_date] if args.key?(:modified_date)
2451
+ @original_filename = args[:original_filename] if args.key?(:original_filename)
2452
+ @pinned = args[:pinned] if args.key?(:pinned)
2453
+ @publish_auto = args[:publish_auto] if args.key?(:publish_auto)
2454
+ @published = args[:published] if args.key?(:published)
2455
+ @published_link = args[:published_link] if args.key?(:published_link)
2456
+ @published_outside_domain = args[:published_outside_domain] if args.key?(:published_outside_domain)
2457
+ @self_link = args[:self_link] if args.key?(:self_link)
2458
+ end
2459
+ end
2460
+
2461
+ # A list of revisions of a file.
2462
+ class RevisionList
2463
+ include Google::Apis::Core::Hashable
2464
+
2465
+ # The ETag of the list.
2466
+ # Corresponds to the JSON property `etag`
2467
+ # @return [String]
2468
+ attr_accessor :etag
2469
+
2470
+ # The actual list of revisions.
2471
+ # Corresponds to the JSON property `items`
2472
+ # @return [Array<Google::Apis::DriveV2::Revision>]
2473
+ attr_accessor :items
2474
+
2475
+ # This is always drive#revisionList.
2476
+ # Corresponds to the JSON property `kind`
2477
+ # @return [String]
2478
+ attr_accessor :kind
2479
+
2480
+ # A link back to this list.
2481
+ # Corresponds to the JSON property `selfLink`
2482
+ # @return [String]
2483
+ attr_accessor :self_link
2484
+
2485
+ def initialize(**args)
2486
+ update!(**args)
2487
+ end
2488
+
2489
+ # Update properties of this object
2490
+ def update!(**args)
2491
+ @etag = args[:etag] if args.key?(:etag)
2492
+ @items = args[:items] if args.key?(:items)
2493
+ @kind = args[:kind] if args.key?(:kind)
2494
+ @self_link = args[:self_link] if args.key?(:self_link)
2495
+ end
2496
+ end
2497
+
2498
+ # Information about a Drive user.
2499
+ class User
2500
+ include Google::Apis::Core::Hashable
2501
+
2502
+ # A plain text displayable name for this user.
2503
+ # Corresponds to the JSON property `displayName`
2504
+ # @return [String]
2505
+ attr_accessor :display_name
2506
+
2507
+ # The email address of the user.
2508
+ # Corresponds to the JSON property `emailAddress`
2509
+ # @return [String]
2510
+ attr_accessor :email_address
2511
+
2512
+ # Whether this user is the same as the authenticated user for whom the request
2513
+ # was made.
2514
+ # Corresponds to the JSON property `isAuthenticatedUser`
2515
+ # @return [Boolean]
2516
+ attr_accessor :is_authenticated_user
2517
+ alias_method :is_authenticated_user?, :is_authenticated_user
2518
+
2519
+ # This is always drive#user.
2520
+ # Corresponds to the JSON property `kind`
2521
+ # @return [String]
2522
+ attr_accessor :kind
2523
+
2524
+ # The user's ID as visible in the permissions collection.
2525
+ # Corresponds to the JSON property `permissionId`
2526
+ # @return [String]
2527
+ attr_accessor :permission_id
2528
+
2529
+ # The user's profile picture.
2530
+ # Corresponds to the JSON property `picture`
2531
+ # @return [Google::Apis::DriveV2::User::Picture]
2532
+ attr_accessor :picture
2533
+
2534
+ def initialize(**args)
2535
+ update!(**args)
2536
+ end
2537
+
2538
+ # Update properties of this object
2539
+ def update!(**args)
2540
+ @display_name = args[:display_name] if args.key?(:display_name)
2541
+ @email_address = args[:email_address] if args.key?(:email_address)
2542
+ @is_authenticated_user = args[:is_authenticated_user] if args.key?(:is_authenticated_user)
2543
+ @kind = args[:kind] if args.key?(:kind)
2544
+ @permission_id = args[:permission_id] if args.key?(:permission_id)
2545
+ @picture = args[:picture] if args.key?(:picture)
2546
+ end
2547
+
2548
+ # The user's profile picture.
2549
+ class Picture
2550
+ include Google::Apis::Core::Hashable
2551
+
2552
+ # A URL that points to a profile picture of this user.
2553
+ # Corresponds to the JSON property `url`
2554
+ # @return [String]
2555
+ attr_accessor :url
2556
+
2557
+ def initialize(**args)
2558
+ update!(**args)
2559
+ end
2560
+
2561
+ # Update properties of this object
2562
+ def update!(**args)
2563
+ @url = args[:url] if args.key?(:url)
2564
+ end
2565
+ end
2566
+ end
2567
+ end
2568
+ end
2569
+ end