google-api-client 0.8.6 → 0.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (537) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +20 -0
  3. data/.rspec +2 -0
  4. data/.rubocop.yml +7 -0
  5. data/.rubocop_todo.yml +63 -0
  6. data/.travis.yml +23 -0
  7. data/.yardopts +12 -0
  8. data/CHANGELOG.md +58 -2
  9. data/CONTRIBUTING.md +31 -0
  10. data/Gemfile +38 -2
  11. data/MIGRATING.md +171 -0
  12. data/README.md +189 -147
  13. data/Rakefile +1 -40
  14. data/api_names.yaml +1088 -0
  15. data/api_names_out.yaml +26978 -0
  16. data/bin/generate-api +109 -0
  17. data/generated/google/apis/adexchangebuyer_v1_3/classes.rb +1335 -0
  18. data/generated/google/apis/adexchangebuyer_v1_3/representations.rb +446 -0
  19. data/generated/google/apis/adexchangebuyer_v1_3/service.rb +872 -0
  20. data/generated/google/apis/adexchangebuyer_v1_3.rb +35 -0
  21. data/generated/google/apis/adexchangebuyer_v1_4/classes.rb +3025 -0
  22. data/generated/google/apis/adexchangebuyer_v1_4/representations.rb +1240 -0
  23. data/generated/google/apis/adexchangebuyer_v1_4/service.rb +1446 -0
  24. data/generated/google/apis/adexchangebuyer_v1_4.rb +35 -0
  25. data/generated/google/apis/adexchangeseller_v2_0/classes.rb +792 -0
  26. data/generated/google/apis/adexchangeseller_v2_0/representations.rb +347 -0
  27. data/generated/google/apis/adexchangeseller_v2_0/service.rb +668 -0
  28. data/generated/google/apis/adexchangeseller_v2_0.rb +38 -0
  29. data/generated/google/apis/admin_datatransfer_v1/classes.rb +267 -0
  30. data/generated/google/apis/admin_datatransfer_v1/representations.rb +130 -0
  31. data/generated/google/apis/admin_datatransfer_v1/service.rb +262 -0
  32. data/generated/google/apis/admin_datatransfer_v1.rb +37 -0
  33. data/generated/google/apis/admin_directory_v1/classes.rb +3141 -0
  34. data/generated/google/apis/admin_directory_v1/representations.rb +1147 -0
  35. data/generated/google/apis/admin_directory_v1/service.rb +3818 -0
  36. data/generated/google/apis/admin_directory_v1.rb +113 -0
  37. data/generated/google/apis/admin_reports_v1/classes.rb +582 -0
  38. data/generated/google/apis/admin_reports_v1/representations.rb +257 -0
  39. data/generated/google/apis/admin_reports_v1/service.rb +336 -0
  40. data/generated/google/apis/admin_reports_v1.rb +38 -0
  41. data/generated/google/apis/adsense_v1_4/classes.rb +1280 -0
  42. data/generated/google/apis/adsense_v1_4/representations.rb +555 -0
  43. data/generated/google/apis/adsense_v1_4/service.rb +1714 -0
  44. data/generated/google/apis/adsense_v1_4.rb +38 -0
  45. data/generated/google/apis/adsensehost_v4_1/classes.rb +837 -0
  46. data/generated/google/apis/adsensehost_v4_1/representations.rb +367 -0
  47. data/generated/google/apis/adsensehost_v4_1/service.rb +1164 -0
  48. data/generated/google/apis/adsensehost_v4_1.rb +35 -0
  49. data/generated/google/apis/analytics_v3/classes.rb +5118 -0
  50. data/generated/google/apis/analytics_v3/representations.rb +1850 -0
  51. data/generated/google/apis/analytics_v3/service.rb +3568 -0
  52. data/generated/google/apis/analytics_v3.rb +49 -0
  53. data/generated/google/apis/androidenterprise_v1/classes.rb +1443 -0
  54. data/generated/google/apis/androidenterprise_v1/representations.rb +614 -0
  55. data/generated/google/apis/androidenterprise_v1/service.rb +2607 -0
  56. data/generated/google/apis/androidenterprise_v1.rb +35 -0
  57. data/generated/google/apis/androidpublisher_v2/classes.rb +1411 -0
  58. data/generated/google/apis/androidpublisher_v2/representations.rb +738 -0
  59. data/generated/google/apis/androidpublisher_v2/service.rb +2338 -0
  60. data/generated/google/apis/androidpublisher_v2.rb +34 -0
  61. data/generated/google/apis/appengine_v1beta4/classes.rb +1585 -0
  62. data/generated/google/apis/appengine_v1beta4/representations.rb +542 -0
  63. data/generated/google/apis/appengine_v1beta4/service.rb +477 -0
  64. data/generated/google/apis/appengine_v1beta4.rb +35 -0
  65. data/generated/google/apis/appengine_v1beta5/classes.rb +1544 -0
  66. data/generated/google/apis/appengine_v1beta5/representations.rb +594 -0
  67. data/generated/google/apis/appengine_v1beta5/service.rb +521 -0
  68. data/generated/google/apis/appengine_v1beta5.rb +35 -0
  69. data/generated/google/apis/appsactivity_v1/classes.rb +392 -0
  70. data/generated/google/apis/appsactivity_v1/representations.rb +206 -0
  71. data/generated/google/apis/appsactivity_v1/service.rb +128 -0
  72. data/generated/google/apis/appsactivity_v1.rb +46 -0
  73. data/generated/google/apis/appstate_v1/classes.rb +154 -0
  74. data/generated/google/apis/appstate_v1/representations.rb +87 -0
  75. data/generated/google/apis/appstate_v1/service.rb +260 -0
  76. data/generated/google/apis/appstate_v1.rb +34 -0
  77. data/generated/google/apis/autoscaler_v1beta2/classes.rb +747 -0
  78. data/generated/google/apis/autoscaler_v1beta2/representations.rb +313 -0
  79. data/generated/google/apis/autoscaler_v1beta2/service.rb +478 -0
  80. data/generated/google/apis/autoscaler_v1beta2.rb +38 -0
  81. data/generated/google/apis/bigquery_v2/classes.rb +2503 -0
  82. data/generated/google/apis/bigquery_v2/representations.rb +914 -0
  83. data/generated/google/apis/bigquery_v2/service.rb +982 -0
  84. data/generated/google/apis/bigquery_v2.rb +52 -0
  85. data/generated/google/apis/blogger_v3/classes.rb +1354 -0
  86. data/generated/google/apis/blogger_v3/representations.rb +632 -0
  87. data/generated/google/apis/blogger_v3/service.rb +1587 -0
  88. data/generated/google/apis/blogger_v3.rb +37 -0
  89. data/generated/google/apis/books_v1/classes.rb +4006 -0
  90. data/generated/google/apis/books_v1/representations.rb +1742 -0
  91. data/generated/google/apis/books_v1/service.rb +2293 -0
  92. data/generated/google/apis/books_v1.rb +34 -0
  93. data/generated/google/apis/calendar_v3/classes.rb +1742 -0
  94. data/generated/google/apis/calendar_v3/representations.rb +631 -0
  95. data/generated/google/apis/calendar_v3/service.rb +1968 -0
  96. data/generated/google/apis/calendar_v3.rb +37 -0
  97. data/generated/google/apis/civicinfo_v2/classes.rb +1127 -0
  98. data/generated/google/apis/civicinfo_v2/representations.rb +423 -0
  99. data/generated/google/apis/civicinfo_v2/service.rb +279 -0
  100. data/generated/google/apis/civicinfo_v2.rb +31 -0
  101. data/generated/google/apis/classroom_v1/classes.rb +512 -0
  102. data/generated/google/apis/classroom_v1/representations.rb +245 -0
  103. data/generated/google/apis/classroom_v1/service.rb +970 -0
  104. data/generated/google/apis/classroom_v1.rb +49 -0
  105. data/generated/google/apis/classroom_v1beta1/classes.rb +447 -0
  106. data/generated/google/apis/classroom_v1beta1/representations.rb +190 -0
  107. data/generated/google/apis/classroom_v1beta1/service.rb +791 -0
  108. data/generated/google/apis/classroom_v1beta1.rb +49 -0
  109. data/generated/google/apis/cloudbilling_v1/classes.rb +169 -0
  110. data/generated/google/apis/cloudbilling_v1/representations.rb +87 -0
  111. data/generated/google/apis/cloudbilling_v1/service.rb +258 -0
  112. data/generated/google/apis/cloudbilling_v1.rb +35 -0
  113. data/generated/google/apis/cloudbuild_v1/classes.rb +521 -0
  114. data/generated/google/apis/cloudbuild_v1/representations.rb +214 -0
  115. data/generated/google/apis/cloudbuild_v1/service.rb +278 -0
  116. data/generated/google/apis/cloudbuild_v1.rb +35 -0
  117. data/generated/google/apis/clouddebugger_v2/classes.rb +1004 -0
  118. data/generated/google/apis/clouddebugger_v2/representations.rb +464 -0
  119. data/generated/google/apis/clouddebugger_v2/service.rb +370 -0
  120. data/generated/google/apis/clouddebugger_v2.rb +41 -0
  121. data/generated/google/apis/cloudlatencytest_v2/classes.rb +195 -0
  122. data/generated/google/apis/cloudlatencytest_v2/representations.rb +127 -0
  123. data/generated/google/apis/cloudlatencytest_v2/service.rb +135 -0
  124. data/generated/google/apis/cloudlatencytest_v2.rb +34 -0
  125. data/generated/google/apis/cloudmonitoring_v2beta2/classes.rb +679 -0
  126. data/generated/google/apis/cloudmonitoring_v2beta2/representations.rb +353 -0
  127. data/generated/google/apis/cloudmonitoring_v2beta2/service.rb +452 -0
  128. data/generated/google/apis/cloudmonitoring_v2beta2.rb +37 -0
  129. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +450 -0
  130. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +226 -0
  131. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +626 -0
  132. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +38 -0
  133. data/generated/google/apis/cloudtrace_v1/classes.rb +188 -0
  134. data/generated/google/apis/cloudtrace_v1/representations.rb +102 -0
  135. data/generated/google/apis/cloudtrace_v1/service.rb +190 -0
  136. data/generated/google/apis/cloudtrace_v1.rb +35 -0
  137. data/generated/google/apis/clouduseraccounts_beta/classes.rb +823 -0
  138. data/generated/google/apis/clouduseraccounts_beta/representations.rb +351 -0
  139. data/generated/google/apis/clouduseraccounts_beta/service.rb +854 -0
  140. data/generated/google/apis/clouduseraccounts_beta.rb +43 -0
  141. data/generated/google/apis/compute_beta/classes.rb +9741 -0
  142. data/generated/google/apis/compute_beta/representations.rb +3649 -0
  143. data/generated/google/apis/compute_beta/service.rb +10636 -0
  144. data/generated/google/apis/compute_beta.rb +49 -0
  145. data/generated/google/apis/compute_v1/classes.rb +9095 -0
  146. data/generated/google/apis/compute_v1/representations.rb +3389 -0
  147. data/generated/google/apis/compute_v1/service.rb +9627 -0
  148. data/generated/google/apis/compute_v1.rb +49 -0
  149. data/generated/google/apis/container_v1/classes.rb +463 -0
  150. data/generated/google/apis/container_v1/representations.rb +195 -0
  151. data/generated/google/apis/container_v1/service.rb +367 -0
  152. data/generated/google/apis/container_v1.rb +35 -0
  153. data/generated/google/apis/container_v1beta1/classes.rb +466 -0
  154. data/generated/google/apis/container_v1beta1/representations.rb +177 -0
  155. data/generated/google/apis/container_v1beta1/service.rb +394 -0
  156. data/generated/google/apis/container_v1beta1.rb +35 -0
  157. data/generated/google/apis/content_v2/classes.rb +6114 -0
  158. data/generated/google/apis/content_v2/representations.rb +2624 -0
  159. data/generated/google/apis/content_v2/service.rb +2338 -0
  160. data/generated/google/apis/content_v2.rb +35 -0
  161. data/generated/google/apis/coordinate_v1/classes.rb +669 -0
  162. data/generated/google/apis/coordinate_v1/representations.rb +321 -0
  163. data/generated/google/apis/coordinate_v1/service.rb +678 -0
  164. data/generated/google/apis/coordinate_v1.rb +37 -0
  165. data/generated/google/apis/customsearch_v1/classes.rb +771 -0
  166. data/generated/google/apis/customsearch_v1/representations.rb +302 -0
  167. data/generated/google/apis/customsearch_v1/service.rb +207 -0
  168. data/{lib/google/api_client/auth/compute_service_account.rb → generated/google/apis/customsearch_v1.rb} +13 -10
  169. data/generated/google/apis/dataproc_v1/classes.rb +1590 -0
  170. data/generated/google/apis/dataproc_v1/representations.rb +653 -0
  171. data/generated/google/apis/dataproc_v1/service.rb +719 -0
  172. data/generated/google/apis/dataproc_v1.rb +43 -0
  173. data/generated/google/apis/datastore_v1beta2/classes.rb +1186 -0
  174. data/generated/google/apis/datastore_v1beta2/representations.rb +594 -0
  175. data/generated/google/apis/datastore_v1beta2/service.rb +294 -0
  176. data/generated/google/apis/datastore_v1beta2.rb +40 -0
  177. data/generated/google/apis/deploymentmanager_v2/classes.rb +1162 -0
  178. data/generated/google/apis/deploymentmanager_v2/representations.rb +508 -0
  179. data/generated/google/apis/deploymentmanager_v2/service.rb +862 -0
  180. data/generated/google/apis/deploymentmanager_v2.rb +44 -0
  181. data/generated/google/apis/deploymentmanager_v2beta2/classes.rb +843 -0
  182. data/generated/google/apis/deploymentmanager_v2beta2/representations.rb +306 -0
  183. data/generated/google/apis/deploymentmanager_v2beta2/service.rb +689 -0
  184. data/generated/google/apis/deploymentmanager_v2beta2.rb +44 -0
  185. data/generated/google/apis/dfareporting_v2_1/classes.rb +10770 -0
  186. data/generated/google/apis/dfareporting_v2_1/representations.rb +3438 -0
  187. data/generated/google/apis/dfareporting_v2_1/service.rb +8585 -0
  188. data/generated/google/apis/dfareporting_v2_1.rb +37 -0
  189. data/generated/google/apis/dfareporting_v2_3/classes.rb +10830 -0
  190. data/generated/google/apis/dfareporting_v2_3/representations.rb +3829 -0
  191. data/generated/google/apis/dfareporting_v2_3/service.rb +8581 -0
  192. data/generated/google/apis/dfareporting_v2_3.rb +37 -0
  193. data/generated/google/apis/discovery_v1/classes.rb +961 -0
  194. data/generated/google/apis/discovery_v1/representations.rb +397 -0
  195. data/generated/google/apis/discovery_v1/service.rb +142 -0
  196. data/generated/google/apis/discovery_v1.rb +32 -0
  197. data/generated/google/apis/dns_v1/classes.rb +406 -0
  198. data/generated/google/apis/dns_v1/representations.rb +167 -0
  199. data/generated/google/apis/dns_v1/service.rb +454 -0
  200. data/generated/google/apis/dns_v1.rb +44 -0
  201. data/generated/google/apis/doubleclickbidmanager_v1/classes.rb +802 -0
  202. data/generated/google/apis/doubleclickbidmanager_v1/representations.rb +371 -0
  203. data/generated/google/apis/doubleclickbidmanager_v1/service.rb +374 -0
  204. data/generated/google/apis/doubleclickbidmanager_v1.rb +31 -0
  205. data/generated/google/apis/doubleclicksearch_v2/classes.rb +958 -0
  206. data/generated/google/apis/doubleclicksearch_v2/representations.rb +350 -0
  207. data/generated/google/apis/doubleclicksearch_v2/service.rb +480 -0
  208. data/generated/google/apis/doubleclicksearch_v2.rb +35 -0
  209. data/generated/google/apis/drive_v2/classes.rb +2569 -0
  210. data/generated/google/apis/drive_v2/representations.rb +878 -0
  211. data/generated/google/apis/drive_v2/service.rb +2740 -0
  212. data/generated/google/apis/drive_v2.rb +58 -0
  213. data/generated/google/apis/drive_v3/classes.rb +1541 -0
  214. data/generated/google/apis/drive_v3/representations.rb +548 -0
  215. data/generated/google/apis/drive_v3/service.rb +1542 -0
  216. data/generated/google/apis/drive_v3.rb +55 -0
  217. data/generated/google/apis/fitness_v1/classes.rb +885 -0
  218. data/generated/google/apis/fitness_v1/representations.rb +360 -0
  219. data/generated/google/apis/fitness_v1/service.rb +675 -0
  220. data/generated/google/apis/fitness_v1.rb +49 -0
  221. data/generated/google/apis/fusiontables_v2/classes.rb +1048 -0
  222. data/generated/google/apis/fusiontables_v2/representations.rb +457 -0
  223. data/generated/google/apis/fusiontables_v2/service.rb +1463 -0
  224. data/generated/google/apis/fusiontables_v2.rb +37 -0
  225. data/generated/google/apis/games_configuration_v1configuration/classes.rb +506 -0
  226. data/generated/google/apis/games_configuration_v1configuration/representations.rb +228 -0
  227. data/generated/google/apis/games_configuration_v1configuration/service.rb +565 -0
  228. data/generated/google/apis/games_configuration_v1configuration.rb +34 -0
  229. data/generated/google/apis/games_management_v1management/classes.rb +533 -0
  230. data/generated/google/apis/games_management_v1management/representations.rb +262 -0
  231. data/generated/google/apis/games_management_v1management/service.rb +994 -0
  232. data/generated/google/apis/games_management_v1management.rb +37 -0
  233. data/generated/google/apis/games_v1/classes.rb +4626 -0
  234. data/generated/google/apis/games_v1/representations.rb +1783 -0
  235. data/generated/google/apis/games_v1/service.rb +2290 -0
  236. data/generated/google/apis/games_v1.rb +40 -0
  237. data/generated/google/apis/gan_v1beta1/classes.rb +1428 -0
  238. data/generated/google/apis/gan_v1beta1/representations.rb +462 -0
  239. data/generated/google/apis/gan_v1beta1/service.rb +682 -0
  240. data/generated/google/apis/gan_v1beta1.rb +31 -0
  241. data/generated/google/apis/genomics_v1/classes.rb +2609 -0
  242. data/generated/google/apis/genomics_v1/representations.rb +1029 -0
  243. data/generated/google/apis/genomics_v1/service.rb +1676 -0
  244. data/generated/google/apis/genomics_v1.rb +49 -0
  245. data/generated/google/apis/genomics_v1beta2/classes.rb +3288 -0
  246. data/generated/google/apis/genomics_v1beta2/representations.rb +1194 -0
  247. data/generated/google/apis/genomics_v1beta2/service.rb +2392 -0
  248. data/generated/google/apis/genomics_v1beta2.rb +46 -0
  249. data/generated/google/apis/gmail_v1/classes.rb +794 -0
  250. data/generated/google/apis/gmail_v1/representations.rb +383 -0
  251. data/generated/google/apis/gmail_v1/service.rb +1470 -0
  252. data/generated/google/apis/gmail_v1.rb +52 -0
  253. data/generated/google/apis/groupsmigration_v1/classes.rb +51 -0
  254. data/generated/google/apis/groupsmigration_v1/representations.rb +40 -0
  255. data/generated/google/apis/groupsmigration_v1/service.rb +110 -0
  256. data/generated/google/apis/groupsmigration_v1.rb +34 -0
  257. data/generated/google/apis/groupssettings_v1/classes.rb +221 -0
  258. data/generated/google/apis/groupssettings_v1/representations.rb +66 -0
  259. data/generated/google/apis/groupssettings_v1/service.rb +179 -0
  260. data/generated/google/apis/groupssettings_v1.rb +34 -0
  261. data/generated/google/apis/identitytoolkit_v3/classes.rb +1637 -0
  262. data/generated/google/apis/identitytoolkit_v3/representations.rb +618 -0
  263. data/generated/google/apis/identitytoolkit_v3/service.rb +616 -0
  264. data/generated/google/apis/identitytoolkit_v3.rb +31 -0
  265. data/generated/google/apis/kgsearch_v1/classes.rb +59 -0
  266. data/generated/google/apis/kgsearch_v1/representations.rb +41 -0
  267. data/generated/google/apis/kgsearch_v1/service.rb +111 -0
  268. data/{spec/google/api_client/request_spec.rb → generated/google/apis/kgsearch_v1.rb} +16 -13
  269. data/generated/google/apis/licensing_v1/classes.rb +132 -0
  270. data/generated/google/apis/licensing_v1/representations.rb +74 -0
  271. data/generated/google/apis/licensing_v1/service.rb +369 -0
  272. data/generated/google/apis/licensing_v1.rb +34 -0
  273. data/generated/google/apis/logging_v1beta3/classes.rb +1079 -0
  274. data/generated/google/apis/logging_v1beta3/representations.rb +366 -0
  275. data/generated/google/apis/logging_v1beta3/service.rb +1001 -0
  276. data/generated/google/apis/logging_v1beta3.rb +47 -0
  277. data/generated/google/apis/logging_v2beta1/classes.rb +990 -0
  278. data/generated/google/apis/logging_v2beta1/representations.rb +377 -0
  279. data/generated/google/apis/logging_v2beta1/service.rb +547 -0
  280. data/generated/google/apis/logging_v2beta1.rb +47 -0
  281. data/generated/google/apis/manager_v1beta2/classes.rb +1287 -0
  282. data/generated/google/apis/manager_v1beta2/representations.rb +606 -0
  283. data/generated/google/apis/manager_v1beta2/service.rb +372 -0
  284. data/generated/google/apis/manager_v1beta2.rb +53 -0
  285. data/generated/google/apis/mirror_v1/classes.rb +1072 -0
  286. data/generated/google/apis/mirror_v1/representations.rb +390 -0
  287. data/generated/google/apis/mirror_v1/service.rb +977 -0
  288. data/generated/google/apis/mirror_v1.rb +37 -0
  289. data/generated/google/apis/oauth2_v2/classes.rb +245 -0
  290. data/generated/google/apis/oauth2_v2/representations.rb +102 -0
  291. data/generated/google/apis/oauth2_v2/service.rb +199 -0
  292. data/generated/google/apis/oauth2_v2.rb +43 -0
  293. data/generated/google/apis/pagespeedonline_v2/classes.rb +614 -0
  294. data/generated/google/apis/pagespeedonline_v2/representations.rb +272 -0
  295. data/generated/google/apis/pagespeedonline_v2/service.rb +119 -0
  296. data/generated/google/apis/pagespeedonline_v2.rb +32 -0
  297. data/generated/google/apis/partners_v2/classes.rb +942 -0
  298. data/generated/google/apis/partners_v2/representations.rb +454 -0
  299. data/generated/google/apis/partners_v2/service.rb +400 -0
  300. data/generated/google/apis/partners_v2.rb +32 -0
  301. data/generated/google/apis/people_v1/classes.rb +1521 -0
  302. data/generated/google/apis/people_v1/representations.rb +663 -0
  303. data/generated/google/apis/people_v1/service.rb +189 -0
  304. data/generated/google/apis/people_v1.rb +59 -0
  305. data/generated/google/apis/plus_domains_v1/classes.rb +2609 -0
  306. data/generated/google/apis/plus_domains_v1/representations.rb +1111 -0
  307. data/generated/google/apis/plus_domains_v1/service.rb +904 -0
  308. data/generated/google/apis/plus_domains_v1.rb +61 -0
  309. data/generated/google/apis/plus_v1/classes.rb +2094 -0
  310. data/generated/google/apis/plus_v1/representations.rb +907 -0
  311. data/generated/google/apis/plus_v1/service.rb +470 -0
  312. data/generated/google/apis/plus_v1.rb +43 -0
  313. data/generated/google/apis/prediction_v1_6/classes.rb +751 -0
  314. data/generated/google/apis/prediction_v1_6/representations.rb +369 -0
  315. data/generated/google/apis/prediction_v1_6/service.rb +380 -0
  316. data/generated/google/apis/prediction_v1_6.rb +44 -0
  317. data/generated/google/apis/proximitybeacon_v1beta1/classes.rb +639 -0
  318. data/generated/google/apis/proximitybeacon_v1beta1/representations.rb +312 -0
  319. data/generated/google/apis/proximitybeacon_v1beta1/service.rb +591 -0
  320. data/generated/google/apis/proximitybeacon_v1beta1.rb +31 -0
  321. data/generated/google/apis/pubsub_v1/classes.rb +614 -0
  322. data/generated/google/apis/pubsub_v1/representations.rb +323 -0
  323. data/generated/google/apis/pubsub_v1/service.rb +774 -0
  324. data/generated/google/apis/pubsub_v1.rb +37 -0
  325. data/generated/google/apis/pubsub_v1beta2/classes.rb +620 -0
  326. data/generated/google/apis/pubsub_v1beta2/representations.rb +282 -0
  327. data/generated/google/apis/pubsub_v1beta2/service.rb +774 -0
  328. data/generated/google/apis/pubsub_v1beta2.rb +37 -0
  329. data/generated/google/apis/qpx_express_v1/classes.rb +1268 -0
  330. data/generated/google/apis/qpx_express_v1/representations.rb +472 -0
  331. data/generated/google/apis/qpx_express_v1/service.rb +100 -0
  332. data/generated/google/apis/qpx_express_v1.rb +31 -0
  333. data/generated/google/apis/replicapool_v1beta2/classes.rb +631 -0
  334. data/generated/google/apis/replicapool_v1beta2/representations.rb +264 -0
  335. data/generated/google/apis/replicapool_v1beta2/service.rb +608 -0
  336. data/generated/google/apis/replicapool_v1beta2.rb +44 -0
  337. data/generated/google/apis/replicapoolupdater_v1beta1/classes.rb +733 -0
  338. data/generated/google/apis/replicapoolupdater_v1beta1/representations.rb +294 -0
  339. data/generated/google/apis/replicapoolupdater_v1beta1/service.rb +508 -0
  340. data/generated/google/apis/replicapoolupdater_v1beta1.rb +44 -0
  341. data/generated/google/apis/reseller_v1/classes.rb +526 -0
  342. data/generated/google/apis/reseller_v1/representations.rb +223 -0
  343. data/generated/google/apis/reseller_v1/service.rb +623 -0
  344. data/generated/google/apis/reseller_v1.rb +37 -0
  345. data/generated/google/apis/resourceviews_v1beta2/classes.rb +660 -0
  346. data/generated/google/apis/resourceviews_v1beta2/representations.rb +301 -0
  347. data/generated/google/apis/resourceviews_v1beta2/service.rb +563 -0
  348. data/generated/google/apis/resourceviews_v1beta2.rb +50 -0
  349. data/generated/google/apis/script_v1/classes.rb +259 -0
  350. data/generated/google/apis/script_v1/representations.rb +118 -0
  351. data/generated/google/apis/script_v1/service.rb +98 -0
  352. data/generated/google/apis/script_v1.rb +61 -0
  353. data/generated/google/apis/site_verification_v1/classes.rb +185 -0
  354. data/generated/google/apis/site_verification_v1/representations.rb +113 -0
  355. data/generated/google/apis/site_verification_v1/service.rb +315 -0
  356. data/generated/google/apis/site_verification_v1.rb +37 -0
  357. data/generated/google/apis/sqladmin_v1beta4/classes.rb +2030 -0
  358. data/generated/google/apis/sqladmin_v1beta4/representations.rb +856 -0
  359. data/generated/google/apis/sqladmin_v1beta4/service.rb +1625 -0
  360. data/generated/google/apis/sqladmin_v1beta4.rb +37 -0
  361. data/generated/google/apis/storage_v1/classes.rb +1222 -0
  362. data/generated/google/apis/storage_v1/representations.rb +497 -0
  363. data/generated/google/apis/storage_v1/service.rb +1903 -0
  364. data/generated/google/apis/storage_v1.rb +46 -0
  365. data/generated/google/apis/storagetransfer_v1/classes.rb +1046 -0
  366. data/generated/google/apis/storagetransfer_v1/representations.rb +418 -0
  367. data/generated/google/apis/storagetransfer_v1/service.rb +473 -0
  368. data/generated/google/apis/storagetransfer_v1.rb +35 -0
  369. data/generated/google/apis/tagmanager_v1/classes.rb +1494 -0
  370. data/generated/google/apis/tagmanager_v1/representations.rb +611 -0
  371. data/generated/google/apis/tagmanager_v1/service.rb +2119 -0
  372. data/generated/google/apis/tagmanager_v1.rb +52 -0
  373. data/generated/google/apis/taskqueue_v1beta2/classes.rb +254 -0
  374. data/generated/google/apis/taskqueue_v1beta2/representations.rb +126 -0
  375. data/generated/google/apis/taskqueue_v1beta2/service.rb +408 -0
  376. data/generated/google/apis/taskqueue_v1beta2.rb +37 -0
  377. data/generated/google/apis/tasks_v1/classes.rb +296 -0
  378. data/generated/google/apis/tasks_v1/representations.rb +125 -0
  379. data/generated/google/apis/tasks_v1/service.rb +643 -0
  380. data/generated/google/apis/tasks_v1.rb +37 -0
  381. data/generated/google/apis/translate_v2/classes.rb +168 -0
  382. data/generated/google/apis/translate_v2/representations.rb +121 -0
  383. data/generated/google/apis/translate_v2/service.rb +182 -0
  384. data/generated/google/apis/translate_v2.rb +31 -0
  385. data/generated/google/apis/urlshortener_v1/classes.rb +246 -0
  386. data/generated/google/apis/urlshortener_v1/representations.rb +121 -0
  387. data/generated/google/apis/urlshortener_v1/service.rb +176 -0
  388. data/generated/google/apis/urlshortener_v1.rb +34 -0
  389. data/generated/google/apis/vision_v1/classes.rb +1259 -0
  390. data/generated/google/apis/vision_v1/representations.rb +418 -0
  391. data/generated/google/apis/vision_v1/service.rb +91 -0
  392. data/generated/google/apis/vision_v1.rb +37 -0
  393. data/generated/google/apis/webmasters_v3/classes.rb +563 -0
  394. data/generated/google/apis/webmasters_v3/representations.rb +282 -0
  395. data/generated/google/apis/webmasters_v3/service.rb +573 -0
  396. data/generated/google/apis/webmasters_v3.rb +37 -0
  397. data/generated/google/apis/youtube_analytics_v1/classes.rb +546 -0
  398. data/generated/google/apis/youtube_analytics_v1/representations.rb +273 -0
  399. data/generated/google/apis/youtube_analytics_v1/service.rb +562 -0
  400. data/generated/google/apis/youtube_analytics_v1.rb +46 -0
  401. data/generated/google/apis/youtube_v3/classes.rb +8071 -0
  402. data/generated/google/apis/youtube_v3/representations.rb +3134 -0
  403. data/generated/google/apis/youtube_v3/service.rb +4403 -0
  404. data/generated/google/apis/youtube_v3.rb +49 -0
  405. data/generated/google/apis/youtubereporting_v1/classes.rb +258 -0
  406. data/generated/google/apis/youtubereporting_v1/representations.rb +144 -0
  407. data/generated/google/apis/youtubereporting_v1/service.rb +364 -0
  408. data/generated/google/apis/youtubereporting_v1.rb +38 -0
  409. data/google-api-client.gemspec +25 -39
  410. data/lib/google/api_client/auth/installed_app.rb +7 -5
  411. data/lib/google/api_client/auth/key_utils.rb +1 -0
  412. data/lib/google/api_client/auth/storage.rb +4 -2
  413. data/lib/google/api_client/auth/storages/file_store.rb +2 -3
  414. data/lib/google/api_client/auth/storages/redis_store.rb +7 -2
  415. data/lib/google/api_client/client_secrets.rb +7 -9
  416. data/lib/google/apis/core/api_command.rb +136 -0
  417. data/lib/google/apis/core/base_service.rb +317 -0
  418. data/lib/google/apis/core/batch.rb +239 -0
  419. data/lib/google/apis/core/download.rb +94 -0
  420. data/lib/google/apis/core/hashable.rb +44 -0
  421. data/lib/google/apis/core/http_client_adapter.rb +82 -0
  422. data/lib/google/apis/core/http_command.rb +328 -0
  423. data/lib/google/apis/core/json_representation.rb +145 -0
  424. data/lib/google/{api_client/version.rb → apis/core/logging.rb} +12 -8
  425. data/lib/google/apis/core/multipart.rb +187 -0
  426. data/lib/google/apis/core/upload.rb +289 -0
  427. data/lib/google/{api_client → apis}/errors.rb +39 -28
  428. data/lib/google/apis/generator/annotator.rb +295 -0
  429. data/lib/google/apis/generator/helpers.rb +74 -0
  430. data/lib/google/apis/generator/model.rb +143 -0
  431. data/lib/google/apis/generator/template.rb +124 -0
  432. data/lib/google/apis/generator/templates/_class.tmpl +40 -0
  433. data/lib/google/apis/generator/templates/_method.tmpl +92 -0
  434. data/lib/google/apis/generator/templates/_representation.tmpl +51 -0
  435. data/lib/google/apis/generator/templates/_representation_stub.tmpl +17 -0
  436. data/lib/google/apis/generator/templates/_representation_type.tmpl +10 -0
  437. data/lib/google/{api_client/reference.rb → apis/generator/templates/classes.rb.tmpl} +11 -9
  438. data/lib/google/apis/generator/templates/module.rb.tmpl +40 -0
  439. data/lib/google/apis/generator/templates/representations.rb.tmpl +32 -0
  440. data/lib/google/apis/generator/templates/service.rb.tmpl +60 -0
  441. data/lib/google/apis/generator.rb +70 -0
  442. data/lib/google/apis/options.rb +85 -0
  443. data/lib/google/apis/version.rb +39 -0
  444. data/lib/google/apis.rb +48 -0
  445. data/rakelib/metrics.rake +22 -0
  446. data/rakelib/rubocop.rake +10 -0
  447. data/rakelib/spec.rake +11 -0
  448. data/rakelib/yard.rake +11 -0
  449. data/samples/cli/Gemfile +7 -0
  450. data/samples/cli/README.md +51 -0
  451. data/samples/cli/google-api-samples +32 -0
  452. data/samples/cli/lib/base_cli.rb +95 -0
  453. data/samples/cli/lib/samples/analytics.rb +62 -0
  454. data/samples/cli/lib/samples/androidpublisher.rb +47 -0
  455. data/samples/cli/lib/samples/calendar.rb +83 -0
  456. data/samples/cli/lib/samples/drive.rb +82 -0
  457. data/samples/cli/lib/samples/gmail.rb +50 -0
  458. data/samples/cli/lib/samples/pubsub.rb +114 -0
  459. data/samples/cli/lib/samples/translate.rb +44 -0
  460. data/samples/cli/lib/samples/you_tube.rb +44 -0
  461. data/samples/web/Gemfile +7 -0
  462. data/samples/web/README.md +44 -0
  463. data/samples/web/app.rb +120 -0
  464. data/samples/web/views/calendar.erb +34 -0
  465. data/{lib/google/api_client/service_account.rb → samples/web/views/drive.erb} +20 -8
  466. data/samples/web/views/home.erb +35 -0
  467. data/samples/web/views/layout.erb +40 -0
  468. data/script/generate +100 -0
  469. data/script/package +8 -0
  470. data/script/release +15 -0
  471. data/spec/fixtures/files/api_names.yaml +3 -0
  472. data/spec/fixtures/files/auth_stored_credentials.json +8 -0
  473. data/spec/fixtures/files/child/.gitignore +0 -0
  474. data/spec/fixtures/files/client_secrets.json +1 -0
  475. data/spec/fixtures/files/invalid.json +1 -0
  476. data/spec/fixtures/files/test.blah +1 -0
  477. data/spec/fixtures/files/test.txt +1 -0
  478. data/spec/fixtures/files/test_api.json +440 -0
  479. data/spec/google/api_client/auth/storage_spec.rb +1 -3
  480. data/spec/google/api_client/auth/storages/file_store_spec.rb +1 -2
  481. data/spec/google/api_client/auth/storages/redis_store_spec.rb +1 -3
  482. data/spec/google/api_client/client_secrets_spec.rb +338 -2
  483. data/spec/google/apis/core/api_command_spec.rb +209 -0
  484. data/spec/google/apis/core/batch_spec.rb +142 -0
  485. data/spec/google/apis/core/download_spec.rb +103 -0
  486. data/spec/google/apis/core/hashable_spec.rb +60 -0
  487. data/spec/google/apis/core/http_command_spec.rb +303 -0
  488. data/spec/google/apis/core/json_representation_spec.rb +199 -0
  489. data/spec/google/apis/core/service_spec.rb +247 -0
  490. data/spec/google/apis/core/upload_spec.rb +300 -0
  491. data/{lib/google/api_client/discovery.rb → spec/google/apis/generated_spec.rb} +13 -5
  492. data/spec/google/apis/generator/generator_spec.rb +324 -0
  493. data/spec/google/apis/logging_spec.rb +45 -0
  494. data/spec/google/apis/options_spec.rb +40 -0
  495. data/spec/integration_tests/adsense_spec.rb +29 -0
  496. data/spec/integration_tests/drive_spec.rb +35 -0
  497. data/spec/integration_tests/pubsub_spec.rb +48 -0
  498. data/spec/integration_tests/url_shortener_spec.rb +45 -0
  499. data/spec/spec_helper/load_path_spec.rb +33 -0
  500. data/spec/spec_helper.rb +131 -44
  501. data/third_party/hurley_patches.rb +103 -0
  502. metadata +563 -188
  503. data/lib/compat/multi_json.rb +0 -19
  504. data/lib/google/api_client/auth/file_storage.rb +0 -59
  505. data/lib/google/api_client/auth/jwt_asserter.rb +0 -126
  506. data/lib/google/api_client/auth/pkcs12.rb +0 -41
  507. data/lib/google/api_client/batch.rb +0 -326
  508. data/lib/google/api_client/charset.rb +0 -33
  509. data/lib/google/api_client/discovery/api.rb +0 -310
  510. data/lib/google/api_client/discovery/media.rb +0 -77
  511. data/lib/google/api_client/discovery/method.rb +0 -363
  512. data/lib/google/api_client/discovery/resource.rb +0 -156
  513. data/lib/google/api_client/discovery/schema.rb +0 -117
  514. data/lib/google/api_client/environment.rb +0 -42
  515. data/lib/google/api_client/gzip.rb +0 -28
  516. data/lib/google/api_client/logging.rb +0 -32
  517. data/lib/google/api_client/media.rb +0 -259
  518. data/lib/google/api_client/railtie.rb +0 -18
  519. data/lib/google/api_client/request.rb +0 -350
  520. data/lib/google/api_client/result.rb +0 -255
  521. data/lib/google/api_client/service/batch.rb +0 -110
  522. data/lib/google/api_client/service/request.rb +0 -144
  523. data/lib/google/api_client/service/resource.rb +0 -40
  524. data/lib/google/api_client/service/result.rb +0 -162
  525. data/lib/google/api_client/service/simple_file_store.rb +0 -151
  526. data/lib/google/api_client/service/stub_generator.rb +0 -61
  527. data/lib/google/api_client/service.rb +0 -233
  528. data/lib/google/api_client.rb +0 -750
  529. data/spec/google/api_client/batch_spec.rb +0 -248
  530. data/spec/google/api_client/discovery_spec.rb +0 -708
  531. data/spec/google/api_client/gzip_spec.rb +0 -98
  532. data/spec/google/api_client/media_spec.rb +0 -178
  533. data/spec/google/api_client/result_spec.rb +0 -207
  534. data/spec/google/api_client/service_account_spec.rb +0 -169
  535. data/spec/google/api_client/service_spec.rb +0 -618
  536. data/spec/google/api_client/simple_file_store_spec.rb +0 -133
  537. data/spec/google/api_client_spec.rb +0 -352
