google-api-client 0.8.7 → 0.9.pre1

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 (397) 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 +21 -0
  7. data/.yardopts +12 -0
  8. data/CHANGELOG.md +6 -3
  9. data/CONTRIBUTING.md +31 -0
  10. data/Gemfile +28 -2
  11. data/MIGRATING.md +171 -0
  12. data/README.md +158 -150
  13. data/Rakefile +1 -40
  14. data/api_names.yaml +872 -0
  15. data/api_names_out.yaml +20843 -0
  16. data/bin/generate-api +93 -0
  17. data/generated/google/apis/adexchangebuyer_v1_3.rb +35 -0
  18. data/generated/google/apis/adexchangebuyer_v1_3/classes.rb +1124 -0
  19. data/generated/google/apis/adexchangebuyer_v1_3/representations.rb +375 -0
  20. data/generated/google/apis/adexchangebuyer_v1_3/service.rb +893 -0
  21. data/generated/google/apis/adexchangeseller_v2_0.rb +38 -0
  22. data/generated/google/apis/adexchangeseller_v2_0/classes.rb +792 -0
  23. data/generated/google/apis/adexchangeseller_v2_0/representations.rb +309 -0
  24. data/generated/google/apis/adexchangeseller_v2_0/service.rb +682 -0
  25. data/generated/google/apis/admin_directory_v1.rb +89 -0
  26. data/generated/google/apis/admin_directory_v1/classes.rb +2389 -0
  27. data/generated/google/apis/admin_directory_v1/representations.rb +780 -0
  28. data/generated/google/apis/admin_directory_v1/service.rb +2805 -0
  29. data/generated/google/apis/admin_reports_v1.rb +38 -0
  30. data/generated/google/apis/admin_reports_v1/classes.rb +582 -0
  31. data/generated/google/apis/admin_reports_v1/representations.rb +231 -0
  32. data/generated/google/apis/admin_reports_v1/service.rb +341 -0
  33. data/generated/google/apis/adsense_v1_4.rb +38 -0
  34. data/generated/google/apis/adsense_v1_4/classes.rb +1279 -0
  35. data/generated/google/apis/adsense_v1_4/representations.rb +493 -0
  36. data/generated/google/apis/adsense_v1_4/service.rb +1752 -0
  37. data/generated/google/apis/adsensehost_v4_1.rb +35 -0
  38. data/generated/google/apis/adsensehost_v4_1/classes.rb +834 -0
  39. data/generated/google/apis/adsensehost_v4_1/representations.rb +327 -0
  40. data/generated/google/apis/adsensehost_v4_1/service.rb +1190 -0
  41. data/generated/google/apis/analytics_v3.rb +49 -0
  42. data/generated/google/apis/analytics_v3/classes.rb +5113 -0
  43. data/generated/google/apis/analytics_v3/representations.rb +1661 -0
  44. data/generated/google/apis/analytics_v3/service.rb +3600 -0
  45. data/generated/google/apis/androidenterprise_v1.rb +34 -0
  46. data/generated/google/apis/androidenterprise_v1/classes.rb +1162 -0
  47. data/generated/google/apis/androidenterprise_v1/representations.rb +431 -0
  48. data/generated/google/apis/androidenterprise_v1/service.rb +1979 -0
  49. data/generated/google/apis/androidpublisher_v2.rb +34 -0
  50. data/generated/google/apis/androidpublisher_v2/classes.rb +1374 -0
  51. data/generated/google/apis/androidpublisher_v2/representations.rb +630 -0
  52. data/generated/google/apis/androidpublisher_v2/service.rb +2390 -0
  53. data/generated/google/apis/appsactivity_v1.rb +46 -0
  54. data/generated/google/apis/appsactivity_v1/classes.rb +392 -0
  55. data/generated/google/apis/appsactivity_v1/representations.rb +184 -0
  56. data/generated/google/apis/appsactivity_v1/service.rb +129 -0
  57. data/generated/google/apis/appstate_v1.rb +34 -0
  58. data/generated/google/apis/appstate_v1/classes.rb +154 -0
  59. data/generated/google/apis/appstate_v1/representations.rb +79 -0
  60. data/generated/google/apis/appstate_v1/service.rb +265 -0
  61. data/generated/google/apis/autoscaler_v1beta2.rb +38 -0
  62. data/generated/google/apis/autoscaler_v1beta2/classes.rb +747 -0
  63. data/generated/google/apis/autoscaler_v1beta2/representations.rb +281 -0
  64. data/generated/google/apis/autoscaler_v1beta2/service.rb +488 -0
  65. data/generated/google/apis/bigquery_v2.rb +49 -0
  66. data/generated/google/apis/bigquery_v2/classes.rb +2255 -0
  67. data/generated/google/apis/bigquery_v2/representations.rb +754 -0
  68. data/generated/google/apis/bigquery_v2/service.rb +1003 -0
  69. data/generated/google/apis/blogger_v3.rb +37 -0
  70. data/generated/google/apis/blogger_v3/classes.rb +1354 -0
  71. data/generated/google/apis/blogger_v3/representations.rb +562 -0
  72. data/generated/google/apis/blogger_v3/service.rb +1620 -0
  73. data/generated/google/apis/books_v1.rb +34 -0
  74. data/generated/google/apis/books_v1/classes.rb +3515 -0
  75. data/generated/google/apis/books_v1/representations.rb +1361 -0
  76. data/generated/google/apis/books_v1/service.rb +2170 -0
  77. data/generated/google/apis/calendar_v3.rb +37 -0
  78. data/generated/google/apis/calendar_v3/classes.rb +1702 -0
  79. data/generated/google/apis/calendar_v3/representations.rb +566 -0
  80. data/generated/google/apis/calendar_v3/service.rb +1943 -0
  81. data/generated/google/apis/civicinfo_v2.rb +31 -0
  82. data/generated/google/apis/civicinfo_v2/classes.rb +1057 -0
  83. data/generated/google/apis/civicinfo_v2/representations.rb +374 -0
  84. data/generated/google/apis/civicinfo_v2/service.rb +284 -0
  85. data/generated/google/apis/cloudmonitoring_v2beta2.rb +34 -0
  86. data/generated/google/apis/cloudmonitoring_v2beta2/classes.rb +679 -0
  87. data/generated/google/apis/cloudmonitoring_v2beta2/representations.rb +311 -0
  88. data/generated/google/apis/cloudmonitoring_v2beta2/service.rb +458 -0
  89. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +38 -0
  90. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +139 -0
  91. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +65 -0
  92. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +301 -0
  93. data/generated/google/apis/compute_v1.rb +49 -0
  94. data/generated/google/apis/compute_v1/classes.rb +6391 -0
  95. data/generated/google/apis/compute_v1/representations.rb +2209 -0
  96. data/generated/google/apis/compute_v1/service.rb +6352 -0
  97. data/generated/google/apis/container_v1beta1.rb +35 -0
  98. data/generated/google/apis/container_v1beta1/classes.rb +466 -0
  99. data/generated/google/apis/container_v1beta1/representations.rb +177 -0
  100. data/generated/google/apis/container_v1beta1/service.rb +394 -0
  101. data/generated/google/apis/content_v2.rb +35 -0
  102. data/generated/google/apis/content_v2/classes.rb +3780 -0
  103. data/generated/google/apis/content_v2/representations.rb +1456 -0
  104. data/generated/google/apis/content_v2/service.rb +1706 -0
  105. data/generated/google/apis/coordinate_v1.rb +37 -0
  106. data/generated/google/apis/coordinate_v1/classes.rb +669 -0
  107. data/generated/google/apis/coordinate_v1/representations.rb +285 -0
  108. data/generated/google/apis/coordinate_v1/service.rb +687 -0
  109. data/{lib/google/api_client/auth/compute_service_account.rb → generated/google/apis/customsearch_v1.rb} +13 -10
  110. data/generated/google/apis/customsearch_v1/classes.rb +771 -0
  111. data/generated/google/apis/customsearch_v1/representations.rb +276 -0
  112. data/generated/google/apis/customsearch_v1/service.rb +208 -0
  113. data/generated/google/apis/datastore_v1beta2.rb +40 -0
  114. data/generated/google/apis/datastore_v1beta2/classes.rb +1186 -0
  115. data/generated/google/apis/datastore_v1beta2/representations.rb +526 -0
  116. data/generated/google/apis/datastore_v1beta2/service.rb +300 -0
  117. data/generated/google/apis/deploymentmanager_v2beta2.rb +41 -0
  118. data/generated/google/apis/deploymentmanager_v2beta2/classes.rb +820 -0
  119. data/generated/google/apis/deploymentmanager_v2beta2/representations.rb +303 -0
  120. data/generated/google/apis/deploymentmanager_v2beta2/service.rb +647 -0
  121. data/generated/google/apis/dfareporting_v2_1.rb +37 -0
  122. data/generated/google/apis/dfareporting_v2_1/classes.rb +10755 -0
  123. data/generated/google/apis/dfareporting_v2_1/representations.rb +3438 -0
  124. data/generated/google/apis/dfareporting_v2_1/service.rb +8775 -0
  125. data/generated/google/apis/discovery_v1.rb +32 -0
  126. data/generated/google/apis/discovery_v1/classes.rb +947 -0
  127. data/generated/google/apis/discovery_v1/representations.rb +355 -0
  128. data/generated/google/apis/discovery_v1/service.rb +144 -0
  129. data/generated/google/apis/dns_v1.rb +41 -0
  130. data/generated/google/apis/dns_v1/classes.rb +406 -0
  131. data/generated/google/apis/dns_v1/representations.rb +151 -0
  132. data/generated/google/apis/dns_v1/service.rb +460 -0
  133. data/{spec/google/api_client/request_spec.rb → generated/google/apis/doubleclickbidmanager_v1.rb} +15 -13
  134. data/generated/google/apis/doubleclickbidmanager_v1/classes.rb +709 -0
  135. data/generated/google/apis/doubleclickbidmanager_v1/representations.rb +297 -0
  136. data/generated/google/apis/doubleclickbidmanager_v1/service.rb +349 -0
  137. data/generated/google/apis/doubleclicksearch_v2.rb +35 -0
  138. data/generated/google/apis/doubleclicksearch_v2/classes.rb +947 -0
  139. data/generated/google/apis/doubleclicksearch_v2/representations.rb +315 -0
  140. data/generated/google/apis/doubleclicksearch_v2/service.rb +490 -0
  141. data/generated/google/apis/drive_v2.rb +55 -0
  142. data/generated/google/apis/drive_v2/classes.rb +2519 -0
  143. data/generated/google/apis/drive_v2/representations.rb +781 -0
  144. data/generated/google/apis/drive_v2/service.rb +2685 -0
  145. data/generated/google/apis/fitness_v1.rb +49 -0
  146. data/generated/google/apis/fitness_v1/classes.rb +809 -0
  147. data/generated/google/apis/fitness_v1/representations.rb +295 -0
  148. data/generated/google/apis/fitness_v1/service.rb +684 -0
  149. data/generated/google/apis/fusiontables_v2.rb +37 -0
  150. data/generated/google/apis/fusiontables_v2/classes.rb +1048 -0
  151. data/generated/google/apis/fusiontables_v2/representations.rb +409 -0
  152. data/generated/google/apis/fusiontables_v2/service.rb +1496 -0
  153. data/generated/google/apis/games_configuration_v1configuration.rb +34 -0
  154. data/generated/google/apis/games_configuration_v1configuration/classes.rb +506 -0
  155. data/generated/google/apis/games_configuration_v1configuration/representations.rb +206 -0
  156. data/generated/google/apis/games_configuration_v1configuration/service.rb +578 -0
  157. data/generated/google/apis/games_v1.rb +40 -0
  158. data/generated/google/apis/games_v1/classes.rb +4578 -0
  159. data/generated/google/apis/games_v1/representations.rb +1570 -0
  160. data/generated/google/apis/games_v1/service.rb +2306 -0
  161. data/generated/google/apis/gan_v1beta1.rb +31 -0
  162. data/generated/google/apis/gan_v1beta1/classes.rb +1428 -0
  163. data/generated/google/apis/gan_v1beta1/representations.rb +428 -0
  164. data/generated/google/apis/gan_v1beta1/service.rb +692 -0
  165. data/generated/google/apis/genomics_v1beta2.rb +46 -0
  166. data/generated/google/apis/genomics_v1beta2/classes.rb +3288 -0
  167. data/generated/google/apis/genomics_v1beta2/representations.rb +1194 -0
  168. data/generated/google/apis/genomics_v1beta2/service.rb +2356 -0
  169. data/generated/google/apis/gmail_v1.rb +49 -0
  170. data/generated/google/apis/gmail_v1/classes.rb +794 -0
  171. data/generated/google/apis/gmail_v1/representations.rb +339 -0
  172. data/generated/google/apis/gmail_v1/service.rb +1502 -0
  173. data/generated/google/apis/groupsmigration_v1.rb +34 -0
  174. data/generated/google/apis/groupsmigration_v1/classes.rb +51 -0
  175. data/generated/google/apis/groupsmigration_v1/representations.rb +38 -0
  176. data/generated/google/apis/groupsmigration_v1/service.rb +111 -0
  177. data/generated/google/apis/groupssettings_v1.rb +34 -0
  178. data/generated/google/apis/groupssettings_v1/classes.rb +221 -0
  179. data/generated/google/apis/groupssettings_v1/representations.rb +64 -0
  180. data/generated/google/apis/groupssettings_v1/service.rb +179 -0
  181. data/generated/google/apis/identitytoolkit_v3.rb +31 -0
  182. data/generated/google/apis/identitytoolkit_v3/classes.rb +1229 -0
  183. data/generated/google/apis/identitytoolkit_v3/representations.rb +422 -0
  184. data/generated/google/apis/identitytoolkit_v3/service.rb +491 -0
  185. data/generated/google/apis/licensing_v1.rb +34 -0
  186. data/generated/google/apis/licensing_v1/classes.rb +132 -0
  187. data/generated/google/apis/licensing_v1/representations.rb +68 -0
  188. data/generated/google/apis/licensing_v1/service.rb +376 -0
  189. data/generated/google/apis/logging_v1beta3.rb +35 -0
  190. data/generated/google/apis/logging_v1beta3/classes.rb +505 -0
  191. data/generated/google/apis/logging_v1beta3/representations.rb +222 -0
  192. data/generated/google/apis/logging_v1beta3/service.rb +670 -0
  193. data/generated/google/apis/manager_v1beta2.rb +50 -0
  194. data/generated/google/apis/manager_v1beta2/classes.rb +1287 -0
  195. data/generated/google/apis/manager_v1beta2/representations.rb +536 -0
  196. data/generated/google/apis/manager_v1beta2/service.rb +380 -0
  197. data/generated/google/apis/mapsengine_v1.rb +38 -0
  198. data/generated/google/apis/mapsengine_v1/classes.rb +2873 -0
  199. data/generated/google/apis/mapsengine_v1/representations.rb +1235 -0
  200. data/generated/google/apis/mapsengine_v1/service.rb +3465 -0
  201. data/generated/google/apis/mirror_v1.rb +37 -0
  202. data/generated/google/apis/mirror_v1/classes.rb +1072 -0
  203. data/generated/google/apis/mirror_v1/representations.rb +350 -0
  204. data/generated/google/apis/mirror_v1/service.rb +1001 -0
  205. data/generated/google/apis/oauth2_v2.rb +43 -0
  206. data/generated/google/apis/oauth2_v2/classes.rb +245 -0
  207. data/generated/google/apis/oauth2_v2/representations.rb +94 -0
  208. data/generated/google/apis/oauth2_v2/service.rb +203 -0
  209. data/generated/google/apis/pagespeedonline_v2.rb +32 -0
  210. data/generated/google/apis/pagespeedonline_v2/classes.rb +614 -0
  211. data/generated/google/apis/pagespeedonline_v2/representations.rb +244 -0
  212. data/generated/google/apis/pagespeedonline_v2/service.rb +120 -0
  213. data/generated/google/apis/plus_domains_v1.rb +61 -0
  214. data/generated/google/apis/plus_domains_v1/classes.rb +2402 -0
  215. data/generated/google/apis/plus_domains_v1/representations.rb +873 -0
  216. data/generated/google/apis/plus_domains_v1/service.rb +924 -0
  217. data/generated/google/apis/plus_v1.rb +43 -0
  218. data/generated/google/apis/plus_v1/classes.rb +2384 -0
  219. data/generated/google/apis/plus_v1/representations.rb +812 -0
  220. data/generated/google/apis/plus_v1/service.rb +616 -0
  221. data/generated/google/apis/prediction_v1_6.rb +44 -0
  222. data/generated/google/apis/prediction_v1_6/classes.rb +751 -0
  223. data/generated/google/apis/prediction_v1_6/representations.rb +327 -0
  224. data/generated/google/apis/prediction_v1_6/service.rb +388 -0
  225. data/generated/google/apis/pubsub_v1beta2.rb +37 -0
  226. data/generated/google/apis/pubsub_v1beta2/classes.rb +824 -0
  227. data/generated/google/apis/pubsub_v1beta2/representations.rb +366 -0
  228. data/generated/google/apis/pubsub_v1beta2/service.rb +778 -0
  229. data/generated/google/apis/qpx_express_v1.rb +31 -0
  230. data/generated/google/apis/qpx_express_v1/classes.rb +1268 -0
  231. data/generated/google/apis/qpx_express_v1/representations.rb +424 -0
  232. data/generated/google/apis/qpx_express_v1/service.rb +101 -0
  233. data/generated/google/apis/replicapool_v1beta2.rb +41 -0
  234. data/generated/google/apis/replicapool_v1beta2/classes.rb +621 -0
  235. data/generated/google/apis/replicapool_v1beta2/representations.rb +235 -0
  236. data/generated/google/apis/replicapool_v1beta2/service.rb +620 -0
  237. data/generated/google/apis/replicapoolupdater_v1beta1.rb +41 -0
  238. data/generated/google/apis/replicapoolupdater_v1beta1/classes.rb +682 -0
  239. data/generated/google/apis/replicapoolupdater_v1beta1/representations.rb +247 -0
  240. data/generated/google/apis/replicapoolupdater_v1beta1/service.rb +472 -0
  241. data/generated/google/apis/reseller_v1.rb +37 -0
  242. data/generated/google/apis/reseller_v1/classes.rb +502 -0
  243. data/generated/google/apis/reseller_v1/representations.rb +199 -0
  244. data/generated/google/apis/reseller_v1/service.rb +637 -0
  245. data/generated/google/apis/resourceviews_v1beta2.rb +47 -0
  246. data/generated/google/apis/resourceviews_v1beta2/classes.rb +660 -0
  247. data/generated/google/apis/resourceviews_v1beta2/representations.rb +269 -0
  248. data/generated/google/apis/resourceviews_v1beta2/service.rb +574 -0
  249. data/generated/google/apis/site_verification_v1.rb +37 -0
  250. data/generated/google/apis/site_verification_v1/classes.rb +185 -0
  251. data/generated/google/apis/site_verification_v1/representations.rb +101 -0
  252. data/generated/google/apis/site_verification_v1/service.rb +322 -0
  253. data/generated/google/apis/sqladmin_v1beta4.rb +37 -0
  254. data/generated/google/apis/sqladmin_v1beta4/classes.rb +1817 -0
  255. data/generated/google/apis/sqladmin_v1beta4/representations.rb +688 -0
  256. data/generated/google/apis/sqladmin_v1beta4/service.rb +1534 -0
  257. data/generated/google/apis/storage_v1.rb +43 -0
  258. data/generated/google/apis/storage_v1/classes.rb +1177 -0
  259. data/generated/google/apis/storage_v1/representations.rb +427 -0
  260. data/generated/google/apis/storage_v1/service.rb +1920 -0
  261. data/generated/google/apis/tagmanager_v1.rb +52 -0
  262. data/generated/google/apis/tagmanager_v1/classes.rb +1226 -0
  263. data/generated/google/apis/tagmanager_v1/representations.rb +461 -0
  264. data/generated/google/apis/tagmanager_v1/service.rb +1978 -0
  265. data/generated/google/apis/taskqueue_v1beta2.rb +37 -0
  266. data/generated/google/apis/taskqueue_v1beta2/classes.rb +254 -0
  267. data/generated/google/apis/taskqueue_v1beta2/representations.rb +114 -0
  268. data/generated/google/apis/taskqueue_v1beta2/service.rb +416 -0
  269. data/generated/google/apis/tasks_v1.rb +37 -0
  270. data/generated/google/apis/tasks_v1/classes.rb +296 -0
  271. data/generated/google/apis/tasks_v1/representations.rb +115 -0
  272. data/generated/google/apis/tasks_v1/service.rb +657 -0
  273. data/generated/google/apis/translate_v2.rb +31 -0
  274. data/generated/google/apis/translate_v2/classes.rb +168 -0
  275. data/generated/google/apis/translate_v2/representations.rb +109 -0
  276. data/generated/google/apis/translate_v2/service.rb +185 -0
  277. data/generated/google/apis/urlshortener_v1.rb +34 -0
  278. data/generated/google/apis/urlshortener_v1/classes.rb +246 -0
  279. data/generated/google/apis/urlshortener_v1/representations.rb +111 -0
  280. data/generated/google/apis/urlshortener_v1/service.rb +179 -0
  281. data/generated/google/apis/webmasters_v3.rb +37 -0
  282. data/generated/google/apis/webmasters_v3/classes.rb +563 -0
  283. data/generated/google/apis/webmasters_v3/representations.rb +250 -0
  284. data/generated/google/apis/webmasters_v3/service.rb +587 -0
  285. data/generated/google/apis/youtube_analytics_v1.rb +46 -0
  286. data/generated/google/apis/youtube_analytics_v1/classes.rb +540 -0
  287. data/generated/google/apis/youtube_analytics_v1/representations.rb +242 -0
  288. data/generated/google/apis/youtube_analytics_v1/service.rb +567 -0
  289. data/generated/google/apis/youtube_v3.rb +49 -0
  290. data/generated/google/apis/youtube_v3/classes.rb +7225 -0
  291. data/generated/google/apis/youtube_v3/representations.rb +2529 -0
  292. data/generated/google/apis/youtube_v3/service.rb +4051 -0
  293. data/google-api-client.gemspec +27 -39
  294. data/lib/google/api_client/auth/storage.rb +3 -2
  295. data/lib/google/api_client/auth/storages/file_store.rb +1 -3
  296. data/lib/google/api_client/auth/storages/redis_store.rb +6 -2
  297. data/lib/google/apis.rb +48 -0
  298. data/lib/google/apis/core/api_command.rb +128 -0
  299. data/lib/google/apis/core/base_service.rb +314 -0
  300. data/lib/google/apis/core/batch.rb +222 -0
  301. data/lib/google/apis/core/download.rb +94 -0
  302. data/lib/google/apis/core/hashable.rb +44 -0
  303. data/lib/google/apis/core/http_command.rb +275 -0
  304. data/lib/google/apis/core/json_representation.rb +122 -0
  305. data/lib/google/{api_client/version.rb → apis/core/logging.rb} +12 -8
  306. data/lib/google/apis/core/multipart.rb +173 -0
  307. data/lib/google/apis/core/upload.rb +275 -0
  308. data/lib/google/{api_client → apis}/errors.rb +32 -28
  309. data/lib/google/apis/generator.rb +70 -0
  310. data/lib/google/apis/generator/annotator.rb +271 -0
  311. data/lib/google/apis/generator/helpers.rb +74 -0
  312. data/lib/google/apis/generator/model.rb +130 -0
  313. data/lib/google/apis/generator/template.rb +124 -0
  314. data/lib/google/apis/generator/templates/_class.tmpl +40 -0
  315. data/lib/google/apis/generator/templates/_method.tmpl +90 -0
  316. data/lib/google/apis/generator/templates/_representation.tmpl +51 -0
  317. data/lib/google/apis/generator/templates/_representation_stub.tmpl +15 -0
  318. data/lib/google/apis/generator/templates/_representation_type.tmpl +10 -0
  319. data/lib/google/{api_client/reference.rb → apis/generator/templates/classes.rb.tmpl} +11 -9
  320. data/lib/google/apis/generator/templates/module.rb.tmpl +40 -0
  321. data/lib/google/apis/generator/templates/representations.rb.tmpl +32 -0
  322. data/lib/google/apis/generator/templates/service.rb.tmpl +60 -0
  323. data/lib/google/apis/options.rb +79 -0
  324. data/lib/google/apis/version.rb +39 -0
  325. data/rakelib/metrics.rake +22 -0
  326. data/rakelib/rubocop.rake +10 -0
  327. data/rakelib/spec.rake +11 -0
  328. data/rakelib/yard.rake +11 -0
  329. data/samples/calendar/calendar.rb +43 -0
  330. data/samples/drive/drive.rb +40 -0
  331. data/samples/pubsub/pubsub.rb +52 -0
  332. data/{lib/google/api_client/discovery.rb → samples/translate/translate.rb} +14 -5
  333. data/script/generate +79 -0
  334. data/script/package +8 -0
  335. data/script/release +15 -0
  336. data/spec/fixtures/files/api_names.yaml +3 -0
  337. data/spec/fixtures/files/auth_stored_credentials.json +8 -0
  338. data/spec/fixtures/files/client_secrets.json +1 -0
  339. data/spec/fixtures/files/test.blah +1 -0
  340. data/spec/fixtures/files/test.txt +1 -0
  341. data/spec/fixtures/files/test_api.json +440 -0
  342. data/spec/google/api_client/auth/storage_spec.rb +1 -3
  343. data/spec/google/api_client/auth/storages/file_store_spec.rb +1 -2
  344. data/spec/google/api_client/auth/storages/redis_store_spec.rb +1 -3
  345. data/spec/google/apis/core/api_command_spec.rb +170 -0
  346. data/spec/google/apis/core/batch_spec.rb +128 -0
  347. data/spec/google/apis/core/download_spec.rb +90 -0
  348. data/spec/google/apis/core/hashable_spec.rb +60 -0
  349. data/spec/google/apis/core/http_command_spec.rb +238 -0
  350. data/spec/google/apis/core/json_representation_spec.rb +192 -0
  351. data/spec/google/apis/core/service_spec.rb +247 -0
  352. data/spec/google/apis/core/upload_spec.rb +238 -0
  353. data/{lib/google/api_client/service_account.rb → spec/google/apis/generated_spec.rb} +14 -8
  354. data/spec/google/apis/generator/generator_spec.rb +272 -0
  355. data/spec/google/apis/logging_spec.rb +45 -0
  356. data/spec/google/apis/options_spec.rb +40 -0
  357. data/spec/integration_tests/drive_spec.rb +35 -0
  358. data/spec/integration_tests/pubsub_spec.rb +48 -0
  359. data/spec/integration_tests/url_shortener_spec.rb +31 -0
  360. data/spec/spec_helper.rb +102 -46
  361. metadata +433 -178
  362. data/lib/compat/multi_json.rb +0 -19
  363. data/lib/google/api_client.rb +0 -750
  364. data/lib/google/api_client/auth/file_storage.rb +0 -59
  365. data/lib/google/api_client/auth/jwt_asserter.rb +0 -126
  366. data/lib/google/api_client/auth/key_utils.rb +0 -93
  367. data/lib/google/api_client/auth/pkcs12.rb +0 -41
  368. data/lib/google/api_client/batch.rb +0 -326
  369. data/lib/google/api_client/charset.rb +0 -33
  370. data/lib/google/api_client/discovery/api.rb +0 -310
  371. data/lib/google/api_client/discovery/media.rb +0 -77
  372. data/lib/google/api_client/discovery/method.rb +0 -363
  373. data/lib/google/api_client/discovery/resource.rb +0 -156
  374. data/lib/google/api_client/discovery/schema.rb +0 -117
  375. data/lib/google/api_client/environment.rb +0 -42
  376. data/lib/google/api_client/gzip.rb +0 -28
  377. data/lib/google/api_client/logging.rb +0 -32
  378. data/lib/google/api_client/media.rb +0 -259
  379. data/lib/google/api_client/railtie.rb +0 -18
  380. data/lib/google/api_client/request.rb +0 -350
  381. data/lib/google/api_client/result.rb +0 -255
  382. data/lib/google/api_client/service.rb +0 -233
  383. data/lib/google/api_client/service/batch.rb +0 -110
  384. data/lib/google/api_client/service/request.rb +0 -144
  385. data/lib/google/api_client/service/resource.rb +0 -40
  386. data/lib/google/api_client/service/result.rb +0 -162
  387. data/lib/google/api_client/service/simple_file_store.rb +0 -151
  388. data/lib/google/api_client/service/stub_generator.rb +0 -61
  389. data/spec/google/api_client/batch_spec.rb +0 -248
  390. data/spec/google/api_client/discovery_spec.rb +0 -708
  391. data/spec/google/api_client/gzip_spec.rb +0 -98
  392. data/spec/google/api_client/media_spec.rb +0 -178
  393. data/spec/google/api_client/result_spec.rb +0 -207
  394. data/spec/google/api_client/service_account_spec.rb +0 -169
  395. data/spec/google/api_client/service_spec.rb +0 -618
  396. data/spec/google/api_client/simple_file_store_spec.rb +0 -133
  397. data/spec/google/api_client_spec.rb +0 -352
