google-api-client 0.8.7 → 0.9.pre1

Sign up to get free protection for your applications and to get access to all the features.
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