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,34 @@
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/books_v1/service.rb'
16
+ require 'google/apis/books_v1/classes.rb'
17
+ require 'google/apis/books_v1/representations.rb'
18
+
19
+ module Google
20
+ module Apis
21
+ # Books API
22
+ #
23
+ # Lets you search for books and manage your Google Books library.
24
+ #
25
+ # @see https://developers.google.com/books/docs/v1/getting_started
26
+ module BooksV1
27
+ VERSION = 'V1'
28
+ REVISION = '20150318'
29
+
30
+ # Manage your books
31
+ AUTH_BOOKS = 'https://www.googleapis.com/auth/books'
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,3515 @@
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 BooksV1
24
+
25
+ #
26
+ class Annotation
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Anchor text after excerpt. For requests, if the user bookmarked a screen that
30
+ # has no flowing text on it, then this field should be empty.
31
+ # Corresponds to the JSON property `afterSelectedText`
32
+ # @return [String]
33
+ attr_accessor :after_selected_text
34
+
35
+ # Anchor text before excerpt. For requests, if the user bookmarked a screen that
36
+ # has no flowing text on it, then this field should be empty.
37
+ # Corresponds to the JSON property `beforeSelectedText`
38
+ # @return [String]
39
+ attr_accessor :before_selected_text
40
+
41
+ # Selection ranges sent from the client.
42
+ # Corresponds to the JSON property `clientVersionRanges`
43
+ # @return [Google::Apis::BooksV1::Annotation::ClientVersionRanges]
44
+ attr_accessor :client_version_ranges
45
+
46
+ # Timestamp for the created time of this annotation.
47
+ # Corresponds to the JSON property `created`
48
+ # @return [DateTime]
49
+ attr_accessor :created
50
+
51
+ # Selection ranges for the most recent content version.
52
+ # Corresponds to the JSON property `currentVersionRanges`
53
+ # @return [Google::Apis::BooksV1::Annotation::CurrentVersionRanges]
54
+ attr_accessor :current_version_ranges
55
+
56
+ # User-created data for this annotation.
57
+ # Corresponds to the JSON property `data`
58
+ # @return [String]
59
+ attr_accessor :data
60
+
61
+ # Indicates that this annotation is deleted.
62
+ # Corresponds to the JSON property `deleted`
63
+ # @return [Boolean]
64
+ attr_accessor :deleted
65
+ alias_method :deleted?, :deleted
66
+
67
+ # The highlight style for this annotation.
68
+ # Corresponds to the JSON property `highlightStyle`
69
+ # @return [String]
70
+ attr_accessor :highlight_style
71
+
72
+ # Id of this annotation, in the form of a GUID.
73
+ # Corresponds to the JSON property `id`
74
+ # @return [String]
75
+ attr_accessor :id
76
+
77
+ # Resource type.
78
+ # Corresponds to the JSON property `kind`
79
+ # @return [String]
80
+ attr_accessor :kind
81
+
82
+ # The layer this annotation is for.
83
+ # Corresponds to the JSON property `layerId`
84
+ # @return [String]
85
+ attr_accessor :layer_id
86
+
87
+ #
88
+ # Corresponds to the JSON property `layerSummary`
89
+ # @return [Google::Apis::BooksV1::Annotation::LayerSummary]
90
+ attr_accessor :layer_summary
91
+
92
+ # Pages that this annotation spans.
93
+ # Corresponds to the JSON property `pageIds`
94
+ # @return [Array<String>]
95
+ attr_accessor :page_ids
96
+
97
+ # Excerpt from the volume.
98
+ # Corresponds to the JSON property `selectedText`
99
+ # @return [String]
100
+ attr_accessor :selected_text
101
+
102
+ # URL to this resource.
103
+ # Corresponds to the JSON property `selfLink`
104
+ # @return [String]
105
+ attr_accessor :self_link
106
+
107
+ # Timestamp for the last time this annotation was modified.
108
+ # Corresponds to the JSON property `updated`
109
+ # @return [DateTime]
110
+ attr_accessor :updated
111
+
112
+ # The volume that this annotation belongs to.
113
+ # Corresponds to the JSON property `volumeId`
114
+ # @return [String]
115
+ attr_accessor :volume_id
116
+
117
+ def initialize(**args)
118
+ update!(**args)
119
+ end
120
+
121
+ # Update properties of this object
122
+ def update!(**args)
123
+ @after_selected_text = args[:after_selected_text] unless args[:after_selected_text].nil?
124
+ @before_selected_text = args[:before_selected_text] unless args[:before_selected_text].nil?
125
+ @client_version_ranges = args[:client_version_ranges] unless args[:client_version_ranges].nil?
126
+ @created = args[:created] unless args[:created].nil?
127
+ @current_version_ranges = args[:current_version_ranges] unless args[:current_version_ranges].nil?
128
+ @data = args[:data] unless args[:data].nil?
129
+ @deleted = args[:deleted] unless args[:deleted].nil?
130
+ @highlight_style = args[:highlight_style] unless args[:highlight_style].nil?
131
+ @id = args[:id] unless args[:id].nil?
132
+ @kind = args[:kind] unless args[:kind].nil?
133
+ @layer_id = args[:layer_id] unless args[:layer_id].nil?
134
+ @layer_summary = args[:layer_summary] unless args[:layer_summary].nil?
135
+ @page_ids = args[:page_ids] unless args[:page_ids].nil?
136
+ @selected_text = args[:selected_text] unless args[:selected_text].nil?
137
+ @self_link = args[:self_link] unless args[:self_link].nil?
138
+ @updated = args[:updated] unless args[:updated].nil?
139
+ @volume_id = args[:volume_id] unless args[:volume_id].nil?
140
+ end
141
+
142
+ # Selection ranges sent from the client.
143
+ class ClientVersionRanges
144
+ include Google::Apis::Core::Hashable
145
+
146
+ # Range in CFI format for this annotation sent by client.
147
+ # Corresponds to the JSON property `cfiRange`
148
+ # @return [Google::Apis::BooksV1::AnnotatinsRange]
149
+ attr_accessor :cfi_range
150
+
151
+ # Content version the client sent in.
152
+ # Corresponds to the JSON property `contentVersion`
153
+ # @return [String]
154
+ attr_accessor :content_version
155
+
156
+ # Range in GB image format for this annotation sent by client.
157
+ # Corresponds to the JSON property `gbImageRange`
158
+ # @return [Google::Apis::BooksV1::AnnotatinsRange]
159
+ attr_accessor :gb_image_range
160
+
161
+ # Range in GB text format for this annotation sent by client.
162
+ # Corresponds to the JSON property `gbTextRange`
163
+ # @return [Google::Apis::BooksV1::AnnotatinsRange]
164
+ attr_accessor :gb_text_range
165
+
166
+ # Range in image CFI format for this annotation sent by client.
167
+ # Corresponds to the JSON property `imageCfiRange`
168
+ # @return [Google::Apis::BooksV1::AnnotatinsRange]
169
+ attr_accessor :image_cfi_range
170
+
171
+ def initialize(**args)
172
+ update!(**args)
173
+ end
174
+
175
+ # Update properties of this object
176
+ def update!(**args)
177
+ @cfi_range = args[:cfi_range] unless args[:cfi_range].nil?
178
+ @content_version = args[:content_version] unless args[:content_version].nil?
179
+ @gb_image_range = args[:gb_image_range] unless args[:gb_image_range].nil?
180
+ @gb_text_range = args[:gb_text_range] unless args[:gb_text_range].nil?
181
+ @image_cfi_range = args[:image_cfi_range] unless args[:image_cfi_range].nil?
182
+ end
183
+ end
184
+
185
+ # Selection ranges for the most recent content version.
186
+ class CurrentVersionRanges
187
+ include Google::Apis::Core::Hashable
188
+
189
+ # Range in CFI format for this annotation for version above.
190
+ # Corresponds to the JSON property `cfiRange`
191
+ # @return [Google::Apis::BooksV1::AnnotatinsRange]
192
+ attr_accessor :cfi_range
193
+
194
+ # Content version applicable to ranges below.
195
+ # Corresponds to the JSON property `contentVersion`
196
+ # @return [String]
197
+ attr_accessor :content_version
198
+
199
+ # Range in GB image format for this annotation for version above.
200
+ # Corresponds to the JSON property `gbImageRange`
201
+ # @return [Google::Apis::BooksV1::AnnotatinsRange]
202
+ attr_accessor :gb_image_range
203
+
204
+ # Range in GB text format for this annotation for version above.
205
+ # Corresponds to the JSON property `gbTextRange`
206
+ # @return [Google::Apis::BooksV1::AnnotatinsRange]
207
+ attr_accessor :gb_text_range
208
+
209
+ # Range in image CFI format for this annotation for version above.
210
+ # Corresponds to the JSON property `imageCfiRange`
211
+ # @return [Google::Apis::BooksV1::AnnotatinsRange]
212
+ attr_accessor :image_cfi_range
213
+
214
+ def initialize(**args)
215
+ update!(**args)
216
+ end
217
+
218
+ # Update properties of this object
219
+ def update!(**args)
220
+ @cfi_range = args[:cfi_range] unless args[:cfi_range].nil?
221
+ @content_version = args[:content_version] unless args[:content_version].nil?
222
+ @gb_image_range = args[:gb_image_range] unless args[:gb_image_range].nil?
223
+ @gb_text_range = args[:gb_text_range] unless args[:gb_text_range].nil?
224
+ @image_cfi_range = args[:image_cfi_range] unless args[:image_cfi_range].nil?
225
+ end
226
+ end
227
+
228
+ #
229
+ class LayerSummary
230
+ include Google::Apis::Core::Hashable
231
+
232
+ # Maximum allowed characters on this layer, especially for the "copy" layer.
233
+ # Corresponds to the JSON property `allowedCharacterCount`
234
+ # @return [Fixnum]
235
+ attr_accessor :allowed_character_count
236
+
237
+ # Type of limitation on this layer. "limited" or "unlimited" for the "copy"
238
+ # layer.
239
+ # Corresponds to the JSON property `limitType`
240
+ # @return [String]
241
+ attr_accessor :limit_type
242
+
243
+ # Remaining allowed characters on this layer, especially for the "copy" layer.
244
+ # Corresponds to the JSON property `remainingCharacterCount`
245
+ # @return [Fixnum]
246
+ attr_accessor :remaining_character_count
247
+
248
+ def initialize(**args)
249
+ update!(**args)
250
+ end
251
+
252
+ # Update properties of this object
253
+ def update!(**args)
254
+ @allowed_character_count = args[:allowed_character_count] unless args[:allowed_character_count].nil?
255
+ @limit_type = args[:limit_type] unless args[:limit_type].nil?
256
+ @remaining_character_count = args[:remaining_character_count] unless args[:remaining_character_count].nil?
257
+ end
258
+ end
259
+ end
260
+
261
+ #
262
+ class AnnotationData
263
+ include Google::Apis::Core::Hashable
264
+
265
+ # The type of annotation this data is for.
266
+ # Corresponds to the JSON property `annotationType`
267
+ # @return [String]
268
+ attr_accessor :annotation_type
269
+
270
+ #
271
+ # Corresponds to the JSON property `data`
272
+ # @return [Object]
273
+ attr_accessor :data
274
+
275
+ # Base64 encoded data for this annotation data.
276
+ # Corresponds to the JSON property `encoded_data`
277
+ # @return [String]
278
+ attr_accessor :encoded_data
279
+
280
+ # Unique id for this annotation data.
281
+ # Corresponds to the JSON property `id`
282
+ # @return [String]
283
+ attr_accessor :id
284
+
285
+ # Resource Type
286
+ # Corresponds to the JSON property `kind`
287
+ # @return [String]
288
+ attr_accessor :kind
289
+
290
+ # The Layer id for this data. *
291
+ # Corresponds to the JSON property `layerId`
292
+ # @return [String]
293
+ attr_accessor :layer_id
294
+
295
+ # URL for this resource. *
296
+ # Corresponds to the JSON property `selfLink`
297
+ # @return [String]
298
+ attr_accessor :self_link
299
+
300
+ # Timestamp for the last time this data was updated. (RFC 3339 UTC date-time
301
+ # format).
302
+ # Corresponds to the JSON property `updated`
303
+ # @return [DateTime]
304
+ attr_accessor :updated
305
+
306
+ # The volume id for this data. *
307
+ # Corresponds to the JSON property `volumeId`
308
+ # @return [String]
309
+ attr_accessor :volume_id
310
+
311
+ def initialize(**args)
312
+ update!(**args)
313
+ end
314
+
315
+ # Update properties of this object
316
+ def update!(**args)
317
+ @annotation_type = args[:annotation_type] unless args[:annotation_type].nil?
318
+ @data = args[:data] unless args[:data].nil?
319
+ @encoded_data = args[:encoded_data] unless args[:encoded_data].nil?
320
+ @id = args[:id] unless args[:id].nil?
321
+ @kind = args[:kind] unless args[:kind].nil?
322
+ @layer_id = args[:layer_id] unless args[:layer_id].nil?
323
+ @self_link = args[:self_link] unless args[:self_link].nil?
324
+ @updated = args[:updated] unless args[:updated].nil?
325
+ @volume_id = args[:volume_id] unless args[:volume_id].nil?
326
+ end
327
+ end
328
+
329
+ #
330
+ class Annotations
331
+ include Google::Apis::Core::Hashable
332
+
333
+ # A list of annotations.
334
+ # Corresponds to the JSON property `items`
335
+ # @return [Array<Google::Apis::BooksV1::Annotation>]
336
+ attr_accessor :items
337
+
338
+ # Resource type.
339
+ # Corresponds to the JSON property `kind`
340
+ # @return [String]
341
+ attr_accessor :kind
342
+
343
+ # Token to pass in for pagination for the next page. This will not be present if
344
+ # this request does not have more results.
345
+ # Corresponds to the JSON property `nextPageToken`
346
+ # @return [String]
347
+ attr_accessor :next_page_token
348
+
349
+ # Total number of annotations found. This may be greater than the number of
350
+ # notes returned in this response if results have been paginated.
351
+ # Corresponds to the JSON property `totalItems`
352
+ # @return [Fixnum]
353
+ attr_accessor :total_items
354
+
355
+ def initialize(**args)
356
+ update!(**args)
357
+ end
358
+
359
+ # Update properties of this object
360
+ def update!(**args)
361
+ @items = args[:items] unless args[:items].nil?
362
+ @kind = args[:kind] unless args[:kind].nil?
363
+ @next_page_token = args[:next_page_token] unless args[:next_page_token].nil?
364
+ @total_items = args[:total_items] unless args[:total_items].nil?
365
+ end
366
+ end
367
+
368
+ #
369
+ class AnnotationsSummary
370
+ include Google::Apis::Core::Hashable
371
+
372
+ #
373
+ # Corresponds to the JSON property `kind`
374
+ # @return [String]
375
+ attr_accessor :kind
376
+
377
+ #
378
+ # Corresponds to the JSON property `layers`
379
+ # @return [Array<Google::Apis::BooksV1::AnnotationsSummary::Layer>]
380
+ attr_accessor :layers
381
+
382
+ def initialize(**args)
383
+ update!(**args)
384
+ end
385
+
386
+ # Update properties of this object
387
+ def update!(**args)
388
+ @kind = args[:kind] unless args[:kind].nil?
389
+ @layers = args[:layers] unless args[:layers].nil?
390
+ end
391
+
392
+ #
393
+ class Layer
394
+ include Google::Apis::Core::Hashable
395
+
396
+ #
397
+ # Corresponds to the JSON property `allowedCharacterCount`
398
+ # @return [Fixnum]
399
+ attr_accessor :allowed_character_count
400
+
401
+ #
402
+ # Corresponds to the JSON property `layerId`
403
+ # @return [String]
404
+ attr_accessor :layer_id
405
+
406
+ #
407
+ # Corresponds to the JSON property `limitType`
408
+ # @return [String]
409
+ attr_accessor :limit_type
410
+
411
+ #
412
+ # Corresponds to the JSON property `remainingCharacterCount`
413
+ # @return [Fixnum]
414
+ attr_accessor :remaining_character_count
415
+
416
+ #
417
+ # Corresponds to the JSON property `updated`
418
+ # @return [DateTime]
419
+ attr_accessor :updated
420
+
421
+ def initialize(**args)
422
+ update!(**args)
423
+ end
424
+
425
+ # Update properties of this object
426
+ def update!(**args)
427
+ @allowed_character_count = args[:allowed_character_count] unless args[:allowed_character_count].nil?
428
+ @layer_id = args[:layer_id] unless args[:layer_id].nil?
429
+ @limit_type = args[:limit_type] unless args[:limit_type].nil?
430
+ @remaining_character_count = args[:remaining_character_count] unless args[:remaining_character_count].nil?
431
+ @updated = args[:updated] unless args[:updated].nil?
432
+ end
433
+ end
434
+ end
435
+
436
+ #
437
+ class AnnotationsData
438
+ include Google::Apis::Core::Hashable
439
+
440
+ # A list of Annotation Data.
441
+ # Corresponds to the JSON property `items`
442
+ # @return [Array<Google::Apis::BooksV1::AnnotationData>]
443
+ attr_accessor :items
444
+
445
+ # Resource type
446
+ # Corresponds to the JSON property `kind`
447
+ # @return [String]
448
+ attr_accessor :kind
449
+
450
+ # Token to pass in for pagination for the next page. This will not be present if
451
+ # this request does not have more results.
452
+ # Corresponds to the JSON property `nextPageToken`
453
+ # @return [String]
454
+ attr_accessor :next_page_token
455
+
456
+ # The total number of volume annotations found.
457
+ # Corresponds to the JSON property `totalItems`
458
+ # @return [Fixnum]
459
+ attr_accessor :total_items
460
+
461
+ def initialize(**args)
462
+ update!(**args)
463
+ end
464
+
465
+ # Update properties of this object
466
+ def update!(**args)
467
+ @items = args[:items] unless args[:items].nil?
468
+ @kind = args[:kind] unless args[:kind].nil?
469
+ @next_page_token = args[:next_page_token] unless args[:next_page_token].nil?
470
+ @total_items = args[:total_items] unless args[:total_items].nil?
471
+ end
472
+ end
473
+
474
+ #
475
+ class AnnotatinsRange
476
+ include Google::Apis::Core::Hashable
477
+
478
+ # The offset from the ending position.
479
+ # Corresponds to the JSON property `endOffset`
480
+ # @return [String]
481
+ attr_accessor :end_offset
482
+
483
+ # The ending position for the range.
484
+ # Corresponds to the JSON property `endPosition`
485
+ # @return [String]
486
+ attr_accessor :end_position
487
+
488
+ # The offset from the starting position.
489
+ # Corresponds to the JSON property `startOffset`
490
+ # @return [String]
491
+ attr_accessor :start_offset
492
+
493
+ # The starting position for the range.
494
+ # Corresponds to the JSON property `startPosition`
495
+ # @return [String]
496
+ attr_accessor :start_position
497
+
498
+ def initialize(**args)
499
+ update!(**args)
500
+ end
501
+
502
+ # Update properties of this object
503
+ def update!(**args)
504
+ @end_offset = args[:end_offset] unless args[:end_offset].nil?
505
+ @end_position = args[:end_position] unless args[:end_position].nil?
506
+ @start_offset = args[:start_offset] unless args[:start_offset].nil?
507
+ @start_position = args[:start_position] unless args[:start_position].nil?
508
+ end
509
+ end
510
+
511
+ #
512
+ class LoadingResource
513
+ include Google::Apis::Core::Hashable
514
+
515
+ #
516
+ # Corresponds to the JSON property `author`
517
+ # @return [String]
518
+ attr_accessor :author
519
+
520
+ #
521
+ # Corresponds to the JSON property `processingState`
522
+ # @return [String]
523
+ attr_accessor :processing_state
524
+
525
+ #
526
+ # Corresponds to the JSON property `title`
527
+ # @return [String]
528
+ attr_accessor :title
529
+
530
+ #
531
+ # Corresponds to the JSON property `volumeId`
532
+ # @return [String]
533
+ attr_accessor :volume_id
534
+
535
+ def initialize(**args)
536
+ update!(**args)
537
+ end
538
+
539
+ # Update properties of this object
540
+ def update!(**args)
541
+ @author = args[:author] unless args[:author].nil?
542
+ @processing_state = args[:processing_state] unless args[:processing_state].nil?
543
+ @title = args[:title] unless args[:title].nil?
544
+ @volume_id = args[:volume_id] unless args[:volume_id].nil?
545
+ end
546
+ end
547
+
548
+ #
549
+ class RateRecommendedVolumeResponse
550
+ include Google::Apis::Core::Hashable
551
+
552
+ #
553
+ # Corresponds to the JSON property `consistency_token`
554
+ # @return [String]
555
+ attr_accessor :consistency_token
556
+
557
+ def initialize(**args)
558
+ update!(**args)
559
+ end
560
+
561
+ # Update properties of this object
562
+ def update!(**args)
563
+ @consistency_token = args[:consistency_token] unless args[:consistency_token].nil?
564
+ end
565
+ end
566
+
567
+ #
568
+ class Bookshelf
569
+ include Google::Apis::Core::Hashable
570
+
571
+ # Whether this bookshelf is PUBLIC or PRIVATE.
572
+ # Corresponds to the JSON property `access`
573
+ # @return [String]
574
+ attr_accessor :access
575
+
576
+ # Created time for this bookshelf (formatted UTC timestamp with millisecond
577
+ # resolution).
578
+ # Corresponds to the JSON property `created`
579
+ # @return [DateTime]
580
+ attr_accessor :created
581
+
582
+ # Description of this bookshelf.
583
+ # Corresponds to the JSON property `description`
584
+ # @return [String]
585
+ attr_accessor :description
586
+
587
+ # Id of this bookshelf, only unique by user.
588
+ # Corresponds to the JSON property `id`
589
+ # @return [Fixnum]
590
+ attr_accessor :id
591
+
592
+ # Resource type for bookshelf metadata.
593
+ # Corresponds to the JSON property `kind`
594
+ # @return [String]
595
+ attr_accessor :kind
596
+
597
+ # URL to this resource.
598
+ # Corresponds to the JSON property `selfLink`
599
+ # @return [String]
600
+ attr_accessor :self_link
601
+
602
+ # Title of this bookshelf.
603
+ # Corresponds to the JSON property `title`
604
+ # @return [String]
605
+ attr_accessor :title
606
+
607
+ # Last modified time of this bookshelf (formatted UTC timestamp with millisecond
608
+ # resolution).
609
+ # Corresponds to the JSON property `updated`
610
+ # @return [DateTime]
611
+ attr_accessor :updated
612
+
613
+ # Number of volumes in this bookshelf.
614
+ # Corresponds to the JSON property `volumeCount`
615
+ # @return [Fixnum]
616
+ attr_accessor :volume_count
617
+
618
+ # Last time a volume was added or removed from this bookshelf (formatted UTC
619
+ # timestamp with millisecond resolution).
620
+ # Corresponds to the JSON property `volumesLastUpdated`
621
+ # @return [DateTime]
622
+ attr_accessor :volumes_last_updated
623
+
624
+ def initialize(**args)
625
+ update!(**args)
626
+ end
627
+
628
+ # Update properties of this object
629
+ def update!(**args)
630
+ @access = args[:access] unless args[:access].nil?
631
+ @created = args[:created] unless args[:created].nil?
632
+ @description = args[:description] unless args[:description].nil?
633
+ @id = args[:id] unless args[:id].nil?
634
+ @kind = args[:kind] unless args[:kind].nil?
635
+ @self_link = args[:self_link] unless args[:self_link].nil?
636
+ @title = args[:title] unless args[:title].nil?
637
+ @updated = args[:updated] unless args[:updated].nil?
638
+ @volume_count = args[:volume_count] unless args[:volume_count].nil?
639
+ @volumes_last_updated = args[:volumes_last_updated] unless args[:volumes_last_updated].nil?
640
+ end
641
+ end
642
+
643
+ #
644
+ class Bookshelves
645
+ include Google::Apis::Core::Hashable
646
+
647
+ # A list of bookshelves.
648
+ # Corresponds to the JSON property `items`
649
+ # @return [Array<Google::Apis::BooksV1::Bookshelf>]
650
+ attr_accessor :items
651
+
652
+ # Resource type.
653
+ # Corresponds to the JSON property `kind`
654
+ # @return [String]
655
+ attr_accessor :kind
656
+
657
+ def initialize(**args)
658
+ update!(**args)
659
+ end
660
+
661
+ # Update properties of this object
662
+ def update!(**args)
663
+ @items = args[:items] unless args[:items].nil?
664
+ @kind = args[:kind] unless args[:kind].nil?
665
+ end
666
+ end
667
+
668
+ #
669
+ class Category
670
+ include Google::Apis::Core::Hashable
671
+
672
+ # A list of onboarding categories.
673
+ # Corresponds to the JSON property `items`
674
+ # @return [Array<Google::Apis::BooksV1::Category::Item>]
675
+ attr_accessor :items
676
+
677
+ # Resource type.
678
+ # Corresponds to the JSON property `kind`
679
+ # @return [String]
680
+ attr_accessor :kind
681
+
682
+ def initialize(**args)
683
+ update!(**args)
684
+ end
685
+
686
+ # Update properties of this object
687
+ def update!(**args)
688
+ @items = args[:items] unless args[:items].nil?
689
+ @kind = args[:kind] unless args[:kind].nil?
690
+ end
691
+
692
+ #
693
+ class Item
694
+ include Google::Apis::Core::Hashable
695
+
696
+ #
697
+ # Corresponds to the JSON property `badgeUrl`
698
+ # @return [String]
699
+ attr_accessor :badge_url
700
+
701
+ #
702
+ # Corresponds to the JSON property `categoryId`
703
+ # @return [String]
704
+ attr_accessor :category_id
705
+
706
+ #
707
+ # Corresponds to the JSON property `name`
708
+ # @return [String]
709
+ attr_accessor :name
710
+
711
+ def initialize(**args)
712
+ update!(**args)
713
+ end
714
+
715
+ # Update properties of this object
716
+ def update!(**args)
717
+ @badge_url = args[:badge_url] unless args[:badge_url].nil?
718
+ @category_id = args[:category_id] unless args[:category_id].nil?
719
+ @name = args[:name] unless args[:name].nil?
720
+ end
721
+ end
722
+ end
723
+
724
+ #
725
+ class ConcurrentAccessRestriction
726
+ include Google::Apis::Core::Hashable
727
+
728
+ # Whether access is granted for this (user, device, volume).
729
+ # Corresponds to the JSON property `deviceAllowed`
730
+ # @return [Boolean]
731
+ attr_accessor :device_allowed
732
+ alias_method :device_allowed?, :device_allowed
733
+
734
+ # Resource type.
735
+ # Corresponds to the JSON property `kind`
736
+ # @return [String]
737
+ attr_accessor :kind
738
+
739
+ # The maximum number of concurrent access licenses for this volume.
740
+ # Corresponds to the JSON property `maxConcurrentDevices`
741
+ # @return [Fixnum]
742
+ attr_accessor :max_concurrent_devices
743
+
744
+ # Error/warning message.
745
+ # Corresponds to the JSON property `message`
746
+ # @return [String]
747
+ attr_accessor :message
748
+
749
+ # Client nonce for verification. Download access and client-validation only.
750
+ # Corresponds to the JSON property `nonce`
751
+ # @return [String]
752
+ attr_accessor :nonce
753
+
754
+ # Error/warning reason code.
755
+ # Corresponds to the JSON property `reasonCode`
756
+ # @return [String]
757
+ attr_accessor :reason_code
758
+
759
+ # Whether this volume has any concurrent access restrictions.
760
+ # Corresponds to the JSON property `restricted`
761
+ # @return [Boolean]
762
+ attr_accessor :restricted
763
+ alias_method :restricted?, :restricted
764
+
765
+ # Response signature.
766
+ # Corresponds to the JSON property `signature`
767
+ # @return [String]
768
+ attr_accessor :signature
769
+
770
+ # Client app identifier for verification. Download access and client-validation
771
+ # only.
772
+ # Corresponds to the JSON property `source`
773
+ # @return [String]
774
+ attr_accessor :source
775
+
776
+ # Time in seconds for license auto-expiration.
777
+ # Corresponds to the JSON property `timeWindowSeconds`
778
+ # @return [Fixnum]
779
+ attr_accessor :time_window_seconds
780
+
781
+ # Identifies the volume for which this entry applies.
782
+ # Corresponds to the JSON property `volumeId`
783
+ # @return [String]
784
+ attr_accessor :volume_id
785
+
786
+ def initialize(**args)
787
+ update!(**args)
788
+ end
789
+
790
+ # Update properties of this object
791
+ def update!(**args)
792
+ @device_allowed = args[:device_allowed] unless args[:device_allowed].nil?
793
+ @kind = args[:kind] unless args[:kind].nil?
794
+ @max_concurrent_devices = args[:max_concurrent_devices] unless args[:max_concurrent_devices].nil?
795
+ @message = args[:message] unless args[:message].nil?
796
+ @nonce = args[:nonce] unless args[:nonce].nil?
797
+ @reason_code = args[:reason_code] unless args[:reason_code].nil?
798
+ @restricted = args[:restricted] unless args[:restricted].nil?
799
+ @signature = args[:signature] unless args[:signature].nil?
800
+ @source = args[:source] unless args[:source].nil?
801
+ @time_window_seconds = args[:time_window_seconds] unless args[:time_window_seconds].nil?
802
+ @volume_id = args[:volume_id] unless args[:volume_id].nil?
803
+ end
804
+ end
805
+
806
+ #
807
+ class DictLayerData
808
+ include Google::Apis::Core::Hashable
809
+
810
+ #
811
+ # Corresponds to the JSON property `common`
812
+ # @return [Google::Apis::BooksV1::DictLayerData::Common]
813
+ attr_accessor :common
814
+
815
+ #
816
+ # Corresponds to the JSON property `dict`
817
+ # @return [Google::Apis::BooksV1::DictLayerData::Dict]
818
+ attr_accessor :dict
819
+
820
+ #
821
+ # Corresponds to the JSON property `kind`
822
+ # @return [String]
823
+ attr_accessor :kind
824
+
825
+ def initialize(**args)
826
+ update!(**args)
827
+ end
828
+
829
+ # Update properties of this object
830
+ def update!(**args)
831
+ @common = args[:common] unless args[:common].nil?
832
+ @dict = args[:dict] unless args[:dict].nil?
833
+ @kind = args[:kind] unless args[:kind].nil?
834
+ end
835
+
836
+ #
837
+ class Common
838
+ include Google::Apis::Core::Hashable
839
+
840
+ # The display title and localized canonical name to use when searching for this
841
+ # entity on Google search.
842
+ # Corresponds to the JSON property `title`
843
+ # @return [String]
844
+ attr_accessor :title
845
+
846
+ def initialize(**args)
847
+ update!(**args)
848
+ end
849
+
850
+ # Update properties of this object
851
+ def update!(**args)
852
+ @title = args[:title] unless args[:title].nil?
853
+ end
854
+ end
855
+
856
+ #
857
+ class Dict
858
+ include Google::Apis::Core::Hashable
859
+
860
+ # The source, url and attribution for this dictionary data.
861
+ # Corresponds to the JSON property `source`
862
+ # @return [Google::Apis::BooksV1::DictLayerData::Dict::Source]
863
+ attr_accessor :source
864
+
865
+ #
866
+ # Corresponds to the JSON property `words`
867
+ # @return [Array<Google::Apis::BooksV1::DictLayerData::Dict::Word>]
868
+ attr_accessor :words
869
+
870
+ def initialize(**args)
871
+ update!(**args)
872
+ end
873
+
874
+ # Update properties of this object
875
+ def update!(**args)
876
+ @source = args[:source] unless args[:source].nil?
877
+ @words = args[:words] unless args[:words].nil?
878
+ end
879
+
880
+ # The source, url and attribution for this dictionary data.
881
+ class Source
882
+ include Google::Apis::Core::Hashable
883
+
884
+ #
885
+ # Corresponds to the JSON property `attribution`
886
+ # @return [String]
887
+ attr_accessor :attribution
888
+
889
+ #
890
+ # Corresponds to the JSON property `url`
891
+ # @return [String]
892
+ attr_accessor :url
893
+
894
+ def initialize(**args)
895
+ update!(**args)
896
+ end
897
+
898
+ # Update properties of this object
899
+ def update!(**args)
900
+ @attribution = args[:attribution] unless args[:attribution].nil?
901
+ @url = args[:url] unless args[:url].nil?
902
+ end
903
+ end
904
+
905
+ #
906
+ class Word
907
+ include Google::Apis::Core::Hashable
908
+
909
+ #
910
+ # Corresponds to the JSON property `derivatives`
911
+ # @return [Array<Google::Apis::BooksV1::DictLayerData::Dict::Word::Derivative>]
912
+ attr_accessor :derivatives
913
+
914
+ #
915
+ # Corresponds to the JSON property `examples`
916
+ # @return [Array<Google::Apis::BooksV1::DictLayerData::Dict::Word::Example>]
917
+ attr_accessor :examples
918
+
919
+ #
920
+ # Corresponds to the JSON property `senses`
921
+ # @return [Array<Google::Apis::BooksV1::DictLayerData::Dict::Word::Sense>]
922
+ attr_accessor :senses
923
+
924
+ # The words with different meanings but not related words, e.g. "go" (game) and "
925
+ # go" (verb).
926
+ # Corresponds to the JSON property `source`
927
+ # @return [Google::Apis::BooksV1::DictLayerData::Dict::Word::Source]
928
+ attr_accessor :source
929
+
930
+ def initialize(**args)
931
+ update!(**args)
932
+ end
933
+
934
+ # Update properties of this object
935
+ def update!(**args)
936
+ @derivatives = args[:derivatives] unless args[:derivatives].nil?
937
+ @examples = args[:examples] unless args[:examples].nil?
938
+ @senses = args[:senses] unless args[:senses].nil?
939
+ @source = args[:source] unless args[:source].nil?
940
+ end
941
+
942
+ #
943
+ class Derivative
944
+ include Google::Apis::Core::Hashable
945
+
946
+ #
947
+ # Corresponds to the JSON property `source`
948
+ # @return [Google::Apis::BooksV1::DictLayerData::Dict::Word::Derivative::Source]
949
+ attr_accessor :source
950
+
951
+ #
952
+ # Corresponds to the JSON property `text`
953
+ # @return [String]
954
+ attr_accessor :text
955
+
956
+ def initialize(**args)
957
+ update!(**args)
958
+ end
959
+
960
+ # Update properties of this object
961
+ def update!(**args)
962
+ @source = args[:source] unless args[:source].nil?
963
+ @text = args[:text] unless args[:text].nil?
964
+ end
965
+
966
+ #
967
+ class Source
968
+ include Google::Apis::Core::Hashable
969
+
970
+ #
971
+ # Corresponds to the JSON property `attribution`
972
+ # @return [String]
973
+ attr_accessor :attribution
974
+
975
+ #
976
+ # Corresponds to the JSON property `url`
977
+ # @return [String]
978
+ attr_accessor :url
979
+
980
+ def initialize(**args)
981
+ update!(**args)
982
+ end
983
+
984
+ # Update properties of this object
985
+ def update!(**args)
986
+ @attribution = args[:attribution] unless args[:attribution].nil?
987
+ @url = args[:url] unless args[:url].nil?
988
+ end
989
+ end
990
+ end
991
+
992
+ #
993
+ class Example
994
+ include Google::Apis::Core::Hashable
995
+
996
+ #
997
+ # Corresponds to the JSON property `source`
998
+ # @return [Google::Apis::BooksV1::DictLayerData::Dict::Word::Example::Source]
999
+ attr_accessor :source
1000
+
1001
+ #
1002
+ # Corresponds to the JSON property `text`
1003
+ # @return [String]
1004
+ attr_accessor :text
1005
+
1006
+ def initialize(**args)
1007
+ update!(**args)
1008
+ end
1009
+
1010
+ # Update properties of this object
1011
+ def update!(**args)
1012
+ @source = args[:source] unless args[:source].nil?
1013
+ @text = args[:text] unless args[:text].nil?
1014
+ end
1015
+
1016
+ #
1017
+ class Source
1018
+ include Google::Apis::Core::Hashable
1019
+
1020
+ #
1021
+ # Corresponds to the JSON property `attribution`
1022
+ # @return [String]
1023
+ attr_accessor :attribution
1024
+
1025
+ #
1026
+ # Corresponds to the JSON property `url`
1027
+ # @return [String]
1028
+ attr_accessor :url
1029
+
1030
+ def initialize(**args)
1031
+ update!(**args)
1032
+ end
1033
+
1034
+ # Update properties of this object
1035
+ def update!(**args)
1036
+ @attribution = args[:attribution] unless args[:attribution].nil?
1037
+ @url = args[:url] unless args[:url].nil?
1038
+ end
1039
+ end
1040
+ end
1041
+
1042
+ #
1043
+ class Sense
1044
+ include Google::Apis::Core::Hashable
1045
+
1046
+ #
1047
+ # Corresponds to the JSON property `conjugations`
1048
+ # @return [Array<Google::Apis::BooksV1::DictLayerData::Dict::Word::Sense::Conjugation>]
1049
+ attr_accessor :conjugations
1050
+
1051
+ #
1052
+ # Corresponds to the JSON property `definitions`
1053
+ # @return [Array<Google::Apis::BooksV1::DictLayerData::Dict::Word::Sense::Definition>]
1054
+ attr_accessor :definitions
1055
+
1056
+ #
1057
+ # Corresponds to the JSON property `partOfSpeech`
1058
+ # @return [String]
1059
+ attr_accessor :part_of_speech
1060
+
1061
+ #
1062
+ # Corresponds to the JSON property `pronunciation`
1063
+ # @return [String]
1064
+ attr_accessor :pronunciation
1065
+
1066
+ #
1067
+ # Corresponds to the JSON property `pronunciationUrl`
1068
+ # @return [String]
1069
+ attr_accessor :pronunciation_url
1070
+
1071
+ #
1072
+ # Corresponds to the JSON property `source`
1073
+ # @return [Google::Apis::BooksV1::DictLayerData::Dict::Word::Sense::Source]
1074
+ attr_accessor :source
1075
+
1076
+ #
1077
+ # Corresponds to the JSON property `syllabification`
1078
+ # @return [String]
1079
+ attr_accessor :syllabification
1080
+
1081
+ #
1082
+ # Corresponds to the JSON property `synonyms`
1083
+ # @return [Array<Google::Apis::BooksV1::DictLayerData::Dict::Word::Sense::Synonym>]
1084
+ attr_accessor :synonyms
1085
+
1086
+ def initialize(**args)
1087
+ update!(**args)
1088
+ end
1089
+
1090
+ # Update properties of this object
1091
+ def update!(**args)
1092
+ @conjugations = args[:conjugations] unless args[:conjugations].nil?
1093
+ @definitions = args[:definitions] unless args[:definitions].nil?
1094
+ @part_of_speech = args[:part_of_speech] unless args[:part_of_speech].nil?
1095
+ @pronunciation = args[:pronunciation] unless args[:pronunciation].nil?
1096
+ @pronunciation_url = args[:pronunciation_url] unless args[:pronunciation_url].nil?
1097
+ @source = args[:source] unless args[:source].nil?
1098
+ @syllabification = args[:syllabification] unless args[:syllabification].nil?
1099
+ @synonyms = args[:synonyms] unless args[:synonyms].nil?
1100
+ end
1101
+
1102
+ #
1103
+ class Conjugation
1104
+ include Google::Apis::Core::Hashable
1105
+
1106
+ #
1107
+ # Corresponds to the JSON property `type`
1108
+ # @return [String]
1109
+ attr_accessor :type
1110
+
1111
+ #
1112
+ # Corresponds to the JSON property `value`
1113
+ # @return [String]
1114
+ attr_accessor :value
1115
+
1116
+ def initialize(**args)
1117
+ update!(**args)
1118
+ end
1119
+
1120
+ # Update properties of this object
1121
+ def update!(**args)
1122
+ @type = args[:type] unless args[:type].nil?
1123
+ @value = args[:value] unless args[:value].nil?
1124
+ end
1125
+ end
1126
+
1127
+ #
1128
+ class Definition
1129
+ include Google::Apis::Core::Hashable
1130
+
1131
+ #
1132
+ # Corresponds to the JSON property `definition`
1133
+ # @return [String]
1134
+ attr_accessor :definition
1135
+
1136
+ #
1137
+ # Corresponds to the JSON property `examples`
1138
+ # @return [Array<Google::Apis::BooksV1::DictLayerData::Dict::Word::Sense::Definition::Example>]
1139
+ attr_accessor :examples
1140
+
1141
+ def initialize(**args)
1142
+ update!(**args)
1143
+ end
1144
+
1145
+ # Update properties of this object
1146
+ def update!(**args)
1147
+ @definition = args[:definition] unless args[:definition].nil?
1148
+ @examples = args[:examples] unless args[:examples].nil?
1149
+ end
1150
+
1151
+ #
1152
+ class Example
1153
+ include Google::Apis::Core::Hashable
1154
+
1155
+ #
1156
+ # Corresponds to the JSON property `source`
1157
+ # @return [Google::Apis::BooksV1::DictLayerData::Dict::Word::Sense::Definition::Example::Source]
1158
+ attr_accessor :source
1159
+
1160
+ #
1161
+ # Corresponds to the JSON property `text`
1162
+ # @return [String]
1163
+ attr_accessor :text
1164
+
1165
+ def initialize(**args)
1166
+ update!(**args)
1167
+ end
1168
+
1169
+ # Update properties of this object
1170
+ def update!(**args)
1171
+ @source = args[:source] unless args[:source].nil?
1172
+ @text = args[:text] unless args[:text].nil?
1173
+ end
1174
+
1175
+ #
1176
+ class Source
1177
+ include Google::Apis::Core::Hashable
1178
+
1179
+ #
1180
+ # Corresponds to the JSON property `attribution`
1181
+ # @return [String]
1182
+ attr_accessor :attribution
1183
+
1184
+ #
1185
+ # Corresponds to the JSON property `url`
1186
+ # @return [String]
1187
+ attr_accessor :url
1188
+
1189
+ def initialize(**args)
1190
+ update!(**args)
1191
+ end
1192
+
1193
+ # Update properties of this object
1194
+ def update!(**args)
1195
+ @attribution = args[:attribution] unless args[:attribution].nil?
1196
+ @url = args[:url] unless args[:url].nil?
1197
+ end
1198
+ end
1199
+ end
1200
+ end
1201
+
1202
+ #
1203
+ class Source
1204
+ include Google::Apis::Core::Hashable
1205
+
1206
+ #
1207
+ # Corresponds to the JSON property `attribution`
1208
+ # @return [String]
1209
+ attr_accessor :attribution
1210
+
1211
+ #
1212
+ # Corresponds to the JSON property `url`
1213
+ # @return [String]
1214
+ attr_accessor :url
1215
+
1216
+ def initialize(**args)
1217
+ update!(**args)
1218
+ end
1219
+
1220
+ # Update properties of this object
1221
+ def update!(**args)
1222
+ @attribution = args[:attribution] unless args[:attribution].nil?
1223
+ @url = args[:url] unless args[:url].nil?
1224
+ end
1225
+ end
1226
+
1227
+ #
1228
+ class Synonym
1229
+ include Google::Apis::Core::Hashable
1230
+
1231
+ #
1232
+ # Corresponds to the JSON property `source`
1233
+ # @return [Google::Apis::BooksV1::DictLayerData::Dict::Word::Sense::Synonym::Source]
1234
+ attr_accessor :source
1235
+
1236
+ #
1237
+ # Corresponds to the JSON property `text`
1238
+ # @return [String]
1239
+ attr_accessor :text
1240
+
1241
+ def initialize(**args)
1242
+ update!(**args)
1243
+ end
1244
+
1245
+ # Update properties of this object
1246
+ def update!(**args)
1247
+ @source = args[:source] unless args[:source].nil?
1248
+ @text = args[:text] unless args[:text].nil?
1249
+ end
1250
+
1251
+ #
1252
+ class Source
1253
+ include Google::Apis::Core::Hashable
1254
+
1255
+ #
1256
+ # Corresponds to the JSON property `attribution`
1257
+ # @return [String]
1258
+ attr_accessor :attribution
1259
+
1260
+ #
1261
+ # Corresponds to the JSON property `url`
1262
+ # @return [String]
1263
+ attr_accessor :url
1264
+
1265
+ def initialize(**args)
1266
+ update!(**args)
1267
+ end
1268
+
1269
+ # Update properties of this object
1270
+ def update!(**args)
1271
+ @attribution = args[:attribution] unless args[:attribution].nil?
1272
+ @url = args[:url] unless args[:url].nil?
1273
+ end
1274
+ end
1275
+ end
1276
+ end
1277
+
1278
+ # The words with different meanings but not related words, e.g. "go" (game) and "
1279
+ # go" (verb).
1280
+ class Source
1281
+ include Google::Apis::Core::Hashable
1282
+
1283
+ #
1284
+ # Corresponds to the JSON property `attribution`
1285
+ # @return [String]
1286
+ attr_accessor :attribution
1287
+
1288
+ #
1289
+ # Corresponds to the JSON property `url`
1290
+ # @return [String]
1291
+ attr_accessor :url
1292
+
1293
+ def initialize(**args)
1294
+ update!(**args)
1295
+ end
1296
+
1297
+ # Update properties of this object
1298
+ def update!(**args)
1299
+ @attribution = args[:attribution] unless args[:attribution].nil?
1300
+ @url = args[:url] unless args[:url].nil?
1301
+ end
1302
+ end
1303
+ end
1304
+ end
1305
+ end
1306
+
1307
+ #
1308
+ class DownloadAccessRestriction
1309
+ include Google::Apis::Core::Hashable
1310
+
1311
+ # If restricted, whether access is granted for this (user, device, volume).
1312
+ # Corresponds to the JSON property `deviceAllowed`
1313
+ # @return [Boolean]
1314
+ attr_accessor :device_allowed
1315
+ alias_method :device_allowed?, :device_allowed
1316
+
1317
+ # If restricted, the number of content download licenses already acquired (
1318
+ # including the requesting client, if licensed).
1319
+ # Corresponds to the JSON property `downloadsAcquired`
1320
+ # @return [Fixnum]
1321
+ attr_accessor :downloads_acquired
1322
+
1323
+ # If deviceAllowed, whether access was just acquired with this request.
1324
+ # Corresponds to the JSON property `justAcquired`
1325
+ # @return [Boolean]
1326
+ attr_accessor :just_acquired
1327
+ alias_method :just_acquired?, :just_acquired
1328
+
1329
+ # Resource type.
1330
+ # Corresponds to the JSON property `kind`
1331
+ # @return [String]
1332
+ attr_accessor :kind
1333
+
1334
+ # If restricted, the maximum number of content download licenses for this volume.
1335
+ # Corresponds to the JSON property `maxDownloadDevices`
1336
+ # @return [Fixnum]
1337
+ attr_accessor :max_download_devices
1338
+
1339
+ # Error/warning message.
1340
+ # Corresponds to the JSON property `message`
1341
+ # @return [String]
1342
+ attr_accessor :message
1343
+
1344
+ # Client nonce for verification. Download access and client-validation only.
1345
+ # Corresponds to the JSON property `nonce`
1346
+ # @return [String]
1347
+ attr_accessor :nonce
1348
+
1349
+ # Error/warning reason code. Additional codes may be added in the future. 0 OK
1350
+ # 100 ACCESS_DENIED_PUBLISHER_LIMIT 101 ACCESS_DENIED_LIMIT 200
1351
+ # WARNING_USED_LAST_ACCESS
1352
+ # Corresponds to the JSON property `reasonCode`
1353
+ # @return [String]
1354
+ attr_accessor :reason_code
1355
+
1356
+ # Whether this volume has any download access restrictions.
1357
+ # Corresponds to the JSON property `restricted`
1358
+ # @return [Boolean]
1359
+ attr_accessor :restricted
1360
+ alias_method :restricted?, :restricted
1361
+
1362
+ # Response signature.
1363
+ # Corresponds to the JSON property `signature`
1364
+ # @return [String]
1365
+ attr_accessor :signature
1366
+
1367
+ # Client app identifier for verification. Download access and client-validation
1368
+ # only.
1369
+ # Corresponds to the JSON property `source`
1370
+ # @return [String]
1371
+ attr_accessor :source
1372
+
1373
+ # Identifies the volume for which this entry applies.
1374
+ # Corresponds to the JSON property `volumeId`
1375
+ # @return [String]
1376
+ attr_accessor :volume_id
1377
+
1378
+ def initialize(**args)
1379
+ update!(**args)
1380
+ end
1381
+
1382
+ # Update properties of this object
1383
+ def update!(**args)
1384
+ @device_allowed = args[:device_allowed] unless args[:device_allowed].nil?
1385
+ @downloads_acquired = args[:downloads_acquired] unless args[:downloads_acquired].nil?
1386
+ @just_acquired = args[:just_acquired] unless args[:just_acquired].nil?
1387
+ @kind = args[:kind] unless args[:kind].nil?
1388
+ @max_download_devices = args[:max_download_devices] unless args[:max_download_devices].nil?
1389
+ @message = args[:message] unless args[:message].nil?
1390
+ @nonce = args[:nonce] unless args[:nonce].nil?
1391
+ @reason_code = args[:reason_code] unless args[:reason_code].nil?
1392
+ @restricted = args[:restricted] unless args[:restricted].nil?
1393
+ @signature = args[:signature] unless args[:signature].nil?
1394
+ @source = args[:source] unless args[:source].nil?
1395
+ @volume_id = args[:volume_id] unless args[:volume_id].nil?
1396
+ end
1397
+ end
1398
+
1399
+ #
1400
+ class DownloadAccesses
1401
+ include Google::Apis::Core::Hashable
1402
+
1403
+ # A list of download access responses.
1404
+ # Corresponds to the JSON property `downloadAccessList`
1405
+ # @return [Array<Google::Apis::BooksV1::DownloadAccessRestriction>]
1406
+ attr_accessor :download_access_list
1407
+
1408
+ # Resource type.
1409
+ # Corresponds to the JSON property `kind`
1410
+ # @return [String]
1411
+ attr_accessor :kind
1412
+
1413
+ def initialize(**args)
1414
+ update!(**args)
1415
+ end
1416
+
1417
+ # Update properties of this object
1418
+ def update!(**args)
1419
+ @download_access_list = args[:download_access_list] unless args[:download_access_list].nil?
1420
+ @kind = args[:kind] unless args[:kind].nil?
1421
+ end
1422
+ end
1423
+
1424
+ #
1425
+ class GeoLayerData
1426
+ include Google::Apis::Core::Hashable
1427
+
1428
+ #
1429
+ # Corresponds to the JSON property `common`
1430
+ # @return [Google::Apis::BooksV1::GeoLayerData::Common]
1431
+ attr_accessor :common
1432
+
1433
+ #
1434
+ # Corresponds to the JSON property `geo`
1435
+ # @return [Google::Apis::BooksV1::GeoLayerData::Geo]
1436
+ attr_accessor :geo
1437
+
1438
+ #
1439
+ # Corresponds to the JSON property `kind`
1440
+ # @return [String]
1441
+ attr_accessor :kind
1442
+
1443
+ def initialize(**args)
1444
+ update!(**args)
1445
+ end
1446
+
1447
+ # Update properties of this object
1448
+ def update!(**args)
1449
+ @common = args[:common] unless args[:common].nil?
1450
+ @geo = args[:geo] unless args[:geo].nil?
1451
+ @kind = args[:kind] unless args[:kind].nil?
1452
+ end
1453
+
1454
+ #
1455
+ class Common
1456
+ include Google::Apis::Core::Hashable
1457
+
1458
+ # The language of the information url and description.
1459
+ # Corresponds to the JSON property `lang`
1460
+ # @return [String]
1461
+ attr_accessor :lang
1462
+
1463
+ # The URL for the preview image information.
1464
+ # Corresponds to the JSON property `previewImageUrl`
1465
+ # @return [String]
1466
+ attr_accessor :preview_image_url
1467
+
1468
+ # The description for this location.
1469
+ # Corresponds to the JSON property `snippet`
1470
+ # @return [String]
1471
+ attr_accessor :snippet
1472
+
1473
+ # The URL for information for this location. Ex: wikipedia link.
1474
+ # Corresponds to the JSON property `snippetUrl`
1475
+ # @return [String]
1476
+ attr_accessor :snippet_url
1477
+
1478
+ # The display title and localized canonical name to use when searching for this
1479
+ # entity on Google search.
1480
+ # Corresponds to the JSON property `title`
1481
+ # @return [String]
1482
+ attr_accessor :title
1483
+
1484
+ def initialize(**args)
1485
+ update!(**args)
1486
+ end
1487
+
1488
+ # Update properties of this object
1489
+ def update!(**args)
1490
+ @lang = args[:lang] unless args[:lang].nil?
1491
+ @preview_image_url = args[:preview_image_url] unless args[:preview_image_url].nil?
1492
+ @snippet = args[:snippet] unless args[:snippet].nil?
1493
+ @snippet_url = args[:snippet_url] unless args[:snippet_url].nil?
1494
+ @title = args[:title] unless args[:title].nil?
1495
+ end
1496
+ end
1497
+
1498
+ #
1499
+ class Geo
1500
+ include Google::Apis::Core::Hashable
1501
+
1502
+ # The boundary of the location as a set of loops containing pairs of latitude,
1503
+ # longitude coordinates.
1504
+ # Corresponds to the JSON property `boundary`
1505
+ # @return [Array<Array<Google::Apis::BooksV1::GeoLayerData::Geo::Boundary>>]
1506
+ attr_accessor :boundary
1507
+
1508
+ # The cache policy active for this data. EX: UNRESTRICTED, RESTRICTED, NEVER
1509
+ # Corresponds to the JSON property `cachePolicy`
1510
+ # @return [String]
1511
+ attr_accessor :cache_policy
1512
+
1513
+ # The country code of the location.
1514
+ # Corresponds to the JSON property `countryCode`
1515
+ # @return [String]
1516
+ attr_accessor :country_code
1517
+
1518
+ # The latitude of the location.
1519
+ # Corresponds to the JSON property `latitude`
1520
+ # @return [Float]
1521
+ attr_accessor :latitude
1522
+
1523
+ # The longitude of the location.
1524
+ # Corresponds to the JSON property `longitude`
1525
+ # @return [Float]
1526
+ attr_accessor :longitude
1527
+
1528
+ # The type of map that should be used for this location. EX: HYBRID, ROADMAP,
1529
+ # SATELLITE, TERRAIN
1530
+ # Corresponds to the JSON property `mapType`
1531
+ # @return [String]
1532
+ attr_accessor :map_type
1533
+
1534
+ # The viewport for showing this location. This is a latitude, longitude
1535
+ # rectangle.
1536
+ # Corresponds to the JSON property `viewport`
1537
+ # @return [Google::Apis::BooksV1::GeoLayerData::Geo::Viewport]
1538
+ attr_accessor :viewport
1539
+
1540
+ # The Zoom level to use for the map. Zoom levels between 0 (the lowest zoom
1541
+ # level, in which the entire world can be seen on one map) to 21+ (down to
1542
+ # individual buildings). See: https://developers.google.com/maps/documentation/
1543
+ # staticmaps/#Zoomlevels
1544
+ # Corresponds to the JSON property `zoom`
1545
+ # @return [Fixnum]
1546
+ attr_accessor :zoom
1547
+
1548
+ def initialize(**args)
1549
+ update!(**args)
1550
+ end
1551
+
1552
+ # Update properties of this object
1553
+ def update!(**args)
1554
+ @boundary = args[:boundary] unless args[:boundary].nil?
1555
+ @cache_policy = args[:cache_policy] unless args[:cache_policy].nil?
1556
+ @country_code = args[:country_code] unless args[:country_code].nil?
1557
+ @latitude = args[:latitude] unless args[:latitude].nil?
1558
+ @longitude = args[:longitude] unless args[:longitude].nil?
1559
+ @map_type = args[:map_type] unless args[:map_type].nil?
1560
+ @viewport = args[:viewport] unless args[:viewport].nil?
1561
+ @zoom = args[:zoom] unless args[:zoom].nil?
1562
+ end
1563
+
1564
+ #
1565
+ class Boundary
1566
+ include Google::Apis::Core::Hashable
1567
+
1568
+ #
1569
+ # Corresponds to the JSON property `latitude`
1570
+ # @return [Fixnum]
1571
+ attr_accessor :latitude
1572
+
1573
+ #
1574
+ # Corresponds to the JSON property `longitude`
1575
+ # @return [Fixnum]
1576
+ attr_accessor :longitude
1577
+
1578
+ def initialize(**args)
1579
+ update!(**args)
1580
+ end
1581
+
1582
+ # Update properties of this object
1583
+ def update!(**args)
1584
+ @latitude = args[:latitude] unless args[:latitude].nil?
1585
+ @longitude = args[:longitude] unless args[:longitude].nil?
1586
+ end
1587
+ end
1588
+
1589
+ # The viewport for showing this location. This is a latitude, longitude
1590
+ # rectangle.
1591
+ class Viewport
1592
+ include Google::Apis::Core::Hashable
1593
+
1594
+ #
1595
+ # Corresponds to the JSON property `hi`
1596
+ # @return [Google::Apis::BooksV1::GeoLayerData::Geo::Viewport::Hi]
1597
+ attr_accessor :hi
1598
+
1599
+ #
1600
+ # Corresponds to the JSON property `lo`
1601
+ # @return [Google::Apis::BooksV1::GeoLayerData::Geo::Viewport::Lo]
1602
+ attr_accessor :lo
1603
+
1604
+ def initialize(**args)
1605
+ update!(**args)
1606
+ end
1607
+
1608
+ # Update properties of this object
1609
+ def update!(**args)
1610
+ @hi = args[:hi] unless args[:hi].nil?
1611
+ @lo = args[:lo] unless args[:lo].nil?
1612
+ end
1613
+
1614
+ #
1615
+ class Hi
1616
+ include Google::Apis::Core::Hashable
1617
+
1618
+ #
1619
+ # Corresponds to the JSON property `latitude`
1620
+ # @return [Float]
1621
+ attr_accessor :latitude
1622
+
1623
+ #
1624
+ # Corresponds to the JSON property `longitude`
1625
+ # @return [Float]
1626
+ attr_accessor :longitude
1627
+
1628
+ def initialize(**args)
1629
+ update!(**args)
1630
+ end
1631
+
1632
+ # Update properties of this object
1633
+ def update!(**args)
1634
+ @latitude = args[:latitude] unless args[:latitude].nil?
1635
+ @longitude = args[:longitude] unless args[:longitude].nil?
1636
+ end
1637
+ end
1638
+
1639
+ #
1640
+ class Lo
1641
+ include Google::Apis::Core::Hashable
1642
+
1643
+ #
1644
+ # Corresponds to the JSON property `latitude`
1645
+ # @return [Float]
1646
+ attr_accessor :latitude
1647
+
1648
+ #
1649
+ # Corresponds to the JSON property `longitude`
1650
+ # @return [Float]
1651
+ attr_accessor :longitude
1652
+
1653
+ def initialize(**args)
1654
+ update!(**args)
1655
+ end
1656
+
1657
+ # Update properties of this object
1658
+ def update!(**args)
1659
+ @latitude = args[:latitude] unless args[:latitude].nil?
1660
+ @longitude = args[:longitude] unless args[:longitude].nil?
1661
+ end
1662
+ end
1663
+ end
1664
+ end
1665
+ end
1666
+
1667
+ #
1668
+ class LayerSummaries
1669
+ include Google::Apis::Core::Hashable
1670
+
1671
+ # A list of layer summary items.
1672
+ # Corresponds to the JSON property `items`
1673
+ # @return [Array<Google::Apis::BooksV1::LayerSummary>]
1674
+ attr_accessor :items
1675
+
1676
+ # Resource type.
1677
+ # Corresponds to the JSON property `kind`
1678
+ # @return [String]
1679
+ attr_accessor :kind
1680
+
1681
+ # The total number of layer summaries found.
1682
+ # Corresponds to the JSON property `totalItems`
1683
+ # @return [Fixnum]
1684
+ attr_accessor :total_items
1685
+
1686
+ def initialize(**args)
1687
+ update!(**args)
1688
+ end
1689
+
1690
+ # Update properties of this object
1691
+ def update!(**args)
1692
+ @items = args[:items] unless args[:items].nil?
1693
+ @kind = args[:kind] unless args[:kind].nil?
1694
+ @total_items = args[:total_items] unless args[:total_items].nil?
1695
+ end
1696
+ end
1697
+
1698
+ #
1699
+ class LayerSummary
1700
+ include Google::Apis::Core::Hashable
1701
+
1702
+ # The number of annotations for this layer.
1703
+ # Corresponds to the JSON property `annotationCount`
1704
+ # @return [Fixnum]
1705
+ attr_accessor :annotation_count
1706
+
1707
+ # The list of annotation types contained for this layer.
1708
+ # Corresponds to the JSON property `annotationTypes`
1709
+ # @return [Array<String>]
1710
+ attr_accessor :annotation_types
1711
+
1712
+ # Link to get data for this annotation.
1713
+ # Corresponds to the JSON property `annotationsDataLink`
1714
+ # @return [String]
1715
+ attr_accessor :annotations_data_link
1716
+
1717
+ # The link to get the annotations for this layer.
1718
+ # Corresponds to the JSON property `annotationsLink`
1719
+ # @return [String]
1720
+ attr_accessor :annotations_link
1721
+
1722
+ # The content version this resource is for.
1723
+ # Corresponds to the JSON property `contentVersion`
1724
+ # @return [String]
1725
+ attr_accessor :content_version
1726
+
1727
+ # The number of data items for this layer.
1728
+ # Corresponds to the JSON property `dataCount`
1729
+ # @return [Fixnum]
1730
+ attr_accessor :data_count
1731
+
1732
+ # Unique id of this layer summary.
1733
+ # Corresponds to the JSON property `id`
1734
+ # @return [String]
1735
+ attr_accessor :id
1736
+
1737
+ # Resource Type
1738
+ # Corresponds to the JSON property `kind`
1739
+ # @return [String]
1740
+ attr_accessor :kind
1741
+
1742
+ # The layer id for this summary.
1743
+ # Corresponds to the JSON property `layerId`
1744
+ # @return [String]
1745
+ attr_accessor :layer_id
1746
+
1747
+ # URL to this resource.
1748
+ # Corresponds to the JSON property `selfLink`
1749
+ # @return [String]
1750
+ attr_accessor :self_link
1751
+
1752
+ # Timestamp for the last time an item in this layer was updated. (RFC 3339 UTC
1753
+ # date-time format).
1754
+ # Corresponds to the JSON property `updated`
1755
+ # @return [DateTime]
1756
+ attr_accessor :updated
1757
+
1758
+ # The current version of this layer's volume annotations. Note that this version
1759
+ # applies only to the data in the books.layers.volumeAnnotations.* responses.
1760
+ # The actual annotation data is versioned separately.
1761
+ # Corresponds to the JSON property `volumeAnnotationsVersion`
1762
+ # @return [String]
1763
+ attr_accessor :volume_annotations_version
1764
+
1765
+ # The volume id this resource is for.
1766
+ # Corresponds to the JSON property `volumeId`
1767
+ # @return [String]
1768
+ attr_accessor :volume_id
1769
+
1770
+ def initialize(**args)
1771
+ update!(**args)
1772
+ end
1773
+
1774
+ # Update properties of this object
1775
+ def update!(**args)
1776
+ @annotation_count = args[:annotation_count] unless args[:annotation_count].nil?
1777
+ @annotation_types = args[:annotation_types] unless args[:annotation_types].nil?
1778
+ @annotations_data_link = args[:annotations_data_link] unless args[:annotations_data_link].nil?
1779
+ @annotations_link = args[:annotations_link] unless args[:annotations_link].nil?
1780
+ @content_version = args[:content_version] unless args[:content_version].nil?
1781
+ @data_count = args[:data_count] unless args[:data_count].nil?
1782
+ @id = args[:id] unless args[:id].nil?
1783
+ @kind = args[:kind] unless args[:kind].nil?
1784
+ @layer_id = args[:layer_id] unless args[:layer_id].nil?
1785
+ @self_link = args[:self_link] unless args[:self_link].nil?
1786
+ @updated = args[:updated] unless args[:updated].nil?
1787
+ @volume_annotations_version = args[:volume_annotations_version] unless args[:volume_annotations_version].nil?
1788
+ @volume_id = args[:volume_id] unless args[:volume_id].nil?
1789
+ end
1790
+ end
1791
+
1792
+ #
1793
+ class Metadata
1794
+ include Google::Apis::Core::Hashable
1795
+
1796
+ # A list of offline dictionary metadata.
1797
+ # Corresponds to the JSON property `items`
1798
+ # @return [Array<Google::Apis::BooksV1::Metadata::Item>]
1799
+ attr_accessor :items
1800
+
1801
+ # Resource type.
1802
+ # Corresponds to the JSON property `kind`
1803
+ # @return [String]
1804
+ attr_accessor :kind
1805
+
1806
+ def initialize(**args)
1807
+ update!(**args)
1808
+ end
1809
+
1810
+ # Update properties of this object
1811
+ def update!(**args)
1812
+ @items = args[:items] unless args[:items].nil?
1813
+ @kind = args[:kind] unless args[:kind].nil?
1814
+ end
1815
+
1816
+ #
1817
+ class Item
1818
+ include Google::Apis::Core::Hashable
1819
+
1820
+ #
1821
+ # Corresponds to the JSON property `download_url`
1822
+ # @return [String]
1823
+ attr_accessor :download_url
1824
+
1825
+ #
1826
+ # Corresponds to the JSON property `encrypted_key`
1827
+ # @return [String]
1828
+ attr_accessor :encrypted_key
1829
+
1830
+ #
1831
+ # Corresponds to the JSON property `language`
1832
+ # @return [String]
1833
+ attr_accessor :language
1834
+
1835
+ #
1836
+ # Corresponds to the JSON property `size`
1837
+ # @return [String]
1838
+ attr_accessor :size
1839
+
1840
+ #
1841
+ # Corresponds to the JSON property `version`
1842
+ # @return [String]
1843
+ attr_accessor :version
1844
+
1845
+ def initialize(**args)
1846
+ update!(**args)
1847
+ end
1848
+
1849
+ # Update properties of this object
1850
+ def update!(**args)
1851
+ @download_url = args[:download_url] unless args[:download_url].nil?
1852
+ @encrypted_key = args[:encrypted_key] unless args[:encrypted_key].nil?
1853
+ @language = args[:language] unless args[:language].nil?
1854
+ @size = args[:size] unless args[:size].nil?
1855
+ @version = args[:version] unless args[:version].nil?
1856
+ end
1857
+ end
1858
+ end
1859
+
1860
+ #
1861
+ class Offers
1862
+ include Google::Apis::Core::Hashable
1863
+
1864
+ # A list of offers.
1865
+ # Corresponds to the JSON property `items`
1866
+ # @return [Array<Google::Apis::BooksV1::Offers::Item>]
1867
+ attr_accessor :items
1868
+
1869
+ # Resource type.
1870
+ # Corresponds to the JSON property `kind`
1871
+ # @return [String]
1872
+ attr_accessor :kind
1873
+
1874
+ def initialize(**args)
1875
+ update!(**args)
1876
+ end
1877
+
1878
+ # Update properties of this object
1879
+ def update!(**args)
1880
+ @items = args[:items] unless args[:items].nil?
1881
+ @kind = args[:kind] unless args[:kind].nil?
1882
+ end
1883
+
1884
+ #
1885
+ class Item
1886
+ include Google::Apis::Core::Hashable
1887
+
1888
+ #
1889
+ # Corresponds to the JSON property `artUrl`
1890
+ # @return [String]
1891
+ attr_accessor :art_url
1892
+
1893
+ #
1894
+ # Corresponds to the JSON property `gservicesKey`
1895
+ # @return [String]
1896
+ attr_accessor :gservices_key
1897
+
1898
+ #
1899
+ # Corresponds to the JSON property `id`
1900
+ # @return [String]
1901
+ attr_accessor :id
1902
+
1903
+ #
1904
+ # Corresponds to the JSON property `items`
1905
+ # @return [Array<Google::Apis::BooksV1::Offers::Item::Item>]
1906
+ attr_accessor :items
1907
+
1908
+ def initialize(**args)
1909
+ update!(**args)
1910
+ end
1911
+
1912
+ # Update properties of this object
1913
+ def update!(**args)
1914
+ @art_url = args[:art_url] unless args[:art_url].nil?
1915
+ @gservices_key = args[:gservices_key] unless args[:gservices_key].nil?
1916
+ @id = args[:id] unless args[:id].nil?
1917
+ @items = args[:items] unless args[:items].nil?
1918
+ end
1919
+
1920
+ #
1921
+ class Item
1922
+ include Google::Apis::Core::Hashable
1923
+
1924
+ #
1925
+ # Corresponds to the JSON property `author`
1926
+ # @return [String]
1927
+ attr_accessor :author
1928
+
1929
+ #
1930
+ # Corresponds to the JSON property `canonicalVolumeLink`
1931
+ # @return [String]
1932
+ attr_accessor :canonical_volume_link
1933
+
1934
+ #
1935
+ # Corresponds to the JSON property `coverUrl`
1936
+ # @return [String]
1937
+ attr_accessor :cover_url
1938
+
1939
+ #
1940
+ # Corresponds to the JSON property `description`
1941
+ # @return [String]
1942
+ attr_accessor :description
1943
+
1944
+ #
1945
+ # Corresponds to the JSON property `title`
1946
+ # @return [String]
1947
+ attr_accessor :title
1948
+
1949
+ #
1950
+ # Corresponds to the JSON property `volumeId`
1951
+ # @return [String]
1952
+ attr_accessor :volume_id
1953
+
1954
+ def initialize(**args)
1955
+ update!(**args)
1956
+ end
1957
+
1958
+ # Update properties of this object
1959
+ def update!(**args)
1960
+ @author = args[:author] unless args[:author].nil?
1961
+ @canonical_volume_link = args[:canonical_volume_link] unless args[:canonical_volume_link].nil?
1962
+ @cover_url = args[:cover_url] unless args[:cover_url].nil?
1963
+ @description = args[:description] unless args[:description].nil?
1964
+ @title = args[:title] unless args[:title].nil?
1965
+ @volume_id = args[:volume_id] unless args[:volume_id].nil?
1966
+ end
1967
+ end
1968
+ end
1969
+ end
1970
+
1971
+ #
1972
+ class ReadingPosition
1973
+ include Google::Apis::Core::Hashable
1974
+
1975
+ # Position in an EPUB as a CFI.
1976
+ # Corresponds to the JSON property `epubCfiPosition`
1977
+ # @return [String]
1978
+ attr_accessor :epub_cfi_position
1979
+
1980
+ # Position in a volume for image-based content.
1981
+ # Corresponds to the JSON property `gbImagePosition`
1982
+ # @return [String]
1983
+ attr_accessor :gb_image_position
1984
+
1985
+ # Position in a volume for text-based content.
1986
+ # Corresponds to the JSON property `gbTextPosition`
1987
+ # @return [String]
1988
+ attr_accessor :gb_text_position
1989
+
1990
+ # Resource type for a reading position.
1991
+ # Corresponds to the JSON property `kind`
1992
+ # @return [String]
1993
+ attr_accessor :kind
1994
+
1995
+ # Position in a PDF file.
1996
+ # Corresponds to the JSON property `pdfPosition`
1997
+ # @return [String]
1998
+ attr_accessor :pdf_position
1999
+
2000
+ # Timestamp when this reading position was last updated (formatted UTC timestamp
2001
+ # with millisecond resolution).
2002
+ # Corresponds to the JSON property `updated`
2003
+ # @return [DateTime]
2004
+ attr_accessor :updated
2005
+
2006
+ # Volume id associated with this reading position.
2007
+ # Corresponds to the JSON property `volumeId`
2008
+ # @return [String]
2009
+ attr_accessor :volume_id
2010
+
2011
+ def initialize(**args)
2012
+ update!(**args)
2013
+ end
2014
+
2015
+ # Update properties of this object
2016
+ def update!(**args)
2017
+ @epub_cfi_position = args[:epub_cfi_position] unless args[:epub_cfi_position].nil?
2018
+ @gb_image_position = args[:gb_image_position] unless args[:gb_image_position].nil?
2019
+ @gb_text_position = args[:gb_text_position] unless args[:gb_text_position].nil?
2020
+ @kind = args[:kind] unless args[:kind].nil?
2021
+ @pdf_position = args[:pdf_position] unless args[:pdf_position].nil?
2022
+ @updated = args[:updated] unless args[:updated].nil?
2023
+ @volume_id = args[:volume_id] unless args[:volume_id].nil?
2024
+ end
2025
+ end
2026
+
2027
+ #
2028
+ class RequestAccess
2029
+ include Google::Apis::Core::Hashable
2030
+
2031
+ # A concurrent access response.
2032
+ # Corresponds to the JSON property `concurrentAccess`
2033
+ # @return [Google::Apis::BooksV1::ConcurrentAccessRestriction]
2034
+ attr_accessor :concurrent_access
2035
+
2036
+ # A download access response.
2037
+ # Corresponds to the JSON property `downloadAccess`
2038
+ # @return [Google::Apis::BooksV1::DownloadAccessRestriction]
2039
+ attr_accessor :download_access
2040
+
2041
+ # Resource type.
2042
+ # Corresponds to the JSON property `kind`
2043
+ # @return [String]
2044
+ attr_accessor :kind
2045
+
2046
+ def initialize(**args)
2047
+ update!(**args)
2048
+ end
2049
+
2050
+ # Update properties of this object
2051
+ def update!(**args)
2052
+ @concurrent_access = args[:concurrent_access] unless args[:concurrent_access].nil?
2053
+ @download_access = args[:download_access] unless args[:download_access].nil?
2054
+ @kind = args[:kind] unless args[:kind].nil?
2055
+ end
2056
+ end
2057
+
2058
+ #
2059
+ class Review
2060
+ include Google::Apis::Core::Hashable
2061
+
2062
+ # Author of this review.
2063
+ # Corresponds to the JSON property `author`
2064
+ # @return [Google::Apis::BooksV1::Review::Author]
2065
+ attr_accessor :author
2066
+
2067
+ # Review text.
2068
+ # Corresponds to the JSON property `content`
2069
+ # @return [String]
2070
+ attr_accessor :content
2071
+
2072
+ # Date of this review.
2073
+ # Corresponds to the JSON property `date`
2074
+ # @return [String]
2075
+ attr_accessor :date
2076
+
2077
+ # URL for the full review text, for reviews gathered from the web.
2078
+ # Corresponds to the JSON property `fullTextUrl`
2079
+ # @return [String]
2080
+ attr_accessor :full_text_url
2081
+
2082
+ # Resource type for a review.
2083
+ # Corresponds to the JSON property `kind`
2084
+ # @return [String]
2085
+ attr_accessor :kind
2086
+
2087
+ # Star rating for this review. Possible values are ONE, TWO, THREE, FOUR, FIVE
2088
+ # or NOT_RATED.
2089
+ # Corresponds to the JSON property `rating`
2090
+ # @return [String]
2091
+ attr_accessor :rating
2092
+
2093
+ # Information regarding the source of this review, when the review is not from a
2094
+ # Google Books user.
2095
+ # Corresponds to the JSON property `source`
2096
+ # @return [Google::Apis::BooksV1::Review::Source]
2097
+ attr_accessor :source
2098
+
2099
+ # Title for this review.
2100
+ # Corresponds to the JSON property `title`
2101
+ # @return [String]
2102
+ attr_accessor :title
2103
+
2104
+ # Source type for this review. Possible values are EDITORIAL, WEB_USER or
2105
+ # GOOGLE_USER.
2106
+ # Corresponds to the JSON property `type`
2107
+ # @return [String]
2108
+ attr_accessor :type
2109
+
2110
+ # Volume that this review is for.
2111
+ # Corresponds to the JSON property `volumeId`
2112
+ # @return [String]
2113
+ attr_accessor :volume_id
2114
+
2115
+ def initialize(**args)
2116
+ update!(**args)
2117
+ end
2118
+
2119
+ # Update properties of this object
2120
+ def update!(**args)
2121
+ @author = args[:author] unless args[:author].nil?
2122
+ @content = args[:content] unless args[:content].nil?
2123
+ @date = args[:date] unless args[:date].nil?
2124
+ @full_text_url = args[:full_text_url] unless args[:full_text_url].nil?
2125
+ @kind = args[:kind] unless args[:kind].nil?
2126
+ @rating = args[:rating] unless args[:rating].nil?
2127
+ @source = args[:source] unless args[:source].nil?
2128
+ @title = args[:title] unless args[:title].nil?
2129
+ @type = args[:type] unless args[:type].nil?
2130
+ @volume_id = args[:volume_id] unless args[:volume_id].nil?
2131
+ end
2132
+
2133
+ # Author of this review.
2134
+ class Author
2135
+ include Google::Apis::Core::Hashable
2136
+
2137
+ # Name of this person.
2138
+ # Corresponds to the JSON property `displayName`
2139
+ # @return [String]
2140
+ attr_accessor :display_name
2141
+
2142
+ def initialize(**args)
2143
+ update!(**args)
2144
+ end
2145
+
2146
+ # Update properties of this object
2147
+ def update!(**args)
2148
+ @display_name = args[:display_name] unless args[:display_name].nil?
2149
+ end
2150
+ end
2151
+
2152
+ # Information regarding the source of this review, when the review is not from a
2153
+ # Google Books user.
2154
+ class Source
2155
+ include Google::Apis::Core::Hashable
2156
+
2157
+ # Name of the source.
2158
+ # Corresponds to the JSON property `description`
2159
+ # @return [String]
2160
+ attr_accessor :description
2161
+
2162
+ # Extra text about the source of the review.
2163
+ # Corresponds to the JSON property `extraDescription`
2164
+ # @return [String]
2165
+ attr_accessor :extra_description
2166
+
2167
+ # URL of the source of the review.
2168
+ # Corresponds to the JSON property `url`
2169
+ # @return [String]
2170
+ attr_accessor :url
2171
+
2172
+ def initialize(**args)
2173
+ update!(**args)
2174
+ end
2175
+
2176
+ # Update properties of this object
2177
+ def update!(**args)
2178
+ @description = args[:description] unless args[:description].nil?
2179
+ @extra_description = args[:extra_description] unless args[:extra_description].nil?
2180
+ @url = args[:url] unless args[:url].nil?
2181
+ end
2182
+ end
2183
+ end
2184
+
2185
+ #
2186
+ class UserSettings
2187
+ include Google::Apis::Core::Hashable
2188
+
2189
+ # Resource type.
2190
+ # Corresponds to the JSON property `kind`
2191
+ # @return [String]
2192
+ attr_accessor :kind
2193
+
2194
+ # User settings in sub-objects, each for different purposes.
2195
+ # Corresponds to the JSON property `notesExport`
2196
+ # @return [Google::Apis::BooksV1::UserSettings::NotesExport]
2197
+ attr_accessor :notes_export
2198
+
2199
+ def initialize(**args)
2200
+ update!(**args)
2201
+ end
2202
+
2203
+ # Update properties of this object
2204
+ def update!(**args)
2205
+ @kind = args[:kind] unless args[:kind].nil?
2206
+ @notes_export = args[:notes_export] unless args[:notes_export].nil?
2207
+ end
2208
+
2209
+ # User settings in sub-objects, each for different purposes.
2210
+ class NotesExport
2211
+ include Google::Apis::Core::Hashable
2212
+
2213
+ #
2214
+ # Corresponds to the JSON property `folderName`
2215
+ # @return [String]
2216
+ attr_accessor :folder_name
2217
+
2218
+ #
2219
+ # Corresponds to the JSON property `isEnabled`
2220
+ # @return [Boolean]
2221
+ attr_accessor :is_enabled
2222
+ alias_method :is_enabled?, :is_enabled
2223
+
2224
+ def initialize(**args)
2225
+ update!(**args)
2226
+ end
2227
+
2228
+ # Update properties of this object
2229
+ def update!(**args)
2230
+ @folder_name = args[:folder_name] unless args[:folder_name].nil?
2231
+ @is_enabled = args[:is_enabled] unless args[:is_enabled].nil?
2232
+ end
2233
+ end
2234
+ end
2235
+
2236
+ #
2237
+ class Volume
2238
+ include Google::Apis::Core::Hashable
2239
+
2240
+ # Any information about a volume related to reading or obtaining that volume
2241
+ # text. This information can depend on country (books may be public domain in
2242
+ # one country but not in another, e.g.).
2243
+ # Corresponds to the JSON property `accessInfo`
2244
+ # @return [Google::Apis::BooksV1::Volume::AccessInfo]
2245
+ attr_accessor :access_info
2246
+
2247
+ # Opaque identifier for a specific version of a volume resource. (In LITE
2248
+ # projection)
2249
+ # Corresponds to the JSON property `etag`
2250
+ # @return [String]
2251
+ attr_accessor :etag
2252
+
2253
+ # Unique identifier for a volume. (In LITE projection.)
2254
+ # Corresponds to the JSON property `id`
2255
+ # @return [String]
2256
+ attr_accessor :id
2257
+
2258
+ # Resource type for a volume. (In LITE projection.)
2259
+ # Corresponds to the JSON property `kind`
2260
+ # @return [String]
2261
+ attr_accessor :kind
2262
+
2263
+ # What layers exist in this volume and high level information about them.
2264
+ # Corresponds to the JSON property `layerInfo`
2265
+ # @return [Google::Apis::BooksV1::Volume::LayerInfo]
2266
+ attr_accessor :layer_info
2267
+
2268
+ # Recommendation related information for this volume.
2269
+ # Corresponds to the JSON property `recommendedInfo`
2270
+ # @return [Google::Apis::BooksV1::Volume::RecommendedInfo]
2271
+ attr_accessor :recommended_info
2272
+
2273
+ # Any information about a volume related to the eBookstore and/or
2274
+ # purchaseability. This information can depend on the country where the request
2275
+ # originates from (i.e. books may not be for sale in certain countries).
2276
+ # Corresponds to the JSON property `saleInfo`
2277
+ # @return [Google::Apis::BooksV1::Volume::SaleInfo]
2278
+ attr_accessor :sale_info
2279
+
2280
+ # Search result information related to this volume.
2281
+ # Corresponds to the JSON property `searchInfo`
2282
+ # @return [Google::Apis::BooksV1::Volume::SearchInfo]
2283
+ attr_accessor :search_info
2284
+
2285
+ # URL to this resource. (In LITE projection.)
2286
+ # Corresponds to the JSON property `selfLink`
2287
+ # @return [String]
2288
+ attr_accessor :self_link
2289
+
2290
+ # User specific information related to this volume. (e.g. page this user last
2291
+ # read or whether they purchased this book)
2292
+ # Corresponds to the JSON property `userInfo`
2293
+ # @return [Google::Apis::BooksV1::Volume::UserInfo]
2294
+ attr_accessor :user_info
2295
+
2296
+ # General volume information.
2297
+ # Corresponds to the JSON property `volumeInfo`
2298
+ # @return [Google::Apis::BooksV1::Volume::VolumeInfo]
2299
+ attr_accessor :volume_info
2300
+
2301
+ def initialize(**args)
2302
+ update!(**args)
2303
+ end
2304
+
2305
+ # Update properties of this object
2306
+ def update!(**args)
2307
+ @access_info = args[:access_info] unless args[:access_info].nil?
2308
+ @etag = args[:etag] unless args[:etag].nil?
2309
+ @id = args[:id] unless args[:id].nil?
2310
+ @kind = args[:kind] unless args[:kind].nil?
2311
+ @layer_info = args[:layer_info] unless args[:layer_info].nil?
2312
+ @recommended_info = args[:recommended_info] unless args[:recommended_info].nil?
2313
+ @sale_info = args[:sale_info] unless args[:sale_info].nil?
2314
+ @search_info = args[:search_info] unless args[:search_info].nil?
2315
+ @self_link = args[:self_link] unless args[:self_link].nil?
2316
+ @user_info = args[:user_info] unless args[:user_info].nil?
2317
+ @volume_info = args[:volume_info] unless args[:volume_info].nil?
2318
+ end
2319
+
2320
+ # Any information about a volume related to reading or obtaining that volume
2321
+ # text. This information can depend on country (books may be public domain in
2322
+ # one country but not in another, e.g.).
2323
+ class AccessInfo
2324
+ include Google::Apis::Core::Hashable
2325
+
2326
+ # Combines the access and viewability of this volume into a single status field
2327
+ # for this user. Values can be FULL_PURCHASED, FULL_PUBLIC_DOMAIN, SAMPLE or
2328
+ # NONE. (In LITE projection.)
2329
+ # Corresponds to the JSON property `accessViewStatus`
2330
+ # @return [String]
2331
+ attr_accessor :access_view_status
2332
+
2333
+ # The two-letter ISO_3166-1 country code for which this access information is
2334
+ # valid. (In LITE projection.)
2335
+ # Corresponds to the JSON property `country`
2336
+ # @return [String]
2337
+ attr_accessor :country
2338
+
2339
+ # Information about a volume's download license access restrictions.
2340
+ # Corresponds to the JSON property `downloadAccess`
2341
+ # @return [Google::Apis::BooksV1::DownloadAccessRestriction]
2342
+ attr_accessor :download_access
2343
+
2344
+ # URL to the Google Drive viewer if this volume is uploaded by the user by
2345
+ # selecting the file from Google Drive.
2346
+ # Corresponds to the JSON property `driveImportedContentLink`
2347
+ # @return [String]
2348
+ attr_accessor :drive_imported_content_link
2349
+
2350
+ # Whether this volume can be embedded in a viewport using the Embedded Viewer
2351
+ # API.
2352
+ # Corresponds to the JSON property `embeddable`
2353
+ # @return [Boolean]
2354
+ attr_accessor :embeddable
2355
+ alias_method :embeddable?, :embeddable
2356
+
2357
+ # Information about epub content. (In LITE projection.)
2358
+ # Corresponds to the JSON property `epub`
2359
+ # @return [Google::Apis::BooksV1::Volume::AccessInfo::Epub]
2360
+ attr_accessor :epub
2361
+
2362
+ # Whether this volume requires that the client explicitly request offline
2363
+ # download license rather than have it done automatically when loading the
2364
+ # content, if the client supports it.
2365
+ # Corresponds to the JSON property `explicitOfflineLicenseManagement`
2366
+ # @return [Boolean]
2367
+ attr_accessor :explicit_offline_license_management
2368
+ alias_method :explicit_offline_license_management?, :explicit_offline_license_management
2369
+
2370
+ # Information about pdf content. (In LITE projection.)
2371
+ # Corresponds to the JSON property `pdf`
2372
+ # @return [Google::Apis::BooksV1::Volume::AccessInfo::Pdf]
2373
+ attr_accessor :pdf
2374
+
2375
+ # Whether or not this book is public domain in the country listed above.
2376
+ # Corresponds to the JSON property `publicDomain`
2377
+ # @return [Boolean]
2378
+ attr_accessor :public_domain
2379
+ alias_method :public_domain?, :public_domain
2380
+
2381
+ # Whether quote sharing is allowed for this volume.
2382
+ # Corresponds to the JSON property `quoteSharingAllowed`
2383
+ # @return [Boolean]
2384
+ attr_accessor :quote_sharing_allowed
2385
+ alias_method :quote_sharing_allowed?, :quote_sharing_allowed
2386
+
2387
+ # Whether text-to-speech is permitted for this volume. Values can be ALLOWED,
2388
+ # ALLOWED_FOR_ACCESSIBILITY, or NOT_ALLOWED.
2389
+ # Corresponds to the JSON property `textToSpeechPermission`
2390
+ # @return [String]
2391
+ attr_accessor :text_to_speech_permission
2392
+
2393
+ # For ordered but not yet processed orders, we give a URL that can be used to go
2394
+ # to the appropriate Google Wallet page.
2395
+ # Corresponds to the JSON property `viewOrderUrl`
2396
+ # @return [String]
2397
+ attr_accessor :view_order_url
2398
+
2399
+ # The read access of a volume. Possible values are PARTIAL, ALL_PAGES, NO_PAGES
2400
+ # or UNKNOWN. This value depends on the country listed above. A value of PARTIAL
2401
+ # means that the publisher has allowed some portion of the volume to be viewed
2402
+ # publicly, without purchase. This can apply to eBooks as well as non-eBooks.
2403
+ # Public domain books will always have a value of ALL_PAGES.
2404
+ # Corresponds to the JSON property `viewability`
2405
+ # @return [String]
2406
+ attr_accessor :viewability
2407
+
2408
+ # URL to read this volume on the Google Books site. Link will not allow users to
2409
+ # read non-viewable volumes.
2410
+ # Corresponds to the JSON property `webReaderLink`
2411
+ # @return [String]
2412
+ attr_accessor :web_reader_link
2413
+
2414
+ def initialize(**args)
2415
+ update!(**args)
2416
+ end
2417
+
2418
+ # Update properties of this object
2419
+ def update!(**args)
2420
+ @access_view_status = args[:access_view_status] unless args[:access_view_status].nil?
2421
+ @country = args[:country] unless args[:country].nil?
2422
+ @download_access = args[:download_access] unless args[:download_access].nil?
2423
+ @drive_imported_content_link = args[:drive_imported_content_link] unless args[:drive_imported_content_link].nil?
2424
+ @embeddable = args[:embeddable] unless args[:embeddable].nil?
2425
+ @epub = args[:epub] unless args[:epub].nil?
2426
+ @explicit_offline_license_management = args[:explicit_offline_license_management] unless args[:explicit_offline_license_management].nil?
2427
+ @pdf = args[:pdf] unless args[:pdf].nil?
2428
+ @public_domain = args[:public_domain] unless args[:public_domain].nil?
2429
+ @quote_sharing_allowed = args[:quote_sharing_allowed] unless args[:quote_sharing_allowed].nil?
2430
+ @text_to_speech_permission = args[:text_to_speech_permission] unless args[:text_to_speech_permission].nil?
2431
+ @view_order_url = args[:view_order_url] unless args[:view_order_url].nil?
2432
+ @viewability = args[:viewability] unless args[:viewability].nil?
2433
+ @web_reader_link = args[:web_reader_link] unless args[:web_reader_link].nil?
2434
+ end
2435
+
2436
+ # Information about epub content. (In LITE projection.)
2437
+ class Epub
2438
+ include Google::Apis::Core::Hashable
2439
+
2440
+ # URL to retrieve ACS token for epub download. (In LITE projection.)
2441
+ # Corresponds to the JSON property `acsTokenLink`
2442
+ # @return [String]
2443
+ attr_accessor :acs_token_link
2444
+
2445
+ # URL to download epub. (In LITE projection.)
2446
+ # Corresponds to the JSON property `downloadLink`
2447
+ # @return [String]
2448
+ attr_accessor :download_link
2449
+
2450
+ # Is a flowing text epub available either as public domain or for purchase. (In
2451
+ # LITE projection.)
2452
+ # Corresponds to the JSON property `isAvailable`
2453
+ # @return [Boolean]
2454
+ attr_accessor :is_available
2455
+ alias_method :is_available?, :is_available
2456
+
2457
+ def initialize(**args)
2458
+ update!(**args)
2459
+ end
2460
+
2461
+ # Update properties of this object
2462
+ def update!(**args)
2463
+ @acs_token_link = args[:acs_token_link] unless args[:acs_token_link].nil?
2464
+ @download_link = args[:download_link] unless args[:download_link].nil?
2465
+ @is_available = args[:is_available] unless args[:is_available].nil?
2466
+ end
2467
+ end
2468
+
2469
+ # Information about pdf content. (In LITE projection.)
2470
+ class Pdf
2471
+ include Google::Apis::Core::Hashable
2472
+
2473
+ # URL to retrieve ACS token for pdf download. (In LITE projection.)
2474
+ # Corresponds to the JSON property `acsTokenLink`
2475
+ # @return [String]
2476
+ attr_accessor :acs_token_link
2477
+
2478
+ # URL to download pdf. (In LITE projection.)
2479
+ # Corresponds to the JSON property `downloadLink`
2480
+ # @return [String]
2481
+ attr_accessor :download_link
2482
+
2483
+ # Is a scanned image pdf available either as public domain or for purchase. (In
2484
+ # LITE projection.)
2485
+ # Corresponds to the JSON property `isAvailable`
2486
+ # @return [Boolean]
2487
+ attr_accessor :is_available
2488
+ alias_method :is_available?, :is_available
2489
+
2490
+ def initialize(**args)
2491
+ update!(**args)
2492
+ end
2493
+
2494
+ # Update properties of this object
2495
+ def update!(**args)
2496
+ @acs_token_link = args[:acs_token_link] unless args[:acs_token_link].nil?
2497
+ @download_link = args[:download_link] unless args[:download_link].nil?
2498
+ @is_available = args[:is_available] unless args[:is_available].nil?
2499
+ end
2500
+ end
2501
+ end
2502
+
2503
+ # What layers exist in this volume and high level information about them.
2504
+ class LayerInfo
2505
+ include Google::Apis::Core::Hashable
2506
+
2507
+ # A layer should appear here if and only if the layer exists for this book.
2508
+ # Corresponds to the JSON property `layers`
2509
+ # @return [Array<Google::Apis::BooksV1::Volume::LayerInfo::Layer>]
2510
+ attr_accessor :layers
2511
+
2512
+ def initialize(**args)
2513
+ update!(**args)
2514
+ end
2515
+
2516
+ # Update properties of this object
2517
+ def update!(**args)
2518
+ @layers = args[:layers] unless args[:layers].nil?
2519
+ end
2520
+
2521
+ #
2522
+ class Layer
2523
+ include Google::Apis::Core::Hashable
2524
+
2525
+ # The layer id of this layer (e.g. "geo").
2526
+ # Corresponds to the JSON property `layerId`
2527
+ # @return [String]
2528
+ attr_accessor :layer_id
2529
+
2530
+ # The current version of this layer's volume annotations. Note that this version
2531
+ # applies only to the data in the books.layers.volumeAnnotations.* responses.
2532
+ # The actual annotation data is versioned separately.
2533
+ # Corresponds to the JSON property `volumeAnnotationsVersion`
2534
+ # @return [String]
2535
+ attr_accessor :volume_annotations_version
2536
+
2537
+ def initialize(**args)
2538
+ update!(**args)
2539
+ end
2540
+
2541
+ # Update properties of this object
2542
+ def update!(**args)
2543
+ @layer_id = args[:layer_id] unless args[:layer_id].nil?
2544
+ @volume_annotations_version = args[:volume_annotations_version] unless args[:volume_annotations_version].nil?
2545
+ end
2546
+ end
2547
+ end
2548
+
2549
+ # Recommendation related information for this volume.
2550
+ class RecommendedInfo
2551
+ include Google::Apis::Core::Hashable
2552
+
2553
+ # A text explaining why this volume is recommended.
2554
+ # Corresponds to the JSON property `explanation`
2555
+ # @return [String]
2556
+ attr_accessor :explanation
2557
+
2558
+ def initialize(**args)
2559
+ update!(**args)
2560
+ end
2561
+
2562
+ # Update properties of this object
2563
+ def update!(**args)
2564
+ @explanation = args[:explanation] unless args[:explanation].nil?
2565
+ end
2566
+ end
2567
+
2568
+ # Any information about a volume related to the eBookstore and/or
2569
+ # purchaseability. This information can depend on the country where the request
2570
+ # originates from (i.e. books may not be for sale in certain countries).
2571
+ class SaleInfo
2572
+ include Google::Apis::Core::Hashable
2573
+
2574
+ # URL to purchase this volume on the Google Books site. (In LITE projection)
2575
+ # Corresponds to the JSON property `buyLink`
2576
+ # @return [String]
2577
+ attr_accessor :buy_link
2578
+
2579
+ # The two-letter ISO_3166-1 country code for which this sale information is
2580
+ # valid. (In LITE projection.)
2581
+ # Corresponds to the JSON property `country`
2582
+ # @return [String]
2583
+ attr_accessor :country
2584
+
2585
+ # Whether or not this volume is an eBook (can be added to the My eBooks shelf).
2586
+ # Corresponds to the JSON property `isEbook`
2587
+ # @return [Boolean]
2588
+ attr_accessor :is_ebook
2589
+ alias_method :is_ebook?, :is_ebook
2590
+
2591
+ # Suggested retail price. (In LITE projection.)
2592
+ # Corresponds to the JSON property `listPrice`
2593
+ # @return [Google::Apis::BooksV1::Volume::SaleInfo::ListPrice]
2594
+ attr_accessor :list_price
2595
+
2596
+ # Offers available for this volume (sales and rentals).
2597
+ # Corresponds to the JSON property `offers`
2598
+ # @return [Array<Google::Apis::BooksV1::Volume::SaleInfo::Offer>]
2599
+ attr_accessor :offers
2600
+
2601
+ # The date on which this book is available for sale.
2602
+ # Corresponds to the JSON property `onSaleDate`
2603
+ # @return [DateTime]
2604
+ attr_accessor :on_sale_date
2605
+
2606
+ # The actual selling price of the book. This is the same as the suggested retail
2607
+ # or list price unless there are offers or discounts on this volume. (In LITE
2608
+ # projection.)
2609
+ # Corresponds to the JSON property `retailPrice`
2610
+ # @return [Google::Apis::BooksV1::Volume::SaleInfo::RetailPrice]
2611
+ attr_accessor :retail_price
2612
+
2613
+ # Whether or not this book is available for sale or offered for free in the
2614
+ # Google eBookstore for the country listed above. Possible values are FOR_SALE,
2615
+ # FOR_RENTAL_ONLY, FOR_SALE_AND_RENTAL, FREE, NOT_FOR_SALE, or FOR_PREORDER.
2616
+ # Corresponds to the JSON property `saleability`
2617
+ # @return [String]
2618
+ attr_accessor :saleability
2619
+
2620
+ def initialize(**args)
2621
+ update!(**args)
2622
+ end
2623
+
2624
+ # Update properties of this object
2625
+ def update!(**args)
2626
+ @buy_link = args[:buy_link] unless args[:buy_link].nil?
2627
+ @country = args[:country] unless args[:country].nil?
2628
+ @is_ebook = args[:is_ebook] unless args[:is_ebook].nil?
2629
+ @list_price = args[:list_price] unless args[:list_price].nil?
2630
+ @offers = args[:offers] unless args[:offers].nil?
2631
+ @on_sale_date = args[:on_sale_date] unless args[:on_sale_date].nil?
2632
+ @retail_price = args[:retail_price] unless args[:retail_price].nil?
2633
+ @saleability = args[:saleability] unless args[:saleability].nil?
2634
+ end
2635
+
2636
+ # Suggested retail price. (In LITE projection.)
2637
+ class ListPrice
2638
+ include Google::Apis::Core::Hashable
2639
+
2640
+ # Amount in the currency listed below. (In LITE projection.)
2641
+ # Corresponds to the JSON property `amount`
2642
+ # @return [Float]
2643
+ attr_accessor :amount
2644
+
2645
+ # An ISO 4217, three-letter currency code. (In LITE projection.)
2646
+ # Corresponds to the JSON property `currencyCode`
2647
+ # @return [String]
2648
+ attr_accessor :currency_code
2649
+
2650
+ def initialize(**args)
2651
+ update!(**args)
2652
+ end
2653
+
2654
+ # Update properties of this object
2655
+ def update!(**args)
2656
+ @amount = args[:amount] unless args[:amount].nil?
2657
+ @currency_code = args[:currency_code] unless args[:currency_code].nil?
2658
+ end
2659
+ end
2660
+
2661
+ #
2662
+ class Offer
2663
+ include Google::Apis::Core::Hashable
2664
+
2665
+ # The finsky offer type (e.g., PURCHASE=0 RENTAL=3)
2666
+ # Corresponds to the JSON property `finskyOfferType`
2667
+ # @return [Fixnum]
2668
+ attr_accessor :finsky_offer_type
2669
+
2670
+ # Offer list (=undiscounted) price in Micros.
2671
+ # Corresponds to the JSON property `listPrice`
2672
+ # @return [Google::Apis::BooksV1::Volume::SaleInfo::Offer::ListPrice]
2673
+ attr_accessor :list_price
2674
+
2675
+ # The rental duration (for rental offers only).
2676
+ # Corresponds to the JSON property `rentalDuration`
2677
+ # @return [Google::Apis::BooksV1::Volume::SaleInfo::Offer::RentalDuration]
2678
+ attr_accessor :rental_duration
2679
+
2680
+ # Offer retail (=discounted) price in Micros
2681
+ # Corresponds to the JSON property `retailPrice`
2682
+ # @return [Google::Apis::BooksV1::Volume::SaleInfo::Offer::RetailPrice]
2683
+ attr_accessor :retail_price
2684
+
2685
+ def initialize(**args)
2686
+ update!(**args)
2687
+ end
2688
+
2689
+ # Update properties of this object
2690
+ def update!(**args)
2691
+ @finsky_offer_type = args[:finsky_offer_type] unless args[:finsky_offer_type].nil?
2692
+ @list_price = args[:list_price] unless args[:list_price].nil?
2693
+ @rental_duration = args[:rental_duration] unless args[:rental_duration].nil?
2694
+ @retail_price = args[:retail_price] unless args[:retail_price].nil?
2695
+ end
2696
+
2697
+ # Offer list (=undiscounted) price in Micros.
2698
+ class ListPrice
2699
+ include Google::Apis::Core::Hashable
2700
+
2701
+ #
2702
+ # Corresponds to the JSON property `amountInMicros`
2703
+ # @return [Float]
2704
+ attr_accessor :amount_in_micros
2705
+
2706
+ #
2707
+ # Corresponds to the JSON property `currencyCode`
2708
+ # @return [String]
2709
+ attr_accessor :currency_code
2710
+
2711
+ def initialize(**args)
2712
+ update!(**args)
2713
+ end
2714
+
2715
+ # Update properties of this object
2716
+ def update!(**args)
2717
+ @amount_in_micros = args[:amount_in_micros] unless args[:amount_in_micros].nil?
2718
+ @currency_code = args[:currency_code] unless args[:currency_code].nil?
2719
+ end
2720
+ end
2721
+
2722
+ # The rental duration (for rental offers only).
2723
+ class RentalDuration
2724
+ include Google::Apis::Core::Hashable
2725
+
2726
+ #
2727
+ # Corresponds to the JSON property `count`
2728
+ # @return [Float]
2729
+ attr_accessor :count
2730
+
2731
+ #
2732
+ # Corresponds to the JSON property `unit`
2733
+ # @return [String]
2734
+ attr_accessor :unit
2735
+
2736
+ def initialize(**args)
2737
+ update!(**args)
2738
+ end
2739
+
2740
+ # Update properties of this object
2741
+ def update!(**args)
2742
+ @count = args[:count] unless args[:count].nil?
2743
+ @unit = args[:unit] unless args[:unit].nil?
2744
+ end
2745
+ end
2746
+
2747
+ # Offer retail (=discounted) price in Micros
2748
+ class RetailPrice
2749
+ include Google::Apis::Core::Hashable
2750
+
2751
+ #
2752
+ # Corresponds to the JSON property `amountInMicros`
2753
+ # @return [Float]
2754
+ attr_accessor :amount_in_micros
2755
+
2756
+ #
2757
+ # Corresponds to the JSON property `currencyCode`
2758
+ # @return [String]
2759
+ attr_accessor :currency_code
2760
+
2761
+ def initialize(**args)
2762
+ update!(**args)
2763
+ end
2764
+
2765
+ # Update properties of this object
2766
+ def update!(**args)
2767
+ @amount_in_micros = args[:amount_in_micros] unless args[:amount_in_micros].nil?
2768
+ @currency_code = args[:currency_code] unless args[:currency_code].nil?
2769
+ end
2770
+ end
2771
+ end
2772
+
2773
+ # The actual selling price of the book. This is the same as the suggested retail
2774
+ # or list price unless there are offers or discounts on this volume. (In LITE
2775
+ # projection.)
2776
+ class RetailPrice
2777
+ include Google::Apis::Core::Hashable
2778
+
2779
+ # Amount in the currency listed below. (In LITE projection.)
2780
+ # Corresponds to the JSON property `amount`
2781
+ # @return [Float]
2782
+ attr_accessor :amount
2783
+
2784
+ # An ISO 4217, three-letter currency code. (In LITE projection.)
2785
+ # Corresponds to the JSON property `currencyCode`
2786
+ # @return [String]
2787
+ attr_accessor :currency_code
2788
+
2789
+ def initialize(**args)
2790
+ update!(**args)
2791
+ end
2792
+
2793
+ # Update properties of this object
2794
+ def update!(**args)
2795
+ @amount = args[:amount] unless args[:amount].nil?
2796
+ @currency_code = args[:currency_code] unless args[:currency_code].nil?
2797
+ end
2798
+ end
2799
+ end
2800
+
2801
+ # Search result information related to this volume.
2802
+ class SearchInfo
2803
+ include Google::Apis::Core::Hashable
2804
+
2805
+ # A text snippet containing the search query.
2806
+ # Corresponds to the JSON property `textSnippet`
2807
+ # @return [String]
2808
+ attr_accessor :text_snippet
2809
+
2810
+ def initialize(**args)
2811
+ update!(**args)
2812
+ end
2813
+
2814
+ # Update properties of this object
2815
+ def update!(**args)
2816
+ @text_snippet = args[:text_snippet] unless args[:text_snippet].nil?
2817
+ end
2818
+ end
2819
+
2820
+ # User specific information related to this volume. (e.g. page this user last
2821
+ # read or whether they purchased this book)
2822
+ class UserInfo
2823
+ include Google::Apis::Core::Hashable
2824
+
2825
+ # Copy/Paste accounting information.
2826
+ # Corresponds to the JSON property `copy`
2827
+ # @return [Google::Apis::BooksV1::Volume::UserInfo::Copy]
2828
+ attr_accessor :copy
2829
+
2830
+ # Whether or not this volume is currently in "my books."
2831
+ # Corresponds to the JSON property `isInMyBooks`
2832
+ # @return [Boolean]
2833
+ attr_accessor :is_in_my_books
2834
+ alias_method :is_in_my_books?, :is_in_my_books
2835
+
2836
+ # Whether or not this volume was pre-ordered by the authenticated user making
2837
+ # the request. (In LITE projection.)
2838
+ # Corresponds to the JSON property `isPreordered`
2839
+ # @return [Boolean]
2840
+ attr_accessor :is_preordered
2841
+ alias_method :is_preordered?, :is_preordered
2842
+
2843
+ # Whether or not this volume was purchased by the authenticated user making the
2844
+ # request. (In LITE projection.)
2845
+ # Corresponds to the JSON property `isPurchased`
2846
+ # @return [Boolean]
2847
+ attr_accessor :is_purchased
2848
+ alias_method :is_purchased?, :is_purchased
2849
+
2850
+ # Whether or not this volume was user uploaded.
2851
+ # Corresponds to the JSON property `isUploaded`
2852
+ # @return [Boolean]
2853
+ attr_accessor :is_uploaded
2854
+ alias_method :is_uploaded?, :is_uploaded
2855
+
2856
+ # The user's current reading position in the volume, if one is available. (In
2857
+ # LITE projection.)
2858
+ # Corresponds to the JSON property `readingPosition`
2859
+ # @return [Google::Apis::BooksV1::ReadingPosition]
2860
+ attr_accessor :reading_position
2861
+
2862
+ # Period during this book is/was a valid rental.
2863
+ # Corresponds to the JSON property `rentalPeriod`
2864
+ # @return [Google::Apis::BooksV1::Volume::UserInfo::RentalPeriod]
2865
+ attr_accessor :rental_period
2866
+
2867
+ # Whether this book is an active or an expired rental.
2868
+ # Corresponds to the JSON property `rentalState`
2869
+ # @return [String]
2870
+ attr_accessor :rental_state
2871
+
2872
+ # This user's review of this volume, if one exists.
2873
+ # Corresponds to the JSON property `review`
2874
+ # @return [Google::Apis::BooksV1::Review]
2875
+ attr_accessor :review
2876
+
2877
+ # Timestamp when this volume was last modified by a user action, such as a
2878
+ # reading position update, volume purchase or writing a review. (RFC 3339 UTC
2879
+ # date-time format).
2880
+ # Corresponds to the JSON property `updated`
2881
+ # @return [DateTime]
2882
+ attr_accessor :updated
2883
+
2884
+ #
2885
+ # Corresponds to the JSON property `userUploadedVolumeInfo`
2886
+ # @return [Google::Apis::BooksV1::Volume::UserInfo::UserUploadedVolumeInfo]
2887
+ attr_accessor :user_uploaded_volume_info
2888
+
2889
+ def initialize(**args)
2890
+ update!(**args)
2891
+ end
2892
+
2893
+ # Update properties of this object
2894
+ def update!(**args)
2895
+ @copy = args[:copy] unless args[:copy].nil?
2896
+ @is_in_my_books = args[:is_in_my_books] unless args[:is_in_my_books].nil?
2897
+ @is_preordered = args[:is_preordered] unless args[:is_preordered].nil?
2898
+ @is_purchased = args[:is_purchased] unless args[:is_purchased].nil?
2899
+ @is_uploaded = args[:is_uploaded] unless args[:is_uploaded].nil?
2900
+ @reading_position = args[:reading_position] unless args[:reading_position].nil?
2901
+ @rental_period = args[:rental_period] unless args[:rental_period].nil?
2902
+ @rental_state = args[:rental_state] unless args[:rental_state].nil?
2903
+ @review = args[:review] unless args[:review].nil?
2904
+ @updated = args[:updated] unless args[:updated].nil?
2905
+ @user_uploaded_volume_info = args[:user_uploaded_volume_info] unless args[:user_uploaded_volume_info].nil?
2906
+ end
2907
+
2908
+ # Copy/Paste accounting information.
2909
+ class Copy
2910
+ include Google::Apis::Core::Hashable
2911
+
2912
+ #
2913
+ # Corresponds to the JSON property `allowedCharacterCount`
2914
+ # @return [Fixnum]
2915
+ attr_accessor :allowed_character_count
2916
+
2917
+ #
2918
+ # Corresponds to the JSON property `limitType`
2919
+ # @return [String]
2920
+ attr_accessor :limit_type
2921
+
2922
+ #
2923
+ # Corresponds to the JSON property `remainingCharacterCount`
2924
+ # @return [Fixnum]
2925
+ attr_accessor :remaining_character_count
2926
+
2927
+ #
2928
+ # Corresponds to the JSON property `updated`
2929
+ # @return [DateTime]
2930
+ attr_accessor :updated
2931
+
2932
+ def initialize(**args)
2933
+ update!(**args)
2934
+ end
2935
+
2936
+ # Update properties of this object
2937
+ def update!(**args)
2938
+ @allowed_character_count = args[:allowed_character_count] unless args[:allowed_character_count].nil?
2939
+ @limit_type = args[:limit_type] unless args[:limit_type].nil?
2940
+ @remaining_character_count = args[:remaining_character_count] unless args[:remaining_character_count].nil?
2941
+ @updated = args[:updated] unless args[:updated].nil?
2942
+ end
2943
+ end
2944
+
2945
+ # Period during this book is/was a valid rental.
2946
+ class RentalPeriod
2947
+ include Google::Apis::Core::Hashable
2948
+
2949
+ #
2950
+ # Corresponds to the JSON property `endUtcSec`
2951
+ # @return [String]
2952
+ attr_accessor :end_utc_sec
2953
+
2954
+ #
2955
+ # Corresponds to the JSON property `startUtcSec`
2956
+ # @return [String]
2957
+ attr_accessor :start_utc_sec
2958
+
2959
+ def initialize(**args)
2960
+ update!(**args)
2961
+ end
2962
+
2963
+ # Update properties of this object
2964
+ def update!(**args)
2965
+ @end_utc_sec = args[:end_utc_sec] unless args[:end_utc_sec].nil?
2966
+ @start_utc_sec = args[:start_utc_sec] unless args[:start_utc_sec].nil?
2967
+ end
2968
+ end
2969
+
2970
+ #
2971
+ class UserUploadedVolumeInfo
2972
+ include Google::Apis::Core::Hashable
2973
+
2974
+ #
2975
+ # Corresponds to the JSON property `processingState`
2976
+ # @return [String]
2977
+ attr_accessor :processing_state
2978
+
2979
+ def initialize(**args)
2980
+ update!(**args)
2981
+ end
2982
+
2983
+ # Update properties of this object
2984
+ def update!(**args)
2985
+ @processing_state = args[:processing_state] unless args[:processing_state].nil?
2986
+ end
2987
+ end
2988
+ end
2989
+
2990
+ # General volume information.
2991
+ class VolumeInfo
2992
+ include Google::Apis::Core::Hashable
2993
+
2994
+ # Whether anonymous logging should be allowed.
2995
+ # Corresponds to the JSON property `allowAnonLogging`
2996
+ # @return [Boolean]
2997
+ attr_accessor :allow_anon_logging
2998
+ alias_method :allow_anon_logging?, :allow_anon_logging
2999
+
3000
+ # The names of the authors and/or editors for this volume. (In LITE projection)
3001
+ # Corresponds to the JSON property `authors`
3002
+ # @return [Array<String>]
3003
+ attr_accessor :authors
3004
+
3005
+ # The mean review rating for this volume. (min = 1.0, max = 5.0)
3006
+ # Corresponds to the JSON property `averageRating`
3007
+ # @return [Float]
3008
+ attr_accessor :average_rating
3009
+
3010
+ # Canonical URL for a volume. (In LITE projection.)
3011
+ # Corresponds to the JSON property `canonicalVolumeLink`
3012
+ # @return [String]
3013
+ attr_accessor :canonical_volume_link
3014
+
3015
+ # A list of subject categories, such as "Fiction", "Suspense", etc.
3016
+ # Corresponds to the JSON property `categories`
3017
+ # @return [Array<String>]
3018
+ attr_accessor :categories
3019
+
3020
+ # An identifier for the version of the volume content (text & images). (In LITE
3021
+ # projection)
3022
+ # Corresponds to the JSON property `contentVersion`
3023
+ # @return [String]
3024
+ attr_accessor :content_version
3025
+
3026
+ # A synopsis of the volume. The text of the description is formatted in HTML and
3027
+ # includes simple formatting elements, such as b, i, and br tags. (In LITE
3028
+ # projection.)
3029
+ # Corresponds to the JSON property `description`
3030
+ # @return [String]
3031
+ attr_accessor :description
3032
+
3033
+ # Physical dimensions of this volume.
3034
+ # Corresponds to the JSON property `dimensions`
3035
+ # @return [Google::Apis::BooksV1::Volume::VolumeInfo::Dimensions]
3036
+ attr_accessor :dimensions
3037
+
3038
+ # A list of image links for all the sizes that are available. (In LITE
3039
+ # projection.)
3040
+ # Corresponds to the JSON property `imageLinks`
3041
+ # @return [Google::Apis::BooksV1::Volume::VolumeInfo::ImageLinks]
3042
+ attr_accessor :image_links
3043
+
3044
+ # Industry standard identifiers for this volume.
3045
+ # Corresponds to the JSON property `industryIdentifiers`
3046
+ # @return [Array<Google::Apis::BooksV1::Volume::VolumeInfo::IndustryIdentifier>]
3047
+ attr_accessor :industry_identifiers
3048
+
3049
+ # URL to view information about this volume on the Google Books site. (In LITE
3050
+ # projection)
3051
+ # Corresponds to the JSON property `infoLink`
3052
+ # @return [String]
3053
+ attr_accessor :info_link
3054
+
3055
+ # Best language for this volume (based on content). It is the two-letter ISO 639-
3056
+ # 1 code such as 'fr', 'en', etc.
3057
+ # Corresponds to the JSON property `language`
3058
+ # @return [String]
3059
+ attr_accessor :language
3060
+
3061
+ # The main category to which this volume belongs. It will be the category from
3062
+ # the categories list returned below that has the highest weight.
3063
+ # Corresponds to the JSON property `mainCategory`
3064
+ # @return [String]
3065
+ attr_accessor :main_category
3066
+
3067
+ #
3068
+ # Corresponds to the JSON property `maturityRating`
3069
+ # @return [String]
3070
+ attr_accessor :maturity_rating
3071
+
3072
+ # Total number of pages as per publisher metadata.
3073
+ # Corresponds to the JSON property `pageCount`
3074
+ # @return [Fixnum]
3075
+ attr_accessor :page_count
3076
+
3077
+ # URL to preview this volume on the Google Books site.
3078
+ # Corresponds to the JSON property `previewLink`
3079
+ # @return [String]
3080
+ attr_accessor :preview_link
3081
+
3082
+ # Type of publication of this volume. Possible values are BOOK or MAGAZINE.
3083
+ # Corresponds to the JSON property `printType`
3084
+ # @return [String]
3085
+ attr_accessor :print_type
3086
+
3087
+ # Total number of printed pages in generated pdf representation.
3088
+ # Corresponds to the JSON property `printedPageCount`
3089
+ # @return [Fixnum]
3090
+ attr_accessor :printed_page_count
3091
+
3092
+ # Date of publication. (In LITE projection.)
3093
+ # Corresponds to the JSON property `publishedDate`
3094
+ # @return [String]
3095
+ attr_accessor :published_date
3096
+
3097
+ # Publisher of this volume. (In LITE projection.)
3098
+ # Corresponds to the JSON property `publisher`
3099
+ # @return [String]
3100
+ attr_accessor :publisher
3101
+
3102
+ # The number of review ratings for this volume.
3103
+ # Corresponds to the JSON property `ratingsCount`
3104
+ # @return [Fixnum]
3105
+ attr_accessor :ratings_count
3106
+
3107
+ # The reading modes available for this volume.
3108
+ # Corresponds to the JSON property `readingModes`
3109
+ # @return [Object]
3110
+ attr_accessor :reading_modes
3111
+
3112
+ # Total number of sample pages as per publisher metadata.
3113
+ # Corresponds to the JSON property `samplePageCount`
3114
+ # @return [Fixnum]
3115
+ attr_accessor :sample_page_count
3116
+
3117
+ # Volume subtitle. (In LITE projection.)
3118
+ # Corresponds to the JSON property `subtitle`
3119
+ # @return [String]
3120
+ attr_accessor :subtitle
3121
+
3122
+ # Volume title. (In LITE projection.)
3123
+ # Corresponds to the JSON property `title`
3124
+ # @return [String]
3125
+ attr_accessor :title
3126
+
3127
+ def initialize(**args)
3128
+ update!(**args)
3129
+ end
3130
+
3131
+ # Update properties of this object
3132
+ def update!(**args)
3133
+ @allow_anon_logging = args[:allow_anon_logging] unless args[:allow_anon_logging].nil?
3134
+ @authors = args[:authors] unless args[:authors].nil?
3135
+ @average_rating = args[:average_rating] unless args[:average_rating].nil?
3136
+ @canonical_volume_link = args[:canonical_volume_link] unless args[:canonical_volume_link].nil?
3137
+ @categories = args[:categories] unless args[:categories].nil?
3138
+ @content_version = args[:content_version] unless args[:content_version].nil?
3139
+ @description = args[:description] unless args[:description].nil?
3140
+ @dimensions = args[:dimensions] unless args[:dimensions].nil?
3141
+ @image_links = args[:image_links] unless args[:image_links].nil?
3142
+ @industry_identifiers = args[:industry_identifiers] unless args[:industry_identifiers].nil?
3143
+ @info_link = args[:info_link] unless args[:info_link].nil?
3144
+ @language = args[:language] unless args[:language].nil?
3145
+ @main_category = args[:main_category] unless args[:main_category].nil?
3146
+ @maturity_rating = args[:maturity_rating] unless args[:maturity_rating].nil?
3147
+ @page_count = args[:page_count] unless args[:page_count].nil?
3148
+ @preview_link = args[:preview_link] unless args[:preview_link].nil?
3149
+ @print_type = args[:print_type] unless args[:print_type].nil?
3150
+ @printed_page_count = args[:printed_page_count] unless args[:printed_page_count].nil?
3151
+ @published_date = args[:published_date] unless args[:published_date].nil?
3152
+ @publisher = args[:publisher] unless args[:publisher].nil?
3153
+ @ratings_count = args[:ratings_count] unless args[:ratings_count].nil?
3154
+ @reading_modes = args[:reading_modes] unless args[:reading_modes].nil?
3155
+ @sample_page_count = args[:sample_page_count] unless args[:sample_page_count].nil?
3156
+ @subtitle = args[:subtitle] unless args[:subtitle].nil?
3157
+ @title = args[:title] unless args[:title].nil?
3158
+ end
3159
+
3160
+ # Physical dimensions of this volume.
3161
+ class Dimensions
3162
+ include Google::Apis::Core::Hashable
3163
+
3164
+ # Height or length of this volume (in cm).
3165
+ # Corresponds to the JSON property `height`
3166
+ # @return [String]
3167
+ attr_accessor :height
3168
+
3169
+ # Thickness of this volume (in cm).
3170
+ # Corresponds to the JSON property `thickness`
3171
+ # @return [String]
3172
+ attr_accessor :thickness
3173
+
3174
+ # Width of this volume (in cm).
3175
+ # Corresponds to the JSON property `width`
3176
+ # @return [String]
3177
+ attr_accessor :width
3178
+
3179
+ def initialize(**args)
3180
+ update!(**args)
3181
+ end
3182
+
3183
+ # Update properties of this object
3184
+ def update!(**args)
3185
+ @height = args[:height] unless args[:height].nil?
3186
+ @thickness = args[:thickness] unless args[:thickness].nil?
3187
+ @width = args[:width] unless args[:width].nil?
3188
+ end
3189
+ end
3190
+
3191
+ # A list of image links for all the sizes that are available. (In LITE
3192
+ # projection.)
3193
+ class ImageLinks
3194
+ include Google::Apis::Core::Hashable
3195
+
3196
+ # Image link for extra large size (width of ~1280 pixels). (In LITE projection)
3197
+ # Corresponds to the JSON property `extraLarge`
3198
+ # @return [String]
3199
+ attr_accessor :extra_large
3200
+
3201
+ # Image link for large size (width of ~800 pixels). (In LITE projection)
3202
+ # Corresponds to the JSON property `large`
3203
+ # @return [String]
3204
+ attr_accessor :large
3205
+
3206
+ # Image link for medium size (width of ~575 pixels). (In LITE projection)
3207
+ # Corresponds to the JSON property `medium`
3208
+ # @return [String]
3209
+ attr_accessor :medium
3210
+
3211
+ # Image link for small size (width of ~300 pixels). (In LITE projection)
3212
+ # Corresponds to the JSON property `small`
3213
+ # @return [String]
3214
+ attr_accessor :small
3215
+
3216
+ # Image link for small thumbnail size (width of ~80 pixels). (In LITE projection)
3217
+ # Corresponds to the JSON property `smallThumbnail`
3218
+ # @return [String]
3219
+ attr_accessor :small_thumbnail
3220
+
3221
+ # Image link for thumbnail size (width of ~128 pixels). (In LITE projection)
3222
+ # Corresponds to the JSON property `thumbnail`
3223
+ # @return [String]
3224
+ attr_accessor :thumbnail
3225
+
3226
+ def initialize(**args)
3227
+ update!(**args)
3228
+ end
3229
+
3230
+ # Update properties of this object
3231
+ def update!(**args)
3232
+ @extra_large = args[:extra_large] unless args[:extra_large].nil?
3233
+ @large = args[:large] unless args[:large].nil?
3234
+ @medium = args[:medium] unless args[:medium].nil?
3235
+ @small = args[:small] unless args[:small].nil?
3236
+ @small_thumbnail = args[:small_thumbnail] unless args[:small_thumbnail].nil?
3237
+ @thumbnail = args[:thumbnail] unless args[:thumbnail].nil?
3238
+ end
3239
+ end
3240
+
3241
+ #
3242
+ class IndustryIdentifier
3243
+ include Google::Apis::Core::Hashable
3244
+
3245
+ # Industry specific volume identifier.
3246
+ # Corresponds to the JSON property `identifier`
3247
+ # @return [String]
3248
+ attr_accessor :identifier
3249
+
3250
+ # Identifier type. Possible values are ISBN_10, ISBN_13, ISSN and OTHER.
3251
+ # Corresponds to the JSON property `type`
3252
+ # @return [String]
3253
+ attr_accessor :type
3254
+
3255
+ def initialize(**args)
3256
+ update!(**args)
3257
+ end
3258
+
3259
+ # Update properties of this object
3260
+ def update!(**args)
3261
+ @identifier = args[:identifier] unless args[:identifier].nil?
3262
+ @type = args[:type] unless args[:type].nil?
3263
+ end
3264
+ end
3265
+ end
3266
+ end
3267
+
3268
+ #
3269
+ class Volume2
3270
+ include Google::Apis::Core::Hashable
3271
+
3272
+ # A list of volumes.
3273
+ # Corresponds to the JSON property `items`
3274
+ # @return [Array<Google::Apis::BooksV1::Volume>]
3275
+ attr_accessor :items
3276
+
3277
+ # Resource type.
3278
+ # Corresponds to the JSON property `kind`
3279
+ # @return [String]
3280
+ attr_accessor :kind
3281
+
3282
+ #
3283
+ # Corresponds to the JSON property `nextPageToken`
3284
+ # @return [String]
3285
+ attr_accessor :next_page_token
3286
+
3287
+ def initialize(**args)
3288
+ update!(**args)
3289
+ end
3290
+
3291
+ # Update properties of this object
3292
+ def update!(**args)
3293
+ @items = args[:items] unless args[:items].nil?
3294
+ @kind = args[:kind] unless args[:kind].nil?
3295
+ @next_page_token = args[:next_page_token] unless args[:next_page_token].nil?
3296
+ end
3297
+ end
3298
+
3299
+ #
3300
+ class VolumeAnnotation
3301
+ include Google::Apis::Core::Hashable
3302
+
3303
+ # The annotation data id for this volume annotation.
3304
+ # Corresponds to the JSON property `annotationDataId`
3305
+ # @return [String]
3306
+ attr_accessor :annotation_data_id
3307
+
3308
+ # Link to get data for this annotation.
3309
+ # Corresponds to the JSON property `annotationDataLink`
3310
+ # @return [String]
3311
+ attr_accessor :annotation_data_link
3312
+
3313
+ # The type of annotation this is.
3314
+ # Corresponds to the JSON property `annotationType`
3315
+ # @return [String]
3316
+ attr_accessor :annotation_type
3317
+
3318
+ # The content ranges to identify the selected text.
3319
+ # Corresponds to the JSON property `contentRanges`
3320
+ # @return [Google::Apis::BooksV1::VolumeAnnotation::ContentRanges]
3321
+ attr_accessor :content_ranges
3322
+
3323
+ # Data for this annotation.
3324
+ # Corresponds to the JSON property `data`
3325
+ # @return [String]
3326
+ attr_accessor :data
3327
+
3328
+ # Indicates that this annotation is deleted.
3329
+ # Corresponds to the JSON property `deleted`
3330
+ # @return [Boolean]
3331
+ attr_accessor :deleted
3332
+ alias_method :deleted?, :deleted
3333
+
3334
+ # Unique id of this volume annotation.
3335
+ # Corresponds to the JSON property `id`
3336
+ # @return [String]
3337
+ attr_accessor :id
3338
+
3339
+ # Resource Type
3340
+ # Corresponds to the JSON property `kind`
3341
+ # @return [String]
3342
+ attr_accessor :kind
3343
+
3344
+ # The Layer this annotation is for.
3345
+ # Corresponds to the JSON property `layerId`
3346
+ # @return [String]
3347
+ attr_accessor :layer_id
3348
+
3349
+ # Pages the annotation spans.
3350
+ # Corresponds to the JSON property `pageIds`
3351
+ # @return [Array<String>]
3352
+ attr_accessor :page_ids
3353
+
3354
+ # Excerpt from the volume.
3355
+ # Corresponds to the JSON property `selectedText`
3356
+ # @return [String]
3357
+ attr_accessor :selected_text
3358
+
3359
+ # URL to this resource.
3360
+ # Corresponds to the JSON property `selfLink`
3361
+ # @return [String]
3362
+ attr_accessor :self_link
3363
+
3364
+ # Timestamp for the last time this anntoation was updated. (RFC 3339 UTC date-
3365
+ # time format).
3366
+ # Corresponds to the JSON property `updated`
3367
+ # @return [DateTime]
3368
+ attr_accessor :updated
3369
+
3370
+ # The Volume this annotation is for.
3371
+ # Corresponds to the JSON property `volumeId`
3372
+ # @return [String]
3373
+ attr_accessor :volume_id
3374
+
3375
+ def initialize(**args)
3376
+ update!(**args)
3377
+ end
3378
+
3379
+ # Update properties of this object
3380
+ def update!(**args)
3381
+ @annotation_data_id = args[:annotation_data_id] unless args[:annotation_data_id].nil?
3382
+ @annotation_data_link = args[:annotation_data_link] unless args[:annotation_data_link].nil?
3383
+ @annotation_type = args[:annotation_type] unless args[:annotation_type].nil?
3384
+ @content_ranges = args[:content_ranges] unless args[:content_ranges].nil?
3385
+ @data = args[:data] unless args[:data].nil?
3386
+ @deleted = args[:deleted] unless args[:deleted].nil?
3387
+ @id = args[:id] unless args[:id].nil?
3388
+ @kind = args[:kind] unless args[:kind].nil?
3389
+ @layer_id = args[:layer_id] unless args[:layer_id].nil?
3390
+ @page_ids = args[:page_ids] unless args[:page_ids].nil?
3391
+ @selected_text = args[:selected_text] unless args[:selected_text].nil?
3392
+ @self_link = args[:self_link] unless args[:self_link].nil?
3393
+ @updated = args[:updated] unless args[:updated].nil?
3394
+ @volume_id = args[:volume_id] unless args[:volume_id].nil?
3395
+ end
3396
+
3397
+ # The content ranges to identify the selected text.
3398
+ class ContentRanges
3399
+ include Google::Apis::Core::Hashable
3400
+
3401
+ # Range in CFI format for this annotation for version above.
3402
+ # Corresponds to the JSON property `cfiRange`
3403
+ # @return [Google::Apis::BooksV1::AnnotatinsRange]
3404
+ attr_accessor :cfi_range
3405
+
3406
+ # Content version applicable to ranges below.
3407
+ # Corresponds to the JSON property `contentVersion`
3408
+ # @return [String]
3409
+ attr_accessor :content_version
3410
+
3411
+ # Range in GB image format for this annotation for version above.
3412
+ # Corresponds to the JSON property `gbImageRange`
3413
+ # @return [Google::Apis::BooksV1::AnnotatinsRange]
3414
+ attr_accessor :gb_image_range
3415
+
3416
+ # Range in GB text format for this annotation for version above.
3417
+ # Corresponds to the JSON property `gbTextRange`
3418
+ # @return [Google::Apis::BooksV1::AnnotatinsRange]
3419
+ attr_accessor :gb_text_range
3420
+
3421
+ def initialize(**args)
3422
+ update!(**args)
3423
+ end
3424
+
3425
+ # Update properties of this object
3426
+ def update!(**args)
3427
+ @cfi_range = args[:cfi_range] unless args[:cfi_range].nil?
3428
+ @content_version = args[:content_version] unless args[:content_version].nil?
3429
+ @gb_image_range = args[:gb_image_range] unless args[:gb_image_range].nil?
3430
+ @gb_text_range = args[:gb_text_range] unless args[:gb_text_range].nil?
3431
+ end
3432
+ end
3433
+ end
3434
+
3435
+ #
3436
+ class Volumeannotations
3437
+ include Google::Apis::Core::Hashable
3438
+
3439
+ # A list of volume annotations.
3440
+ # Corresponds to the JSON property `items`
3441
+ # @return [Array<Google::Apis::BooksV1::VolumeAnnotation>]
3442
+ attr_accessor :items
3443
+
3444
+ # Resource type
3445
+ # Corresponds to the JSON property `kind`
3446
+ # @return [String]
3447
+ attr_accessor :kind
3448
+
3449
+ # Token to pass in for pagination for the next page. This will not be present if
3450
+ # this request does not have more results.
3451
+ # Corresponds to the JSON property `nextPageToken`
3452
+ # @return [String]
3453
+ attr_accessor :next_page_token
3454
+
3455
+ # The total number of volume annotations found.
3456
+ # Corresponds to the JSON property `totalItems`
3457
+ # @return [Fixnum]
3458
+ attr_accessor :total_items
3459
+
3460
+ # The version string for all of the volume annotations in this layer (not just
3461
+ # the ones in this response). Note: the version string doesn't apply to the
3462
+ # annotation data, just the information in this response (e.g. the location of
3463
+ # annotations in the book).
3464
+ # Corresponds to the JSON property `version`
3465
+ # @return [String]
3466
+ attr_accessor :version
3467
+
3468
+ def initialize(**args)
3469
+ update!(**args)
3470
+ end
3471
+
3472
+ # Update properties of this object
3473
+ def update!(**args)
3474
+ @items = args[:items] unless args[:items].nil?
3475
+ @kind = args[:kind] unless args[:kind].nil?
3476
+ @next_page_token = args[:next_page_token] unless args[:next_page_token].nil?
3477
+ @total_items = args[:total_items] unless args[:total_items].nil?
3478
+ @version = args[:version] unless args[:version].nil?
3479
+ end
3480
+ end
3481
+
3482
+ #
3483
+ class Volumes
3484
+ include Google::Apis::Core::Hashable
3485
+
3486
+ # A list of volumes.
3487
+ # Corresponds to the JSON property `items`
3488
+ # @return [Array<Google::Apis::BooksV1::Volume>]
3489
+ attr_accessor :items
3490
+
3491
+ # Resource type.
3492
+ # Corresponds to the JSON property `kind`
3493
+ # @return [String]
3494
+ attr_accessor :kind
3495
+
3496
+ # Total number of volumes found. This might be greater than the number of
3497
+ # volumes returned in this response if results have been paginated.
3498
+ # Corresponds to the JSON property `totalItems`
3499
+ # @return [Fixnum]
3500
+ attr_accessor :total_items
3501
+
3502
+ def initialize(**args)
3503
+ update!(**args)
3504
+ end
3505
+
3506
+ # Update properties of this object
3507
+ def update!(**args)
3508
+ @items = args[:items] unless args[:items].nil?
3509
+ @kind = args[:kind] unless args[:kind].nil?
3510
+ @total_items = args[:total_items] unless args[:total_items].nil?
3511
+ end
3512
+ end
3513
+ end
3514
+ end
3515
+ end