@@ -0,0 +1,55 @@
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 'google/apis/drive_v2/service.rb'
16
+ require 'google/apis/drive_v2/classes.rb'
17
+ require 'google/apis/drive_v2/representations.rb'
18
+
19
+ module Google
20
+ module Apis
21
+ # Drive API
22
+ #
23
+ # The API to interact with Drive.
24
+ #
25
+ # @see https://developers.google.com/drive/
26
+ module DriveV2
27
+ VERSION = 'V2'
28
+ REVISION = '20150618'
29
+
30
+ # View and manage the files in your Google Drive
31
+ AUTH_DRIVE = 'https://www.googleapis.com/auth/drive'
32
+
33
+ # View and manage its own configuration data in your Google Drive
34
+ AUTH_DRIVE_APPDATA = 'https://www.googleapis.com/auth/drive.appdata'
35
+
36
+ # View your Google Drive apps
37
+ AUTH_DRIVE_APPS_READONLY = 'https://www.googleapis.com/auth/drive.apps.readonly'
38
+
39
+ # View and manage Google Drive files and folders that you have opened or created with this app
40
+ AUTH_DRIVE_FILE = 'https://www.googleapis.com/auth/drive.file'
41
+
42
+ # View and manage metadata of files in your Google Drive
43
+ AUTH_DRIVE_METADATA = 'https://www.googleapis.com/auth/drive.metadata'
44
+
45
+ # View metadata for files in your Google Drive
46
+ AUTH_DRIVE_METADATA_READONLY = 'https://www.googleapis.com/auth/drive.metadata.readonly'
47
+
48
+ # View the files in your Google Drive
49
+ AUTH_DRIVE_READONLY = 'https://www.googleapis.com/auth/drive.readonly'
50
+
51
+ # Modify your Google Apps Script scripts' behavior
52
+ AUTH_DRIVE_SCRIPTS = 'https://www.googleapis.com/auth/drive.scripts'
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,2519 @@
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
+ # - ALLOWED_WITH_WARNING
38
+ # - INCOMING_ONLY
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
+ # The JSON template for a 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] unless args[:additional_role_info].nil?
167
+ @domain_sharing_policy = args[:domain_sharing_policy] unless args[:domain_sharing_policy].nil?
168
+ @etag = args[:etag] unless args[:etag].nil?
169
+ @export_formats = args[:export_formats] unless args[:export_formats].nil?
170
+ @features = args[:features] unless args[:features].nil?
171
+ @folder_color_palette = args[:folder_color_palette] unless args[:folder_color_palette].nil?
172
+ @import_formats = args[:import_formats] unless args[:import_formats].nil?
173
+ @is_current_app_installed = args[:is_current_app_installed] unless args[:is_current_app_installed].nil?
174
+ @kind = args[:kind] unless args[:kind].nil?
175
+ @language_code = args[:language_code] unless args[:language_code].nil?
176
+ @largest_change_id = args[:largest_change_id] unless args[:largest_change_id].nil?
177
+ @max_upload_sizes = args[:max_upload_sizes] unless args[:max_upload_sizes].nil?
178
+ @name = args[:name] unless args[:name].nil?
179
+ @permission_id = args[:permission_id] unless args[:permission_id].nil?
180
+ @quota_bytes_by_service = args[:quota_bytes_by_service] unless args[:quota_bytes_by_service].nil?
181
+ @quota_bytes_total = args[:quota_bytes_total] unless args[:quota_bytes_total].nil?
182
+ @quota_bytes_used = args[:quota_bytes_used] unless args[:quota_bytes_used].nil?
183
+ @quota_bytes_used_aggregate = args[:quota_bytes_used_aggregate] unless args[:quota_bytes_used_aggregate].nil?
184
+ @quota_bytes_used_in_trash = args[:quota_bytes_used_in_trash] unless args[:quota_bytes_used_in_trash].nil?
185
+ @quota_type = args[:quota_type] unless args[:quota_type].nil?
186
+ @remaining_change_ids = args[:remaining_change_ids] unless args[:remaining_change_ids].nil?
187
+ @root_folder_id = args[:root_folder_id] unless args[:root_folder_id].nil?
188
+ @self_link = args[:self_link] unless args[:self_link].nil?
189
+ @user = args[:user] unless args[:user].nil?
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] unless args[:role_sets].nil?
213
+ @type = args[:type] unless args[:type].nil?
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] unless args[:additional_roles].nil?
237
+ @primary_role = args[:primary_role] unless args[:primary_role].nil?
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] unless args[:source].nil?
263
+ @targets = args[:targets] unless args[:targets].nil?
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] unless args[:feature_name].nil?
288
+ @feature_rate = args[:feature_rate] unless args[:feature_rate].nil?
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] unless args[:source].nil?
313
+ @targets = args[:targets] unless args[:targets].nil?
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] unless args[:size].nil?
338
+ @type = args[:type] unless args[:type].nil?
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] unless args[:bytes_used].nil?
363
+ @service_name = args[:service_name] unless args[:service_name].nil?
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] unless args[:authorized].nil?
515
+ @create_in_folder_template = args[:create_in_folder_template] unless args[:create_in_folder_template].nil?
516
+ @create_url = args[:create_url] unless args[:create_url].nil?
517
+ @has_drive_wide_scope = args[:has_drive_wide_scope] unless args[:has_drive_wide_scope].nil?
518
+ @icons = args[:icons] unless args[:icons].nil?
519
+ @id = args[:id] unless args[:id].nil?
520
+ @installed = args[:installed] unless args[:installed].nil?
521
+ @kind = args[:kind] unless args[:kind].nil?
522
+ @long_description = args[:long_description] unless args[:long_description].nil?
523
+ @name = args[:name] unless args[:name].nil?
524
+ @object_type = args[:object_type] unless args[:object_type].nil?
525
+ @open_url_template = args[:open_url_template] unless args[:open_url_template].nil?
526
+ @primary_file_extensions = args[:primary_file_extensions] unless args[:primary_file_extensions].nil?
527
+ @primary_mime_types = args[:primary_mime_types] unless args[:primary_mime_types].nil?
528
+ @product_id = args[:product_id] unless args[:product_id].nil?
529
+ @product_url = args[:product_url] unless args[:product_url].nil?
530
+ @secondary_file_extensions = args[:secondary_file_extensions] unless args[:secondary_file_extensions].nil?
531
+ @secondary_mime_types = args[:secondary_mime_types] unless args[:secondary_mime_types].nil?
532
+ @short_description = args[:short_description] unless args[:short_description].nil?
533
+ @supports_create = args[:supports_create] unless args[:supports_create].nil?
534
+ @supports_import = args[:supports_import] unless args[:supports_import].nil?
535
+ @supports_multi_open = args[:supports_multi_open] unless args[:supports_multi_open].nil?
536
+ @supports_offline_create = args[:supports_offline_create] unless args[:supports_offline_create].nil?
537
+ @use_by_default = args[:use_by_default] unless args[:use_by_default].nil?
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] unless args[:category].nil?
569
+ @icon_url = args[:icon_url] unless args[:icon_url].nil?
570
+ @size = args[:size] unless args[:size].nil?
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] unless args[:default_app_ids].nil?
613
+ @etag = args[:etag] unless args[:etag].nil?
614
+ @items = args[:items] unless args[:items].nil?
615
+ @kind = args[:kind] unless args[:kind].nil?
616
+ @self_link = args[:self_link] unless args[:self_link].nil?
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] unless args[:deleted].nil?
667
+ @file = args[:file] unless args[:file].nil?
668
+ @file_id = args[:file_id] unless args[:file_id].nil?
669
+ @id = args[:id] unless args[:id].nil?
670
+ @kind = args[:kind] unless args[:kind].nil?
671
+ @modification_date = args[:modification_date] unless args[:modification_date].nil?
672
+ @self_link = args[:self_link] unless args[:self_link].nil?
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] unless args[:etag].nil?
722
+ @items = args[:items] unless args[:items].nil?
723
+ @kind = args[:kind] unless args[:kind].nil?
724
+ @largest_change_id = args[:largest_change_id] unless args[:largest_change_id].nil?
725
+ @next_link = args[:next_link] unless args[:next_link].nil?
726
+ @next_page_token = args[:next_page_token] unless args[:next_page_token].nil?
727
+ @self_link = args[:self_link] unless args[:self_link].nil?
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] unless args[:address].nil?
797
+ @expiration = args[:expiration] unless args[:expiration].nil?
798
+ @id = args[:id] unless args[:id].nil?
799
+ @kind = args[:kind] unless args[:kind].nil?
800
+ @params = args[:params] unless args[:params].nil?
801
+ @payload = args[:payload] unless args[:payload].nil?
802
+ @resource_id = args[:resource_id] unless args[:resource_id].nil?
803
+ @resource_uri = args[:resource_uri] unless args[:resource_uri].nil?
804
+ @token = args[:token] unless args[:token].nil?
805
+ @type = args[:type] unless args[:type].nil?
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] unless args[:etag].nil?
850
+ @items = args[:items] unless args[:items].nil?
851
+ @kind = args[:kind] unless args[:kind].nil?
852
+ @next_link = args[:next_link] unless args[:next_link].nil?
853
+ @next_page_token = args[:next_page_token] unless args[:next_page_token].nil?
854
+ @self_link = args[:self_link] unless args[:self_link].nil?
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] unless args[:child_link].nil?
889
+ @id = args[:id] unless args[:id].nil?
890
+ @kind = args[:kind] unless args[:kind].nil?
891
+ @self_link = args[:self_link] unless args[:self_link].nil?
892
+ end
893
+ end
894
+
895
+ # A JSON representation of 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
+ # The JSON template for a 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] unless args[:anchor].nil?
989
+ @author = args[:author] unless args[:author].nil?
990
+ @comment_id = args[:comment_id] unless args[:comment_id].nil?
991
+ @content = args[:content] unless args[:content].nil?
992
+ @context = args[:context] unless args[:context].nil?
993
+ @created_date = args[:created_date] unless args[:created_date].nil?
994
+ @deleted = args[:deleted] unless args[:deleted].nil?
995
+ @file_id = args[:file_id] unless args[:file_id].nil?
996
+ @file_title = args[:file_title] unless args[:file_title].nil?
997
+ @html_content = args[:html_content] unless args[:html_content].nil?
998
+ @kind = args[:kind] unless args[:kind].nil?
999
+ @modified_date = args[:modified_date] unless args[:modified_date].nil?
1000
+ @replies = args[:replies] unless args[:replies].nil?
1001
+ @self_link = args[:self_link] unless args[:self_link].nil?
1002
+ @status = args[:status] unless args[:status].nil?
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] unless args[:type].nil?
1028
+ @value = args[:value] unless args[:value].nil?
1029
+ end
1030
+ end
1031
+ end
1032
+
1033
+ # A JSON representation of 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] unless args[:items].nil?
1069
+ @kind = args[:kind] unless args[:kind].nil?
1070
+ @next_link = args[:next_link] unless args[:next_link].nil?
1071
+ @next_page_token = args[:next_page_token] unless args[:next_page_token].nil?
1072
+ @self_link = args[:self_link] unless args[:self_link].nil?
1073
+ end
1074
+ end
1075
+
1076
+ # A JSON representation of a reply to a comment on a file in Google Drive.
1077
+ class CommentReply
1078
+ include Google::Apis::Core::Hashable
1079
+
1080
+ # The JSON template for a 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] unless args[:author].nil?
1140
+ @content = args[:content] unless args[:content].nil?
1141
+ @created_date = args[:created_date] unless args[:created_date].nil?
1142
+ @deleted = args[:deleted] unless args[:deleted].nil?
1143
+ @html_content = args[:html_content] unless args[:html_content].nil?
1144
+ @kind = args[:kind] unless args[:kind].nil?
1145
+ @modified_date = args[:modified_date] unless args[:modified_date].nil?
1146
+ @reply_id = args[:reply_id] unless args[:reply_id].nil?
1147
+ @verb = args[:verb] unless args[:verb].nil?
1148
+ end
1149
+ end
1150
+
1151
+ # A JSON representation of a list of replies to a comment on a file in Google
1152
+ # Drive.
1153
+ class CommentReplyList
1154
+ include Google::Apis::Core::Hashable
1155
+
1156
+ # List of reply.
1157
+ # Corresponds to the JSON property `items`
1158
+ # @return [Array<Google::Apis::DriveV2::CommentReply>]
1159
+ attr_accessor :items
1160
+
1161
+ # This is always drive#commentReplyList.
1162
+ # Corresponds to the JSON property `kind`
1163
+ # @return [String]
1164
+ attr_accessor :kind
1165
+
1166
+ # A link to the next page of replies.
1167
+ # Corresponds to the JSON property `nextLink`
1168
+ # @return [String]
1169
+ attr_accessor :next_link
1170
+
1171
+ # The token to use to request the next page of results.
1172
+ # Corresponds to the JSON property `nextPageToken`
1173
+ # @return [String]
1174
+ attr_accessor :next_page_token
1175
+
1176
+ # A link back to this list.
1177
+ # Corresponds to the JSON property `selfLink`
1178
+ # @return [String]
1179
+ attr_accessor :self_link
1180
+
1181
+ def initialize(**args)
1182
+ update!(**args)
1183
+ end
1184
+
1185
+ # Update properties of this object
1186
+ def update!(**args)
1187
+ @items = args[:items] unless args[:items].nil?
1188
+ @kind = args[:kind] unless args[:kind].nil?
1189
+ @next_link = args[:next_link] unless args[:next_link].nil?
1190
+ @next_page_token = args[:next_page_token] unless args[:next_page_token].nil?
1191
+ @self_link = args[:self_link] unless args[:self_link].nil?
1192
+ end
1193
+ end
1194
+
1195
+ # The metadata for a file.
1196
+ class File
1197
+ include Google::Apis::Core::Hashable
1198
+
1199
+ # A link for opening the file in a relevant Google editor or viewer.
1200
+ # Corresponds to the JSON property `alternateLink`
1201
+ # @return [String]
1202
+ attr_accessor :alternate_link
1203
+
1204
+ # Whether this file is in the Application Data folder.
1205
+ # Corresponds to the JSON property `appDataContents`
1206
+ # @return [Boolean]
1207
+ attr_accessor :app_data_contents
1208
+ alias_method :app_data_contents?, :app_data_contents
1209
+
1210
+ # Whether the current user can comment on the file.
1211
+ # Corresponds to the JSON property `canComment`
1212
+ # @return [Boolean]
1213
+ attr_accessor :can_comment
1214
+ alias_method :can_comment?, :can_comment
1215
+
1216
+ # Whether the file can be copied by the current user.
1217
+ # Corresponds to the JSON property `copyable`
1218
+ # @return [Boolean]
1219
+ attr_accessor :copyable
1220
+ alias_method :copyable?, :copyable
1221
+
1222
+ # Create time for this file (formatted RFC 3339 timestamp).
1223
+ # Corresponds to the JSON property `createdDate`
1224
+ # @return [DateTime]
1225
+ attr_accessor :created_date
1226
+
1227
+ # A link to open this file with the user's default app for this file. Only
1228
+ # populated when the drive.apps.readonly scope is used.
1229
+ # Corresponds to the JSON property `defaultOpenWithLink`
1230
+ # @return [String]
1231
+ attr_accessor :default_open_with_link
1232
+
1233
+ # A short description of the file.
1234
+ # Corresponds to the JSON property `description`
1235
+ # @return [String]
1236
+ attr_accessor :description
1237
+
1238
+ #
1239
+ # Corresponds to the JSON property `downloadUrl`
1240
+ # @return [String]
1241
+ attr_accessor :download_url
1242
+
1243
+ # Whether the file can be edited by the current user.
1244
+ # Corresponds to the JSON property `editable`
1245
+ # @return [Boolean]
1246
+ attr_accessor :editable
1247
+ alias_method :editable?, :editable
1248
+
1249
+ # A link for embedding the file.
1250
+ # Corresponds to the JSON property `embedLink`
1251
+ # @return [String]
1252
+ attr_accessor :embed_link
1253
+
1254
+ # ETag of the file.
1255
+ # Corresponds to the JSON property `etag`
1256
+ # @return [String]
1257
+ attr_accessor :etag
1258
+
1259
+ # Whether this file has been explicitly trashed, as opposed to recursively
1260
+ # trashed.
1261
+ # Corresponds to the JSON property `explicitlyTrashed`
1262
+ # @return [Boolean]
1263
+ attr_accessor :explicitly_trashed
1264
+ alias_method :explicitly_trashed?, :explicitly_trashed
1265
+
1266
+ # Links for exporting Google Docs to specific formats.
1267
+ # Corresponds to the JSON property `exportLinks`
1268
+ # @return [Hash<String,String>]
1269
+ attr_accessor :export_links
1270
+
1271
+ # The file extension used when downloading this file. This field is read only.
1272
+ # To set the extension, include it in the title when creating the file. This is
1273
+ # only populated for files with content stored in Drive.
1274
+ # Corresponds to the JSON property `fileExtension`
1275
+ # @return [String]
1276
+ attr_accessor :file_extension
1277
+
1278
+ # The size of the file in bytes. This is only populated for files with content
1279
+ # stored in Drive.
1280
+ # Corresponds to the JSON property `fileSize`
1281
+ # @return [String]
1282
+ attr_accessor :file_size
1283
+
1284
+ # Folder color as an RGB hex string if the file is a folder. The list of
1285
+ # supported colors is available in the folderColorPalette field of the About
1286
+ # resource. If an unsupported color is specified, it will be changed to the
1287
+ # closest color in the palette.
1288
+ # Corresponds to the JSON property `folderColorRgb`
1289
+ # @return [String]
1290
+ attr_accessor :folder_color_rgb
1291
+
1292
+ # The ID of the file's head revision. This will only be populated for files with
1293
+ # content stored in Drive.
1294
+ # Corresponds to the JSON property `headRevisionId`
1295
+ # @return [String]
1296
+ attr_accessor :head_revision_id
1297
+
1298
+ # A link to the file's icon.
1299
+ # Corresponds to the JSON property `iconLink`
1300
+ # @return [String]
1301
+ attr_accessor :icon_link
1302
+
1303
+ # The ID of the file.
1304
+ # Corresponds to the JSON property `id`
1305
+ # @return [String]
1306
+ attr_accessor :id
1307
+
1308
+ # Metadata about image media. This will only be present for image types, and its
1309
+ # contents will depend on what can be parsed from the image content.
1310
+ # Corresponds to the JSON property `imageMediaMetadata`
1311
+ # @return [Google::Apis::DriveV2::File::ImageMediaMetadata]
1312
+ attr_accessor :image_media_metadata
1313
+
1314
+ # Indexable text attributes for the file (can only be written)
1315
+ # Corresponds to the JSON property `indexableText`
1316
+ # @return [Google::Apis::DriveV2::File::IndexableText]
1317
+ attr_accessor :indexable_text
1318
+
1319
+ # The type of file. This is always drive#file.
1320
+ # Corresponds to the JSON property `kind`
1321
+ # @return [String]
1322
+ attr_accessor :kind
1323
+
1324
+ # A group of labels for the file.
1325
+ # Corresponds to the JSON property `labels`
1326
+ # @return [Google::Apis::DriveV2::File::Labels]
1327
+ attr_accessor :labels
1328
+
1329
+ # The JSON template for a user.
1330
+ # Corresponds to the JSON property `lastModifyingUser`
1331
+ # @return [Google::Apis::DriveV2::User]
1332
+ attr_accessor :last_modifying_user
1333
+
1334
+ # Name of the last user to modify this file.
1335
+ # Corresponds to the JSON property `lastModifyingUserName`
1336
+ # @return [String]
1337
+ attr_accessor :last_modifying_user_name
1338
+
1339
+ # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
1340
+ # Corresponds to the JSON property `lastViewedByMeDate`
1341
+ # @return [DateTime]
1342
+ attr_accessor :last_viewed_by_me_date
1343
+
1344
+ # Time this file was explicitly marked viewed by the user (formatted RFC 3339
1345
+ # timestamp).
1346
+ # Corresponds to the JSON property `markedViewedByMeDate`
1347
+ # @return [DateTime]
1348
+ attr_accessor :marked_viewed_by_me_date
1349
+
1350
+ # An MD5 checksum for the content of this file. This is populated only for files
1351
+ # with content stored in Drive.
1352
+ # Corresponds to the JSON property `md5Checksum`
1353
+ # @return [String]
1354
+ attr_accessor :md5_checksum
1355
+
1356
+ # The MIME type of the file. This is only mutable on update when uploading new
1357
+ # content. This field can be left blank, and the mimetype will be determined
1358
+ # from the uploaded content's MIME type.
1359
+ # Corresponds to the JSON property `mimeType`
1360
+ # @return [String]
1361
+ attr_accessor :mime_type
1362
+
1363
+ # Last time this file was modified by the user (formatted RFC 3339 timestamp).
1364
+ # Note that setting modifiedDate will also update the modifiedByMe date for the
1365
+ # user which set the date.
1366
+ # Corresponds to the JSON property `modifiedByMeDate`
1367
+ # @return [DateTime]
1368
+ attr_accessor :modified_by_me_date
1369
+
1370
+ # Last time this file was modified by anyone (formatted RFC 3339 timestamp).
1371
+ # This is only mutable on update when the setModifiedDate parameter is set.
1372
+ # Corresponds to the JSON property `modifiedDate`
1373
+ # @return [DateTime]
1374
+ attr_accessor :modified_date
1375
+
1376
+ # A map of the id of each of the user's apps to a link to open this file with
1377
+ # that app. Only populated when the drive.apps.readonly scope is used.
1378
+ # Corresponds to the JSON property `openWithLinks`
1379
+ # @return [Hash<String,String>]
1380
+ attr_accessor :open_with_links
1381
+
1382
+ # The original filename if the file was uploaded manually, or the original title
1383
+ # if the file was inserted through the API. Note that renames of the title will
1384
+ # not change the original filename. This will only be populated on files with
1385
+ # content stored in Drive.
1386
+ # Corresponds to the JSON property `originalFilename`
1387
+ # @return [String]
1388
+ attr_accessor :original_filename
1389
+
1390
+ # Whether the file is owned by the current user.
1391
+ # Corresponds to the JSON property `ownedByMe`
1392
+ # @return [Boolean]
1393
+ attr_accessor :owned_by_me
1394
+ alias_method :owned_by_me?, :owned_by_me
1395
+
1396
+ # Name(s) of the owner(s) of this file.
1397
+ # Corresponds to the JSON property `ownerNames`
1398
+ # @return [Array<String>]
1399
+ attr_accessor :owner_names
1400
+
1401
+ # The owner(s) of this file.
1402
+ # Corresponds to the JSON property `owners`
1403
+ # @return [Array<Google::Apis::DriveV2::User>]
1404
+ attr_accessor :owners
1405
+
1406
+ # Collection of parent folders which contain this file.
1407
+ # Setting this field will put the file in all of the provided folders. On insert,
1408
+ # if no folders are provided, the file will be placed in the default root
1409
+ # folder.
1410
+ # Corresponds to the JSON property `parents`
1411
+ # @return [Array<Google::Apis::DriveV2::ParentReference>]
1412
+ attr_accessor :parents
1413
+
1414
+ # The list of permissions for users with access to this file.
1415
+ # Corresponds to the JSON property `permissions`
1416
+ # @return [Array<Google::Apis::DriveV2::Permission>]
1417
+ attr_accessor :permissions
1418
+
1419
+ # The list of properties.
1420
+ # Corresponds to the JSON property `properties`
1421
+ # @return [Array<Google::Apis::DriveV2::Property>]
1422
+ attr_accessor :properties
1423
+
1424
+ # The number of quota bytes used by this file.
1425
+ # Corresponds to the JSON property `quotaBytesUsed`
1426
+ # @return [String]
1427
+ attr_accessor :quota_bytes_used
1428
+
1429
+ # A link back to this file.
1430
+ # Corresponds to the JSON property `selfLink`
1431
+ # @return [String]
1432
+ attr_accessor :self_link
1433
+
1434
+ # Whether the file's sharing settings can be modified by the current user.
1435
+ # Corresponds to the JSON property `shareable`
1436
+ # @return [Boolean]
1437
+ attr_accessor :shareable
1438
+ alias_method :shareable?, :shareable
1439
+
1440
+ # Whether the file has been shared.
1441
+ # Corresponds to the JSON property `shared`
1442
+ # @return [Boolean]
1443
+ attr_accessor :shared
1444
+ alias_method :shared?, :shared
1445
+
1446
+ # Time at which this file was shared with the user (formatted RFC 3339 timestamp)
1447
+ # .
1448
+ # Corresponds to the JSON property `sharedWithMeDate`
1449
+ # @return [DateTime]
1450
+ attr_accessor :shared_with_me_date
1451
+
1452
+ # The JSON template for a user.
1453
+ # Corresponds to the JSON property `sharingUser`
1454
+ # @return [Google::Apis::DriveV2::User]
1455
+ attr_accessor :sharing_user
1456
+
1457
+ # The list of spaces which contain the file. Supported values are 'drive' and '
1458
+ # appDataFolder'.
1459
+ # Corresponds to the JSON property `spaces`
1460
+ # @return [Array<String>]
1461
+ attr_accessor :spaces
1462
+
1463
+ # Thumbnail for the file. Only accepted on upload and for files that are not
1464
+ # already thumbnailed by Google.
1465
+ # Corresponds to the JSON property `thumbnail`
1466
+ # @return [Google::Apis::DriveV2::File::Thumbnail]
1467
+ attr_accessor :thumbnail
1468
+
1469
+ # A short-lived link to the file's thumbnail. Typically lasts on the order of
1470
+ # hours.
1471
+ # Corresponds to the JSON property `thumbnailLink`
1472
+ # @return [String]
1473
+ attr_accessor :thumbnail_link
1474
+
1475
+ # The title of this file.
1476
+ # Corresponds to the JSON property `title`
1477
+ # @return [String]
1478
+ attr_accessor :title
1479
+
1480
+ # A permission for a file.
1481
+ # Corresponds to the JSON property `userPermission`
1482
+ # @return [Google::Apis::DriveV2::Permission]
1483
+ attr_accessor :user_permission
1484
+
1485
+ # A monotonically increasing version number for the file. This reflects every
1486
+ # change made to the file on the server, even those not visible to the
1487
+ # requesting user.
1488
+ # Corresponds to the JSON property `version`
1489
+ # @return [String]
1490
+ attr_accessor :version
1491
+
1492
+ # Metadata about video media. This will only be present for video types.
1493
+ # Corresponds to the JSON property `videoMediaMetadata`
1494
+ # @return [Google::Apis::DriveV2::File::VideoMediaMetadata]
1495
+ attr_accessor :video_media_metadata
1496
+
1497
+ # A link for downloading the content of the file in a browser using cookie based
1498
+ # authentication. In cases where the content is shared publicly, the content can
1499
+ # be downloaded without any credentials.
1500
+ # Corresponds to the JSON property `webContentLink`
1501
+ # @return [String]
1502
+ attr_accessor :web_content_link
1503
+
1504
+ # A link only available on public folders for viewing their static web assets (
1505
+ # HTML, CSS, JS, etc) via Google Drive's Website Hosting.
1506
+ # Corresponds to the JSON property `webViewLink`
1507
+ # @return [String]
1508
+ attr_accessor :web_view_link
1509
+
1510
+ # Whether writers can share the document with other users.
1511
+ # Corresponds to the JSON property `writersCanShare`
1512
+ # @return [Boolean]
1513
+ attr_accessor :writers_can_share
1514
+ alias_method :writers_can_share?, :writers_can_share
1515
+
1516
+ def initialize(**args)
1517
+ update!(**args)
1518
+ end
1519
+
1520
+ # Update properties of this object
1521
+ def update!(**args)
1522
+ @alternate_link = args[:alternate_link] unless args[:alternate_link].nil?
1523
+ @app_data_contents = args[:app_data_contents] unless args[:app_data_contents].nil?
1524
+ @can_comment = args[:can_comment] unless args[:can_comment].nil?
1525
+ @copyable = args[:copyable] unless args[:copyable].nil?
1526
+ @created_date = args[:created_date] unless args[:created_date].nil?
1527
+ @default_open_with_link = args[:default_open_with_link] unless args[:default_open_with_link].nil?
1528
+ @description = args[:description] unless args[:description].nil?
1529
+ @download_url = args[:download_url] unless args[:download_url].nil?
1530
+ @editable = args[:editable] unless args[:editable].nil?
1531
+ @embed_link = args[:embed_link] unless args[:embed_link].nil?
1532
+ @etag = args[:etag] unless args[:etag].nil?
1533
+ @explicitly_trashed = args[:explicitly_trashed] unless args[:explicitly_trashed].nil?
1534
+ @export_links = args[:export_links] unless args[:export_links].nil?
1535
+ @file_extension = args[:file_extension] unless args[:file_extension].nil?
1536
+ @file_size = args[:file_size] unless args[:file_size].nil?
1537
+ @folder_color_rgb = args[:folder_color_rgb] unless args[:folder_color_rgb].nil?
1538
+ @head_revision_id = args[:head_revision_id] unless args[:head_revision_id].nil?
1539
+ @icon_link = args[:icon_link] unless args[:icon_link].nil?
1540
+ @id = args[:id] unless args[:id].nil?
1541
+ @image_media_metadata = args[:image_media_metadata] unless args[:image_media_metadata].nil?
1542
+ @indexable_text = args[:indexable_text] unless args[:indexable_text].nil?
1543
+ @kind = args[:kind] unless args[:kind].nil?
1544
+ @labels = args[:labels] unless args[:labels].nil?
1545
+ @last_modifying_user = args[:last_modifying_user] unless args[:last_modifying_user].nil?
1546
+ @last_modifying_user_name = args[:last_modifying_user_name] unless args[:last_modifying_user_name].nil?
1547
+ @last_viewed_by_me_date = args[:last_viewed_by_me_date] unless args[:last_viewed_by_me_date].nil?
1548
+ @marked_viewed_by_me_date = args[:marked_viewed_by_me_date] unless args[:marked_viewed_by_me_date].nil?
1549
+ @md5_checksum = args[:md5_checksum] unless args[:md5_checksum].nil?
1550
+ @mime_type = args[:mime_type] unless args[:mime_type].nil?
1551
+ @modified_by_me_date = args[:modified_by_me_date] unless args[:modified_by_me_date].nil?
1552
+ @modified_date = args[:modified_date] unless args[:modified_date].nil?
1553
+ @open_with_links = args[:open_with_links] unless args[:open_with_links].nil?
1554
+ @original_filename = args[:original_filename] unless args[:original_filename].nil?
1555
+ @owned_by_me = args[:owned_by_me] unless args[:owned_by_me].nil?
1556
+ @owner_names = args[:owner_names] unless args[:owner_names].nil?
1557
+ @owners = args[:owners] unless args[:owners].nil?
1558
+ @parents = args[:parents] unless args[:parents].nil?
1559
+ @permissions = args[:permissions] unless args[:permissions].nil?
1560
+ @properties = args[:properties] unless args[:properties].nil?
1561
+ @quota_bytes_used = args[:quota_bytes_used] unless args[:quota_bytes_used].nil?
1562
+ @self_link = args[:self_link] unless args[:self_link].nil?
1563
+ @shareable = args[:shareable] unless args[:shareable].nil?
1564
+ @shared = args[:shared] unless args[:shared].nil?
1565
+ @shared_with_me_date = args[:shared_with_me_date] unless args[:shared_with_me_date].nil?
1566
+ @sharing_user = args[:sharing_user] unless args[:sharing_user].nil?
1567
+ @spaces = args[:spaces] unless args[:spaces].nil?
1568
+ @thumbnail = args[:thumbnail] unless args[:thumbnail].nil?
1569
+ @thumbnail_link = args[:thumbnail_link] unless args[:thumbnail_link].nil?
1570
+ @title = args[:title] unless args[:title].nil?
1571
+ @user_permission = args[:user_permission] unless args[:user_permission].nil?
1572
+ @version = args[:version] unless args[:version].nil?
1573
+ @video_media_metadata = args[:video_media_metadata] unless args[:video_media_metadata].nil?
1574
+ @web_content_link = args[:web_content_link] unless args[:web_content_link].nil?
1575
+ @web_view_link = args[:web_view_link] unless args[:web_view_link].nil?
1576
+ @writers_can_share = args[:writers_can_share] unless args[:writers_can_share].nil?
1577
+ end
1578
+
1579
+ # Metadata about image media. This will only be present for image types, and its
1580
+ # contents will depend on what can be parsed from the image content.
1581
+ class ImageMediaMetadata
1582
+ include Google::Apis::Core::Hashable
1583
+
1584
+ # The aperture used to create the photo (f-number).
1585
+ # Corresponds to the JSON property `aperture`
1586
+ # @return [Float]
1587
+ attr_accessor :aperture
1588
+
1589
+ # The make of the camera used to create the photo.
1590
+ # Corresponds to the JSON property `cameraMake`
1591
+ # @return [String]
1592
+ attr_accessor :camera_make
1593
+
1594
+ # The model of the camera used to create the photo.
1595
+ # Corresponds to the JSON property `cameraModel`
1596
+ # @return [String]
1597
+ attr_accessor :camera_model
1598
+
1599
+ # The color space of the photo.
1600
+ # Corresponds to the JSON property `colorSpace`
1601
+ # @return [String]
1602
+ attr_accessor :color_space
1603
+
1604
+ # The date and time the photo was taken (EXIF format timestamp).
1605
+ # Corresponds to the JSON property `date`
1606
+ # @return [String]
1607
+ attr_accessor :date
1608
+
1609
+ # The exposure bias of the photo (APEX value).
1610
+ # Corresponds to the JSON property `exposureBias`
1611
+ # @return [Float]
1612
+ attr_accessor :exposure_bias
1613
+
1614
+ # The exposure mode used to create the photo.
1615
+ # Corresponds to the JSON property `exposureMode`
1616
+ # @return [String]
1617
+ attr_accessor :exposure_mode
1618
+
1619
+ # The length of the exposure, in seconds.
1620
+ # Corresponds to the JSON property `exposureTime`
1621
+ # @return [Float]
1622
+ attr_accessor :exposure_time
1623
+
1624
+ # Whether a flash was used to create the photo.
1625
+ # Corresponds to the JSON property `flashUsed`
1626
+ # @return [Boolean]
1627
+ attr_accessor :flash_used
1628
+ alias_method :flash_used?, :flash_used
1629
+
1630
+ # The focal length used to create the photo, in millimeters.
1631
+ # Corresponds to the JSON property `focalLength`
1632
+ # @return [Float]
1633
+ attr_accessor :focal_length
1634
+
1635
+ # The height of the image in pixels.
1636
+ # Corresponds to the JSON property `height`
1637
+ # @return [Fixnum]
1638
+ attr_accessor :height
1639
+
1640
+ # The ISO speed used to create the photo.
1641
+ # Corresponds to the JSON property `isoSpeed`
1642
+ # @return [Fixnum]
1643
+ attr_accessor :iso_speed
1644
+
1645
+ # The lens used to create the photo.
1646
+ # Corresponds to the JSON property `lens`
1647
+ # @return [String]
1648
+ attr_accessor :lens
1649
+
1650
+ # Geographic location information stored in the image.
1651
+ # Corresponds to the JSON property `location`
1652
+ # @return [Google::Apis::DriveV2::File::ImageMediaMetadata::Location]
1653
+ attr_accessor :location
1654
+
1655
+ # The smallest f-number of the lens at the focal length used to create the photo
1656
+ # (APEX value).
1657
+ # Corresponds to the JSON property `maxApertureValue`
1658
+ # @return [Float]
1659
+ attr_accessor :max_aperture_value
1660
+
1661
+ # The metering mode used to create the photo.
1662
+ # Corresponds to the JSON property `meteringMode`
1663
+ # @return [String]
1664
+ attr_accessor :metering_mode
1665
+
1666
+ # The rotation in clockwise degrees from the image's original orientation.
1667
+ # Corresponds to the JSON property `rotation`
1668
+ # @return [Fixnum]
1669
+ attr_accessor :rotation
1670
+
1671
+ # The type of sensor used to create the photo.
1672
+ # Corresponds to the JSON property `sensor`
1673
+ # @return [String]
1674
+ attr_accessor :sensor
1675
+
1676
+ # The distance to the subject of the photo, in meters.
1677
+ # Corresponds to the JSON property `subjectDistance`
1678
+ # @return [Fixnum]
1679
+ attr_accessor :subject_distance
1680
+
1681
+ # The white balance mode used to create the photo.
1682
+ # Corresponds to the JSON property `whiteBalance`
1683
+ # @return [String]
1684
+ attr_accessor :white_balance
1685
+
1686
+ # The width of the image in pixels.
1687
+ # Corresponds to the JSON property `width`
1688
+ # @return [Fixnum]
1689
+ attr_accessor :width
1690
+
1691
+ def initialize(**args)
1692
+ update!(**args)
1693
+ end
1694
+
1695
+ # Update properties of this object
1696
+ def update!(**args)
1697
+ @aperture = args[:aperture] unless args[:aperture].nil?
1698
+ @camera_make = args[:camera_make] unless args[:camera_make].nil?
1699
+ @camera_model = args[:camera_model] unless args[:camera_model].nil?
1700
+ @color_space = args[:color_space] unless args[:color_space].nil?
1701
+ @date = args[:date] unless args[:date].nil?
1702
+ @exposure_bias = args[:exposure_bias] unless args[:exposure_bias].nil?
1703
+ @exposure_mode = args[:exposure_mode] unless args[:exposure_mode].nil?
1704
+ @exposure_time = args[:exposure_time] unless args[:exposure_time].nil?
1705
+ @flash_used = args[:flash_used] unless args[:flash_used].nil?
1706
+ @focal_length = args[:focal_length] unless args[:focal_length].nil?
1707
+ @height = args[:height] unless args[:height].nil?
1708
+ @iso_speed = args[:iso_speed] unless args[:iso_speed].nil?
1709
+ @lens = args[:lens] unless args[:lens].nil?
1710
+ @location = args[:location] unless args[:location].nil?
1711
+ @max_aperture_value = args[:max_aperture_value] unless args[:max_aperture_value].nil?
1712
+ @metering_mode = args[:metering_mode] unless args[:metering_mode].nil?
1713
+ @rotation = args[:rotation] unless args[:rotation].nil?
1714
+ @sensor = args[:sensor] unless args[:sensor].nil?
1715
+ @subject_distance = args[:subject_distance] unless args[:subject_distance].nil?
1716
+ @white_balance = args[:white_balance] unless args[:white_balance].nil?
1717
+ @width = args[:width] unless args[:width].nil?
1718
+ end
1719
+
1720
+ # Geographic location information stored in the image.
1721
+ class Location
1722
+ include Google::Apis::Core::Hashable
1723
+
1724
+ # The altitude stored in the image.
1725
+ # Corresponds to the JSON property `altitude`
1726
+ # @return [Float]
1727
+ attr_accessor :altitude
1728
+
1729
+ # The latitude stored in the image.
1730
+ # Corresponds to the JSON property `latitude`
1731
+ # @return [Float]
1732
+ attr_accessor :latitude
1733
+
1734
+ # The longitude stored in the image.
1735
+ # Corresponds to the JSON property `longitude`
1736
+ # @return [Float]
1737
+ attr_accessor :longitude
1738
+
1739
+ def initialize(**args)
1740
+ update!(**args)
1741
+ end
1742
+
1743
+ # Update properties of this object
1744
+ def update!(**args)
1745
+ @altitude = args[:altitude] unless args[:altitude].nil?
1746
+ @latitude = args[:latitude] unless args[:latitude].nil?
1747
+ @longitude = args[:longitude] unless args[:longitude].nil?
1748
+ end
1749
+ end
1750
+ end
1751
+
1752
+ # Indexable text attributes for the file (can only be written)
1753
+ class IndexableText
1754
+ include Google::Apis::Core::Hashable
1755
+
1756
+ # The text to be indexed for this file.
1757
+ # Corresponds to the JSON property `text`
1758
+ # @return [String]
1759
+ attr_accessor :text
1760
+
1761
+ def initialize(**args)
1762
+ update!(**args)
1763
+ end
1764
+
1765
+ # Update properties of this object
1766
+ def update!(**args)
1767
+ @text = args[:text] unless args[:text].nil?
1768
+ end
1769
+ end
1770
+
1771
+ # A group of labels for the file.
1772
+ class Labels
1773
+ include Google::Apis::Core::Hashable
1774
+
1775
+ # Deprecated.
1776
+ # Corresponds to the JSON property `hidden`
1777
+ # @return [Boolean]
1778
+ attr_accessor :hidden
1779
+ alias_method :hidden?, :hidden
1780
+
1781
+ # Whether viewers are prevented from downloading this file.
1782
+ # Corresponds to the JSON property `restricted`
1783
+ # @return [Boolean]
1784
+ attr_accessor :restricted
1785
+ alias_method :restricted?, :restricted
1786
+
1787
+ # Whether this file is starred by the user.
1788
+ # Corresponds to the JSON property `starred`
1789
+ # @return [Boolean]
1790
+ attr_accessor :starred
1791
+ alias_method :starred?, :starred
1792
+
1793
+ # Whether this file has been trashed. This label applies to all users accessing
1794
+ # the file; however, only owners are allowed to see and untrash files.
1795
+ # Corresponds to the JSON property `trashed`
1796
+ # @return [Boolean]
1797
+ attr_accessor :trashed
1798
+ alias_method :trashed?, :trashed
1799
+
1800
+ # Whether this file has been viewed by this user.
1801
+ # Corresponds to the JSON property `viewed`
1802
+ # @return [Boolean]
1803
+ attr_accessor :viewed
1804
+ alias_method :viewed?, :viewed
1805
+
1806
+ def initialize(**args)
1807
+ update!(**args)
1808
+ end
1809
+
1810
+ # Update properties of this object
1811
+ def update!(**args)
1812
+ @hidden = args[:hidden] unless args[:hidden].nil?
1813
+ @restricted = args[:restricted] unless args[:restricted].nil?
1814
+ @starred = args[:starred] unless args[:starred].nil?
1815
+ @trashed = args[:trashed] unless args[:trashed].nil?
1816
+ @viewed = args[:viewed] unless args[:viewed].nil?
1817
+ end
1818
+ end
1819
+
1820
+ # Thumbnail for the file. Only accepted on upload and for files that are not
1821
+ # already thumbnailed by Google.
1822
+ class Thumbnail
1823
+ include Google::Apis::Core::Hashable
1824
+
1825
+ # The URL-safe Base64 encoded bytes of the thumbnail image. It should conform to
1826
+ # RFC 4648 section 5.
1827
+ # Corresponds to the JSON property `image`
1828
+ # @return [String]
1829
+ attr_accessor :image
1830
+
1831
+ # The MIME type of the thumbnail.
1832
+ # Corresponds to the JSON property `mimeType`
1833
+ # @return [String]
1834
+ attr_accessor :mime_type
1835
+
1836
+ def initialize(**args)
1837
+ update!(**args)
1838
+ end
1839
+
1840
+ # Update properties of this object
1841
+ def update!(**args)
1842
+ @image = args[:image] unless args[:image].nil?
1843
+ @mime_type = args[:mime_type] unless args[:mime_type].nil?
1844
+ end
1845
+ end
1846
+
1847
+ # Metadata about video media. This will only be present for video types.
1848
+ class VideoMediaMetadata
1849
+ include Google::Apis::Core::Hashable
1850
+
1851
+ # The duration of the video in milliseconds.
1852
+ # Corresponds to the JSON property `durationMillis`
1853
+ # @return [String]
1854
+ attr_accessor :duration_millis
1855
+
1856
+ # The height of the video in pixels.
1857
+ # Corresponds to the JSON property `height`
1858
+ # @return [Fixnum]
1859
+ attr_accessor :height
1860
+
1861
+ # The width of the video in pixels.
1862
+ # Corresponds to the JSON property `width`
1863
+ # @return [Fixnum]
1864
+ attr_accessor :width
1865
+
1866
+ def initialize(**args)
1867
+ update!(**args)
1868
+ end
1869
+
1870
+ # Update properties of this object
1871
+ def update!(**args)
1872
+ @duration_millis = args[:duration_millis] unless args[:duration_millis].nil?
1873
+ @height = args[:height] unless args[:height].nil?
1874
+ @width = args[:width] unless args[:width].nil?
1875
+ end
1876
+ end
1877
+ end
1878
+
1879
+ # A list of files.
1880
+ class FileList
1881
+ include Google::Apis::Core::Hashable
1882
+
1883
+ # The ETag of the list.
1884
+ # Corresponds to the JSON property `etag`
1885
+ # @return [String]
1886
+ attr_accessor :etag
1887
+
1888
+ # The actual list of files.
1889
+ # Corresponds to the JSON property `items`
1890
+ # @return [Array<Google::Apis::DriveV2::File>]
1891
+ attr_accessor :items
1892
+
1893
+ # This is always drive#fileList.
1894
+ # Corresponds to the JSON property `kind`
1895
+ # @return [String]
1896
+ attr_accessor :kind
1897
+
1898
+ # A link to the next page of files.
1899
+ # Corresponds to the JSON property `nextLink`
1900
+ # @return [String]
1901
+ attr_accessor :next_link
1902
+
1903
+ # The page token for the next page of files.
1904
+ # Corresponds to the JSON property `nextPageToken`
1905
+ # @return [String]
1906
+ attr_accessor :next_page_token
1907
+
1908
+ # A link back to this list.
1909
+ # Corresponds to the JSON property `selfLink`
1910
+ # @return [String]
1911
+ attr_accessor :self_link
1912
+
1913
+ def initialize(**args)
1914
+ update!(**args)
1915
+ end
1916
+
1917
+ # Update properties of this object
1918
+ def update!(**args)
1919
+ @etag = args[:etag] unless args[:etag].nil?
1920
+ @items = args[:items] unless args[:items].nil?
1921
+ @kind = args[:kind] unless args[:kind].nil?
1922
+ @next_link = args[:next_link] unless args[:next_link].nil?
1923
+ @next_page_token = args[:next_page_token] unless args[:next_page_token].nil?
1924
+ @self_link = args[:self_link] unless args[:self_link].nil?
1925
+ end
1926
+ end
1927
+
1928
+ # A list of a file's parents.
1929
+ class ParentList
1930
+ include Google::Apis::Core::Hashable
1931
+
1932
+ # The ETag of the list.
1933
+ # Corresponds to the JSON property `etag`
1934
+ # @return [String]
1935
+ attr_accessor :etag
1936
+
1937
+ # The actual list of parents.
1938
+ # Corresponds to the JSON property `items`
1939
+ # @return [Array<Google::Apis::DriveV2::ParentReference>]
1940
+ attr_accessor :items
1941
+
1942
+ # This is always drive#parentList.
1943
+ # Corresponds to the JSON property `kind`
1944
+ # @return [String]
1945
+ attr_accessor :kind
1946
+
1947
+ # A link back to this list.
1948
+ # Corresponds to the JSON property `selfLink`
1949
+ # @return [String]
1950
+ attr_accessor :self_link
1951
+
1952
+ def initialize(**args)
1953
+ update!(**args)
1954
+ end
1955
+
1956
+ # Update properties of this object
1957
+ def update!(**args)
1958
+ @etag = args[:etag] unless args[:etag].nil?
1959
+ @items = args[:items] unless args[:items].nil?
1960
+ @kind = args[:kind] unless args[:kind].nil?
1961
+ @self_link = args[:self_link] unless args[:self_link].nil?
1962
+ end
1963
+ end
1964
+
1965
+ # A reference to a file's parent.
1966
+ class ParentReference
1967
+ include Google::Apis::Core::Hashable
1968
+
1969
+ # The ID of the parent.
1970
+ # Corresponds to the JSON property `id`
1971
+ # @return [String]
1972
+ attr_accessor :id
1973
+
1974
+ # Whether or not the parent is the root folder.
1975
+ # Corresponds to the JSON property `isRoot`
1976
+ # @return [Boolean]
1977
+ attr_accessor :is_root
1978
+ alias_method :is_root?, :is_root
1979
+
1980
+ # This is always drive#parentReference.
1981
+ # Corresponds to the JSON property `kind`
1982
+ # @return [String]
1983
+ attr_accessor :kind
1984
+
1985
+ # A link to the parent.
1986
+ # Corresponds to the JSON property `parentLink`
1987
+ # @return [String]
1988
+ attr_accessor :parent_link
1989
+
1990
+ # A link back to this reference.
1991
+ # Corresponds to the JSON property `selfLink`
1992
+ # @return [String]
1993
+ attr_accessor :self_link
1994
+
1995
+ def initialize(**args)
1996
+ update!(**args)
1997
+ end
1998
+
1999
+ # Update properties of this object
2000
+ def update!(**args)
2001
+ @id = args[:id] unless args[:id].nil?
2002
+ @is_root = args[:is_root] unless args[:is_root].nil?
2003
+ @kind = args[:kind] unless args[:kind].nil?
2004
+ @parent_link = args[:parent_link] unless args[:parent_link].nil?
2005
+ @self_link = args[:self_link] unless args[:self_link].nil?
2006
+ end
2007
+ end
2008
+
2009
+ # A permission for a file.
2010
+ class Permission
2011
+ include Google::Apis::Core::Hashable
2012
+
2013
+ # Additional roles for this user. Only commenter is currently allowed.
2014
+ # Corresponds to the JSON property `additionalRoles`
2015
+ # @return [Array<String>]
2016
+ attr_accessor :additional_roles
2017
+
2018
+ # The authkey parameter required for this permission.
2019
+ # Corresponds to the JSON property `authKey`
2020
+ # @return [String]
2021
+ attr_accessor :auth_key
2022
+
2023
+ # The domain name of the entity this permission refers to. This is an output-
2024
+ # only field which is present when the permission type is user, group or domain.
2025
+ # Corresponds to the JSON property `domain`
2026
+ # @return [String]
2027
+ attr_accessor :domain
2028
+
2029
+ # The email address of the user or group this permission refers to. This is an
2030
+ # output-only field which is present when the permission type is user or group.
2031
+ # Corresponds to the JSON property `emailAddress`
2032
+ # @return [String]
2033
+ attr_accessor :email_address
2034
+
2035
+ # The ETag of the permission.
2036
+ # Corresponds to the JSON property `etag`
2037
+ # @return [String]
2038
+ attr_accessor :etag
2039
+
2040
+ # The ID of the user this permission refers to, and identical to the
2041
+ # permissionId in the About and Files resources. When making a drive.permissions.
2042
+ # insert request, exactly one of the id or value fields must be specified.
2043
+ # Corresponds to the JSON property `id`
2044
+ # @return [String]
2045
+ attr_accessor :id
2046
+
2047
+ # This is always drive#permission.
2048
+ # Corresponds to the JSON property `kind`
2049
+ # @return [String]
2050
+ attr_accessor :kind
2051
+
2052
+ # The name for this permission.
2053
+ # Corresponds to the JSON property `name`
2054
+ # @return [String]
2055
+ attr_accessor :name
2056
+
2057
+ # A link to the profile photo, if available.
2058
+ # Corresponds to the JSON property `photoLink`
2059
+ # @return [String]
2060
+ attr_accessor :photo_link
2061
+
2062
+ # The primary role for this user. Allowed values are:
2063
+ # - owner
2064
+ # - reader
2065
+ # - writer
2066
+ # Corresponds to the JSON property `role`
2067
+ # @return [String]
2068
+ attr_accessor :role
2069
+
2070
+ # A link back to this permission.
2071
+ # Corresponds to the JSON property `selfLink`
2072
+ # @return [String]
2073
+ attr_accessor :self_link
2074
+
2075
+ # The account type. Allowed values are:
2076
+ # - user
2077
+ # - group
2078
+ # - domain
2079
+ # - anyone
2080
+ # Corresponds to the JSON property `type`
2081
+ # @return [String]
2082
+ attr_accessor :type
2083
+
2084
+ # The email address or domain name for the entity. This is used during inserts
2085
+ # and is not populated in responses. When making a drive.permissions.insert
2086
+ # request, exactly one of the id or value fields must be specified.
2087
+ # Corresponds to the JSON property `value`
2088
+ # @return [String]
2089
+ attr_accessor :value
2090
+
2091
+ # Whether the link is required for this permission.
2092
+ # Corresponds to the JSON property `withLink`
2093
+ # @return [Boolean]
2094
+ attr_accessor :with_link
2095
+ alias_method :with_link?, :with_link
2096
+
2097
+ def initialize(**args)
2098
+ update!(**args)
2099
+ end
2100
+
2101
+ # Update properties of this object
2102
+ def update!(**args)
2103
+ @additional_roles = args[:additional_roles] unless args[:additional_roles].nil?
2104
+ @auth_key = args[:auth_key] unless args[:auth_key].nil?
2105
+ @domain = args[:domain] unless args[:domain].nil?
2106
+ @email_address = args[:email_address] unless args[:email_address].nil?
2107
+ @etag = args[:etag] unless args[:etag].nil?
2108
+ @id = args[:id] unless args[:id].nil?
2109
+ @kind = args[:kind] unless args[:kind].nil?
2110
+ @name = args[:name] unless args[:name].nil?
2111
+ @photo_link = args[:photo_link] unless args[:photo_link].nil?
2112
+ @role = args[:role] unless args[:role].nil?
2113
+ @self_link = args[:self_link] unless args[:self_link].nil?
2114
+ @type = args[:type] unless args[:type].nil?
2115
+ @value = args[:value] unless args[:value].nil?
2116
+ @with_link = args[:with_link] unless args[:with_link].nil?
2117
+ end
2118
+ end
2119
+
2120
+ # An ID for a user or group as seen in Permission items.
2121
+ class PermissionId
2122
+ include Google::Apis::Core::Hashable
2123
+
2124
+ # The permission ID.
2125
+ # Corresponds to the JSON property `id`
2126
+ # @return [String]
2127
+ attr_accessor :id
2128
+
2129
+ # This is always drive#permissionId.
2130
+ # Corresponds to the JSON property `kind`
2131
+ # @return [String]
2132
+ attr_accessor :kind
2133
+
2134
+ def initialize(**args)
2135
+ update!(**args)
2136
+ end
2137
+
2138
+ # Update properties of this object
2139
+ def update!(**args)
2140
+ @id = args[:id] unless args[:id].nil?
2141
+ @kind = args[:kind] unless args[:kind].nil?
2142
+ end
2143
+ end
2144
+
2145
+ # A list of permissions associated with a file.
2146
+ class PermissionList
2147
+ include Google::Apis::Core::Hashable
2148
+
2149
+ # The ETag of the list.
2150
+ # Corresponds to the JSON property `etag`
2151
+ # @return [String]
2152
+ attr_accessor :etag
2153
+
2154
+ # The actual list of permissions.
2155
+ # Corresponds to the JSON property `items`
2156
+ # @return [Array<Google::Apis::DriveV2::Permission>]
2157
+ attr_accessor :items
2158
+
2159
+ # This is always drive#permissionList.
2160
+ # Corresponds to the JSON property `kind`
2161
+ # @return [String]
2162
+ attr_accessor :kind
2163
+
2164
+ # A link back to this list.
2165
+ # Corresponds to the JSON property `selfLink`
2166
+ # @return [String]
2167
+ attr_accessor :self_link
2168
+
2169
+ def initialize(**args)
2170
+ update!(**args)
2171
+ end
2172
+
2173
+ # Update properties of this object
2174
+ def update!(**args)
2175
+ @etag = args[:etag] unless args[:etag].nil?
2176
+ @items = args[:items] unless args[:items].nil?
2177
+ @kind = args[:kind] unless args[:kind].nil?
2178
+ @self_link = args[:self_link] unless args[:self_link].nil?
2179
+ end
2180
+ end
2181
+
2182
+ # A key-value pair attached to a file that is either public or private to an
2183
+ # application.
2184
+ # The following limits apply to file properties:
2185
+ # - Maximum of 100 properties total per file
2186
+ # - Maximum of 30 private properties per app
2187
+ # - Maximum of 30 public properties
2188
+ # - Maximum of 124 bytes size limit on (key + value) string in UTF-8 encoding
2189
+ # for a single property.
2190
+ class Property
2191
+ include Google::Apis::Core::Hashable
2192
+
2193
+ # ETag of the property.
2194
+ # Corresponds to the JSON property `etag`
2195
+ # @return [String]
2196
+ attr_accessor :etag
2197
+
2198
+ # The key of this property.
2199
+ # Corresponds to the JSON property `key`
2200
+ # @return [String]
2201
+ attr_accessor :key
2202
+
2203
+ # This is always drive#property.
2204
+ # Corresponds to the JSON property `kind`
2205
+ # @return [String]
2206
+ attr_accessor :kind
2207
+
2208
+ # The link back to this property.
2209
+ # Corresponds to the JSON property `selfLink`
2210
+ # @return [String]
2211
+ attr_accessor :self_link
2212
+
2213
+ # The value of this property.
2214
+ # Corresponds to the JSON property `value`
2215
+ # @return [String]
2216
+ attr_accessor :value
2217
+
2218
+ # The visibility of this property.
2219
+ # Corresponds to the JSON property `visibility`
2220
+ # @return [String]
2221
+ attr_accessor :visibility
2222
+
2223
+ def initialize(**args)
2224
+ update!(**args)
2225
+ end
2226
+
2227
+ # Update properties of this object
2228
+ def update!(**args)
2229
+ @etag = args[:etag] unless args[:etag].nil?
2230
+ @key = args[:key] unless args[:key].nil?
2231
+ @kind = args[:kind] unless args[:kind].nil?
2232
+ @self_link = args[:self_link] unless args[:self_link].nil?
2233
+ @value = args[:value] unless args[:value].nil?
2234
+ @visibility = args[:visibility] unless args[:visibility].nil?
2235
+ end
2236
+ end
2237
+
2238
+ # A collection of properties, key-value pairs that are either public or private
2239
+ # to an application.
2240
+ class PropertyList
2241
+ include Google::Apis::Core::Hashable
2242
+
2243
+ # The ETag of the list.
2244
+ # Corresponds to the JSON property `etag`
2245
+ # @return [String]
2246
+ attr_accessor :etag
2247
+
2248
+ # The list of properties.
2249
+ # Corresponds to the JSON property `items`
2250
+ # @return [Array<Google::Apis::DriveV2::Property>]
2251
+ attr_accessor :items
2252
+
2253
+ # This is always drive#propertyList.
2254
+ # Corresponds to the JSON property `kind`
2255
+ # @return [String]
2256
+ attr_accessor :kind
2257
+
2258
+ # The link back to this list.
2259
+ # Corresponds to the JSON property `selfLink`
2260
+ # @return [String]
2261
+ attr_accessor :self_link
2262
+
2263
+ def initialize(**args)
2264
+ update!(**args)
2265
+ end
2266
+
2267
+ # Update properties of this object
2268
+ def update!(**args)
2269
+ @etag = args[:etag] unless args[:etag].nil?
2270
+ @items = args[:items] unless args[:items].nil?
2271
+ @kind = args[:kind] unless args[:kind].nil?
2272
+ @self_link = args[:self_link] unless args[:self_link].nil?
2273
+ end
2274
+ end
2275
+
2276
+ # A revision of a file.
2277
+ class Revision
2278
+ include Google::Apis::Core::Hashable
2279
+
2280
+ # Short term download URL for the file. This will only be populated on files
2281
+ # with content stored in Drive.
2282
+ # Corresponds to the JSON property `downloadUrl`
2283
+ # @return [String]
2284
+ attr_accessor :download_url
2285
+
2286
+ # The ETag of the revision.
2287
+ # Corresponds to the JSON property `etag`
2288
+ # @return [String]
2289
+ attr_accessor :etag
2290
+
2291
+ # Links for exporting Google Docs to specific formats.
2292
+ # Corresponds to the JSON property `exportLinks`
2293
+ # @return [Hash<String,String>]
2294
+ attr_accessor :export_links
2295
+
2296
+ # The size of the revision in bytes. This will only be populated on files with
2297
+ # content stored in Drive.
2298
+ # Corresponds to the JSON property `fileSize`
2299
+ # @return [String]
2300
+ attr_accessor :file_size
2301
+
2302
+ # The ID of the revision.
2303
+ # Corresponds to the JSON property `id`
2304
+ # @return [String]
2305
+ attr_accessor :id
2306
+
2307
+ # This is always drive#revision.
2308
+ # Corresponds to the JSON property `kind`
2309
+ # @return [String]
2310
+ attr_accessor :kind
2311
+
2312
+ # The JSON template for a user.
2313
+ # Corresponds to the JSON property `lastModifyingUser`
2314
+ # @return [Google::Apis::DriveV2::User]
2315
+ attr_accessor :last_modifying_user
2316
+
2317
+ # Name of the last user to modify this revision.
2318
+ # Corresponds to the JSON property `lastModifyingUserName`
2319
+ # @return [String]
2320
+ attr_accessor :last_modifying_user_name
2321
+
2322
+ # An MD5 checksum for the content of this revision. This will only be populated
2323
+ # on files with content stored in Drive.
2324
+ # Corresponds to the JSON property `md5Checksum`
2325
+ # @return [String]
2326
+ attr_accessor :md5_checksum
2327
+
2328
+ # The MIME type of the revision.
2329
+ # Corresponds to the JSON property `mimeType`
2330
+ # @return [String]
2331
+ attr_accessor :mime_type
2332
+
2333
+ # Last time this revision was modified (formatted RFC 3339 timestamp).
2334
+ # Corresponds to the JSON property `modifiedDate`
2335
+ # @return [DateTime]
2336
+ attr_accessor :modified_date
2337
+
2338
+ # The original filename when this revision was created. This will only be
2339
+ # populated on files with content stored in Drive.
2340
+ # Corresponds to the JSON property `originalFilename`
2341
+ # @return [String]
2342
+ attr_accessor :original_filename
2343
+
2344
+ # Whether this revision is pinned to prevent automatic purging. This will only
2345
+ # be populated and can only be modified on files with content stored in Drive
2346
+ # which are not Google Docs. Revisions can also be pinned when they are created
2347
+ # through the drive.files.insert/update/copy by using the pinned query parameter.
2348
+ # Corresponds to the JSON property `pinned`
2349
+ # @return [Boolean]
2350
+ attr_accessor :pinned
2351
+ alias_method :pinned?, :pinned
2352
+
2353
+ # Whether subsequent revisions will be automatically republished. This is only
2354
+ # populated and can only be modified for Google Docs.
2355
+ # Corresponds to the JSON property `publishAuto`
2356
+ # @return [Boolean]
2357
+ attr_accessor :publish_auto
2358
+ alias_method :publish_auto?, :publish_auto
2359
+
2360
+ # Whether this revision is published. This is only populated and can only be
2361
+ # modified for Google Docs.
2362
+ # Corresponds to the JSON property `published`
2363
+ # @return [Boolean]
2364
+ attr_accessor :published
2365
+ alias_method :published?, :published
2366
+
2367
+ # A link to the published revision.
2368
+ # Corresponds to the JSON property `publishedLink`
2369
+ # @return [String]
2370
+ attr_accessor :published_link
2371
+
2372
+ # Whether this revision is published outside the domain. This is only populated
2373
+ # and can only be modified for Google Docs.
2374
+ # Corresponds to the JSON property `publishedOutsideDomain`
2375
+ # @return [Boolean]
2376
+ attr_accessor :published_outside_domain
2377
+ alias_method :published_outside_domain?, :published_outside_domain
2378
+
2379
+ # A link back to this revision.
2380
+ # Corresponds to the JSON property `selfLink`
2381
+ # @return [String]
2382
+ attr_accessor :self_link
2383
+
2384
+ def initialize(**args)
2385
+ update!(**args)
2386
+ end
2387
+
2388
+ # Update properties of this object
2389
+ def update!(**args)
2390
+ @download_url = args[:download_url] unless args[:download_url].nil?
2391
+ @etag = args[:etag] unless args[:etag].nil?
2392
+ @export_links = args[:export_links] unless args[:export_links].nil?
2393
+ @file_size = args[:file_size] unless args[:file_size].nil?
2394
+ @id = args[:id] unless args[:id].nil?
2395
+ @kind = args[:kind] unless args[:kind].nil?
2396
+ @last_modifying_user = args[:last_modifying_user] unless args[:last_modifying_user].nil?
2397
+ @last_modifying_user_name = args[:last_modifying_user_name] unless args[:last_modifying_user_name].nil?
2398
+ @md5_checksum = args[:md5_checksum] unless args[:md5_checksum].nil?
2399
+ @mime_type = args[:mime_type] unless args[:mime_type].nil?
2400
+ @modified_date = args[:modified_date] unless args[:modified_date].nil?
2401
+ @original_filename = args[:original_filename] unless args[:original_filename].nil?
2402
+ @pinned = args[:pinned] unless args[:pinned].nil?
2403
+ @publish_auto = args[:publish_auto] unless args[:publish_auto].nil?
2404
+ @published = args[:published] unless args[:published].nil?
2405
+ @published_link = args[:published_link] unless args[:published_link].nil?
2406
+ @published_outside_domain = args[:published_outside_domain] unless args[:published_outside_domain].nil?
2407
+ @self_link = args[:self_link] unless args[:self_link].nil?
2408
+ end
2409
+ end
2410
+
2411
+ # A list of revisions of a file.
2412
+ class RevisionList
2413
+ include Google::Apis::Core::Hashable
2414
+
2415
+ # The ETag of the list.
2416
+ # Corresponds to the JSON property `etag`
2417
+ # @return [String]
2418
+ attr_accessor :etag
2419
+
2420
+ # The actual list of revisions.
2421
+ # Corresponds to the JSON property `items`
2422
+ # @return [Array<Google::Apis::DriveV2::Revision>]
2423
+ attr_accessor :items
2424
+
2425
+ # This is always drive#revisionList.
2426
+ # Corresponds to the JSON property `kind`
2427
+ # @return [String]
2428
+ attr_accessor :kind
2429
+
2430
+ # A link back to this list.
2431
+ # Corresponds to the JSON property `selfLink`
2432
+ # @return [String]
2433
+ attr_accessor :self_link
2434
+
2435
+ def initialize(**args)
2436
+ update!(**args)
2437
+ end
2438
+
2439
+ # Update properties of this object
2440
+ def update!(**args)
2441
+ @etag = args[:etag] unless args[:etag].nil?
2442
+ @items = args[:items] unless args[:items].nil?
2443
+ @kind = args[:kind] unless args[:kind].nil?
2444
+ @self_link = args[:self_link] unless args[:self_link].nil?
2445
+ end
2446
+ end
2447
+
2448
+ # The JSON template for a user.
2449
+ class User
2450
+ include Google::Apis::Core::Hashable
2451
+
2452
+ # A plain text displayable name for this user.
2453
+ # Corresponds to the JSON property `displayName`
2454
+ # @return [String]
2455
+ attr_accessor :display_name
2456
+
2457
+ # The email address of the user.
2458
+ # Corresponds to the JSON property `emailAddress`
2459
+ # @return [String]
2460
+ attr_accessor :email_address
2461
+
2462
+ # Whether this user is the same as the authenticated user for whom the request
2463
+ # was made.
2464
+ # Corresponds to the JSON property `isAuthenticatedUser`
2465
+ # @return [Boolean]
2466
+ attr_accessor :is_authenticated_user
2467
+ alias_method :is_authenticated_user?, :is_authenticated_user
2468
+
2469
+ # This is always drive#user.
2470
+ # Corresponds to the JSON property `kind`
2471
+ # @return [String]
2472
+ attr_accessor :kind
2473
+
2474
+ # The user's ID as visible in the permissions collection.
2475
+ # Corresponds to the JSON property `permissionId`
2476
+ # @return [String]
2477
+ attr_accessor :permission_id
2478
+
2479
+ # The user's profile picture.
2480
+ # Corresponds to the JSON property `picture`
2481
+ # @return [Google::Apis::DriveV2::User::Picture]
2482
+ attr_accessor :picture
2483
+
2484
+ def initialize(**args)
2485
+ update!(**args)
2486
+ end
2487
+
2488
+ # Update properties of this object
2489
+ def update!(**args)
2490
+ @display_name = args[:display_name] unless args[:display_name].nil?
2491
+ @email_address = args[:email_address] unless args[:email_address].nil?
2492
+ @is_authenticated_user = args[:is_authenticated_user] unless args[:is_authenticated_user].nil?
2493
+ @kind = args[:kind] unless args[:kind].nil?
2494
+ @permission_id = args[:permission_id] unless args[:permission_id].nil?
2495
+ @picture = args[:picture] unless args[:picture].nil?
2496
+ end
2497
+
2498
+ # The user's profile picture.
2499
+ class Picture
2500
+ include Google::Apis::Core::Hashable
2501
+
2502
+ # A URL that points to a profile picture of this user.
2503
+ # Corresponds to the JSON property `url`
2504
+ # @return [String]
2505
+ attr_accessor :url
2506
+
2507
+ def initialize(**args)
2508
+ update!(**args)
2509
+ end
2510
+
2511
+ # Update properties of this object
2512
+ def update!(**args)
2513
+ @url = args[:url] unless args[:url].nil?
2514
+ end
2515
+ end
2516
+ end
2517
+ end
2518
+ end
2519
+ end