@@ -0,0 +1,4006 @@
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] if args.key?(:after_selected_text)
124
+ @before_selected_text = args[:before_selected_text] if args.key?(:before_selected_text)
125
+ @client_version_ranges = args[:client_version_ranges] if args.key?(:client_version_ranges)
126
+ @created = args[:created] if args.key?(:created)
127
+ @current_version_ranges = args[:current_version_ranges] if args.key?(:current_version_ranges)
128
+ @data = args[:data] if args.key?(:data)
129
+ @deleted = args[:deleted] if args.key?(:deleted)
130
+ @highlight_style = args[:highlight_style] if args.key?(:highlight_style)
131
+ @id = args[:id] if args.key?(:id)
132
+ @kind = args[:kind] if args.key?(:kind)
133
+ @layer_id = args[:layer_id] if args.key?(:layer_id)
134
+ @layer_summary = args[:layer_summary] if args.key?(:layer_summary)
135
+ @page_ids = args[:page_ids] if args.key?(:page_ids)
136
+ @selected_text = args[:selected_text] if args.key?(:selected_text)
137
+ @self_link = args[:self_link] if args.key?(:self_link)
138
+ @updated = args[:updated] if args.key?(:updated)
139
+ @volume_id = args[:volume_id] if args.key?(:volume_id)
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] if args.key?(:cfi_range)
178
+ @content_version = args[:content_version] if args.key?(:content_version)
179
+ @gb_image_range = args[:gb_image_range] if args.key?(:gb_image_range)
180
+ @gb_text_range = args[:gb_text_range] if args.key?(:gb_text_range)
181
+ @image_cfi_range = args[:image_cfi_range] if args.key?(:image_cfi_range)
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] if args.key?(:cfi_range)
221
+ @content_version = args[:content_version] if args.key?(:content_version)
222
+ @gb_image_range = args[:gb_image_range] if args.key?(:gb_image_range)
223
+ @gb_text_range = args[:gb_text_range] if args.key?(:gb_text_range)
224
+ @image_cfi_range = args[:image_cfi_range] if args.key?(:image_cfi_range)
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] if args.key?(:allowed_character_count)
255
+ @limit_type = args[:limit_type] if args.key?(:limit_type)
256
+ @remaining_character_count = args[:remaining_character_count] if args.key?(:remaining_character_count)
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] if args.key?(:annotation_type)
318
+ @data = args[:data] if args.key?(:data)
319
+ @encoded_data = args[:encoded_data] if args.key?(:encoded_data)
320
+ @id = args[:id] if args.key?(:id)
321
+ @kind = args[:kind] if args.key?(:kind)
322
+ @layer_id = args[:layer_id] if args.key?(:layer_id)
323
+ @self_link = args[:self_link] if args.key?(:self_link)
324
+ @updated = args[:updated] if args.key?(:updated)
325
+ @volume_id = args[:volume_id] if args.key?(:volume_id)
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] if args.key?(:items)
362
+ @kind = args[:kind] if args.key?(:kind)
363
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
364
+ @total_items = args[:total_items] if args.key?(:total_items)
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] if args.key?(:kind)
389
+ @layers = args[:layers] if args.key?(:layers)
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] if args.key?(:allowed_character_count)
428
+ @layer_id = args[:layer_id] if args.key?(:layer_id)
429
+ @limit_type = args[:limit_type] if args.key?(:limit_type)
430
+ @remaining_character_count = args[:remaining_character_count] if args.key?(:remaining_character_count)
431
+ @updated = args[:updated] if args.key?(:updated)
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] if args.key?(:items)
468
+ @kind = args[:kind] if args.key?(:kind)
469
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
470
+ @total_items = args[:total_items] if args.key?(:total_items)
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] if args.key?(:end_offset)
505
+ @end_position = args[:end_position] if args.key?(:end_position)
506
+ @start_offset = args[:start_offset] if args.key?(:start_offset)
507
+ @start_position = args[:start_position] if args.key?(:start_position)
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] if args.key?(:author)
542
+ @processing_state = args[:processing_state] if args.key?(:processing_state)
543
+ @title = args[:title] if args.key?(:title)
544
+ @volume_id = args[:volume_id] if args.key?(:volume_id)
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] if args.key?(:consistency_token)
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] if args.key?(:access)
631
+ @created = args[:created] if args.key?(:created)
632
+ @description = args[:description] if args.key?(:description)
633
+ @id = args[:id] if args.key?(:id)
634
+ @kind = args[:kind] if args.key?(:kind)
635
+ @self_link = args[:self_link] if args.key?(:self_link)
636
+ @title = args[:title] if args.key?(:title)
637
+ @updated = args[:updated] if args.key?(:updated)
638
+ @volume_count = args[:volume_count] if args.key?(:volume_count)
639
+ @volumes_last_updated = args[:volumes_last_updated] if args.key?(:volumes_last_updated)
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] if args.key?(:items)
664
+ @kind = args[:kind] if args.key?(:kind)
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] if args.key?(:items)
689
+ @kind = args[:kind] if args.key?(:kind)
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] if args.key?(:badge_url)
718
+ @category_id = args[:category_id] if args.key?(:category_id)
719
+ @name = args[:name] if args.key?(:name)
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] if args.key?(:device_allowed)
793
+ @kind = args[:kind] if args.key?(:kind)
794
+ @max_concurrent_devices = args[:max_concurrent_devices] if args.key?(:max_concurrent_devices)
795
+ @message = args[:message] if args.key?(:message)
796
+ @nonce = args[:nonce] if args.key?(:nonce)
797
+ @reason_code = args[:reason_code] if args.key?(:reason_code)
798
+ @restricted = args[:restricted] if args.key?(:restricted)
799
+ @signature = args[:signature] if args.key?(:signature)
800
+ @source = args[:source] if args.key?(:source)
801
+ @time_window_seconds = args[:time_window_seconds] if args.key?(:time_window_seconds)
802
+ @volume_id = args[:volume_id] if args.key?(:volume_id)
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] if args.key?(:common)
832
+ @dict = args[:dict] if args.key?(:dict)
833
+ @kind = args[:kind] if args.key?(:kind)
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] if args.key?(:title)
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] if args.key?(:source)
877
+ @words = args[:words] if args.key?(:words)
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] if args.key?(:attribution)
901
+ @url = args[:url] if args.key?(:url)
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] if args.key?(:derivatives)
937
+ @examples = args[:examples] if args.key?(:examples)
938
+ @senses = args[:senses] if args.key?(:senses)
939
+ @source = args[:source] if args.key?(:source)
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] if args.key?(:source)
963
+ @text = args[:text] if args.key?(:text)
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] if args.key?(:attribution)
987
+ @url = args[:url] if args.key?(:url)
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] if args.key?(:source)
1013
+ @text = args[:text] if args.key?(:text)
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] if args.key?(:attribution)
1037
+ @url = args[:url] if args.key?(:url)
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] if args.key?(:conjugations)
1093
+ @definitions = args[:definitions] if args.key?(:definitions)
1094
+ @part_of_speech = args[:part_of_speech] if args.key?(:part_of_speech)
1095
+ @pronunciation = args[:pronunciation] if args.key?(:pronunciation)
1096
+ @pronunciation_url = args[:pronunciation_url] if args.key?(:pronunciation_url)
1097
+ @source = args[:source] if args.key?(:source)
1098
+ @syllabification = args[:syllabification] if args.key?(:syllabification)
1099
+ @synonyms = args[:synonyms] if args.key?(:synonyms)
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] if args.key?(:type)
1123
+ @value = args[:value] if args.key?(:value)
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] if args.key?(:definition)
1148
+ @examples = args[:examples] if args.key?(:examples)
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] if args.key?(:source)
1172
+ @text = args[:text] if args.key?(:text)
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] if args.key?(:attribution)
1196
+ @url = args[:url] if args.key?(:url)
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] if args.key?(:attribution)
1223
+ @url = args[:url] if args.key?(:url)
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] if args.key?(:source)
1248
+ @text = args[:text] if args.key?(:text)
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] if args.key?(:attribution)
1272
+ @url = args[:url] if args.key?(:url)
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] if args.key?(:attribution)
1300
+ @url = args[:url] if args.key?(:url)
1301
+ end
1302
+ end
1303
+ end
1304
+ end
1305
+ end
1306
+
1307
+ #
1308
+ class Discoveryclusters
1309
+ include Google::Apis::Core::Hashable
1310
+
1311
+ #
1312
+ # Corresponds to the JSON property `clusters`
1313
+ # @return [Array<Google::Apis::BooksV1::Discoveryclusters::Cluster>]
1314
+ attr_accessor :clusters
1315
+
1316
+ # Resorce type.
1317
+ # Corresponds to the JSON property `kind`
1318
+ # @return [String]
1319
+ attr_accessor :kind
1320
+
1321
+ #
1322
+ # Corresponds to the JSON property `totalClusters`
1323
+ # @return [Fixnum]
1324
+ attr_accessor :total_clusters
1325
+
1326
+ def initialize(**args)
1327
+ update!(**args)
1328
+ end
1329
+
1330
+ # Update properties of this object
1331
+ def update!(**args)
1332
+ @clusters = args[:clusters] if args.key?(:clusters)
1333
+ @kind = args[:kind] if args.key?(:kind)
1334
+ @total_clusters = args[:total_clusters] if args.key?(:total_clusters)
1335
+ end
1336
+
1337
+ #
1338
+ class Cluster
1339
+ include Google::Apis::Core::Hashable
1340
+
1341
+ #
1342
+ # Corresponds to the JSON property `banner_with_content_container`
1343
+ # @return [Google::Apis::BooksV1::Discoveryclusters::Cluster::BannerWithContentContainer]
1344
+ attr_accessor :banner_with_content_container
1345
+
1346
+ #
1347
+ # Corresponds to the JSON property `subTitle`
1348
+ # @return [String]
1349
+ attr_accessor :sub_title
1350
+
1351
+ #
1352
+ # Corresponds to the JSON property `title`
1353
+ # @return [String]
1354
+ attr_accessor :title
1355
+
1356
+ #
1357
+ # Corresponds to the JSON property `totalVolumes`
1358
+ # @return [Fixnum]
1359
+ attr_accessor :total_volumes
1360
+
1361
+ #
1362
+ # Corresponds to the JSON property `uid`
1363
+ # @return [String]
1364
+ attr_accessor :uid
1365
+
1366
+ #
1367
+ # Corresponds to the JSON property `volumes`
1368
+ # @return [Array<Google::Apis::BooksV1::Volume>]
1369
+ attr_accessor :volumes
1370
+
1371
+ def initialize(**args)
1372
+ update!(**args)
1373
+ end
1374
+
1375
+ # Update properties of this object
1376
+ def update!(**args)
1377
+ @banner_with_content_container = args[:banner_with_content_container] if args.key?(:banner_with_content_container)
1378
+ @sub_title = args[:sub_title] if args.key?(:sub_title)
1379
+ @title = args[:title] if args.key?(:title)
1380
+ @total_volumes = args[:total_volumes] if args.key?(:total_volumes)
1381
+ @uid = args[:uid] if args.key?(:uid)
1382
+ @volumes = args[:volumes] if args.key?(:volumes)
1383
+ end
1384
+
1385
+ #
1386
+ class BannerWithContentContainer
1387
+ include Google::Apis::Core::Hashable
1388
+
1389
+ #
1390
+ # Corresponds to the JSON property `fillColorArgb`
1391
+ # @return [String]
1392
+ attr_accessor :fill_color_argb
1393
+
1394
+ #
1395
+ # Corresponds to the JSON property `imageUrl`
1396
+ # @return [String]
1397
+ attr_accessor :image_url
1398
+
1399
+ #
1400
+ # Corresponds to the JSON property `maskColorArgb`
1401
+ # @return [String]
1402
+ attr_accessor :mask_color_argb
1403
+
1404
+ #
1405
+ # Corresponds to the JSON property `moreButtonText`
1406
+ # @return [String]
1407
+ attr_accessor :more_button_text
1408
+
1409
+ #
1410
+ # Corresponds to the JSON property `moreButtonUrl`
1411
+ # @return [String]
1412
+ attr_accessor :more_button_url
1413
+
1414
+ #
1415
+ # Corresponds to the JSON property `textColorArgb`
1416
+ # @return [String]
1417
+ attr_accessor :text_color_argb
1418
+
1419
+ def initialize(**args)
1420
+ update!(**args)
1421
+ end
1422
+
1423
+ # Update properties of this object
1424
+ def update!(**args)
1425
+ @fill_color_argb = args[:fill_color_argb] if args.key?(:fill_color_argb)
1426
+ @image_url = args[:image_url] if args.key?(:image_url)
1427
+ @mask_color_argb = args[:mask_color_argb] if args.key?(:mask_color_argb)
1428
+ @more_button_text = args[:more_button_text] if args.key?(:more_button_text)
1429
+ @more_button_url = args[:more_button_url] if args.key?(:more_button_url)
1430
+ @text_color_argb = args[:text_color_argb] if args.key?(:text_color_argb)
1431
+ end
1432
+ end
1433
+ end
1434
+ end
1435
+
1436
+ #
1437
+ class DownloadAccessRestriction
1438
+ include Google::Apis::Core::Hashable
1439
+
1440
+ # If restricted, whether access is granted for this (user, device, volume).
1441
+ # Corresponds to the JSON property `deviceAllowed`
1442
+ # @return [Boolean]
1443
+ attr_accessor :device_allowed
1444
+ alias_method :device_allowed?, :device_allowed
1445
+
1446
+ # If restricted, the number of content download licenses already acquired (
1447
+ # including the requesting client, if licensed).
1448
+ # Corresponds to the JSON property `downloadsAcquired`
1449
+ # @return [Fixnum]
1450
+ attr_accessor :downloads_acquired
1451
+
1452
+ # If deviceAllowed, whether access was just acquired with this request.
1453
+ # Corresponds to the JSON property `justAcquired`
1454
+ # @return [Boolean]
1455
+ attr_accessor :just_acquired
1456
+ alias_method :just_acquired?, :just_acquired
1457
+
1458
+ # Resource type.
1459
+ # Corresponds to the JSON property `kind`
1460
+ # @return [String]
1461
+ attr_accessor :kind
1462
+
1463
+ # If restricted, the maximum number of content download licenses for this volume.
1464
+ # Corresponds to the JSON property `maxDownloadDevices`
1465
+ # @return [Fixnum]
1466
+ attr_accessor :max_download_devices
1467
+
1468
+ # Error/warning message.
1469
+ # Corresponds to the JSON property `message`
1470
+ # @return [String]
1471
+ attr_accessor :message
1472
+
1473
+ # Client nonce for verification. Download access and client-validation only.
1474
+ # Corresponds to the JSON property `nonce`
1475
+ # @return [String]
1476
+ attr_accessor :nonce
1477
+
1478
+ # Error/warning reason code. Additional codes may be added in the future. 0 OK
1479
+ # 100 ACCESS_DENIED_PUBLISHER_LIMIT 101 ACCESS_DENIED_LIMIT 200
1480
+ # WARNING_USED_LAST_ACCESS
1481
+ # Corresponds to the JSON property `reasonCode`
1482
+ # @return [String]
1483
+ attr_accessor :reason_code
1484
+
1485
+ # Whether this volume has any download access restrictions.
1486
+ # Corresponds to the JSON property `restricted`
1487
+ # @return [Boolean]
1488
+ attr_accessor :restricted
1489
+ alias_method :restricted?, :restricted
1490
+
1491
+ # Response signature.
1492
+ # Corresponds to the JSON property `signature`
1493
+ # @return [String]
1494
+ attr_accessor :signature
1495
+
1496
+ # Client app identifier for verification. Download access and client-validation
1497
+ # only.
1498
+ # Corresponds to the JSON property `source`
1499
+ # @return [String]
1500
+ attr_accessor :source
1501
+
1502
+ # Identifies the volume for which this entry applies.
1503
+ # Corresponds to the JSON property `volumeId`
1504
+ # @return [String]
1505
+ attr_accessor :volume_id
1506
+
1507
+ def initialize(**args)
1508
+ update!(**args)
1509
+ end
1510
+
1511
+ # Update properties of this object
1512
+ def update!(**args)
1513
+ @device_allowed = args[:device_allowed] if args.key?(:device_allowed)
1514
+ @downloads_acquired = args[:downloads_acquired] if args.key?(:downloads_acquired)
1515
+ @just_acquired = args[:just_acquired] if args.key?(:just_acquired)
1516
+ @kind = args[:kind] if args.key?(:kind)
1517
+ @max_download_devices = args[:max_download_devices] if args.key?(:max_download_devices)
1518
+ @message = args[:message] if args.key?(:message)
1519
+ @nonce = args[:nonce] if args.key?(:nonce)
1520
+ @reason_code = args[:reason_code] if args.key?(:reason_code)
1521
+ @restricted = args[:restricted] if args.key?(:restricted)
1522
+ @signature = args[:signature] if args.key?(:signature)
1523
+ @source = args[:source] if args.key?(:source)
1524
+ @volume_id = args[:volume_id] if args.key?(:volume_id)
1525
+ end
1526
+ end
1527
+
1528
+ #
1529
+ class DownloadAccesses
1530
+ include Google::Apis::Core::Hashable
1531
+
1532
+ # A list of download access responses.
1533
+ # Corresponds to the JSON property `downloadAccessList`
1534
+ # @return [Array<Google::Apis::BooksV1::DownloadAccessRestriction>]
1535
+ attr_accessor :download_access_list
1536
+
1537
+ # Resource type.
1538
+ # Corresponds to the JSON property `kind`
1539
+ # @return [String]
1540
+ attr_accessor :kind
1541
+
1542
+ def initialize(**args)
1543
+ update!(**args)
1544
+ end
1545
+
1546
+ # Update properties of this object
1547
+ def update!(**args)
1548
+ @download_access_list = args[:download_access_list] if args.key?(:download_access_list)
1549
+ @kind = args[:kind] if args.key?(:kind)
1550
+ end
1551
+ end
1552
+
1553
+ #
1554
+ class GeoLayerData
1555
+ include Google::Apis::Core::Hashable
1556
+
1557
+ #
1558
+ # Corresponds to the JSON property `common`
1559
+ # @return [Google::Apis::BooksV1::GeoLayerData::Common]
1560
+ attr_accessor :common
1561
+
1562
+ #
1563
+ # Corresponds to the JSON property `geo`
1564
+ # @return [Google::Apis::BooksV1::GeoLayerData::Geo]
1565
+ attr_accessor :geo
1566
+
1567
+ #
1568
+ # Corresponds to the JSON property `kind`
1569
+ # @return [String]
1570
+ attr_accessor :kind
1571
+
1572
+ def initialize(**args)
1573
+ update!(**args)
1574
+ end
1575
+
1576
+ # Update properties of this object
1577
+ def update!(**args)
1578
+ @common = args[:common] if args.key?(:common)
1579
+ @geo = args[:geo] if args.key?(:geo)
1580
+ @kind = args[:kind] if args.key?(:kind)
1581
+ end
1582
+
1583
+ #
1584
+ class Common
1585
+ include Google::Apis::Core::Hashable
1586
+
1587
+ # The language of the information url and description.
1588
+ # Corresponds to the JSON property `lang`
1589
+ # @return [String]
1590
+ attr_accessor :lang
1591
+
1592
+ # The URL for the preview image information.
1593
+ # Corresponds to the JSON property `previewImageUrl`
1594
+ # @return [String]
1595
+ attr_accessor :preview_image_url
1596
+
1597
+ # The description for this location.
1598
+ # Corresponds to the JSON property `snippet`
1599
+ # @return [String]
1600
+ attr_accessor :snippet
1601
+
1602
+ # The URL for information for this location. Ex: wikipedia link.
1603
+ # Corresponds to the JSON property `snippetUrl`
1604
+ # @return [String]
1605
+ attr_accessor :snippet_url
1606
+
1607
+ # The display title and localized canonical name to use when searching for this
1608
+ # entity on Google search.
1609
+ # Corresponds to the JSON property `title`
1610
+ # @return [String]
1611
+ attr_accessor :title
1612
+
1613
+ def initialize(**args)
1614
+ update!(**args)
1615
+ end
1616
+
1617
+ # Update properties of this object
1618
+ def update!(**args)
1619
+ @lang = args[:lang] if args.key?(:lang)
1620
+ @preview_image_url = args[:preview_image_url] if args.key?(:preview_image_url)
1621
+ @snippet = args[:snippet] if args.key?(:snippet)
1622
+ @snippet_url = args[:snippet_url] if args.key?(:snippet_url)
1623
+ @title = args[:title] if args.key?(:title)
1624
+ end
1625
+ end
1626
+
1627
+ #
1628
+ class Geo
1629
+ include Google::Apis::Core::Hashable
1630
+
1631
+ # The boundary of the location as a set of loops containing pairs of latitude,
1632
+ # longitude coordinates.
1633
+ # Corresponds to the JSON property `boundary`
1634
+ # @return [Array<Array<Google::Apis::BooksV1::GeoLayerData::Geo::Boundary>>]
1635
+ attr_accessor :boundary
1636
+
1637
+ # The cache policy active for this data. EX: UNRESTRICTED, RESTRICTED, NEVER
1638
+ # Corresponds to the JSON property `cachePolicy`
1639
+ # @return [String]
1640
+ attr_accessor :cache_policy
1641
+
1642
+ # The country code of the location.
1643
+ # Corresponds to the JSON property `countryCode`
1644
+ # @return [String]
1645
+ attr_accessor :country_code
1646
+
1647
+ # The latitude of the location.
1648
+ # Corresponds to the JSON property `latitude`
1649
+ # @return [Float]
1650
+ attr_accessor :latitude
1651
+
1652
+ # The longitude of the location.
1653
+ # Corresponds to the JSON property `longitude`
1654
+ # @return [Float]
1655
+ attr_accessor :longitude
1656
+
1657
+ # The type of map that should be used for this location. EX: HYBRID, ROADMAP,
1658
+ # SATELLITE, TERRAIN
1659
+ # Corresponds to the JSON property `mapType`
1660
+ # @return [String]
1661
+ attr_accessor :map_type
1662
+
1663
+ # The viewport for showing this location. This is a latitude, longitude
1664
+ # rectangle.
1665
+ # Corresponds to the JSON property `viewport`
1666
+ # @return [Google::Apis::BooksV1::GeoLayerData::Geo::Viewport]
1667
+ attr_accessor :viewport
1668
+
1669
+ # The Zoom level to use for the map. Zoom levels between 0 (the lowest zoom
1670
+ # level, in which the entire world can be seen on one map) to 21+ (down to
1671
+ # individual buildings). See: https://developers.google.com/maps/documentation/
1672
+ # staticmaps/#Zoomlevels
1673
+ # Corresponds to the JSON property `zoom`
1674
+ # @return [Fixnum]
1675
+ attr_accessor :zoom
1676
+
1677
+ def initialize(**args)
1678
+ update!(**args)
1679
+ end
1680
+
1681
+ # Update properties of this object
1682
+ def update!(**args)
1683
+ @boundary = args[:boundary] if args.key?(:boundary)
1684
+ @cache_policy = args[:cache_policy] if args.key?(:cache_policy)
1685
+ @country_code = args[:country_code] if args.key?(:country_code)
1686
+ @latitude = args[:latitude] if args.key?(:latitude)
1687
+ @longitude = args[:longitude] if args.key?(:longitude)
1688
+ @map_type = args[:map_type] if args.key?(:map_type)
1689
+ @viewport = args[:viewport] if args.key?(:viewport)
1690
+ @zoom = args[:zoom] if args.key?(:zoom)
1691
+ end
1692
+
1693
+ #
1694
+ class Boundary
1695
+ include Google::Apis::Core::Hashable
1696
+
1697
+ #
1698
+ # Corresponds to the JSON property `latitude`
1699
+ # @return [Fixnum]
1700
+ attr_accessor :latitude
1701
+
1702
+ #
1703
+ # Corresponds to the JSON property `longitude`
1704
+ # @return [Fixnum]
1705
+ attr_accessor :longitude
1706
+
1707
+ def initialize(**args)
1708
+ update!(**args)
1709
+ end
1710
+
1711
+ # Update properties of this object
1712
+ def update!(**args)
1713
+ @latitude = args[:latitude] if args.key?(:latitude)
1714
+ @longitude = args[:longitude] if args.key?(:longitude)
1715
+ end
1716
+ end
1717
+
1718
+ # The viewport for showing this location. This is a latitude, longitude
1719
+ # rectangle.
1720
+ class Viewport
1721
+ include Google::Apis::Core::Hashable
1722
+
1723
+ #
1724
+ # Corresponds to the JSON property `hi`
1725
+ # @return [Google::Apis::BooksV1::GeoLayerData::Geo::Viewport::Hi]
1726
+ attr_accessor :hi
1727
+
1728
+ #
1729
+ # Corresponds to the JSON property `lo`
1730
+ # @return [Google::Apis::BooksV1::GeoLayerData::Geo::Viewport::Lo]
1731
+ attr_accessor :lo
1732
+
1733
+ def initialize(**args)
1734
+ update!(**args)
1735
+ end
1736
+
1737
+ # Update properties of this object
1738
+ def update!(**args)
1739
+ @hi = args[:hi] if args.key?(:hi)
1740
+ @lo = args[:lo] if args.key?(:lo)
1741
+ end
1742
+
1743
+ #
1744
+ class Hi
1745
+ include Google::Apis::Core::Hashable
1746
+
1747
+ #
1748
+ # Corresponds to the JSON property `latitude`
1749
+ # @return [Float]
1750
+ attr_accessor :latitude
1751
+
1752
+ #
1753
+ # Corresponds to the JSON property `longitude`
1754
+ # @return [Float]
1755
+ attr_accessor :longitude
1756
+
1757
+ def initialize(**args)
1758
+ update!(**args)
1759
+ end
1760
+
1761
+ # Update properties of this object
1762
+ def update!(**args)
1763
+ @latitude = args[:latitude] if args.key?(:latitude)
1764
+ @longitude = args[:longitude] if args.key?(:longitude)
1765
+ end
1766
+ end
1767
+
1768
+ #
1769
+ class Lo
1770
+ include Google::Apis::Core::Hashable
1771
+
1772
+ #
1773
+ # Corresponds to the JSON property `latitude`
1774
+ # @return [Float]
1775
+ attr_accessor :latitude
1776
+
1777
+ #
1778
+ # Corresponds to the JSON property `longitude`
1779
+ # @return [Float]
1780
+ attr_accessor :longitude
1781
+
1782
+ def initialize(**args)
1783
+ update!(**args)
1784
+ end
1785
+
1786
+ # Update properties of this object
1787
+ def update!(**args)
1788
+ @latitude = args[:latitude] if args.key?(:latitude)
1789
+ @longitude = args[:longitude] if args.key?(:longitude)
1790
+ end
1791
+ end
1792
+ end
1793
+ end
1794
+ end
1795
+
1796
+ #
1797
+ class LayerSummaries
1798
+ include Google::Apis::Core::Hashable
1799
+
1800
+ # A list of layer summary items.
1801
+ # Corresponds to the JSON property `items`
1802
+ # @return [Array<Google::Apis::BooksV1::LayerSummary>]
1803
+ attr_accessor :items
1804
+
1805
+ # Resource type.
1806
+ # Corresponds to the JSON property `kind`
1807
+ # @return [String]
1808
+ attr_accessor :kind
1809
+
1810
+ # The total number of layer summaries found.
1811
+ # Corresponds to the JSON property `totalItems`
1812
+ # @return [Fixnum]
1813
+ attr_accessor :total_items
1814
+
1815
+ def initialize(**args)
1816
+ update!(**args)
1817
+ end
1818
+
1819
+ # Update properties of this object
1820
+ def update!(**args)
1821
+ @items = args[:items] if args.key?(:items)
1822
+ @kind = args[:kind] if args.key?(:kind)
1823
+ @total_items = args[:total_items] if args.key?(:total_items)
1824
+ end
1825
+ end
1826
+
1827
+ #
1828
+ class LayerSummary
1829
+ include Google::Apis::Core::Hashable
1830
+
1831
+ # The number of annotations for this layer.
1832
+ # Corresponds to the JSON property `annotationCount`
1833
+ # @return [Fixnum]
1834
+ attr_accessor :annotation_count
1835
+
1836
+ # The list of annotation types contained for this layer.
1837
+ # Corresponds to the JSON property `annotationTypes`
1838
+ # @return [Array<String>]
1839
+ attr_accessor :annotation_types
1840
+
1841
+ # Link to get data for this annotation.
1842
+ # Corresponds to the JSON property `annotationsDataLink`
1843
+ # @return [String]
1844
+ attr_accessor :annotations_data_link
1845
+
1846
+ # The link to get the annotations for this layer.
1847
+ # Corresponds to the JSON property `annotationsLink`
1848
+ # @return [String]
1849
+ attr_accessor :annotations_link
1850
+
1851
+ # The content version this resource is for.
1852
+ # Corresponds to the JSON property `contentVersion`
1853
+ # @return [String]
1854
+ attr_accessor :content_version
1855
+
1856
+ # The number of data items for this layer.
1857
+ # Corresponds to the JSON property `dataCount`
1858
+ # @return [Fixnum]
1859
+ attr_accessor :data_count
1860
+
1861
+ # Unique id of this layer summary.
1862
+ # Corresponds to the JSON property `id`
1863
+ # @return [String]
1864
+ attr_accessor :id
1865
+
1866
+ # Resource Type
1867
+ # Corresponds to the JSON property `kind`
1868
+ # @return [String]
1869
+ attr_accessor :kind
1870
+
1871
+ # The layer id for this summary.
1872
+ # Corresponds to the JSON property `layerId`
1873
+ # @return [String]
1874
+ attr_accessor :layer_id
1875
+
1876
+ # URL to this resource.
1877
+ # Corresponds to the JSON property `selfLink`
1878
+ # @return [String]
1879
+ attr_accessor :self_link
1880
+
1881
+ # Timestamp for the last time an item in this layer was updated. (RFC 3339 UTC
1882
+ # date-time format).
1883
+ # Corresponds to the JSON property `updated`
1884
+ # @return [DateTime]
1885
+ attr_accessor :updated
1886
+
1887
+ # The current version of this layer's volume annotations. Note that this version
1888
+ # applies only to the data in the books.layers.volumeAnnotations.* responses.
1889
+ # The actual annotation data is versioned separately.
1890
+ # Corresponds to the JSON property `volumeAnnotationsVersion`
1891
+ # @return [String]
1892
+ attr_accessor :volume_annotations_version
1893
+
1894
+ # The volume id this resource is for.
1895
+ # Corresponds to the JSON property `volumeId`
1896
+ # @return [String]
1897
+ attr_accessor :volume_id
1898
+
1899
+ def initialize(**args)
1900
+ update!(**args)
1901
+ end
1902
+
1903
+ # Update properties of this object
1904
+ def update!(**args)
1905
+ @annotation_count = args[:annotation_count] if args.key?(:annotation_count)
1906
+ @annotation_types = args[:annotation_types] if args.key?(:annotation_types)
1907
+ @annotations_data_link = args[:annotations_data_link] if args.key?(:annotations_data_link)
1908
+ @annotations_link = args[:annotations_link] if args.key?(:annotations_link)
1909
+ @content_version = args[:content_version] if args.key?(:content_version)
1910
+ @data_count = args[:data_count] if args.key?(:data_count)
1911
+ @id = args[:id] if args.key?(:id)
1912
+ @kind = args[:kind] if args.key?(:kind)
1913
+ @layer_id = args[:layer_id] if args.key?(:layer_id)
1914
+ @self_link = args[:self_link] if args.key?(:self_link)
1915
+ @updated = args[:updated] if args.key?(:updated)
1916
+ @volume_annotations_version = args[:volume_annotations_version] if args.key?(:volume_annotations_version)
1917
+ @volume_id = args[:volume_id] if args.key?(:volume_id)
1918
+ end
1919
+ end
1920
+
1921
+ #
1922
+ class Metadata
1923
+ include Google::Apis::Core::Hashable
1924
+
1925
+ # A list of offline dictionary metadata.
1926
+ # Corresponds to the JSON property `items`
1927
+ # @return [Array<Google::Apis::BooksV1::Metadata::Item>]
1928
+ attr_accessor :items
1929
+
1930
+ # Resource type.
1931
+ # Corresponds to the JSON property `kind`
1932
+ # @return [String]
1933
+ attr_accessor :kind
1934
+
1935
+ def initialize(**args)
1936
+ update!(**args)
1937
+ end
1938
+
1939
+ # Update properties of this object
1940
+ def update!(**args)
1941
+ @items = args[:items] if args.key?(:items)
1942
+ @kind = args[:kind] if args.key?(:kind)
1943
+ end
1944
+
1945
+ #
1946
+ class Item
1947
+ include Google::Apis::Core::Hashable
1948
+
1949
+ #
1950
+ # Corresponds to the JSON property `download_url`
1951
+ # @return [String]
1952
+ attr_accessor :download_url
1953
+
1954
+ #
1955
+ # Corresponds to the JSON property `encrypted_key`
1956
+ # @return [String]
1957
+ attr_accessor :encrypted_key
1958
+
1959
+ #
1960
+ # Corresponds to the JSON property `language`
1961
+ # @return [String]
1962
+ attr_accessor :language
1963
+
1964
+ #
1965
+ # Corresponds to the JSON property `size`
1966
+ # @return [String]
1967
+ attr_accessor :size
1968
+
1969
+ #
1970
+ # Corresponds to the JSON property `version`
1971
+ # @return [String]
1972
+ attr_accessor :version
1973
+
1974
+ def initialize(**args)
1975
+ update!(**args)
1976
+ end
1977
+
1978
+ # Update properties of this object
1979
+ def update!(**args)
1980
+ @download_url = args[:download_url] if args.key?(:download_url)
1981
+ @encrypted_key = args[:encrypted_key] if args.key?(:encrypted_key)
1982
+ @language = args[:language] if args.key?(:language)
1983
+ @size = args[:size] if args.key?(:size)
1984
+ @version = args[:version] if args.key?(:version)
1985
+ end
1986
+ end
1987
+ end
1988
+
1989
+ #
1990
+ class Notification
1991
+ include Google::Apis::Core::Hashable
1992
+
1993
+ #
1994
+ # Corresponds to the JSON property `body`
1995
+ # @return [String]
1996
+ attr_accessor :body
1997
+
1998
+ #
1999
+ # Corresponds to the JSON property `dont_show_notification`
2000
+ # @return [Boolean]
2001
+ attr_accessor :dont_show_notification
2002
+ alias_method :dont_show_notification?, :dont_show_notification
2003
+
2004
+ #
2005
+ # Corresponds to the JSON property `iconUrl`
2006
+ # @return [String]
2007
+ attr_accessor :icon_url
2008
+
2009
+ # Resource type.
2010
+ # Corresponds to the JSON property `kind`
2011
+ # @return [String]
2012
+ attr_accessor :kind
2013
+
2014
+ #
2015
+ # Corresponds to the JSON property `notification_type`
2016
+ # @return [String]
2017
+ attr_accessor :notification_type
2018
+
2019
+ #
2020
+ # Corresponds to the JSON property `pcampaign_id`
2021
+ # @return [String]
2022
+ attr_accessor :pcampaign_id
2023
+
2024
+ #
2025
+ # Corresponds to the JSON property `show_notification_settings_action`
2026
+ # @return [Boolean]
2027
+ attr_accessor :show_notification_settings_action
2028
+ alias_method :show_notification_settings_action?, :show_notification_settings_action
2029
+
2030
+ #
2031
+ # Corresponds to the JSON property `targetUrl`
2032
+ # @return [String]
2033
+ attr_accessor :target_url
2034
+
2035
+ #
2036
+ # Corresponds to the JSON property `title`
2037
+ # @return [String]
2038
+ attr_accessor :title
2039
+
2040
+ def initialize(**args)
2041
+ update!(**args)
2042
+ end
2043
+
2044
+ # Update properties of this object
2045
+ def update!(**args)
2046
+ @body = args[:body] if args.key?(:body)
2047
+ @dont_show_notification = args[:dont_show_notification] if args.key?(:dont_show_notification)
2048
+ @icon_url = args[:icon_url] if args.key?(:icon_url)
2049
+ @kind = args[:kind] if args.key?(:kind)
2050
+ @notification_type = args[:notification_type] if args.key?(:notification_type)
2051
+ @pcampaign_id = args[:pcampaign_id] if args.key?(:pcampaign_id)
2052
+ @show_notification_settings_action = args[:show_notification_settings_action] if args.key?(:show_notification_settings_action)
2053
+ @target_url = args[:target_url] if args.key?(:target_url)
2054
+ @title = args[:title] if args.key?(:title)
2055
+ end
2056
+ end
2057
+
2058
+ #
2059
+ class Offers
2060
+ include Google::Apis::Core::Hashable
2061
+
2062
+ # A list of offers.
2063
+ # Corresponds to the JSON property `items`
2064
+ # @return [Array<Google::Apis::BooksV1::Offers::Item>]
2065
+ attr_accessor :items
2066
+
2067
+ # Resource type.
2068
+ # Corresponds to the JSON property `kind`
2069
+ # @return [String]
2070
+ attr_accessor :kind
2071
+
2072
+ def initialize(**args)
2073
+ update!(**args)
2074
+ end
2075
+
2076
+ # Update properties of this object
2077
+ def update!(**args)
2078
+ @items = args[:items] if args.key?(:items)
2079
+ @kind = args[:kind] if args.key?(:kind)
2080
+ end
2081
+
2082
+ #
2083
+ class Item
2084
+ include Google::Apis::Core::Hashable
2085
+
2086
+ #
2087
+ # Corresponds to the JSON property `artUrl`
2088
+ # @return [String]
2089
+ attr_accessor :art_url
2090
+
2091
+ #
2092
+ # Corresponds to the JSON property `gservicesKey`
2093
+ # @return [String]
2094
+ attr_accessor :gservices_key
2095
+
2096
+ #
2097
+ # Corresponds to the JSON property `id`
2098
+ # @return [String]
2099
+ attr_accessor :id
2100
+
2101
+ #
2102
+ # Corresponds to the JSON property `items`
2103
+ # @return [Array<Google::Apis::BooksV1::Offers::Item::Item>]
2104
+ attr_accessor :items
2105
+
2106
+ def initialize(**args)
2107
+ update!(**args)
2108
+ end
2109
+
2110
+ # Update properties of this object
2111
+ def update!(**args)
2112
+ @art_url = args[:art_url] if args.key?(:art_url)
2113
+ @gservices_key = args[:gservices_key] if args.key?(:gservices_key)
2114
+ @id = args[:id] if args.key?(:id)
2115
+ @items = args[:items] if args.key?(:items)
2116
+ end
2117
+
2118
+ #
2119
+ class Item
2120
+ include Google::Apis::Core::Hashable
2121
+
2122
+ #
2123
+ # Corresponds to the JSON property `author`
2124
+ # @return [String]
2125
+ attr_accessor :author
2126
+
2127
+ #
2128
+ # Corresponds to the JSON property `canonicalVolumeLink`
2129
+ # @return [String]
2130
+ attr_accessor :canonical_volume_link
2131
+
2132
+ #
2133
+ # Corresponds to the JSON property `coverUrl`
2134
+ # @return [String]
2135
+ attr_accessor :cover_url
2136
+
2137
+ #
2138
+ # Corresponds to the JSON property `description`
2139
+ # @return [String]
2140
+ attr_accessor :description
2141
+
2142
+ #
2143
+ # Corresponds to the JSON property `title`
2144
+ # @return [String]
2145
+ attr_accessor :title
2146
+
2147
+ #
2148
+ # Corresponds to the JSON property `volumeId`
2149
+ # @return [String]
2150
+ attr_accessor :volume_id
2151
+
2152
+ def initialize(**args)
2153
+ update!(**args)
2154
+ end
2155
+
2156
+ # Update properties of this object
2157
+ def update!(**args)
2158
+ @author = args[:author] if args.key?(:author)
2159
+ @canonical_volume_link = args[:canonical_volume_link] if args.key?(:canonical_volume_link)
2160
+ @cover_url = args[:cover_url] if args.key?(:cover_url)
2161
+ @description = args[:description] if args.key?(:description)
2162
+ @title = args[:title] if args.key?(:title)
2163
+ @volume_id = args[:volume_id] if args.key?(:volume_id)
2164
+ end
2165
+ end
2166
+ end
2167
+ end
2168
+
2169
+ #
2170
+ class ReadingPosition
2171
+ include Google::Apis::Core::Hashable
2172
+
2173
+ # Position in an EPUB as a CFI.
2174
+ # Corresponds to the JSON property `epubCfiPosition`
2175
+ # @return [String]
2176
+ attr_accessor :epub_cfi_position
2177
+
2178
+ # Position in a volume for image-based content.
2179
+ # Corresponds to the JSON property `gbImagePosition`
2180
+ # @return [String]
2181
+ attr_accessor :gb_image_position
2182
+
2183
+ # Position in a volume for text-based content.
2184
+ # Corresponds to the JSON property `gbTextPosition`
2185
+ # @return [String]
2186
+ attr_accessor :gb_text_position
2187
+
2188
+ # Resource type for a reading position.
2189
+ # Corresponds to the JSON property `kind`
2190
+ # @return [String]
2191
+ attr_accessor :kind
2192
+
2193
+ # Position in a PDF file.
2194
+ # Corresponds to the JSON property `pdfPosition`
2195
+ # @return [String]
2196
+ attr_accessor :pdf_position
2197
+
2198
+ # Timestamp when this reading position was last updated (formatted UTC timestamp
2199
+ # with millisecond resolution).
2200
+ # Corresponds to the JSON property `updated`
2201
+ # @return [DateTime]
2202
+ attr_accessor :updated
2203
+
2204
+ # Volume id associated with this reading position.
2205
+ # Corresponds to the JSON property `volumeId`
2206
+ # @return [String]
2207
+ attr_accessor :volume_id
2208
+
2209
+ def initialize(**args)
2210
+ update!(**args)
2211
+ end
2212
+
2213
+ # Update properties of this object
2214
+ def update!(**args)
2215
+ @epub_cfi_position = args[:epub_cfi_position] if args.key?(:epub_cfi_position)
2216
+ @gb_image_position = args[:gb_image_position] if args.key?(:gb_image_position)
2217
+ @gb_text_position = args[:gb_text_position] if args.key?(:gb_text_position)
2218
+ @kind = args[:kind] if args.key?(:kind)
2219
+ @pdf_position = args[:pdf_position] if args.key?(:pdf_position)
2220
+ @updated = args[:updated] if args.key?(:updated)
2221
+ @volume_id = args[:volume_id] if args.key?(:volume_id)
2222
+ end
2223
+ end
2224
+
2225
+ #
2226
+ class RequestAccess
2227
+ include Google::Apis::Core::Hashable
2228
+
2229
+ # A concurrent access response.
2230
+ # Corresponds to the JSON property `concurrentAccess`
2231
+ # @return [Google::Apis::BooksV1::ConcurrentAccessRestriction]
2232
+ attr_accessor :concurrent_access
2233
+
2234
+ # A download access response.
2235
+ # Corresponds to the JSON property `downloadAccess`
2236
+ # @return [Google::Apis::BooksV1::DownloadAccessRestriction]
2237
+ attr_accessor :download_access
2238
+
2239
+ # Resource type.
2240
+ # Corresponds to the JSON property `kind`
2241
+ # @return [String]
2242
+ attr_accessor :kind
2243
+
2244
+ def initialize(**args)
2245
+ update!(**args)
2246
+ end
2247
+
2248
+ # Update properties of this object
2249
+ def update!(**args)
2250
+ @concurrent_access = args[:concurrent_access] if args.key?(:concurrent_access)
2251
+ @download_access = args[:download_access] if args.key?(:download_access)
2252
+ @kind = args[:kind] if args.key?(:kind)
2253
+ end
2254
+ end
2255
+
2256
+ #
2257
+ class Review
2258
+ include Google::Apis::Core::Hashable
2259
+
2260
+ # Author of this review.
2261
+ # Corresponds to the JSON property `author`
2262
+ # @return [Google::Apis::BooksV1::Review::Author]
2263
+ attr_accessor :author
2264
+
2265
+ # Review text.
2266
+ # Corresponds to the JSON property `content`
2267
+ # @return [String]
2268
+ attr_accessor :content
2269
+
2270
+ # Date of this review.
2271
+ # Corresponds to the JSON property `date`
2272
+ # @return [String]
2273
+ attr_accessor :date
2274
+
2275
+ # URL for the full review text, for reviews gathered from the web.
2276
+ # Corresponds to the JSON property `fullTextUrl`
2277
+ # @return [String]
2278
+ attr_accessor :full_text_url
2279
+
2280
+ # Resource type for a review.
2281
+ # Corresponds to the JSON property `kind`
2282
+ # @return [String]
2283
+ attr_accessor :kind
2284
+
2285
+ # Star rating for this review. Possible values are ONE, TWO, THREE, FOUR, FIVE
2286
+ # or NOT_RATED.
2287
+ # Corresponds to the JSON property `rating`
2288
+ # @return [String]
2289
+ attr_accessor :rating
2290
+
2291
+ # Information regarding the source of this review, when the review is not from a
2292
+ # Google Books user.
2293
+ # Corresponds to the JSON property `source`
2294
+ # @return [Google::Apis::BooksV1::Review::Source]
2295
+ attr_accessor :source
2296
+
2297
+ # Title for this review.
2298
+ # Corresponds to the JSON property `title`
2299
+ # @return [String]
2300
+ attr_accessor :title
2301
+
2302
+ # Source type for this review. Possible values are EDITORIAL, WEB_USER or
2303
+ # GOOGLE_USER.
2304
+ # Corresponds to the JSON property `type`
2305
+ # @return [String]
2306
+ attr_accessor :type
2307
+
2308
+ # Volume that this review is for.
2309
+ # Corresponds to the JSON property `volumeId`
2310
+ # @return [String]
2311
+ attr_accessor :volume_id
2312
+
2313
+ def initialize(**args)
2314
+ update!(**args)
2315
+ end
2316
+
2317
+ # Update properties of this object
2318
+ def update!(**args)
2319
+ @author = args[:author] if args.key?(:author)
2320
+ @content = args[:content] if args.key?(:content)
2321
+ @date = args[:date] if args.key?(:date)
2322
+ @full_text_url = args[:full_text_url] if args.key?(:full_text_url)
2323
+ @kind = args[:kind] if args.key?(:kind)
2324
+ @rating = args[:rating] if args.key?(:rating)
2325
+ @source = args[:source] if args.key?(:source)
2326
+ @title = args[:title] if args.key?(:title)
2327
+ @type = args[:type] if args.key?(:type)
2328
+ @volume_id = args[:volume_id] if args.key?(:volume_id)
2329
+ end
2330
+
2331
+ # Author of this review.
2332
+ class Author
2333
+ include Google::Apis::Core::Hashable
2334
+
2335
+ # Name of this person.
2336
+ # Corresponds to the JSON property `displayName`
2337
+ # @return [String]
2338
+ attr_accessor :display_name
2339
+
2340
+ def initialize(**args)
2341
+ update!(**args)
2342
+ end
2343
+
2344
+ # Update properties of this object
2345
+ def update!(**args)
2346
+ @display_name = args[:display_name] if args.key?(:display_name)
2347
+ end
2348
+ end
2349
+
2350
+ # Information regarding the source of this review, when the review is not from a
2351
+ # Google Books user.
2352
+ class Source
2353
+ include Google::Apis::Core::Hashable
2354
+
2355
+ # Name of the source.
2356
+ # Corresponds to the JSON property `description`
2357
+ # @return [String]
2358
+ attr_accessor :description
2359
+
2360
+ # Extra text about the source of the review.
2361
+ # Corresponds to the JSON property `extraDescription`
2362
+ # @return [String]
2363
+ attr_accessor :extra_description
2364
+
2365
+ # URL of the source of the review.
2366
+ # Corresponds to the JSON property `url`
2367
+ # @return [String]
2368
+ attr_accessor :url
2369
+
2370
+ def initialize(**args)
2371
+ update!(**args)
2372
+ end
2373
+
2374
+ # Update properties of this object
2375
+ def update!(**args)
2376
+ @description = args[:description] if args.key?(:description)
2377
+ @extra_description = args[:extra_description] if args.key?(:extra_description)
2378
+ @url = args[:url] if args.key?(:url)
2379
+ end
2380
+ end
2381
+ end
2382
+
2383
+ #
2384
+ class Series
2385
+ include Google::Apis::Core::Hashable
2386
+
2387
+ # Resource type.
2388
+ # Corresponds to the JSON property `kind`
2389
+ # @return [String]
2390
+ attr_accessor :kind
2391
+
2392
+ #
2393
+ # Corresponds to the JSON property `series`
2394
+ # @return [Array<Google::Apis::BooksV1::Series::Series>]
2395
+ attr_accessor :series
2396
+
2397
+ def initialize(**args)
2398
+ update!(**args)
2399
+ end
2400
+
2401
+ # Update properties of this object
2402
+ def update!(**args)
2403
+ @kind = args[:kind] if args.key?(:kind)
2404
+ @series = args[:series] if args.key?(:series)
2405
+ end
2406
+
2407
+ #
2408
+ class Series
2409
+ include Google::Apis::Core::Hashable
2410
+
2411
+ #
2412
+ # Corresponds to the JSON property `bannerImageUrl`
2413
+ # @return [String]
2414
+ attr_accessor :banner_image_url
2415
+
2416
+ #
2417
+ # Corresponds to the JSON property `imageUrl`
2418
+ # @return [String]
2419
+ attr_accessor :image_url
2420
+
2421
+ #
2422
+ # Corresponds to the JSON property `seriesId`
2423
+ # @return [String]
2424
+ attr_accessor :series_id
2425
+
2426
+ #
2427
+ # Corresponds to the JSON property `seriesType`
2428
+ # @return [String]
2429
+ attr_accessor :series_type
2430
+
2431
+ #
2432
+ # Corresponds to the JSON property `title`
2433
+ # @return [String]
2434
+ attr_accessor :title
2435
+
2436
+ def initialize(**args)
2437
+ update!(**args)
2438
+ end
2439
+
2440
+ # Update properties of this object
2441
+ def update!(**args)
2442
+ @banner_image_url = args[:banner_image_url] if args.key?(:banner_image_url)
2443
+ @image_url = args[:image_url] if args.key?(:image_url)
2444
+ @series_id = args[:series_id] if args.key?(:series_id)
2445
+ @series_type = args[:series_type] if args.key?(:series_type)
2446
+ @title = args[:title] if args.key?(:title)
2447
+ end
2448
+ end
2449
+ end
2450
+
2451
+ #
2452
+ class SeriesMembership
2453
+ include Google::Apis::Core::Hashable
2454
+
2455
+ # Resorce type.
2456
+ # Corresponds to the JSON property `kind`
2457
+ # @return [String]
2458
+ attr_accessor :kind
2459
+
2460
+ #
2461
+ # Corresponds to the JSON property `member`
2462
+ # @return [Array<Google::Apis::BooksV1::Volume>]
2463
+ attr_accessor :member
2464
+
2465
+ #
2466
+ # Corresponds to the JSON property `nextPageToken`
2467
+ # @return [String]
2468
+ attr_accessor :next_page_token
2469
+
2470
+ def initialize(**args)
2471
+ update!(**args)
2472
+ end
2473
+
2474
+ # Update properties of this object
2475
+ def update!(**args)
2476
+ @kind = args[:kind] if args.key?(:kind)
2477
+ @member = args[:member] if args.key?(:member)
2478
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2479
+ end
2480
+ end
2481
+
2482
+ #
2483
+ class UserSettings
2484
+ include Google::Apis::Core::Hashable
2485
+
2486
+ # Resource type.
2487
+ # Corresponds to the JSON property `kind`
2488
+ # @return [String]
2489
+ attr_accessor :kind
2490
+
2491
+ # User settings in sub-objects, each for different purposes.
2492
+ # Corresponds to the JSON property `notesExport`
2493
+ # @return [Google::Apis::BooksV1::UserSettings::NotesExport]
2494
+ attr_accessor :notes_export
2495
+
2496
+ #
2497
+ # Corresponds to the JSON property `notification`
2498
+ # @return [Google::Apis::BooksV1::UserSettings::Notification]
2499
+ attr_accessor :notification
2500
+
2501
+ def initialize(**args)
2502
+ update!(**args)
2503
+ end
2504
+
2505
+ # Update properties of this object
2506
+ def update!(**args)
2507
+ @kind = args[:kind] if args.key?(:kind)
2508
+ @notes_export = args[:notes_export] if args.key?(:notes_export)
2509
+ @notification = args[:notification] if args.key?(:notification)
2510
+ end
2511
+
2512
+ # User settings in sub-objects, each for different purposes.
2513
+ class NotesExport
2514
+ include Google::Apis::Core::Hashable
2515
+
2516
+ #
2517
+ # Corresponds to the JSON property `folderName`
2518
+ # @return [String]
2519
+ attr_accessor :folder_name
2520
+
2521
+ #
2522
+ # Corresponds to the JSON property `isEnabled`
2523
+ # @return [Boolean]
2524
+ attr_accessor :is_enabled
2525
+ alias_method :is_enabled?, :is_enabled
2526
+
2527
+ def initialize(**args)
2528
+ update!(**args)
2529
+ end
2530
+
2531
+ # Update properties of this object
2532
+ def update!(**args)
2533
+ @folder_name = args[:folder_name] if args.key?(:folder_name)
2534
+ @is_enabled = args[:is_enabled] if args.key?(:is_enabled)
2535
+ end
2536
+ end
2537
+
2538
+ #
2539
+ class Notification
2540
+ include Google::Apis::Core::Hashable
2541
+
2542
+ #
2543
+ # Corresponds to the JSON property `moreFromAuthors`
2544
+ # @return [Google::Apis::BooksV1::UserSettings::Notification::MoreFromAuthors]
2545
+ attr_accessor :more_from_authors
2546
+
2547
+ def initialize(**args)
2548
+ update!(**args)
2549
+ end
2550
+
2551
+ # Update properties of this object
2552
+ def update!(**args)
2553
+ @more_from_authors = args[:more_from_authors] if args.key?(:more_from_authors)
2554
+ end
2555
+
2556
+ #
2557
+ class MoreFromAuthors
2558
+ include Google::Apis::Core::Hashable
2559
+
2560
+ #
2561
+ # Corresponds to the JSON property `opted_state`
2562
+ # @return [String]
2563
+ attr_accessor :opted_state
2564
+
2565
+ def initialize(**args)
2566
+ update!(**args)
2567
+ end
2568
+
2569
+ # Update properties of this object
2570
+ def update!(**args)
2571
+ @opted_state = args[:opted_state] if args.key?(:opted_state)
2572
+ end
2573
+ end
2574
+ end
2575
+ end
2576
+
2577
+ #
2578
+ class Volume
2579
+ include Google::Apis::Core::Hashable
2580
+
2581
+ # Any information about a volume related to reading or obtaining that volume
2582
+ # text. This information can depend on country (books may be public domain in
2583
+ # one country but not in another, e.g.).
2584
+ # Corresponds to the JSON property `accessInfo`
2585
+ # @return [Google::Apis::BooksV1::Volume::AccessInfo]
2586
+ attr_accessor :access_info
2587
+
2588
+ # Opaque identifier for a specific version of a volume resource. (In LITE
2589
+ # projection)
2590
+ # Corresponds to the JSON property `etag`
2591
+ # @return [String]
2592
+ attr_accessor :etag
2593
+
2594
+ # Unique identifier for a volume. (In LITE projection.)
2595
+ # Corresponds to the JSON property `id`
2596
+ # @return [String]
2597
+ attr_accessor :id
2598
+
2599
+ # Resource type for a volume. (In LITE projection.)
2600
+ # Corresponds to the JSON property `kind`
2601
+ # @return [String]
2602
+ attr_accessor :kind
2603
+
2604
+ # What layers exist in this volume and high level information about them.
2605
+ # Corresponds to the JSON property `layerInfo`
2606
+ # @return [Google::Apis::BooksV1::Volume::LayerInfo]
2607
+ attr_accessor :layer_info
2608
+
2609
+ # Recommendation related information for this volume.
2610
+ # Corresponds to the JSON property `recommendedInfo`
2611
+ # @return [Google::Apis::BooksV1::Volume::RecommendedInfo]
2612
+ attr_accessor :recommended_info
2613
+
2614
+ # Any information about a volume related to the eBookstore and/or
2615
+ # purchaseability. This information can depend on the country where the request
2616
+ # originates from (i.e. books may not be for sale in certain countries).
2617
+ # Corresponds to the JSON property `saleInfo`
2618
+ # @return [Google::Apis::BooksV1::Volume::SaleInfo]
2619
+ attr_accessor :sale_info
2620
+
2621
+ # Search result information related to this volume.
2622
+ # Corresponds to the JSON property `searchInfo`
2623
+ # @return [Google::Apis::BooksV1::Volume::SearchInfo]
2624
+ attr_accessor :search_info
2625
+
2626
+ # URL to this resource. (In LITE projection.)
2627
+ # Corresponds to the JSON property `selfLink`
2628
+ # @return [String]
2629
+ attr_accessor :self_link
2630
+
2631
+ # User specific information related to this volume. (e.g. page this user last
2632
+ # read or whether they purchased this book)
2633
+ # Corresponds to the JSON property `userInfo`
2634
+ # @return [Google::Apis::BooksV1::Volume::UserInfo]
2635
+ attr_accessor :user_info
2636
+
2637
+ # General volume information.
2638
+ # Corresponds to the JSON property `volumeInfo`
2639
+ # @return [Google::Apis::BooksV1::Volume::VolumeInfo]
2640
+ attr_accessor :volume_info
2641
+
2642
+ def initialize(**args)
2643
+ update!(**args)
2644
+ end
2645
+
2646
+ # Update properties of this object
2647
+ def update!(**args)
2648
+ @access_info = args[:access_info] if args.key?(:access_info)
2649
+ @etag = args[:etag] if args.key?(:etag)
2650
+ @id = args[:id] if args.key?(:id)
2651
+ @kind = args[:kind] if args.key?(:kind)
2652
+ @layer_info = args[:layer_info] if args.key?(:layer_info)
2653
+ @recommended_info = args[:recommended_info] if args.key?(:recommended_info)
2654
+ @sale_info = args[:sale_info] if args.key?(:sale_info)
2655
+ @search_info = args[:search_info] if args.key?(:search_info)
2656
+ @self_link = args[:self_link] if args.key?(:self_link)
2657
+ @user_info = args[:user_info] if args.key?(:user_info)
2658
+ @volume_info = args[:volume_info] if args.key?(:volume_info)
2659
+ end
2660
+
2661
+ # Any information about a volume related to reading or obtaining that volume
2662
+ # text. This information can depend on country (books may be public domain in
2663
+ # one country but not in another, e.g.).
2664
+ class AccessInfo
2665
+ include Google::Apis::Core::Hashable
2666
+
2667
+ # Combines the access and viewability of this volume into a single status field
2668
+ # for this user. Values can be FULL_PURCHASED, FULL_PUBLIC_DOMAIN, SAMPLE or
2669
+ # NONE. (In LITE projection.)
2670
+ # Corresponds to the JSON property `accessViewStatus`
2671
+ # @return [String]
2672
+ attr_accessor :access_view_status
2673
+
2674
+ # The two-letter ISO_3166-1 country code for which this access information is
2675
+ # valid. (In LITE projection.)
2676
+ # Corresponds to the JSON property `country`
2677
+ # @return [String]
2678
+ attr_accessor :country
2679
+
2680
+ # Information about a volume's download license access restrictions.
2681
+ # Corresponds to the JSON property `downloadAccess`
2682
+ # @return [Google::Apis::BooksV1::DownloadAccessRestriction]
2683
+ attr_accessor :download_access
2684
+
2685
+ # URL to the Google Drive viewer if this volume is uploaded by the user by
2686
+ # selecting the file from Google Drive.
2687
+ # Corresponds to the JSON property `driveImportedContentLink`
2688
+ # @return [String]
2689
+ attr_accessor :drive_imported_content_link
2690
+
2691
+ # Whether this volume can be embedded in a viewport using the Embedded Viewer
2692
+ # API.
2693
+ # Corresponds to the JSON property `embeddable`
2694
+ # @return [Boolean]
2695
+ attr_accessor :embeddable
2696
+ alias_method :embeddable?, :embeddable
2697
+
2698
+ # Information about epub content. (In LITE projection.)
2699
+ # Corresponds to the JSON property `epub`
2700
+ # @return [Google::Apis::BooksV1::Volume::AccessInfo::Epub]
2701
+ attr_accessor :epub
2702
+
2703
+ # Whether this volume requires that the client explicitly request offline
2704
+ # download license rather than have it done automatically when loading the
2705
+ # content, if the client supports it.
2706
+ # Corresponds to the JSON property `explicitOfflineLicenseManagement`
2707
+ # @return [Boolean]
2708
+ attr_accessor :explicit_offline_license_management
2709
+ alias_method :explicit_offline_license_management?, :explicit_offline_license_management
2710
+
2711
+ # Information about pdf content. (In LITE projection.)
2712
+ # Corresponds to the JSON property `pdf`
2713
+ # @return [Google::Apis::BooksV1::Volume::AccessInfo::Pdf]
2714
+ attr_accessor :pdf
2715
+
2716
+ # Whether or not this book is public domain in the country listed above.
2717
+ # Corresponds to the JSON property `publicDomain`
2718
+ # @return [Boolean]
2719
+ attr_accessor :public_domain
2720
+ alias_method :public_domain?, :public_domain
2721
+
2722
+ # Whether quote sharing is allowed for this volume.
2723
+ # Corresponds to the JSON property `quoteSharingAllowed`
2724
+ # @return [Boolean]
2725
+ attr_accessor :quote_sharing_allowed
2726
+ alias_method :quote_sharing_allowed?, :quote_sharing_allowed
2727
+
2728
+ # Whether text-to-speech is permitted for this volume. Values can be ALLOWED,
2729
+ # ALLOWED_FOR_ACCESSIBILITY, or NOT_ALLOWED.
2730
+ # Corresponds to the JSON property `textToSpeechPermission`
2731
+ # @return [String]
2732
+ attr_accessor :text_to_speech_permission
2733
+
2734
+ # For ordered but not yet processed orders, we give a URL that can be used to go
2735
+ # to the appropriate Google Wallet page.
2736
+ # Corresponds to the JSON property `viewOrderUrl`
2737
+ # @return [String]
2738
+ attr_accessor :view_order_url
2739
+
2740
+ # The read access of a volume. Possible values are PARTIAL, ALL_PAGES, NO_PAGES
2741
+ # or UNKNOWN. This value depends on the country listed above. A value of PARTIAL
2742
+ # means that the publisher has allowed some portion of the volume to be viewed
2743
+ # publicly, without purchase. This can apply to eBooks as well as non-eBooks.
2744
+ # Public domain books will always have a value of ALL_PAGES.
2745
+ # Corresponds to the JSON property `viewability`
2746
+ # @return [String]
2747
+ attr_accessor :viewability
2748
+
2749
+ # URL to read this volume on the Google Books site. Link will not allow users to
2750
+ # read non-viewable volumes.
2751
+ # Corresponds to the JSON property `webReaderLink`
2752
+ # @return [String]
2753
+ attr_accessor :web_reader_link
2754
+
2755
+ def initialize(**args)
2756
+ update!(**args)
2757
+ end
2758
+
2759
+ # Update properties of this object
2760
+ def update!(**args)
2761
+ @access_view_status = args[:access_view_status] if args.key?(:access_view_status)
2762
+ @country = args[:country] if args.key?(:country)
2763
+ @download_access = args[:download_access] if args.key?(:download_access)
2764
+ @drive_imported_content_link = args[:drive_imported_content_link] if args.key?(:drive_imported_content_link)
2765
+ @embeddable = args[:embeddable] if args.key?(:embeddable)
2766
+ @epub = args[:epub] if args.key?(:epub)
2767
+ @explicit_offline_license_management = args[:explicit_offline_license_management] if args.key?(:explicit_offline_license_management)
2768
+ @pdf = args[:pdf] if args.key?(:pdf)
2769
+ @public_domain = args[:public_domain] if args.key?(:public_domain)
2770
+ @quote_sharing_allowed = args[:quote_sharing_allowed] if args.key?(:quote_sharing_allowed)
2771
+ @text_to_speech_permission = args[:text_to_speech_permission] if args.key?(:text_to_speech_permission)
2772
+ @view_order_url = args[:view_order_url] if args.key?(:view_order_url)
2773
+ @viewability = args[:viewability] if args.key?(:viewability)
2774
+ @web_reader_link = args[:web_reader_link] if args.key?(:web_reader_link)
2775
+ end
2776
+
2777
+ # Information about epub content. (In LITE projection.)
2778
+ class Epub
2779
+ include Google::Apis::Core::Hashable
2780
+
2781
+ # URL to retrieve ACS token for epub download. (In LITE projection.)
2782
+ # Corresponds to the JSON property `acsTokenLink`
2783
+ # @return [String]
2784
+ attr_accessor :acs_token_link
2785
+
2786
+ # URL to download epub. (In LITE projection.)
2787
+ # Corresponds to the JSON property `downloadLink`
2788
+ # @return [String]
2789
+ attr_accessor :download_link
2790
+
2791
+ # Is a flowing text epub available either as public domain or for purchase. (In
2792
+ # LITE projection.)
2793
+ # Corresponds to the JSON property `isAvailable`
2794
+ # @return [Boolean]
2795
+ attr_accessor :is_available
2796
+ alias_method :is_available?, :is_available
2797
+
2798
+ def initialize(**args)
2799
+ update!(**args)
2800
+ end
2801
+
2802
+ # Update properties of this object
2803
+ def update!(**args)
2804
+ @acs_token_link = args[:acs_token_link] if args.key?(:acs_token_link)
2805
+ @download_link = args[:download_link] if args.key?(:download_link)
2806
+ @is_available = args[:is_available] if args.key?(:is_available)
2807
+ end
2808
+ end
2809
+
2810
+ # Information about pdf content. (In LITE projection.)
2811
+ class Pdf
2812
+ include Google::Apis::Core::Hashable
2813
+
2814
+ # URL to retrieve ACS token for pdf download. (In LITE projection.)
2815
+ # Corresponds to the JSON property `acsTokenLink`
2816
+ # @return [String]
2817
+ attr_accessor :acs_token_link
2818
+
2819
+ # URL to download pdf. (In LITE projection.)
2820
+ # Corresponds to the JSON property `downloadLink`
2821
+ # @return [String]
2822
+ attr_accessor :download_link
2823
+
2824
+ # Is a scanned image pdf available either as public domain or for purchase. (In
2825
+ # LITE projection.)
2826
+ # Corresponds to the JSON property `isAvailable`
2827
+ # @return [Boolean]
2828
+ attr_accessor :is_available
2829
+ alias_method :is_available?, :is_available
2830
+
2831
+ def initialize(**args)
2832
+ update!(**args)
2833
+ end
2834
+
2835
+ # Update properties of this object
2836
+ def update!(**args)
2837
+ @acs_token_link = args[:acs_token_link] if args.key?(:acs_token_link)
2838
+ @download_link = args[:download_link] if args.key?(:download_link)
2839
+ @is_available = args[:is_available] if args.key?(:is_available)
2840
+ end
2841
+ end
2842
+ end
2843
+
2844
+ # What layers exist in this volume and high level information about them.
2845
+ class LayerInfo
2846
+ include Google::Apis::Core::Hashable
2847
+
2848
+ # A layer should appear here if and only if the layer exists for this book.
2849
+ # Corresponds to the JSON property `layers`
2850
+ # @return [Array<Google::Apis::BooksV1::Volume::LayerInfo::Layer>]
2851
+ attr_accessor :layers
2852
+
2853
+ def initialize(**args)
2854
+ update!(**args)
2855
+ end
2856
+
2857
+ # Update properties of this object
2858
+ def update!(**args)
2859
+ @layers = args[:layers] if args.key?(:layers)
2860
+ end
2861
+
2862
+ #
2863
+ class Layer
2864
+ include Google::Apis::Core::Hashable
2865
+
2866
+ # The layer id of this layer (e.g. "geo").
2867
+ # Corresponds to the JSON property `layerId`
2868
+ # @return [String]
2869
+ attr_accessor :layer_id
2870
+
2871
+ # The current version of this layer's volume annotations. Note that this version
2872
+ # applies only to the data in the books.layers.volumeAnnotations.* responses.
2873
+ # The actual annotation data is versioned separately.
2874
+ # Corresponds to the JSON property `volumeAnnotationsVersion`
2875
+ # @return [String]
2876
+ attr_accessor :volume_annotations_version
2877
+
2878
+ def initialize(**args)
2879
+ update!(**args)
2880
+ end
2881
+
2882
+ # Update properties of this object
2883
+ def update!(**args)
2884
+ @layer_id = args[:layer_id] if args.key?(:layer_id)
2885
+ @volume_annotations_version = args[:volume_annotations_version] if args.key?(:volume_annotations_version)
2886
+ end
2887
+ end
2888
+ end
2889
+
2890
+ # Recommendation related information for this volume.
2891
+ class RecommendedInfo
2892
+ include Google::Apis::Core::Hashable
2893
+
2894
+ # A text explaining why this volume is recommended.
2895
+ # Corresponds to the JSON property `explanation`
2896
+ # @return [String]
2897
+ attr_accessor :explanation
2898
+
2899
+ def initialize(**args)
2900
+ update!(**args)
2901
+ end
2902
+
2903
+ # Update properties of this object
2904
+ def update!(**args)
2905
+ @explanation = args[:explanation] if args.key?(:explanation)
2906
+ end
2907
+ end
2908
+
2909
+ # Any information about a volume related to the eBookstore and/or
2910
+ # purchaseability. This information can depend on the country where the request
2911
+ # originates from (i.e. books may not be for sale in certain countries).
2912
+ class SaleInfo
2913
+ include Google::Apis::Core::Hashable
2914
+
2915
+ # URL to purchase this volume on the Google Books site. (In LITE projection)
2916
+ # Corresponds to the JSON property `buyLink`
2917
+ # @return [String]
2918
+ attr_accessor :buy_link
2919
+
2920
+ # The two-letter ISO_3166-1 country code for which this sale information is
2921
+ # valid. (In LITE projection.)
2922
+ # Corresponds to the JSON property `country`
2923
+ # @return [String]
2924
+ attr_accessor :country
2925
+
2926
+ # Whether or not this volume is an eBook (can be added to the My eBooks shelf).
2927
+ # Corresponds to the JSON property `isEbook`
2928
+ # @return [Boolean]
2929
+ attr_accessor :is_ebook
2930
+ alias_method :is_ebook?, :is_ebook
2931
+
2932
+ # Suggested retail price. (In LITE projection.)
2933
+ # Corresponds to the JSON property `listPrice`
2934
+ # @return [Google::Apis::BooksV1::Volume::SaleInfo::ListPrice]
2935
+ attr_accessor :list_price
2936
+
2937
+ # Offers available for this volume (sales and rentals).
2938
+ # Corresponds to the JSON property `offers`
2939
+ # @return [Array<Google::Apis::BooksV1::Volume::SaleInfo::Offer>]
2940
+ attr_accessor :offers
2941
+
2942
+ # The date on which this book is available for sale.
2943
+ # Corresponds to the JSON property `onSaleDate`
2944
+ # @return [DateTime]
2945
+ attr_accessor :on_sale_date
2946
+
2947
+ # The actual selling price of the book. This is the same as the suggested retail
2948
+ # or list price unless there are offers or discounts on this volume. (In LITE
2949
+ # projection.)
2950
+ # Corresponds to the JSON property `retailPrice`
2951
+ # @return [Google::Apis::BooksV1::Volume::SaleInfo::RetailPrice]
2952
+ attr_accessor :retail_price
2953
+
2954
+ # Whether or not this book is available for sale or offered for free in the
2955
+ # Google eBookstore for the country listed above. Possible values are FOR_SALE,
2956
+ # FOR_RENTAL_ONLY, FOR_SALE_AND_RENTAL, FREE, NOT_FOR_SALE, or FOR_PREORDER.
2957
+ # Corresponds to the JSON property `saleability`
2958
+ # @return [String]
2959
+ attr_accessor :saleability
2960
+
2961
+ def initialize(**args)
2962
+ update!(**args)
2963
+ end
2964
+
2965
+ # Update properties of this object
2966
+ def update!(**args)
2967
+ @buy_link = args[:buy_link] if args.key?(:buy_link)
2968
+ @country = args[:country] if args.key?(:country)
2969
+ @is_ebook = args[:is_ebook] if args.key?(:is_ebook)
2970
+ @list_price = args[:list_price] if args.key?(:list_price)
2971
+ @offers = args[:offers] if args.key?(:offers)
2972
+ @on_sale_date = args[:on_sale_date] if args.key?(:on_sale_date)
2973
+ @retail_price = args[:retail_price] if args.key?(:retail_price)
2974
+ @saleability = args[:saleability] if args.key?(:saleability)
2975
+ end
2976
+
2977
+ # Suggested retail price. (In LITE projection.)
2978
+ class ListPrice
2979
+ include Google::Apis::Core::Hashable
2980
+
2981
+ # Amount in the currency listed below. (In LITE projection.)
2982
+ # Corresponds to the JSON property `amount`
2983
+ # @return [Float]
2984
+ attr_accessor :amount
2985
+
2986
+ # An ISO 4217, three-letter currency code. (In LITE projection.)
2987
+ # Corresponds to the JSON property `currencyCode`
2988
+ # @return [String]
2989
+ attr_accessor :currency_code
2990
+
2991
+ def initialize(**args)
2992
+ update!(**args)
2993
+ end
2994
+
2995
+ # Update properties of this object
2996
+ def update!(**args)
2997
+ @amount = args[:amount] if args.key?(:amount)
2998
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
2999
+ end
3000
+ end
3001
+
3002
+ #
3003
+ class Offer
3004
+ include Google::Apis::Core::Hashable
3005
+
3006
+ # The finsky offer type (e.g., PURCHASE=0 RENTAL=3)
3007
+ # Corresponds to the JSON property `finskyOfferType`
3008
+ # @return [Fixnum]
3009
+ attr_accessor :finsky_offer_type
3010
+
3011
+ # Offer list (=undiscounted) price in Micros.
3012
+ # Corresponds to the JSON property `listPrice`
3013
+ # @return [Google::Apis::BooksV1::Volume::SaleInfo::Offer::ListPrice]
3014
+ attr_accessor :list_price
3015
+
3016
+ # The rental duration (for rental offers only).
3017
+ # Corresponds to the JSON property `rentalDuration`
3018
+ # @return [Google::Apis::BooksV1::Volume::SaleInfo::Offer::RentalDuration]
3019
+ attr_accessor :rental_duration
3020
+
3021
+ # Offer retail (=discounted) price in Micros
3022
+ # Corresponds to the JSON property `retailPrice`
3023
+ # @return [Google::Apis::BooksV1::Volume::SaleInfo::Offer::RetailPrice]
3024
+ attr_accessor :retail_price
3025
+
3026
+ def initialize(**args)
3027
+ update!(**args)
3028
+ end
3029
+
3030
+ # Update properties of this object
3031
+ def update!(**args)
3032
+ @finsky_offer_type = args[:finsky_offer_type] if args.key?(:finsky_offer_type)
3033
+ @list_price = args[:list_price] if args.key?(:list_price)
3034
+ @rental_duration = args[:rental_duration] if args.key?(:rental_duration)
3035
+ @retail_price = args[:retail_price] if args.key?(:retail_price)
3036
+ end
3037
+
3038
+ # Offer list (=undiscounted) price in Micros.
3039
+ class ListPrice
3040
+ include Google::Apis::Core::Hashable
3041
+
3042
+ #
3043
+ # Corresponds to the JSON property `amountInMicros`
3044
+ # @return [Float]
3045
+ attr_accessor :amount_in_micros
3046
+
3047
+ #
3048
+ # Corresponds to the JSON property `currencyCode`
3049
+ # @return [String]
3050
+ attr_accessor :currency_code
3051
+
3052
+ def initialize(**args)
3053
+ update!(**args)
3054
+ end
3055
+
3056
+ # Update properties of this object
3057
+ def update!(**args)
3058
+ @amount_in_micros = args[:amount_in_micros] if args.key?(:amount_in_micros)
3059
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
3060
+ end
3061
+ end
3062
+
3063
+ # The rental duration (for rental offers only).
3064
+ class RentalDuration
3065
+ include Google::Apis::Core::Hashable
3066
+
3067
+ #
3068
+ # Corresponds to the JSON property `count`
3069
+ # @return [Float]
3070
+ attr_accessor :count
3071
+
3072
+ #
3073
+ # Corresponds to the JSON property `unit`
3074
+ # @return [String]
3075
+ attr_accessor :unit
3076
+
3077
+ def initialize(**args)
3078
+ update!(**args)
3079
+ end
3080
+
3081
+ # Update properties of this object
3082
+ def update!(**args)
3083
+ @count = args[:count] if args.key?(:count)
3084
+ @unit = args[:unit] if args.key?(:unit)
3085
+ end
3086
+ end
3087
+
3088
+ # Offer retail (=discounted) price in Micros
3089
+ class RetailPrice
3090
+ include Google::Apis::Core::Hashable
3091
+
3092
+ #
3093
+ # Corresponds to the JSON property `amountInMicros`
3094
+ # @return [Float]
3095
+ attr_accessor :amount_in_micros
3096
+
3097
+ #
3098
+ # Corresponds to the JSON property `currencyCode`
3099
+ # @return [String]
3100
+ attr_accessor :currency_code
3101
+
3102
+ def initialize(**args)
3103
+ update!(**args)
3104
+ end
3105
+
3106
+ # Update properties of this object
3107
+ def update!(**args)
3108
+ @amount_in_micros = args[:amount_in_micros] if args.key?(:amount_in_micros)
3109
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
3110
+ end
3111
+ end
3112
+ end
3113
+
3114
+ # The actual selling price of the book. This is the same as the suggested retail
3115
+ # or list price unless there are offers or discounts on this volume. (In LITE
3116
+ # projection.)
3117
+ class RetailPrice
3118
+ include Google::Apis::Core::Hashable
3119
+
3120
+ # Amount in the currency listed below. (In LITE projection.)
3121
+ # Corresponds to the JSON property `amount`
3122
+ # @return [Float]
3123
+ attr_accessor :amount
3124
+
3125
+ # An ISO 4217, three-letter currency code. (In LITE projection.)
3126
+ # Corresponds to the JSON property `currencyCode`
3127
+ # @return [String]
3128
+ attr_accessor :currency_code
3129
+
3130
+ def initialize(**args)
3131
+ update!(**args)
3132
+ end
3133
+
3134
+ # Update properties of this object
3135
+ def update!(**args)
3136
+ @amount = args[:amount] if args.key?(:amount)
3137
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
3138
+ end
3139
+ end
3140
+ end
3141
+
3142
+ # Search result information related to this volume.
3143
+ class SearchInfo
3144
+ include Google::Apis::Core::Hashable
3145
+
3146
+ # A text snippet containing the search query.
3147
+ # Corresponds to the JSON property `textSnippet`
3148
+ # @return [String]
3149
+ attr_accessor :text_snippet
3150
+
3151
+ def initialize(**args)
3152
+ update!(**args)
3153
+ end
3154
+
3155
+ # Update properties of this object
3156
+ def update!(**args)
3157
+ @text_snippet = args[:text_snippet] if args.key?(:text_snippet)
3158
+ end
3159
+ end
3160
+
3161
+ # User specific information related to this volume. (e.g. page this user last
3162
+ # read or whether they purchased this book)
3163
+ class UserInfo
3164
+ include Google::Apis::Core::Hashable
3165
+
3166
+ # Timestamp when this volume was acquired by the user. (RFC 3339 UTC date-time
3167
+ # format) Acquiring includes purchase, user upload, receiving family sharing,
3168
+ # etc.
3169
+ # Corresponds to the JSON property `acquiredTime`
3170
+ # @return [DateTime]
3171
+ attr_accessor :acquired_time
3172
+
3173
+ # How this volume was acquired.
3174
+ # Corresponds to the JSON property `acquisitionType`
3175
+ # @return [Fixnum]
3176
+ attr_accessor :acquisition_type
3177
+
3178
+ # Copy/Paste accounting information.
3179
+ # Corresponds to the JSON property `copy`
3180
+ # @return [Google::Apis::BooksV1::Volume::UserInfo::Copy]
3181
+ attr_accessor :copy
3182
+
3183
+ # Whether this volume is purchased, sample, pd download etc.
3184
+ # Corresponds to the JSON property `entitlementType`
3185
+ # @return [Fixnum]
3186
+ attr_accessor :entitlement_type
3187
+
3188
+ # Whether or not the user shared this volume with the family.
3189
+ # Corresponds to the JSON property `isFamilySharedFromUser`
3190
+ # @return [Boolean]
3191
+ attr_accessor :is_family_shared_from_user
3192
+ alias_method :is_family_shared_from_user?, :is_family_shared_from_user
3193
+
3194
+ # Whether or not the user received this volume through family sharing.
3195
+ # Corresponds to the JSON property `isFamilySharedToUser`
3196
+ # @return [Boolean]
3197
+ attr_accessor :is_family_shared_to_user
3198
+ alias_method :is_family_shared_to_user?, :is_family_shared_to_user
3199
+
3200
+ # Whether or not this volume can be shared with the family by the user. This
3201
+ # includes sharing eligibility of both the volume and the user. If the value is
3202
+ # true, the user can initiate a family sharing action.
3203
+ # Corresponds to the JSON property `isFamilySharingAllowed`
3204
+ # @return [Boolean]
3205
+ attr_accessor :is_family_sharing_allowed
3206
+ alias_method :is_family_sharing_allowed?, :is_family_sharing_allowed
3207
+
3208
+ # Whether or not this volume is currently in "my books."
3209
+ # Corresponds to the JSON property `isInMyBooks`
3210
+ # @return [Boolean]
3211
+ attr_accessor :is_in_my_books
3212
+ alias_method :is_in_my_books?, :is_in_my_books
3213
+
3214
+ # Whether or not this volume was pre-ordered by the authenticated user making
3215
+ # the request. (In LITE projection.)
3216
+ # Corresponds to the JSON property `isPreordered`
3217
+ # @return [Boolean]
3218
+ attr_accessor :is_preordered
3219
+ alias_method :is_preordered?, :is_preordered
3220
+
3221
+ # Whether or not this volume was purchased by the authenticated user making the
3222
+ # request. (In LITE projection.)
3223
+ # Corresponds to the JSON property `isPurchased`
3224
+ # @return [Boolean]
3225
+ attr_accessor :is_purchased
3226
+ alias_method :is_purchased?, :is_purchased
3227
+
3228
+ # Whether or not this volume was user uploaded.
3229
+ # Corresponds to the JSON property `isUploaded`
3230
+ # @return [Boolean]
3231
+ attr_accessor :is_uploaded
3232
+ alias_method :is_uploaded?, :is_uploaded
3233
+
3234
+ # The user's current reading position in the volume, if one is available. (In
3235
+ # LITE projection.)
3236
+ # Corresponds to the JSON property `readingPosition`
3237
+ # @return [Google::Apis::BooksV1::ReadingPosition]
3238
+ attr_accessor :reading_position
3239
+
3240
+ # Period during this book is/was a valid rental.
3241
+ # Corresponds to the JSON property `rentalPeriod`
3242
+ # @return [Google::Apis::BooksV1::Volume::UserInfo::RentalPeriod]
3243
+ attr_accessor :rental_period
3244
+
3245
+ # Whether this book is an active or an expired rental.
3246
+ # Corresponds to the JSON property `rentalState`
3247
+ # @return [String]
3248
+ attr_accessor :rental_state
3249
+
3250
+ # This user's review of this volume, if one exists.
3251
+ # Corresponds to the JSON property `review`
3252
+ # @return [Google::Apis::BooksV1::Review]
3253
+ attr_accessor :review
3254
+
3255
+ # Timestamp when this volume was last modified by a user action, such as a
3256
+ # reading position update, volume purchase or writing a review. (RFC 3339 UTC
3257
+ # date-time format).
3258
+ # Corresponds to the JSON property `updated`
3259
+ # @return [DateTime]
3260
+ attr_accessor :updated
3261
+
3262
+ #
3263
+ # Corresponds to the JSON property `userUploadedVolumeInfo`
3264
+ # @return [Google::Apis::BooksV1::Volume::UserInfo::UserUploadedVolumeInfo]
3265
+ attr_accessor :user_uploaded_volume_info
3266
+
3267
+ def initialize(**args)
3268
+ update!(**args)
3269
+ end
3270
+
3271
+ # Update properties of this object
3272
+ def update!(**args)
3273
+ @acquired_time = args[:acquired_time] if args.key?(:acquired_time)
3274
+ @acquisition_type = args[:acquisition_type] if args.key?(:acquisition_type)
3275
+ @copy = args[:copy] if args.key?(:copy)
3276
+ @entitlement_type = args[:entitlement_type] if args.key?(:entitlement_type)
3277
+ @is_family_shared_from_user = args[:is_family_shared_from_user] if args.key?(:is_family_shared_from_user)
3278
+ @is_family_shared_to_user = args[:is_family_shared_to_user] if args.key?(:is_family_shared_to_user)
3279
+ @is_family_sharing_allowed = args[:is_family_sharing_allowed] if args.key?(:is_family_sharing_allowed)
3280
+ @is_in_my_books = args[:is_in_my_books] if args.key?(:is_in_my_books)
3281
+ @is_preordered = args[:is_preordered] if args.key?(:is_preordered)
3282
+ @is_purchased = args[:is_purchased] if args.key?(:is_purchased)
3283
+ @is_uploaded = args[:is_uploaded] if args.key?(:is_uploaded)
3284
+ @reading_position = args[:reading_position] if args.key?(:reading_position)
3285
+ @rental_period = args[:rental_period] if args.key?(:rental_period)
3286
+ @rental_state = args[:rental_state] if args.key?(:rental_state)
3287
+ @review = args[:review] if args.key?(:review)
3288
+ @updated = args[:updated] if args.key?(:updated)
3289
+ @user_uploaded_volume_info = args[:user_uploaded_volume_info] if args.key?(:user_uploaded_volume_info)
3290
+ end
3291
+
3292
+ # Copy/Paste accounting information.
3293
+ class Copy
3294
+ include Google::Apis::Core::Hashable
3295
+
3296
+ #
3297
+ # Corresponds to the JSON property `allowedCharacterCount`
3298
+ # @return [Fixnum]
3299
+ attr_accessor :allowed_character_count
3300
+
3301
+ #
3302
+ # Corresponds to the JSON property `limitType`
3303
+ # @return [String]
3304
+ attr_accessor :limit_type
3305
+
3306
+ #
3307
+ # Corresponds to the JSON property `remainingCharacterCount`
3308
+ # @return [Fixnum]
3309
+ attr_accessor :remaining_character_count
3310
+
3311
+ #
3312
+ # Corresponds to the JSON property `updated`
3313
+ # @return [DateTime]
3314
+ attr_accessor :updated
3315
+
3316
+ def initialize(**args)
3317
+ update!(**args)
3318
+ end
3319
+
3320
+ # Update properties of this object
3321
+ def update!(**args)
3322
+ @allowed_character_count = args[:allowed_character_count] if args.key?(:allowed_character_count)
3323
+ @limit_type = args[:limit_type] if args.key?(:limit_type)
3324
+ @remaining_character_count = args[:remaining_character_count] if args.key?(:remaining_character_count)
3325
+ @updated = args[:updated] if args.key?(:updated)
3326
+ end
3327
+ end
3328
+
3329
+ # Period during this book is/was a valid rental.
3330
+ class RentalPeriod
3331
+ include Google::Apis::Core::Hashable
3332
+
3333
+ #
3334
+ # Corresponds to the JSON property `endUtcSec`
3335
+ # @return [String]
3336
+ attr_accessor :end_utc_sec
3337
+
3338
+ #
3339
+ # Corresponds to the JSON property `startUtcSec`
3340
+ # @return [String]
3341
+ attr_accessor :start_utc_sec
3342
+
3343
+ def initialize(**args)
3344
+ update!(**args)
3345
+ end
3346
+
3347
+ # Update properties of this object
3348
+ def update!(**args)
3349
+ @end_utc_sec = args[:end_utc_sec] if args.key?(:end_utc_sec)
3350
+ @start_utc_sec = args[:start_utc_sec] if args.key?(:start_utc_sec)
3351
+ end
3352
+ end
3353
+
3354
+ #
3355
+ class UserUploadedVolumeInfo
3356
+ include Google::Apis::Core::Hashable
3357
+
3358
+ #
3359
+ # Corresponds to the JSON property `processingState`
3360
+ # @return [String]
3361
+ attr_accessor :processing_state
3362
+
3363
+ def initialize(**args)
3364
+ update!(**args)
3365
+ end
3366
+
3367
+ # Update properties of this object
3368
+ def update!(**args)
3369
+ @processing_state = args[:processing_state] if args.key?(:processing_state)
3370
+ end
3371
+ end
3372
+ end
3373
+
3374
+ # General volume information.
3375
+ class VolumeInfo
3376
+ include Google::Apis::Core::Hashable
3377
+
3378
+ # Whether anonymous logging should be allowed.
3379
+ # Corresponds to the JSON property `allowAnonLogging`
3380
+ # @return [Boolean]
3381
+ attr_accessor :allow_anon_logging
3382
+ alias_method :allow_anon_logging?, :allow_anon_logging
3383
+
3384
+ # The names of the authors and/or editors for this volume. (In LITE projection)
3385
+ # Corresponds to the JSON property `authors`
3386
+ # @return [Array<String>]
3387
+ attr_accessor :authors
3388
+
3389
+ # The mean review rating for this volume. (min = 1.0, max = 5.0)
3390
+ # Corresponds to the JSON property `averageRating`
3391
+ # @return [Float]
3392
+ attr_accessor :average_rating
3393
+
3394
+ # Canonical URL for a volume. (In LITE projection.)
3395
+ # Corresponds to the JSON property `canonicalVolumeLink`
3396
+ # @return [String]
3397
+ attr_accessor :canonical_volume_link
3398
+
3399
+ # A list of subject categories, such as "Fiction", "Suspense", etc.
3400
+ # Corresponds to the JSON property `categories`
3401
+ # @return [Array<String>]
3402
+ attr_accessor :categories
3403
+
3404
+ # An identifier for the version of the volume content (text & images). (In LITE
3405
+ # projection)
3406
+ # Corresponds to the JSON property `contentVersion`
3407
+ # @return [String]
3408
+ attr_accessor :content_version
3409
+
3410
+ # A synopsis of the volume. The text of the description is formatted in HTML and
3411
+ # includes simple formatting elements, such as b, i, and br tags. (In LITE
3412
+ # projection.)
3413
+ # Corresponds to the JSON property `description`
3414
+ # @return [String]
3415
+ attr_accessor :description
3416
+
3417
+ # Physical dimensions of this volume.
3418
+ # Corresponds to the JSON property `dimensions`
3419
+ # @return [Google::Apis::BooksV1::Volume::VolumeInfo::Dimensions]
3420
+ attr_accessor :dimensions
3421
+
3422
+ # A list of image links for all the sizes that are available. (In LITE
3423
+ # projection.)
3424
+ # Corresponds to the JSON property `imageLinks`
3425
+ # @return [Google::Apis::BooksV1::Volume::VolumeInfo::ImageLinks]
3426
+ attr_accessor :image_links
3427
+
3428
+ # Industry standard identifiers for this volume.
3429
+ # Corresponds to the JSON property `industryIdentifiers`
3430
+ # @return [Array<Google::Apis::BooksV1::Volume::VolumeInfo::IndustryIdentifier>]
3431
+ attr_accessor :industry_identifiers
3432
+
3433
+ # URL to view information about this volume on the Google Books site. (In LITE
3434
+ # projection)
3435
+ # Corresponds to the JSON property `infoLink`
3436
+ # @return [String]
3437
+ attr_accessor :info_link
3438
+
3439
+ # Best language for this volume (based on content). It is the two-letter ISO 639-
3440
+ # 1 code such as 'fr', 'en', etc.
3441
+ # Corresponds to the JSON property `language`
3442
+ # @return [String]
3443
+ attr_accessor :language
3444
+
3445
+ # The main category to which this volume belongs. It will be the category from
3446
+ # the categories list returned below that has the highest weight.
3447
+ # Corresponds to the JSON property `mainCategory`
3448
+ # @return [String]
3449
+ attr_accessor :main_category
3450
+
3451
+ #
3452
+ # Corresponds to the JSON property `maturityRating`
3453
+ # @return [String]
3454
+ attr_accessor :maturity_rating
3455
+
3456
+ # Total number of pages as per publisher metadata.
3457
+ # Corresponds to the JSON property `pageCount`
3458
+ # @return [Fixnum]
3459
+ attr_accessor :page_count
3460
+
3461
+ # URL to preview this volume on the Google Books site.
3462
+ # Corresponds to the JSON property `previewLink`
3463
+ # @return [String]
3464
+ attr_accessor :preview_link
3465
+
3466
+ # Type of publication of this volume. Possible values are BOOK or MAGAZINE.
3467
+ # Corresponds to the JSON property `printType`
3468
+ # @return [String]
3469
+ attr_accessor :print_type
3470
+
3471
+ # Total number of printed pages in generated pdf representation.
3472
+ # Corresponds to the JSON property `printedPageCount`
3473
+ # @return [Fixnum]
3474
+ attr_accessor :printed_page_count
3475
+
3476
+ # Date of publication. (In LITE projection.)
3477
+ # Corresponds to the JSON property `publishedDate`
3478
+ # @return [String]
3479
+ attr_accessor :published_date
3480
+
3481
+ # Publisher of this volume. (In LITE projection.)
3482
+ # Corresponds to the JSON property `publisher`
3483
+ # @return [String]
3484
+ attr_accessor :publisher
3485
+
3486
+ # The number of review ratings for this volume.
3487
+ # Corresponds to the JSON property `ratingsCount`
3488
+ # @return [Fixnum]
3489
+ attr_accessor :ratings_count
3490
+
3491
+ # The reading modes available for this volume.
3492
+ # Corresponds to the JSON property `readingModes`
3493
+ # @return [Object]
3494
+ attr_accessor :reading_modes
3495
+
3496
+ # Total number of sample pages as per publisher metadata.
3497
+ # Corresponds to the JSON property `samplePageCount`
3498
+ # @return [Fixnum]
3499
+ attr_accessor :sample_page_count
3500
+
3501
+ #
3502
+ # Corresponds to the JSON property `seriesInfo`
3503
+ # @return [Google::Apis::BooksV1::Volumeseriesinfo]
3504
+ attr_accessor :series_info
3505
+
3506
+ # Volume subtitle. (In LITE projection.)
3507
+ # Corresponds to the JSON property `subtitle`
3508
+ # @return [String]
3509
+ attr_accessor :subtitle
3510
+
3511
+ # Volume title. (In LITE projection.)
3512
+ # Corresponds to the JSON property `title`
3513
+ # @return [String]
3514
+ attr_accessor :title
3515
+
3516
+ def initialize(**args)
3517
+ update!(**args)
3518
+ end
3519
+
3520
+ # Update properties of this object
3521
+ def update!(**args)
3522
+ @allow_anon_logging = args[:allow_anon_logging] if args.key?(:allow_anon_logging)
3523
+ @authors = args[:authors] if args.key?(:authors)
3524
+ @average_rating = args[:average_rating] if args.key?(:average_rating)
3525
+ @canonical_volume_link = args[:canonical_volume_link] if args.key?(:canonical_volume_link)
3526
+ @categories = args[:categories] if args.key?(:categories)
3527
+ @content_version = args[:content_version] if args.key?(:content_version)
3528
+ @description = args[:description] if args.key?(:description)
3529
+ @dimensions = args[:dimensions] if args.key?(:dimensions)
3530
+ @image_links = args[:image_links] if args.key?(:image_links)
3531
+ @industry_identifiers = args[:industry_identifiers] if args.key?(:industry_identifiers)
3532
+ @info_link = args[:info_link] if args.key?(:info_link)
3533
+ @language = args[:language] if args.key?(:language)
3534
+ @main_category = args[:main_category] if args.key?(:main_category)
3535
+ @maturity_rating = args[:maturity_rating] if args.key?(:maturity_rating)
3536
+ @page_count = args[:page_count] if args.key?(:page_count)
3537
+ @preview_link = args[:preview_link] if args.key?(:preview_link)
3538
+ @print_type = args[:print_type] if args.key?(:print_type)
3539
+ @printed_page_count = args[:printed_page_count] if args.key?(:printed_page_count)
3540
+ @published_date = args[:published_date] if args.key?(:published_date)
3541
+ @publisher = args[:publisher] if args.key?(:publisher)
3542
+ @ratings_count = args[:ratings_count] if args.key?(:ratings_count)
3543
+ @reading_modes = args[:reading_modes] if args.key?(:reading_modes)
3544
+ @sample_page_count = args[:sample_page_count] if args.key?(:sample_page_count)
3545
+ @series_info = args[:series_info] if args.key?(:series_info)
3546
+ @subtitle = args[:subtitle] if args.key?(:subtitle)
3547
+ @title = args[:title] if args.key?(:title)
3548
+ end
3549
+
3550
+ # Physical dimensions of this volume.
3551
+ class Dimensions
3552
+ include Google::Apis::Core::Hashable
3553
+
3554
+ # Height or length of this volume (in cm).
3555
+ # Corresponds to the JSON property `height`
3556
+ # @return [String]
3557
+ attr_accessor :height
3558
+
3559
+ # Thickness of this volume (in cm).
3560
+ # Corresponds to the JSON property `thickness`
3561
+ # @return [String]
3562
+ attr_accessor :thickness
3563
+
3564
+ # Width of this volume (in cm).
3565
+ # Corresponds to the JSON property `width`
3566
+ # @return [String]
3567
+ attr_accessor :width
3568
+
3569
+ def initialize(**args)
3570
+ update!(**args)
3571
+ end
3572
+
3573
+ # Update properties of this object
3574
+ def update!(**args)
3575
+ @height = args[:height] if args.key?(:height)
3576
+ @thickness = args[:thickness] if args.key?(:thickness)
3577
+ @width = args[:width] if args.key?(:width)
3578
+ end
3579
+ end
3580
+
3581
+ # A list of image links for all the sizes that are available. (In LITE
3582
+ # projection.)
3583
+ class ImageLinks
3584
+ include Google::Apis::Core::Hashable
3585
+
3586
+ # Image link for extra large size (width of ~1280 pixels). (In LITE projection)
3587
+ # Corresponds to the JSON property `extraLarge`
3588
+ # @return [String]
3589
+ attr_accessor :extra_large
3590
+
3591
+ # Image link for large size (width of ~800 pixels). (In LITE projection)
3592
+ # Corresponds to the JSON property `large`
3593
+ # @return [String]
3594
+ attr_accessor :large
3595
+
3596
+ # Image link for medium size (width of ~575 pixels). (In LITE projection)
3597
+ # Corresponds to the JSON property `medium`
3598
+ # @return [String]
3599
+ attr_accessor :medium
3600
+
3601
+ # Image link for small size (width of ~300 pixels). (In LITE projection)
3602
+ # Corresponds to the JSON property `small`
3603
+ # @return [String]
3604
+ attr_accessor :small
3605
+
3606
+ # Image link for small thumbnail size (width of ~80 pixels). (In LITE projection)
3607
+ # Corresponds to the JSON property `smallThumbnail`
3608
+ # @return [String]
3609
+ attr_accessor :small_thumbnail
3610
+
3611
+ # Image link for thumbnail size (width of ~128 pixels). (In LITE projection)
3612
+ # Corresponds to the JSON property `thumbnail`
3613
+ # @return [String]
3614
+ attr_accessor :thumbnail
3615
+
3616
+ def initialize(**args)
3617
+ update!(**args)
3618
+ end
3619
+
3620
+ # Update properties of this object
3621
+ def update!(**args)
3622
+ @extra_large = args[:extra_large] if args.key?(:extra_large)
3623
+ @large = args[:large] if args.key?(:large)
3624
+ @medium = args[:medium] if args.key?(:medium)
3625
+ @small = args[:small] if args.key?(:small)
3626
+ @small_thumbnail = args[:small_thumbnail] if args.key?(:small_thumbnail)
3627
+ @thumbnail = args[:thumbnail] if args.key?(:thumbnail)
3628
+ end
3629
+ end
3630
+
3631
+ #
3632
+ class IndustryIdentifier
3633
+ include Google::Apis::Core::Hashable
3634
+
3635
+ # Industry specific volume identifier.
3636
+ # Corresponds to the JSON property `identifier`
3637
+ # @return [String]
3638
+ attr_accessor :identifier
3639
+
3640
+ # Identifier type. Possible values are ISBN_10, ISBN_13, ISSN and OTHER.
3641
+ # Corresponds to the JSON property `type`
3642
+ # @return [String]
3643
+ attr_accessor :type
3644
+
3645
+ def initialize(**args)
3646
+ update!(**args)
3647
+ end
3648
+
3649
+ # Update properties of this object
3650
+ def update!(**args)
3651
+ @identifier = args[:identifier] if args.key?(:identifier)
3652
+ @type = args[:type] if args.key?(:type)
3653
+ end
3654
+ end
3655
+ end
3656
+ end
3657
+
3658
+ #
3659
+ class Volume2
3660
+ include Google::Apis::Core::Hashable
3661
+
3662
+ # A list of volumes.
3663
+ # Corresponds to the JSON property `items`
3664
+ # @return [Array<Google::Apis::BooksV1::Volume>]
3665
+ attr_accessor :items
3666
+
3667
+ # Resource type.
3668
+ # Corresponds to the JSON property `kind`
3669
+ # @return [String]
3670
+ attr_accessor :kind
3671
+
3672
+ #
3673
+ # Corresponds to the JSON property `nextPageToken`
3674
+ # @return [String]
3675
+ attr_accessor :next_page_token
3676
+
3677
+ def initialize(**args)
3678
+ update!(**args)
3679
+ end
3680
+
3681
+ # Update properties of this object
3682
+ def update!(**args)
3683
+ @items = args[:items] if args.key?(:items)
3684
+ @kind = args[:kind] if args.key?(:kind)
3685
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3686
+ end
3687
+ end
3688
+
3689
+ #
3690
+ class VolumeAnnotation
3691
+ include Google::Apis::Core::Hashable
3692
+
3693
+ # The annotation data id for this volume annotation.
3694
+ # Corresponds to the JSON property `annotationDataId`
3695
+ # @return [String]
3696
+ attr_accessor :annotation_data_id
3697
+
3698
+ # Link to get data for this annotation.
3699
+ # Corresponds to the JSON property `annotationDataLink`
3700
+ # @return [String]
3701
+ attr_accessor :annotation_data_link
3702
+
3703
+ # The type of annotation this is.
3704
+ # Corresponds to the JSON property `annotationType`
3705
+ # @return [String]
3706
+ attr_accessor :annotation_type
3707
+
3708
+ # The content ranges to identify the selected text.
3709
+ # Corresponds to the JSON property `contentRanges`
3710
+ # @return [Google::Apis::BooksV1::VolumeAnnotation::ContentRanges]
3711
+ attr_accessor :content_ranges
3712
+
3713
+ # Data for this annotation.
3714
+ # Corresponds to the JSON property `data`
3715
+ # @return [String]
3716
+ attr_accessor :data
3717
+
3718
+ # Indicates that this annotation is deleted.
3719
+ # Corresponds to the JSON property `deleted`
3720
+ # @return [Boolean]
3721
+ attr_accessor :deleted
3722
+ alias_method :deleted?, :deleted
3723
+
3724
+ # Unique id of this volume annotation.
3725
+ # Corresponds to the JSON property `id`
3726
+ # @return [String]
3727
+ attr_accessor :id
3728
+
3729
+ # Resource Type
3730
+ # Corresponds to the JSON property `kind`
3731
+ # @return [String]
3732
+ attr_accessor :kind
3733
+
3734
+ # The Layer this annotation is for.
3735
+ # Corresponds to the JSON property `layerId`
3736
+ # @return [String]
3737
+ attr_accessor :layer_id
3738
+
3739
+ # Pages the annotation spans.
3740
+ # Corresponds to the JSON property `pageIds`
3741
+ # @return [Array<String>]
3742
+ attr_accessor :page_ids
3743
+
3744
+ # Excerpt from the volume.
3745
+ # Corresponds to the JSON property `selectedText`
3746
+ # @return [String]
3747
+ attr_accessor :selected_text
3748
+
3749
+ # URL to this resource.
3750
+ # Corresponds to the JSON property `selfLink`
3751
+ # @return [String]
3752
+ attr_accessor :self_link
3753
+
3754
+ # Timestamp for the last time this anntoation was updated. (RFC 3339 UTC date-
3755
+ # time format).
3756
+ # Corresponds to the JSON property `updated`
3757
+ # @return [DateTime]
3758
+ attr_accessor :updated
3759
+
3760
+ # The Volume this annotation is for.
3761
+ # Corresponds to the JSON property `volumeId`
3762
+ # @return [String]
3763
+ attr_accessor :volume_id
3764
+
3765
+ def initialize(**args)
3766
+ update!(**args)
3767
+ end
3768
+
3769
+ # Update properties of this object
3770
+ def update!(**args)
3771
+ @annotation_data_id = args[:annotation_data_id] if args.key?(:annotation_data_id)
3772
+ @annotation_data_link = args[:annotation_data_link] if args.key?(:annotation_data_link)
3773
+ @annotation_type = args[:annotation_type] if args.key?(:annotation_type)
3774
+ @content_ranges = args[:content_ranges] if args.key?(:content_ranges)
3775
+ @data = args[:data] if args.key?(:data)
3776
+ @deleted = args[:deleted] if args.key?(:deleted)
3777
+ @id = args[:id] if args.key?(:id)
3778
+ @kind = args[:kind] if args.key?(:kind)
3779
+ @layer_id = args[:layer_id] if args.key?(:layer_id)
3780
+ @page_ids = args[:page_ids] if args.key?(:page_ids)
3781
+ @selected_text = args[:selected_text] if args.key?(:selected_text)
3782
+ @self_link = args[:self_link] if args.key?(:self_link)
3783
+ @updated = args[:updated] if args.key?(:updated)
3784
+ @volume_id = args[:volume_id] if args.key?(:volume_id)
3785
+ end
3786
+
3787
+ # The content ranges to identify the selected text.
3788
+ class ContentRanges
3789
+ include Google::Apis::Core::Hashable
3790
+
3791
+ # Range in CFI format for this annotation for version above.
3792
+ # Corresponds to the JSON property `cfiRange`
3793
+ # @return [Google::Apis::BooksV1::AnnotatinsRange]
3794
+ attr_accessor :cfi_range
3795
+
3796
+ # Content version applicable to ranges below.
3797
+ # Corresponds to the JSON property `contentVersion`
3798
+ # @return [String]
3799
+ attr_accessor :content_version
3800
+
3801
+ # Range in GB image format for this annotation for version above.
3802
+ # Corresponds to the JSON property `gbImageRange`
3803
+ # @return [Google::Apis::BooksV1::AnnotatinsRange]
3804
+ attr_accessor :gb_image_range
3805
+
3806
+ # Range in GB text format for this annotation for version above.
3807
+ # Corresponds to the JSON property `gbTextRange`
3808
+ # @return [Google::Apis::BooksV1::AnnotatinsRange]
3809
+ attr_accessor :gb_text_range
3810
+
3811
+ def initialize(**args)
3812
+ update!(**args)
3813
+ end
3814
+
3815
+ # Update properties of this object
3816
+ def update!(**args)
3817
+ @cfi_range = args[:cfi_range] if args.key?(:cfi_range)
3818
+ @content_version = args[:content_version] if args.key?(:content_version)
3819
+ @gb_image_range = args[:gb_image_range] if args.key?(:gb_image_range)
3820
+ @gb_text_range = args[:gb_text_range] if args.key?(:gb_text_range)
3821
+ end
3822
+ end
3823
+ end
3824
+
3825
+ #
3826
+ class Volumeannotations
3827
+ include Google::Apis::Core::Hashable
3828
+
3829
+ # A list of volume annotations.
3830
+ # Corresponds to the JSON property `items`
3831
+ # @return [Array<Google::Apis::BooksV1::VolumeAnnotation>]
3832
+ attr_accessor :items
3833
+
3834
+ # Resource type
3835
+ # Corresponds to the JSON property `kind`
3836
+ # @return [String]
3837
+ attr_accessor :kind
3838
+
3839
+ # Token to pass in for pagination for the next page. This will not be present if
3840
+ # this request does not have more results.
3841
+ # Corresponds to the JSON property `nextPageToken`
3842
+ # @return [String]
3843
+ attr_accessor :next_page_token
3844
+
3845
+ # The total number of volume annotations found.
3846
+ # Corresponds to the JSON property `totalItems`
3847
+ # @return [Fixnum]
3848
+ attr_accessor :total_items
3849
+
3850
+ # The version string for all of the volume annotations in this layer (not just
3851
+ # the ones in this response). Note: the version string doesn't apply to the
3852
+ # annotation data, just the information in this response (e.g. the location of
3853
+ # annotations in the book).
3854
+ # Corresponds to the JSON property `version`
3855
+ # @return [String]
3856
+ attr_accessor :version
3857
+
3858
+ def initialize(**args)
3859
+ update!(**args)
3860
+ end
3861
+
3862
+ # Update properties of this object
3863
+ def update!(**args)
3864
+ @items = args[:items] if args.key?(:items)
3865
+ @kind = args[:kind] if args.key?(:kind)
3866
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3867
+ @total_items = args[:total_items] if args.key?(:total_items)
3868
+ @version = args[:version] if args.key?(:version)
3869
+ end
3870
+ end
3871
+
3872
+ #
3873
+ class Volumes
3874
+ include Google::Apis::Core::Hashable
3875
+
3876
+ # A list of volumes.
3877
+ # Corresponds to the JSON property `items`
3878
+ # @return [Array<Google::Apis::BooksV1::Volume>]
3879
+ attr_accessor :items
3880
+
3881
+ # Resource type.
3882
+ # Corresponds to the JSON property `kind`
3883
+ # @return [String]
3884
+ attr_accessor :kind
3885
+
3886
+ # Total number of volumes found. This might be greater than the number of
3887
+ # volumes returned in this response if results have been paginated.
3888
+ # Corresponds to the JSON property `totalItems`
3889
+ # @return [Fixnum]
3890
+ attr_accessor :total_items
3891
+
3892
+ def initialize(**args)
3893
+ update!(**args)
3894
+ end
3895
+
3896
+ # Update properties of this object
3897
+ def update!(**args)
3898
+ @items = args[:items] if args.key?(:items)
3899
+ @kind = args[:kind] if args.key?(:kind)
3900
+ @total_items = args[:total_items] if args.key?(:total_items)
3901
+ end
3902
+ end
3903
+
3904
+ #
3905
+ class Volumeseriesinfo
3906
+ include Google::Apis::Core::Hashable
3907
+
3908
+ # The display number string. This should be used only for display purposes and
3909
+ # the actual sequence should be inferred from the below orderNumber.
3910
+ # Corresponds to the JSON property `bookDisplayNumber`
3911
+ # @return [String]
3912
+ attr_accessor :book_display_number
3913
+
3914
+ # Resource type.
3915
+ # Corresponds to the JSON property `kind`
3916
+ # @return [String]
3917
+ attr_accessor :kind
3918
+
3919
+ # Short book title in the context of the series.
3920
+ # Corresponds to the JSON property `shortSeriesBookTitle`
3921
+ # @return [String]
3922
+ attr_accessor :short_series_book_title
3923
+
3924
+ #
3925
+ # Corresponds to the JSON property `volumeSeries`
3926
+ # @return [Array<Google::Apis::BooksV1::Volumeseriesinfo::VolumeSeries>]
3927
+ attr_accessor :volume_series
3928
+
3929
+ def initialize(**args)
3930
+ update!(**args)
3931
+ end
3932
+
3933
+ # Update properties of this object
3934
+ def update!(**args)
3935
+ @book_display_number = args[:book_display_number] if args.key?(:book_display_number)
3936
+ @kind = args[:kind] if args.key?(:kind)
3937
+ @short_series_book_title = args[:short_series_book_title] if args.key?(:short_series_book_title)
3938
+ @volume_series = args[:volume_series] if args.key?(:volume_series)
3939
+ end
3940
+
3941
+ #
3942
+ class VolumeSeries
3943
+ include Google::Apis::Core::Hashable
3944
+
3945
+ # List of issues. Applicable only for Collection Edition and Omnibus.
3946
+ # Corresponds to the JSON property `issue`
3947
+ # @return [Array<Google::Apis::BooksV1::Volumeseriesinfo::VolumeSeries::Issue>]
3948
+ attr_accessor :issue
3949
+
3950
+ # The book order number in the series.
3951
+ # Corresponds to the JSON property `orderNumber`
3952
+ # @return [Fixnum]
3953
+ attr_accessor :order_number
3954
+
3955
+ # The book type in the context of series. Examples - Single Issue, Collection
3956
+ # Edition, etc.
3957
+ # Corresponds to the JSON property `seriesBookType`
3958
+ # @return [String]
3959
+ attr_accessor :series_book_type
3960
+
3961
+ # The series id.
3962
+ # Corresponds to the JSON property `seriesId`
3963
+ # @return [String]
3964
+ attr_accessor :series_id
3965
+
3966
+ def initialize(**args)
3967
+ update!(**args)
3968
+ end
3969
+
3970
+ # Update properties of this object
3971
+ def update!(**args)
3972
+ @issue = args[:issue] if args.key?(:issue)
3973
+ @order_number = args[:order_number] if args.key?(:order_number)
3974
+ @series_book_type = args[:series_book_type] if args.key?(:series_book_type)
3975
+ @series_id = args[:series_id] if args.key?(:series_id)
3976
+ end
3977
+
3978
+ #
3979
+ class Issue
3980
+ include Google::Apis::Core::Hashable
3981
+
3982
+ #
3983
+ # Corresponds to the JSON property `issueDisplayNumber`
3984
+ # @return [String]
3985
+ attr_accessor :issue_display_number
3986
+
3987
+ #
3988
+ # Corresponds to the JSON property `issueOrderNumber`
3989
+ # @return [Fixnum]
3990
+ attr_accessor :issue_order_number
3991
+
3992
+ def initialize(**args)
3993
+ update!(**args)
3994
+ end
3995
+
3996
+ # Update properties of this object
3997
+ def update!(**args)
3998
+ @issue_display_number = args[:issue_display_number] if args.key?(:issue_display_number)
3999
+ @issue_order_number = args[:issue_order_number] if args.key?(:issue_order_number)
4000
+ end
4001
+ end
4002
+ end
4003
+ end
4004
+ end
4005
+ end
4006
+ end