google-api-client 0.8.7 → 0.9.pre1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (397) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +20 -0
  3. data/.rspec +2 -0
  4. data/.rubocop.yml +7 -0
  5. data/.rubocop_todo.yml +63 -0
  6. data/.travis.yml +21 -0
  7. data/.yardopts +12 -0
  8. data/CHANGELOG.md +6 -3
  9. data/CONTRIBUTING.md +31 -0
  10. data/Gemfile +28 -2
  11. data/MIGRATING.md +171 -0
  12. data/README.md +158 -150
  13. data/Rakefile +1 -40
  14. data/api_names.yaml +872 -0
  15. data/api_names_out.yaml +20843 -0
  16. data/bin/generate-api +93 -0
  17. data/generated/google/apis/adexchangebuyer_v1_3.rb +35 -0
  18. data/generated/google/apis/adexchangebuyer_v1_3/classes.rb +1124 -0
  19. data/generated/google/apis/adexchangebuyer_v1_3/representations.rb +375 -0
  20. data/generated/google/apis/adexchangebuyer_v1_3/service.rb +893 -0
  21. data/generated/google/apis/adexchangeseller_v2_0.rb +38 -0
  22. data/generated/google/apis/adexchangeseller_v2_0/classes.rb +792 -0
  23. data/generated/google/apis/adexchangeseller_v2_0/representations.rb +309 -0
  24. data/generated/google/apis/adexchangeseller_v2_0/service.rb +682 -0
  25. data/generated/google/apis/admin_directory_v1.rb +89 -0
  26. data/generated/google/apis/admin_directory_v1/classes.rb +2389 -0
  27. data/generated/google/apis/admin_directory_v1/representations.rb +780 -0
  28. data/generated/google/apis/admin_directory_v1/service.rb +2805 -0
  29. data/generated/google/apis/admin_reports_v1.rb +38 -0
  30. data/generated/google/apis/admin_reports_v1/classes.rb +582 -0
  31. data/generated/google/apis/admin_reports_v1/representations.rb +231 -0
  32. data/generated/google/apis/admin_reports_v1/service.rb +341 -0
  33. data/generated/google/apis/adsense_v1_4.rb +38 -0
  34. data/generated/google/apis/adsense_v1_4/classes.rb +1279 -0
  35. data/generated/google/apis/adsense_v1_4/representations.rb +493 -0
  36. data/generated/google/apis/adsense_v1_4/service.rb +1752 -0
  37. data/generated/google/apis/adsensehost_v4_1.rb +35 -0
  38. data/generated/google/apis/adsensehost_v4_1/classes.rb +834 -0
  39. data/generated/google/apis/adsensehost_v4_1/representations.rb +327 -0
  40. data/generated/google/apis/adsensehost_v4_1/service.rb +1190 -0
  41. data/generated/google/apis/analytics_v3.rb +49 -0
  42. data/generated/google/apis/analytics_v3/classes.rb +5113 -0
  43. data/generated/google/apis/analytics_v3/representations.rb +1661 -0
  44. data/generated/google/apis/analytics_v3/service.rb +3600 -0
  45. data/generated/google/apis/androidenterprise_v1.rb +34 -0
  46. data/generated/google/apis/androidenterprise_v1/classes.rb +1162 -0
  47. data/generated/google/apis/androidenterprise_v1/representations.rb +431 -0
  48. data/generated/google/apis/androidenterprise_v1/service.rb +1979 -0
  49. data/generated/google/apis/androidpublisher_v2.rb +34 -0
  50. data/generated/google/apis/androidpublisher_v2/classes.rb +1374 -0
  51. data/generated/google/apis/androidpublisher_v2/representations.rb +630 -0
  52. data/generated/google/apis/androidpublisher_v2/service.rb +2390 -0
  53. data/generated/google/apis/appsactivity_v1.rb +46 -0
  54. data/generated/google/apis/appsactivity_v1/classes.rb +392 -0
  55. data/generated/google/apis/appsactivity_v1/representations.rb +184 -0
  56. data/generated/google/apis/appsactivity_v1/service.rb +129 -0
  57. data/generated/google/apis/appstate_v1.rb +34 -0
  58. data/generated/google/apis/appstate_v1/classes.rb +154 -0
  59. data/generated/google/apis/appstate_v1/representations.rb +79 -0
  60. data/generated/google/apis/appstate_v1/service.rb +265 -0
  61. data/generated/google/apis/autoscaler_v1beta2.rb +38 -0
  62. data/generated/google/apis/autoscaler_v1beta2/classes.rb +747 -0
  63. data/generated/google/apis/autoscaler_v1beta2/representations.rb +281 -0
  64. data/generated/google/apis/autoscaler_v1beta2/service.rb +488 -0
  65. data/generated/google/apis/bigquery_v2.rb +49 -0
  66. data/generated/google/apis/bigquery_v2/classes.rb +2255 -0
  67. data/generated/google/apis/bigquery_v2/representations.rb +754 -0
  68. data/generated/google/apis/bigquery_v2/service.rb +1003 -0
  69. data/generated/google/apis/blogger_v3.rb +37 -0
  70. data/generated/google/apis/blogger_v3/classes.rb +1354 -0
  71. data/generated/google/apis/blogger_v3/representations.rb +562 -0
  72. data/generated/google/apis/blogger_v3/service.rb +1620 -0
  73. data/generated/google/apis/books_v1.rb +34 -0
  74. data/generated/google/apis/books_v1/classes.rb +3515 -0
  75. data/generated/google/apis/books_v1/representations.rb +1361 -0
  76. data/generated/google/apis/books_v1/service.rb +2170 -0
  77. data/generated/google/apis/calendar_v3.rb +37 -0
  78. data/generated/google/apis/calendar_v3/classes.rb +1702 -0
  79. data/generated/google/apis/calendar_v3/representations.rb +566 -0
  80. data/generated/google/apis/calendar_v3/service.rb +1943 -0
  81. data/generated/google/apis/civicinfo_v2.rb +31 -0
  82. data/generated/google/apis/civicinfo_v2/classes.rb +1057 -0
  83. data/generated/google/apis/civicinfo_v2/representations.rb +374 -0
  84. data/generated/google/apis/civicinfo_v2/service.rb +284 -0
  85. data/generated/google/apis/cloudmonitoring_v2beta2.rb +34 -0
  86. data/generated/google/apis/cloudmonitoring_v2beta2/classes.rb +679 -0
  87. data/generated/google/apis/cloudmonitoring_v2beta2/representations.rb +311 -0
  88. data/generated/google/apis/cloudmonitoring_v2beta2/service.rb +458 -0
  89. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +38 -0
  90. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +139 -0
  91. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +65 -0
  92. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +301 -0
  93. data/generated/google/apis/compute_v1.rb +49 -0
  94. data/generated/google/apis/compute_v1/classes.rb +6391 -0
  95. data/generated/google/apis/compute_v1/representations.rb +2209 -0
  96. data/generated/google/apis/compute_v1/service.rb +6352 -0
  97. data/generated/google/apis/container_v1beta1.rb +35 -0
  98. data/generated/google/apis/container_v1beta1/classes.rb +466 -0
  99. data/generated/google/apis/container_v1beta1/representations.rb +177 -0
  100. data/generated/google/apis/container_v1beta1/service.rb +394 -0
  101. data/generated/google/apis/content_v2.rb +35 -0
  102. data/generated/google/apis/content_v2/classes.rb +3780 -0
  103. data/generated/google/apis/content_v2/representations.rb +1456 -0
  104. data/generated/google/apis/content_v2/service.rb +1706 -0
  105. data/generated/google/apis/coordinate_v1.rb +37 -0
  106. data/generated/google/apis/coordinate_v1/classes.rb +669 -0
  107. data/generated/google/apis/coordinate_v1/representations.rb +285 -0
  108. data/generated/google/apis/coordinate_v1/service.rb +687 -0
  109. data/{lib/google/api_client/auth/compute_service_account.rb → generated/google/apis/customsearch_v1.rb} +13 -10
  110. data/generated/google/apis/customsearch_v1/classes.rb +771 -0
  111. data/generated/google/apis/customsearch_v1/representations.rb +276 -0
  112. data/generated/google/apis/customsearch_v1/service.rb +208 -0
  113. data/generated/google/apis/datastore_v1beta2.rb +40 -0
  114. data/generated/google/apis/datastore_v1beta2/classes.rb +1186 -0
  115. data/generated/google/apis/datastore_v1beta2/representations.rb +526 -0
  116. data/generated/google/apis/datastore_v1beta2/service.rb +300 -0
  117. data/generated/google/apis/deploymentmanager_v2beta2.rb +41 -0
  118. data/generated/google/apis/deploymentmanager_v2beta2/classes.rb +820 -0
  119. data/generated/google/apis/deploymentmanager_v2beta2/representations.rb +303 -0
  120. data/generated/google/apis/deploymentmanager_v2beta2/service.rb +647 -0
  121. data/generated/google/apis/dfareporting_v2_1.rb +37 -0
  122. data/generated/google/apis/dfareporting_v2_1/classes.rb +10755 -0
  123. data/generated/google/apis/dfareporting_v2_1/representations.rb +3438 -0
  124. data/generated/google/apis/dfareporting_v2_1/service.rb +8775 -0
  125. data/generated/google/apis/discovery_v1.rb +32 -0
  126. data/generated/google/apis/discovery_v1/classes.rb +947 -0
  127. data/generated/google/apis/discovery_v1/representations.rb +355 -0
  128. data/generated/google/apis/discovery_v1/service.rb +144 -0
  129. data/generated/google/apis/dns_v1.rb +41 -0
  130. data/generated/google/apis/dns_v1/classes.rb +406 -0
  131. data/generated/google/apis/dns_v1/representations.rb +151 -0
  132. data/generated/google/apis/dns_v1/service.rb +460 -0
  133. data/{spec/google/api_client/request_spec.rb → generated/google/apis/doubleclickbidmanager_v1.rb} +15 -13
  134. data/generated/google/apis/doubleclickbidmanager_v1/classes.rb +709 -0
  135. data/generated/google/apis/doubleclickbidmanager_v1/representations.rb +297 -0
  136. data/generated/google/apis/doubleclickbidmanager_v1/service.rb +349 -0
  137. data/generated/google/apis/doubleclicksearch_v2.rb +35 -0
  138. data/generated/google/apis/doubleclicksearch_v2/classes.rb +947 -0
  139. data/generated/google/apis/doubleclicksearch_v2/representations.rb +315 -0
  140. data/generated/google/apis/doubleclicksearch_v2/service.rb +490 -0
  141. data/generated/google/apis/drive_v2.rb +55 -0
  142. data/generated/google/apis/drive_v2/classes.rb +2519 -0
  143. data/generated/google/apis/drive_v2/representations.rb +781 -0
  144. data/generated/google/apis/drive_v2/service.rb +2685 -0
  145. data/generated/google/apis/fitness_v1.rb +49 -0
  146. data/generated/google/apis/fitness_v1/classes.rb +809 -0
  147. data/generated/google/apis/fitness_v1/representations.rb +295 -0
  148. data/generated/google/apis/fitness_v1/service.rb +684 -0
  149. data/generated/google/apis/fusiontables_v2.rb +37 -0
  150. data/generated/google/apis/fusiontables_v2/classes.rb +1048 -0
  151. data/generated/google/apis/fusiontables_v2/representations.rb +409 -0
  152. data/generated/google/apis/fusiontables_v2/service.rb +1496 -0
  153. data/generated/google/apis/games_configuration_v1configuration.rb +34 -0
  154. data/generated/google/apis/games_configuration_v1configuration/classes.rb +506 -0
  155. data/generated/google/apis/games_configuration_v1configuration/representations.rb +206 -0
  156. data/generated/google/apis/games_configuration_v1configuration/service.rb +578 -0
  157. data/generated/google/apis/games_v1.rb +40 -0
  158. data/generated/google/apis/games_v1/classes.rb +4578 -0
  159. data/generated/google/apis/games_v1/representations.rb +1570 -0
  160. data/generated/google/apis/games_v1/service.rb +2306 -0
  161. data/generated/google/apis/gan_v1beta1.rb +31 -0
  162. data/generated/google/apis/gan_v1beta1/classes.rb +1428 -0
  163. data/generated/google/apis/gan_v1beta1/representations.rb +428 -0
  164. data/generated/google/apis/gan_v1beta1/service.rb +692 -0
  165. data/generated/google/apis/genomics_v1beta2.rb +46 -0
  166. data/generated/google/apis/genomics_v1beta2/classes.rb +3288 -0
  167. data/generated/google/apis/genomics_v1beta2/representations.rb +1194 -0
  168. data/generated/google/apis/genomics_v1beta2/service.rb +2356 -0
  169. data/generated/google/apis/gmail_v1.rb +49 -0
  170. data/generated/google/apis/gmail_v1/classes.rb +794 -0
  171. data/generated/google/apis/gmail_v1/representations.rb +339 -0
  172. data/generated/google/apis/gmail_v1/service.rb +1502 -0
  173. data/generated/google/apis/groupsmigration_v1.rb +34 -0
  174. data/generated/google/apis/groupsmigration_v1/classes.rb +51 -0
  175. data/generated/google/apis/groupsmigration_v1/representations.rb +38 -0
  176. data/generated/google/apis/groupsmigration_v1/service.rb +111 -0
  177. data/generated/google/apis/groupssettings_v1.rb +34 -0
  178. data/generated/google/apis/groupssettings_v1/classes.rb +221 -0
  179. data/generated/google/apis/groupssettings_v1/representations.rb +64 -0
  180. data/generated/google/apis/groupssettings_v1/service.rb +179 -0
  181. data/generated/google/apis/identitytoolkit_v3.rb +31 -0
  182. data/generated/google/apis/identitytoolkit_v3/classes.rb +1229 -0
  183. data/generated/google/apis/identitytoolkit_v3/representations.rb +422 -0
  184. data/generated/google/apis/identitytoolkit_v3/service.rb +491 -0
  185. data/generated/google/apis/licensing_v1.rb +34 -0
  186. data/generated/google/apis/licensing_v1/classes.rb +132 -0
  187. data/generated/google/apis/licensing_v1/representations.rb +68 -0
  188. data/generated/google/apis/licensing_v1/service.rb +376 -0
  189. data/generated/google/apis/logging_v1beta3.rb +35 -0
  190. data/generated/google/apis/logging_v1beta3/classes.rb +505 -0
  191. data/generated/google/apis/logging_v1beta3/representations.rb +222 -0
  192. data/generated/google/apis/logging_v1beta3/service.rb +670 -0
  193. data/generated/google/apis/manager_v1beta2.rb +50 -0
  194. data/generated/google/apis/manager_v1beta2/classes.rb +1287 -0
  195. data/generated/google/apis/manager_v1beta2/representations.rb +536 -0
  196. data/generated/google/apis/manager_v1beta2/service.rb +380 -0
  197. data/generated/google/apis/mapsengine_v1.rb +38 -0
  198. data/generated/google/apis/mapsengine_v1/classes.rb +2873 -0
  199. data/generated/google/apis/mapsengine_v1/representations.rb +1235 -0
  200. data/generated/google/apis/mapsengine_v1/service.rb +3465 -0
  201. data/generated/google/apis/mirror_v1.rb +37 -0
  202. data/generated/google/apis/mirror_v1/classes.rb +1072 -0
  203. data/generated/google/apis/mirror_v1/representations.rb +350 -0
  204. data/generated/google/apis/mirror_v1/service.rb +1001 -0
  205. data/generated/google/apis/oauth2_v2.rb +43 -0
  206. data/generated/google/apis/oauth2_v2/classes.rb +245 -0
  207. data/generated/google/apis/oauth2_v2/representations.rb +94 -0
  208. data/generated/google/apis/oauth2_v2/service.rb +203 -0
  209. data/generated/google/apis/pagespeedonline_v2.rb +32 -0
  210. data/generated/google/apis/pagespeedonline_v2/classes.rb +614 -0
  211. data/generated/google/apis/pagespeedonline_v2/representations.rb +244 -0
  212. data/generated/google/apis/pagespeedonline_v2/service.rb +120 -0
  213. data/generated/google/apis/plus_domains_v1.rb +61 -0
  214. data/generated/google/apis/plus_domains_v1/classes.rb +2402 -0
  215. data/generated/google/apis/plus_domains_v1/representations.rb +873 -0
  216. data/generated/google/apis/plus_domains_v1/service.rb +924 -0
  217. data/generated/google/apis/plus_v1.rb +43 -0
  218. data/generated/google/apis/plus_v1/classes.rb +2384 -0
  219. data/generated/google/apis/plus_v1/representations.rb +812 -0
  220. data/generated/google/apis/plus_v1/service.rb +616 -0
  221. data/generated/google/apis/prediction_v1_6.rb +44 -0
  222. data/generated/google/apis/prediction_v1_6/classes.rb +751 -0
  223. data/generated/google/apis/prediction_v1_6/representations.rb +327 -0
  224. data/generated/google/apis/prediction_v1_6/service.rb +388 -0
  225. data/generated/google/apis/pubsub_v1beta2.rb +37 -0
  226. data/generated/google/apis/pubsub_v1beta2/classes.rb +824 -0
  227. data/generated/google/apis/pubsub_v1beta2/representations.rb +366 -0
  228. data/generated/google/apis/pubsub_v1beta2/service.rb +778 -0
  229. data/generated/google/apis/qpx_express_v1.rb +31 -0
  230. data/generated/google/apis/qpx_express_v1/classes.rb +1268 -0
  231. data/generated/google/apis/qpx_express_v1/representations.rb +424 -0
  232. data/generated/google/apis/qpx_express_v1/service.rb +101 -0
  233. data/generated/google/apis/replicapool_v1beta2.rb +41 -0
  234. data/generated/google/apis/replicapool_v1beta2/classes.rb +621 -0
  235. data/generated/google/apis/replicapool_v1beta2/representations.rb +235 -0
  236. data/generated/google/apis/replicapool_v1beta2/service.rb +620 -0
  237. data/generated/google/apis/replicapoolupdater_v1beta1.rb +41 -0
  238. data/generated/google/apis/replicapoolupdater_v1beta1/classes.rb +682 -0
  239. data/generated/google/apis/replicapoolupdater_v1beta1/representations.rb +247 -0
  240. data/generated/google/apis/replicapoolupdater_v1beta1/service.rb +472 -0
  241. data/generated/google/apis/reseller_v1.rb +37 -0
  242. data/generated/google/apis/reseller_v1/classes.rb +502 -0
  243. data/generated/google/apis/reseller_v1/representations.rb +199 -0
  244. data/generated/google/apis/reseller_v1/service.rb +637 -0
  245. data/generated/google/apis/resourceviews_v1beta2.rb +47 -0
  246. data/generated/google/apis/resourceviews_v1beta2/classes.rb +660 -0
  247. data/generated/google/apis/resourceviews_v1beta2/representations.rb +269 -0
  248. data/generated/google/apis/resourceviews_v1beta2/service.rb +574 -0
  249. data/generated/google/apis/site_verification_v1.rb +37 -0
  250. data/generated/google/apis/site_verification_v1/classes.rb +185 -0
  251. data/generated/google/apis/site_verification_v1/representations.rb +101 -0
  252. data/generated/google/apis/site_verification_v1/service.rb +322 -0
  253. data/generated/google/apis/sqladmin_v1beta4.rb +37 -0
  254. data/generated/google/apis/sqladmin_v1beta4/classes.rb +1817 -0
  255. data/generated/google/apis/sqladmin_v1beta4/representations.rb +688 -0
  256. data/generated/google/apis/sqladmin_v1beta4/service.rb +1534 -0
  257. data/generated/google/apis/storage_v1.rb +43 -0
  258. data/generated/google/apis/storage_v1/classes.rb +1177 -0
  259. data/generated/google/apis/storage_v1/representations.rb +427 -0
  260. data/generated/google/apis/storage_v1/service.rb +1920 -0
  261. data/generated/google/apis/tagmanager_v1.rb +52 -0
  262. data/generated/google/apis/tagmanager_v1/classes.rb +1226 -0
  263. data/generated/google/apis/tagmanager_v1/representations.rb +461 -0
  264. data/generated/google/apis/tagmanager_v1/service.rb +1978 -0
  265. data/generated/google/apis/taskqueue_v1beta2.rb +37 -0
  266. data/generated/google/apis/taskqueue_v1beta2/classes.rb +254 -0
  267. data/generated/google/apis/taskqueue_v1beta2/representations.rb +114 -0
  268. data/generated/google/apis/taskqueue_v1beta2/service.rb +416 -0
  269. data/generated/google/apis/tasks_v1.rb +37 -0
  270. data/generated/google/apis/tasks_v1/classes.rb +296 -0
  271. data/generated/google/apis/tasks_v1/representations.rb +115 -0
  272. data/generated/google/apis/tasks_v1/service.rb +657 -0
  273. data/generated/google/apis/translate_v2.rb +31 -0
  274. data/generated/google/apis/translate_v2/classes.rb +168 -0
  275. data/generated/google/apis/translate_v2/representations.rb +109 -0
  276. data/generated/google/apis/translate_v2/service.rb +185 -0
  277. data/generated/google/apis/urlshortener_v1.rb +34 -0
  278. data/generated/google/apis/urlshortener_v1/classes.rb +246 -0
  279. data/generated/google/apis/urlshortener_v1/representations.rb +111 -0
  280. data/generated/google/apis/urlshortener_v1/service.rb +179 -0
  281. data/generated/google/apis/webmasters_v3.rb +37 -0
  282. data/generated/google/apis/webmasters_v3/classes.rb +563 -0
  283. data/generated/google/apis/webmasters_v3/representations.rb +250 -0
  284. data/generated/google/apis/webmasters_v3/service.rb +587 -0
  285. data/generated/google/apis/youtube_analytics_v1.rb +46 -0
  286. data/generated/google/apis/youtube_analytics_v1/classes.rb +540 -0
  287. data/generated/google/apis/youtube_analytics_v1/representations.rb +242 -0
  288. data/generated/google/apis/youtube_analytics_v1/service.rb +567 -0
  289. data/generated/google/apis/youtube_v3.rb +49 -0
  290. data/generated/google/apis/youtube_v3/classes.rb +7225 -0
  291. data/generated/google/apis/youtube_v3/representations.rb +2529 -0
  292. data/generated/google/apis/youtube_v3/service.rb +4051 -0
  293. data/google-api-client.gemspec +27 -39
  294. data/lib/google/api_client/auth/storage.rb +3 -2
  295. data/lib/google/api_client/auth/storages/file_store.rb +1 -3
  296. data/lib/google/api_client/auth/storages/redis_store.rb +6 -2
  297. data/lib/google/apis.rb +48 -0
  298. data/lib/google/apis/core/api_command.rb +128 -0
  299. data/lib/google/apis/core/base_service.rb +314 -0
  300. data/lib/google/apis/core/batch.rb +222 -0
  301. data/lib/google/apis/core/download.rb +94 -0
  302. data/lib/google/apis/core/hashable.rb +44 -0
  303. data/lib/google/apis/core/http_command.rb +275 -0
  304. data/lib/google/apis/core/json_representation.rb +122 -0
  305. data/lib/google/{api_client/version.rb → apis/core/logging.rb} +12 -8
  306. data/lib/google/apis/core/multipart.rb +173 -0
  307. data/lib/google/apis/core/upload.rb +275 -0
  308. data/lib/google/{api_client → apis}/errors.rb +32 -28
  309. data/lib/google/apis/generator.rb +70 -0
  310. data/lib/google/apis/generator/annotator.rb +271 -0
  311. data/lib/google/apis/generator/helpers.rb +74 -0
  312. data/lib/google/apis/generator/model.rb +130 -0
  313. data/lib/google/apis/generator/template.rb +124 -0
  314. data/lib/google/apis/generator/templates/_class.tmpl +40 -0
  315. data/lib/google/apis/generator/templates/_method.tmpl +90 -0
  316. data/lib/google/apis/generator/templates/_representation.tmpl +51 -0
  317. data/lib/google/apis/generator/templates/_representation_stub.tmpl +15 -0
  318. data/lib/google/apis/generator/templates/_representation_type.tmpl +10 -0
  319. data/lib/google/{api_client/reference.rb → apis/generator/templates/classes.rb.tmpl} +11 -9
  320. data/lib/google/apis/generator/templates/module.rb.tmpl +40 -0
  321. data/lib/google/apis/generator/templates/representations.rb.tmpl +32 -0
  322. data/lib/google/apis/generator/templates/service.rb.tmpl +60 -0
  323. data/lib/google/apis/options.rb +79 -0
  324. data/lib/google/apis/version.rb +39 -0
  325. data/rakelib/metrics.rake +22 -0
  326. data/rakelib/rubocop.rake +10 -0
  327. data/rakelib/spec.rake +11 -0
  328. data/rakelib/yard.rake +11 -0
  329. data/samples/calendar/calendar.rb +43 -0
  330. data/samples/drive/drive.rb +40 -0
  331. data/samples/pubsub/pubsub.rb +52 -0
  332. data/{lib/google/api_client/discovery.rb → samples/translate/translate.rb} +14 -5
  333. data/script/generate +79 -0
  334. data/script/package +8 -0
  335. data/script/release +15 -0
  336. data/spec/fixtures/files/api_names.yaml +3 -0
  337. data/spec/fixtures/files/auth_stored_credentials.json +8 -0
  338. data/spec/fixtures/files/client_secrets.json +1 -0
  339. data/spec/fixtures/files/test.blah +1 -0
  340. data/spec/fixtures/files/test.txt +1 -0
  341. data/spec/fixtures/files/test_api.json +440 -0
  342. data/spec/google/api_client/auth/storage_spec.rb +1 -3
  343. data/spec/google/api_client/auth/storages/file_store_spec.rb +1 -2
  344. data/spec/google/api_client/auth/storages/redis_store_spec.rb +1 -3
  345. data/spec/google/apis/core/api_command_spec.rb +170 -0
  346. data/spec/google/apis/core/batch_spec.rb +128 -0
  347. data/spec/google/apis/core/download_spec.rb +90 -0
  348. data/spec/google/apis/core/hashable_spec.rb +60 -0
  349. data/spec/google/apis/core/http_command_spec.rb +238 -0
  350. data/spec/google/apis/core/json_representation_spec.rb +192 -0
  351. data/spec/google/apis/core/service_spec.rb +247 -0
  352. data/spec/google/apis/core/upload_spec.rb +238 -0
  353. data/{lib/google/api_client/service_account.rb → spec/google/apis/generated_spec.rb} +14 -8
  354. data/spec/google/apis/generator/generator_spec.rb +272 -0
  355. data/spec/google/apis/logging_spec.rb +45 -0
  356. data/spec/google/apis/options_spec.rb +40 -0
  357. data/spec/integration_tests/drive_spec.rb +35 -0
  358. data/spec/integration_tests/pubsub_spec.rb +48 -0
  359. data/spec/integration_tests/url_shortener_spec.rb +31 -0
  360. data/spec/spec_helper.rb +102 -46
  361. metadata +433 -178
  362. data/lib/compat/multi_json.rb +0 -19
  363. data/lib/google/api_client.rb +0 -750
  364. data/lib/google/api_client/auth/file_storage.rb +0 -59
  365. data/lib/google/api_client/auth/jwt_asserter.rb +0 -126
  366. data/lib/google/api_client/auth/key_utils.rb +0 -93
  367. data/lib/google/api_client/auth/pkcs12.rb +0 -41
  368. data/lib/google/api_client/batch.rb +0 -326
  369. data/lib/google/api_client/charset.rb +0 -33
  370. data/lib/google/api_client/discovery/api.rb +0 -310
  371. data/lib/google/api_client/discovery/media.rb +0 -77
  372. data/lib/google/api_client/discovery/method.rb +0 -363
  373. data/lib/google/api_client/discovery/resource.rb +0 -156
  374. data/lib/google/api_client/discovery/schema.rb +0 -117
  375. data/lib/google/api_client/environment.rb +0 -42
  376. data/lib/google/api_client/gzip.rb +0 -28
  377. data/lib/google/api_client/logging.rb +0 -32
  378. data/lib/google/api_client/media.rb +0 -259
  379. data/lib/google/api_client/railtie.rb +0 -18
  380. data/lib/google/api_client/request.rb +0 -350
  381. data/lib/google/api_client/result.rb +0 -255
  382. data/lib/google/api_client/service.rb +0 -233
  383. data/lib/google/api_client/service/batch.rb +0 -110
  384. data/lib/google/api_client/service/request.rb +0 -144
  385. data/lib/google/api_client/service/resource.rb +0 -40
  386. data/lib/google/api_client/service/result.rb +0 -162
  387. data/lib/google/api_client/service/simple_file_store.rb +0 -151
  388. data/lib/google/api_client/service/stub_generator.rb +0 -61
  389. data/spec/google/api_client/batch_spec.rb +0 -248
  390. data/spec/google/api_client/discovery_spec.rb +0 -708
  391. data/spec/google/api_client/gzip_spec.rb +0 -98
  392. data/spec/google/api_client/media_spec.rb +0 -178
  393. data/spec/google/api_client/result_spec.rb +0 -207
  394. data/spec/google/api_client/service_account_spec.rb +0 -169
  395. data/spec/google/api_client/service_spec.rb +0 -618
  396. data/spec/google/api_client/simple_file_store_spec.rb +0 -133
  397. data/spec/google/api_client_spec.rb +0 -352
@@ -0,0 +1,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