lemboy-google-api-client 0.9.26

Sign up to get free protection for your applications and to get access to all the features.
Files changed (555) hide show
  1. checksums.yaml +7 -0
  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 +27 -0
  7. data/.yardopts +12 -0
  8. data/CHANGELOG.md +309 -0
  9. data/CONTRIBUTING.md +31 -0
  10. data/Gemfile +53 -0
  11. data/LICENSE +202 -0
  12. data/MIGRATING.md +171 -0
  13. data/README.md +327 -0
  14. data/Rakefile +2 -0
  15. data/api_names.yaml +36215 -0
  16. data/bin/generate-api +109 -0
  17. data/generated/google/apis/adexchangebuyer2_v2beta1.rb +35 -0
  18. data/generated/google/apis/adexchangebuyer2_v2beta1/classes.rb +298 -0
  19. data/generated/google/apis/adexchangebuyer2_v2beta1/representations.rb +122 -0
  20. data/generated/google/apis/adexchangebuyer2_v2beta1/service.rb +458 -0
  21. data/generated/google/apis/adexchangebuyer_v1_3.rb +35 -0
  22. data/generated/google/apis/adexchangebuyer_v1_3/classes.rb +1335 -0
  23. data/generated/google/apis/adexchangebuyer_v1_3/representations.rb +446 -0
  24. data/generated/google/apis/adexchangebuyer_v1_3/service.rb +872 -0
  25. data/generated/google/apis/adexchangebuyer_v1_4.rb +35 -0
  26. data/generated/google/apis/adexchangebuyer_v1_4/classes.rb +3550 -0
  27. data/generated/google/apis/adexchangebuyer_v1_4/representations.rb +1421 -0
  28. data/generated/google/apis/adexchangebuyer_v1_4/service.rb +1538 -0
  29. data/generated/google/apis/adexchangeseller_v2_0.rb +37 -0
  30. data/generated/google/apis/adexchangeseller_v2_0/classes.rb +792 -0
  31. data/generated/google/apis/adexchangeseller_v2_0/representations.rb +347 -0
  32. data/generated/google/apis/adexchangeseller_v2_0/service.rb +667 -0
  33. data/generated/google/apis/admin_datatransfer_v1.rb +37 -0
  34. data/generated/google/apis/admin_datatransfer_v1/classes.rb +267 -0
  35. data/generated/google/apis/admin_datatransfer_v1/representations.rb +130 -0
  36. data/generated/google/apis/admin_datatransfer_v1/service.rb +262 -0
  37. data/generated/google/apis/admin_directory_v1.rb +113 -0
  38. data/generated/google/apis/admin_directory_v1/classes.rb +3241 -0
  39. data/generated/google/apis/admin_directory_v1/representations.rb +1172 -0
  40. data/generated/google/apis/admin_directory_v1/service.rb +3857 -0
  41. data/generated/google/apis/admin_reports_v1.rb +38 -0
  42. data/generated/google/apis/admin_reports_v1/classes.rb +582 -0
  43. data/generated/google/apis/admin_reports_v1/representations.rb +257 -0
  44. data/generated/google/apis/admin_reports_v1/service.rb +336 -0
  45. data/generated/google/apis/adsense_v1_4.rb +37 -0
  46. data/generated/google/apis/adsense_v1_4/classes.rb +1280 -0
  47. data/generated/google/apis/adsense_v1_4/representations.rb +555 -0
  48. data/generated/google/apis/adsense_v1_4/service.rb +1713 -0
  49. data/generated/google/apis/adsensehost_v4_1.rb +35 -0
  50. data/generated/google/apis/adsensehost_v4_1/classes.rb +836 -0
  51. data/generated/google/apis/adsensehost_v4_1/representations.rb +367 -0
  52. data/generated/google/apis/adsensehost_v4_1/service.rb +1164 -0
  53. data/generated/google/apis/analytics_v3.rb +49 -0
  54. data/generated/google/apis/analytics_v3/classes.rb +5536 -0
  55. data/generated/google/apis/analytics_v3/representations.rb +1992 -0
  56. data/generated/google/apis/analytics_v3/service.rb +3785 -0
  57. data/generated/google/apis/analyticsreporting_v4.rb +37 -0
  58. data/generated/google/apis/analyticsreporting_v4/classes.rb +1420 -0
  59. data/generated/google/apis/analyticsreporting_v4/representations.rb +598 -0
  60. data/generated/google/apis/analyticsreporting_v4/service.rb +88 -0
  61. data/generated/google/apis/androidenterprise_v1.rb +34 -0
  62. data/generated/google/apis/androidenterprise_v1/classes.rb +2250 -0
  63. data/generated/google/apis/androidenterprise_v1/representations.rb +970 -0
  64. data/generated/google/apis/androidenterprise_v1/service.rb +3267 -0
  65. data/generated/google/apis/androidpublisher_v2.rb +34 -0
  66. data/generated/google/apis/androidpublisher_v2/classes.rb +1941 -0
  67. data/generated/google/apis/androidpublisher_v2/representations.rb +975 -0
  68. data/generated/google/apis/androidpublisher_v2/service.rb +2572 -0
  69. data/generated/google/apis/appengine_v1beta4.rb +35 -0
  70. data/generated/google/apis/appengine_v1beta4/classes.rb +1585 -0
  71. data/generated/google/apis/appengine_v1beta4/representations.rb +542 -0
  72. data/generated/google/apis/appengine_v1beta4/service.rb +477 -0
  73. data/generated/google/apis/appengine_v1beta5.rb +40 -0
  74. data/generated/google/apis/appengine_v1beta5/classes.rb +1984 -0
  75. data/generated/google/apis/appengine_v1beta5/representations.rb +765 -0
  76. data/generated/google/apis/appengine_v1beta5/service.rb +864 -0
  77. data/generated/google/apis/appsactivity_v1.rb +46 -0
  78. data/generated/google/apis/appsactivity_v1/classes.rb +415 -0
  79. data/generated/google/apis/appsactivity_v1/representations.rb +209 -0
  80. data/generated/google/apis/appsactivity_v1/service.rb +128 -0
  81. data/generated/google/apis/appstate_v1.rb +34 -0
  82. data/generated/google/apis/appstate_v1/classes.rb +154 -0
  83. data/generated/google/apis/appstate_v1/representations.rb +87 -0
  84. data/generated/google/apis/appstate_v1/service.rb +260 -0
  85. data/generated/google/apis/autoscaler_v1beta2.rb +38 -0
  86. data/generated/google/apis/autoscaler_v1beta2/classes.rb +710 -0
  87. data/generated/google/apis/autoscaler_v1beta2/representations.rb +296 -0
  88. data/generated/google/apis/autoscaler_v1beta2/service.rb +478 -0
  89. data/generated/google/apis/bigquery_v2.rb +52 -0
  90. data/generated/google/apis/bigquery_v2/classes.rb +3081 -0
  91. data/generated/google/apis/bigquery_v2/representations.rb +1094 -0
  92. data/generated/google/apis/bigquery_v2/service.rb +988 -0
  93. data/generated/google/apis/blogger_v3.rb +37 -0
  94. data/generated/google/apis/blogger_v3/classes.rb +1354 -0
  95. data/generated/google/apis/blogger_v3/representations.rb +632 -0
  96. data/generated/google/apis/blogger_v3/service.rb +1587 -0
  97. data/generated/google/apis/books_v1.rb +34 -0
  98. data/generated/google/apis/books_v1/classes.rb +4160 -0
  99. data/generated/google/apis/books_v1/representations.rb +1799 -0
  100. data/generated/google/apis/books_v1/service.rb +2300 -0
  101. data/generated/google/apis/calendar_v3.rb +37 -0
  102. data/generated/google/apis/calendar_v3/classes.rb +1742 -0
  103. data/generated/google/apis/calendar_v3/representations.rb +631 -0
  104. data/generated/google/apis/calendar_v3/service.rb +1968 -0
  105. data/generated/google/apis/civicinfo_v2.rb +32 -0
  106. data/generated/google/apis/civicinfo_v2/classes.rb +1499 -0
  107. data/generated/google/apis/civicinfo_v2/representations.rb +572 -0
  108. data/generated/google/apis/civicinfo_v2/service.rb +300 -0
  109. data/generated/google/apis/classroom_v1.rb +70 -0
  110. data/generated/google/apis/classroom_v1/classes.rb +1572 -0
  111. data/generated/google/apis/classroom_v1/representations.rb +729 -0
  112. data/generated/google/apis/classroom_v1/service.rb +1945 -0
  113. data/generated/google/apis/classroom_v1beta1.rb +49 -0
  114. data/generated/google/apis/classroom_v1beta1/classes.rb +447 -0
  115. data/generated/google/apis/classroom_v1beta1/representations.rb +190 -0
  116. data/generated/google/apis/classroom_v1beta1/service.rb +791 -0
  117. data/generated/google/apis/cloudbilling_v1.rb +35 -0
  118. data/generated/google/apis/cloudbilling_v1/classes.rb +169 -0
  119. data/generated/google/apis/cloudbilling_v1/representations.rb +87 -0
  120. data/generated/google/apis/cloudbilling_v1/service.rb +258 -0
  121. data/generated/google/apis/cloudbuild_v1.rb +34 -0
  122. data/generated/google/apis/cloudbuild_v1/classes.rb +919 -0
  123. data/generated/google/apis/cloudbuild_v1/representations.rb +364 -0
  124. data/generated/google/apis/cloudbuild_v1/service.rb +492 -0
  125. data/generated/google/apis/clouddebugger_v2.rb +38 -0
  126. data/generated/google/apis/clouddebugger_v2/classes.rb +1081 -0
  127. data/generated/google/apis/clouddebugger_v2/representations.rb +465 -0
  128. data/generated/google/apis/clouddebugger_v2/service.rb +396 -0
  129. data/generated/google/apis/cloudkms_v1beta1.rb +34 -0
  130. data/generated/google/apis/cloudkms_v1beta1/classes.rb +999 -0
  131. data/generated/google/apis/cloudkms_v1beta1/representations.rb +448 -0
  132. data/generated/google/apis/cloudkms_v1beta1/service.rb +932 -0
  133. data/generated/google/apis/cloudlatencytest_v2.rb +34 -0
  134. data/generated/google/apis/cloudlatencytest_v2/classes.rb +195 -0
  135. data/generated/google/apis/cloudlatencytest_v2/representations.rb +127 -0
  136. data/generated/google/apis/cloudlatencytest_v2/service.rb +135 -0
  137. data/generated/google/apis/cloudmonitoring_v2beta2.rb +37 -0
  138. data/generated/google/apis/cloudmonitoring_v2beta2/classes.rb +679 -0
  139. data/generated/google/apis/cloudmonitoring_v2beta2/representations.rb +353 -0
  140. data/generated/google/apis/cloudmonitoring_v2beta2/service.rb +452 -0
  141. data/generated/google/apis/cloudresourcemanager_v1.rb +38 -0
  142. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +886 -0
  143. data/generated/google/apis/cloudresourcemanager_v1/representations.rb +359 -0
  144. data/generated/google/apis/cloudresourcemanager_v1/service.rb +686 -0
  145. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +38 -0
  146. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +682 -0
  147. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +312 -0
  148. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +710 -0
  149. data/generated/google/apis/cloudtrace_v1.rb +43 -0
  150. data/generated/google/apis/cloudtrace_v1/classes.rb +188 -0
  151. data/generated/google/apis/cloudtrace_v1/representations.rb +102 -0
  152. data/generated/google/apis/cloudtrace_v1/service.rb +192 -0
  153. data/generated/google/apis/clouduseraccounts_beta.rb +44 -0
  154. data/generated/google/apis/clouduseraccounts_beta/classes.rb +845 -0
  155. data/generated/google/apis/clouduseraccounts_beta/representations.rb +352 -0
  156. data/generated/google/apis/clouduseraccounts_beta/service.rb +907 -0
  157. data/generated/google/apis/compute_beta.rb +49 -0
  158. data/generated/google/apis/compute_beta/classes.rb +12261 -0
  159. data/generated/google/apis/compute_beta/representations.rb +4615 -0
  160. data/generated/google/apis/compute_beta/service.rb +15330 -0
  161. data/generated/google/apis/compute_v1.rb +49 -0
  162. data/generated/google/apis/compute_v1/classes.rb +11179 -0
  163. data/generated/google/apis/compute_v1/representations.rb +4203 -0
  164. data/generated/google/apis/compute_v1/service.rb +12937 -0
  165. data/generated/google/apis/container_v1.rb +35 -0
  166. data/generated/google/apis/container_v1/classes.rb +1040 -0
  167. data/generated/google/apis/container_v1/representations.rb +415 -0
  168. data/generated/google/apis/container_v1/service.rb +659 -0
  169. data/generated/google/apis/container_v1beta1.rb +35 -0
  170. data/generated/google/apis/container_v1beta1/classes.rb +466 -0
  171. data/generated/google/apis/container_v1beta1/representations.rb +177 -0
  172. data/generated/google/apis/container_v1beta1/service.rb +394 -0
  173. data/generated/google/apis/content_v2.rb +35 -0
  174. data/generated/google/apis/content_v2/classes.rb +6887 -0
  175. data/generated/google/apis/content_v2/representations.rb +2963 -0
  176. data/generated/google/apis/content_v2/service.rb +2653 -0
  177. data/generated/google/apis/coordinate_v1.rb +37 -0
  178. data/generated/google/apis/coordinate_v1/classes.rb +669 -0
  179. data/generated/google/apis/coordinate_v1/representations.rb +321 -0
  180. data/generated/google/apis/coordinate_v1/service.rb +678 -0
  181. data/generated/google/apis/customsearch_v1.rb +31 -0
  182. data/generated/google/apis/customsearch_v1/classes.rb +771 -0
  183. data/generated/google/apis/customsearch_v1/representations.rb +302 -0
  184. data/generated/google/apis/customsearch_v1/service.rb +207 -0
  185. data/generated/google/apis/dataflow_v1b3.rb +37 -0
  186. data/generated/google/apis/dataflow_v1b3/classes.rb +4225 -0
  187. data/generated/google/apis/dataflow_v1b3/representations.rb +1809 -0
  188. data/generated/google/apis/dataflow_v1b3/service.rb +874 -0
  189. data/generated/google/apis/dataproc_v1.rb +34 -0
  190. data/generated/google/apis/dataproc_v1/classes.rb +1716 -0
  191. data/generated/google/apis/dataproc_v1/representations.rb +678 -0
  192. data/generated/google/apis/dataproc_v1/service.rb +670 -0
  193. data/generated/google/apis/datastore_v1.rb +38 -0
  194. data/generated/google/apis/datastore_v1/classes.rb +1289 -0
  195. data/generated/google/apis/datastore_v1/representations.rb +572 -0
  196. data/generated/google/apis/datastore_v1/service.rb +259 -0
  197. data/generated/google/apis/datastore_v1beta2.rb +40 -0
  198. data/generated/google/apis/datastore_v1beta2/classes.rb +1186 -0
  199. data/generated/google/apis/datastore_v1beta2/representations.rb +594 -0
  200. data/generated/google/apis/datastore_v1beta2/service.rb +294 -0
  201. data/generated/google/apis/datastore_v1beta3.rb +38 -0
  202. data/generated/google/apis/datastore_v1beta3/classes.rb +1284 -0
  203. data/generated/google/apis/datastore_v1beta3/representations.rb +572 -0
  204. data/generated/google/apis/datastore_v1beta3/service.rb +259 -0
  205. data/generated/google/apis/deploymentmanager_v2.rb +43 -0
  206. data/generated/google/apis/deploymentmanager_v2/classes.rb +1582 -0
  207. data/generated/google/apis/deploymentmanager_v2/representations.rb +686 -0
  208. data/generated/google/apis/deploymentmanager_v2/service.rb +1026 -0
  209. data/generated/google/apis/deploymentmanager_v2beta2.rb +44 -0
  210. data/generated/google/apis/deploymentmanager_v2beta2/classes.rb +843 -0
  211. data/generated/google/apis/deploymentmanager_v2beta2/representations.rb +306 -0
  212. data/generated/google/apis/deploymentmanager_v2beta2/service.rb +689 -0
  213. data/generated/google/apis/dfareporting_v2_1.rb +37 -0
  214. data/generated/google/apis/dfareporting_v2_1/classes.rb +10770 -0
  215. data/generated/google/apis/dfareporting_v2_1/representations.rb +3438 -0
  216. data/generated/google/apis/dfareporting_v2_1/service.rb +8585 -0
  217. data/generated/google/apis/dfareporting_v2_3.rb +37 -0
  218. data/generated/google/apis/dfareporting_v2_3/classes.rb +10839 -0
  219. data/generated/google/apis/dfareporting_v2_3/representations.rb +3829 -0
  220. data/generated/google/apis/dfareporting_v2_3/service.rb +8581 -0
  221. data/generated/google/apis/dfareporting_v2_5.rb +40 -0
  222. data/generated/google/apis/dfareporting_v2_5/classes.rb +11225 -0
  223. data/generated/google/apis/dfareporting_v2_5/representations.rb +3982 -0
  224. data/generated/google/apis/dfareporting_v2_5/service.rb +8755 -0
  225. data/generated/google/apis/dfareporting_v2_6.rb +40 -0
  226. data/generated/google/apis/dfareporting_v2_6/classes.rb +11586 -0
  227. data/generated/google/apis/dfareporting_v2_6/representations.rb +4119 -0
  228. data/generated/google/apis/dfareporting_v2_6/service.rb +9025 -0
  229. data/generated/google/apis/dfareporting_v2_7.rb +40 -0
  230. data/generated/google/apis/dfareporting_v2_7/classes.rb +11876 -0
  231. data/generated/google/apis/dfareporting_v2_7/representations.rb +4243 -0
  232. data/generated/google/apis/dfareporting_v2_7/service.rb +9095 -0
  233. data/generated/google/apis/discovery_v1.rb +32 -0
  234. data/generated/google/apis/discovery_v1/classes.rb +961 -0
  235. data/generated/google/apis/discovery_v1/representations.rb +397 -0
  236. data/generated/google/apis/discovery_v1/service.rb +142 -0
  237. data/generated/google/apis/dns_v1.rb +43 -0
  238. data/generated/google/apis/dns_v1/classes.rb +406 -0
  239. data/generated/google/apis/dns_v1/representations.rb +167 -0
  240. data/generated/google/apis/dns_v1/service.rb +453 -0
  241. data/generated/google/apis/dns_v2beta1.rb +43 -0
  242. data/generated/google/apis/dns_v2beta1/classes.rb +915 -0
  243. data/generated/google/apis/dns_v2beta1/representations.rb +368 -0
  244. data/generated/google/apis/dns_v2beta1/service.rb +768 -0
  245. data/generated/google/apis/doubleclickbidmanager_v1.rb +31 -0
  246. data/generated/google/apis/doubleclickbidmanager_v1/classes.rb +795 -0
  247. data/generated/google/apis/doubleclickbidmanager_v1/representations.rb +368 -0
  248. data/generated/google/apis/doubleclickbidmanager_v1/service.rb +376 -0
  249. data/generated/google/apis/doubleclicksearch_v2.rb +35 -0
  250. data/generated/google/apis/doubleclicksearch_v2/classes.rb +960 -0
  251. data/generated/google/apis/doubleclicksearch_v2/representations.rb +350 -0
  252. data/generated/google/apis/doubleclicksearch_v2/service.rb +480 -0
  253. data/generated/google/apis/drive_v2.rb +59 -0
  254. data/generated/google/apis/drive_v2/classes.rb +2633 -0
  255. data/generated/google/apis/drive_v2/representations.rb +885 -0
  256. data/generated/google/apis/drive_v2/service.rb +2754 -0
  257. data/generated/google/apis/drive_v3.rb +56 -0
  258. data/generated/google/apis/drive_v3/classes.rb +1611 -0
  259. data/generated/google/apis/drive_v3/representations.rb +555 -0
  260. data/generated/google/apis/drive_v3/service.rb +1553 -0
  261. data/generated/google/apis/fitness_v1.rb +85 -0
  262. data/generated/google/apis/fitness_v1/classes.rb +943 -0
  263. data/generated/google/apis/fitness_v1/representations.rb +380 -0
  264. data/generated/google/apis/fitness_v1/service.rb +674 -0
  265. data/generated/google/apis/fusiontables_v2.rb +37 -0
  266. data/generated/google/apis/fusiontables_v2/classes.rb +1049 -0
  267. data/generated/google/apis/fusiontables_v2/representations.rb +457 -0
  268. data/generated/google/apis/fusiontables_v2/service.rb +1463 -0
  269. data/generated/google/apis/games_configuration_v1configuration.rb +34 -0
  270. data/generated/google/apis/games_configuration_v1configuration/classes.rb +506 -0
  271. data/generated/google/apis/games_configuration_v1configuration/representations.rb +228 -0
  272. data/generated/google/apis/games_configuration_v1configuration/service.rb +565 -0
  273. data/generated/google/apis/games_management_v1management.rb +37 -0
  274. data/generated/google/apis/games_management_v1management/classes.rb +567 -0
  275. data/generated/google/apis/games_management_v1management/representations.rb +278 -0
  276. data/generated/google/apis/games_management_v1management/service.rb +994 -0
  277. data/generated/google/apis/games_v1.rb +40 -0
  278. data/generated/google/apis/games_v1/classes.rb +4667 -0
  279. data/generated/google/apis/games_v1/representations.rb +1800 -0
  280. data/generated/google/apis/games_v1/service.rb +2449 -0
  281. data/generated/google/apis/gan_v1beta1.rb +31 -0
  282. data/generated/google/apis/gan_v1beta1/classes.rb +1428 -0
  283. data/generated/google/apis/gan_v1beta1/representations.rb +462 -0
  284. data/generated/google/apis/gan_v1beta1/service.rb +682 -0
  285. data/generated/google/apis/genomics_v1.rb +46 -0
  286. data/generated/google/apis/genomics_v1/classes.rb +3477 -0
  287. data/generated/google/apis/genomics_v1/representations.rb +1284 -0
  288. data/generated/google/apis/genomics_v1/service.rb +2207 -0
  289. data/generated/google/apis/genomics_v1beta2.rb +46 -0
  290. data/generated/google/apis/genomics_v1beta2/classes.rb +3288 -0
  291. data/generated/google/apis/genomics_v1beta2/representations.rb +1194 -0
  292. data/generated/google/apis/genomics_v1beta2/service.rb +2392 -0
  293. data/generated/google/apis/gmail_v1.rb +61 -0
  294. data/generated/google/apis/gmail_v1/classes.rb +1382 -0
  295. data/generated/google/apis/gmail_v1/representations.rb +624 -0
  296. data/generated/google/apis/gmail_v1/service.rb +2447 -0
  297. data/generated/google/apis/groupsmigration_v1.rb +34 -0
  298. data/generated/google/apis/groupsmigration_v1/classes.rb +51 -0
  299. data/generated/google/apis/groupsmigration_v1/representations.rb +40 -0
  300. data/generated/google/apis/groupsmigration_v1/service.rb +110 -0
  301. data/generated/google/apis/groupssettings_v1.rb +34 -0
  302. data/generated/google/apis/groupssettings_v1/classes.rb +240 -0
  303. data/generated/google/apis/groupssettings_v1/representations.rb +69 -0
  304. data/generated/google/apis/groupssettings_v1/service.rb +179 -0
  305. data/generated/google/apis/iam_v1.rb +36 -0
  306. data/generated/google/apis/iam_v1/classes.rb +640 -0
  307. data/generated/google/apis/iam_v1/representations.rb +316 -0
  308. data/generated/google/apis/iam_v1/service.rb +554 -0
  309. data/generated/google/apis/identitytoolkit_v3.rb +37 -0
  310. data/generated/google/apis/identitytoolkit_v3/classes.rb +2182 -0
  311. data/generated/google/apis/identitytoolkit_v3/representations.rb +742 -0
  312. data/generated/google/apis/identitytoolkit_v3/service.rb +657 -0
  313. data/generated/google/apis/kgsearch_v1.rb +31 -0
  314. data/generated/google/apis/kgsearch_v1/classes.rb +59 -0
  315. data/generated/google/apis/kgsearch_v1/representations.rb +41 -0
  316. data/generated/google/apis/kgsearch_v1/service.rb +113 -0
  317. data/generated/google/apis/language_v1beta1.rb +36 -0
  318. data/generated/google/apis/language_v1beta1/classes.rb +757 -0
  319. data/generated/google/apis/language_v1beta1/representations.rb +339 -0
  320. data/generated/google/apis/language_v1beta1/service.rb +184 -0
  321. data/generated/google/apis/licensing_v1.rb +34 -0
  322. data/generated/google/apis/licensing_v1/classes.rb +132 -0
  323. data/generated/google/apis/licensing_v1/representations.rb +74 -0
  324. data/generated/google/apis/licensing_v1/service.rb +369 -0
  325. data/generated/google/apis/logging_v1beta3.rb +47 -0
  326. data/generated/google/apis/logging_v1beta3/classes.rb +1079 -0
  327. data/generated/google/apis/logging_v1beta3/representations.rb +366 -0
  328. data/generated/google/apis/logging_v1beta3/service.rb +1001 -0
  329. data/generated/google/apis/logging_v2beta1.rb +46 -0
  330. data/generated/google/apis/logging_v2beta1/classes.rb +1254 -0
  331. data/generated/google/apis/logging_v2beta1/representations.rb +421 -0
  332. data/generated/google/apis/logging_v2beta1/service.rb +788 -0
  333. data/generated/google/apis/manager_v1beta2.rb +53 -0
  334. data/generated/google/apis/manager_v1beta2/classes.rb +1287 -0
  335. data/generated/google/apis/manager_v1beta2/representations.rb +606 -0
  336. data/generated/google/apis/manager_v1beta2/service.rb +372 -0
  337. data/generated/google/apis/manufacturers_v1.rb +34 -0
  338. data/generated/google/apis/manufacturers_v1/classes.rb +258 -0
  339. data/generated/google/apis/manufacturers_v1/representations.rb +103 -0
  340. data/generated/google/apis/manufacturers_v1/service.rb +138 -0
  341. data/generated/google/apis/mirror_v1.rb +37 -0
  342. data/generated/google/apis/mirror_v1/classes.rb +1072 -0
  343. data/generated/google/apis/mirror_v1/representations.rb +390 -0
  344. data/generated/google/apis/mirror_v1/service.rb +977 -0
  345. data/generated/google/apis/monitoring_v3.rb +45 -0
  346. data/generated/google/apis/monitoring_v3/classes.rb +1335 -0
  347. data/generated/google/apis/monitoring_v3/representations.rb +516 -0
  348. data/generated/google/apis/monitoring_v3/service.rb +706 -0
  349. data/generated/google/apis/mybusiness_v3.rb +32 -0
  350. data/generated/google/apis/mybusiness_v3/classes.rb +1864 -0
  351. data/generated/google/apis/mybusiness_v3/representations.rb +741 -0
  352. data/generated/google/apis/mybusiness_v3/service.rb +960 -0
  353. data/generated/google/apis/oauth2_v2.rb +43 -0
  354. data/generated/google/apis/oauth2_v2/classes.rb +245 -0
  355. data/generated/google/apis/oauth2_v2/representations.rb +102 -0
  356. data/generated/google/apis/oauth2_v2/service.rb +199 -0
  357. data/generated/google/apis/pagespeedonline_v2.rb +32 -0
  358. data/generated/google/apis/pagespeedonline_v2/classes.rb +614 -0
  359. data/generated/google/apis/pagespeedonline_v2/representations.rb +272 -0
  360. data/generated/google/apis/pagespeedonline_v2/service.rb +119 -0
  361. data/generated/google/apis/partners_v2.rb +32 -0
  362. data/generated/google/apis/partners_v2/classes.rb +942 -0
  363. data/generated/google/apis/partners_v2/representations.rb +454 -0
  364. data/generated/google/apis/partners_v2/service.rb +400 -0
  365. data/generated/google/apis/people_v1.rb +59 -0
  366. data/generated/google/apis/people_v1/classes.rb +1521 -0
  367. data/generated/google/apis/people_v1/representations.rb +663 -0
  368. data/generated/google/apis/people_v1/service.rb +189 -0
  369. data/generated/google/apis/plus_domains_v1.rb +61 -0
  370. data/generated/google/apis/plus_domains_v1/classes.rb +2609 -0
  371. data/generated/google/apis/plus_domains_v1/representations.rb +1111 -0
  372. data/generated/google/apis/plus_domains_v1/service.rb +904 -0
  373. data/generated/google/apis/plus_v1.rb +43 -0
  374. data/generated/google/apis/plus_v1/classes.rb +2094 -0
  375. data/generated/google/apis/plus_v1/representations.rb +907 -0
  376. data/generated/google/apis/plus_v1/service.rb +470 -0
  377. data/generated/google/apis/prediction_v1_6.rb +47 -0
  378. data/generated/google/apis/prediction_v1_6/classes.rb +751 -0
  379. data/generated/google/apis/prediction_v1_6/representations.rb +369 -0
  380. data/generated/google/apis/prediction_v1_6/service.rb +380 -0
  381. data/generated/google/apis/proximitybeacon_v1beta1.rb +34 -0
  382. data/generated/google/apis/proximitybeacon_v1beta1/classes.rb +786 -0
  383. data/generated/google/apis/proximitybeacon_v1beta1/representations.rb +347 -0
  384. data/generated/google/apis/proximitybeacon_v1beta1/service.rb +806 -0
  385. data/generated/google/apis/pubsub_v1.rb +37 -0
  386. data/generated/google/apis/pubsub_v1/classes.rb +676 -0
  387. data/generated/google/apis/pubsub_v1/representations.rb +323 -0
  388. data/generated/google/apis/pubsub_v1/service.rb +900 -0
  389. data/generated/google/apis/pubsub_v1beta2.rb +37 -0
  390. data/generated/google/apis/pubsub_v1beta2/classes.rb +620 -0
  391. data/generated/google/apis/pubsub_v1beta2/representations.rb +282 -0
  392. data/generated/google/apis/pubsub_v1beta2/service.rb +774 -0
  393. data/generated/google/apis/qpx_express_v1.rb +31 -0
  394. data/generated/google/apis/qpx_express_v1/classes.rb +1274 -0
  395. data/generated/google/apis/qpx_express_v1/representations.rb +473 -0
  396. data/generated/google/apis/qpx_express_v1/service.rb +100 -0
  397. data/generated/google/apis/replicapool_v1beta2.rb +44 -0
  398. data/generated/google/apis/replicapool_v1beta2/classes.rb +631 -0
  399. data/generated/google/apis/replicapool_v1beta2/representations.rb +264 -0
  400. data/generated/google/apis/replicapool_v1beta2/service.rb +608 -0
  401. data/generated/google/apis/replicapoolupdater_v1beta1.rb +45 -0
  402. data/generated/google/apis/replicapoolupdater_v1beta1/classes.rb +733 -0
  403. data/generated/google/apis/replicapoolupdater_v1beta1/representations.rb +294 -0
  404. data/generated/google/apis/replicapoolupdater_v1beta1/service.rb +509 -0
  405. data/generated/google/apis/reseller_v1.rb +37 -0
  406. data/generated/google/apis/reseller_v1/classes.rb +540 -0
  407. data/generated/google/apis/reseller_v1/representations.rb +225 -0
  408. data/generated/google/apis/reseller_v1/service.rb +623 -0
  409. data/generated/google/apis/resourceviews_v1beta2.rb +50 -0
  410. data/generated/google/apis/resourceviews_v1beta2/classes.rb +660 -0
  411. data/generated/google/apis/resourceviews_v1beta2/representations.rb +301 -0
  412. data/generated/google/apis/resourceviews_v1beta2/service.rb +563 -0
  413. data/generated/google/apis/script_v1.rb +64 -0
  414. data/generated/google/apis/script_v1/classes.rb +265 -0
  415. data/generated/google/apis/script_v1/representations.rb +119 -0
  416. data/generated/google/apis/script_v1/service.rb +98 -0
  417. data/generated/google/apis/sheets_v4.rb +43 -0
  418. data/generated/google/apis/sheets_v4/classes.rb +6368 -0
  419. data/generated/google/apis/sheets_v4/representations.rb +2289 -0
  420. data/generated/google/apis/sheets_v4/service.rb +569 -0
  421. data/generated/google/apis/site_verification_v1.rb +37 -0
  422. data/generated/google/apis/site_verification_v1/classes.rb +185 -0
  423. data/generated/google/apis/site_verification_v1/representations.rb +113 -0
  424. data/generated/google/apis/site_verification_v1/service.rb +315 -0
  425. data/generated/google/apis/slides_v1.rb +49 -0
  426. data/generated/google/apis/slides_v1/classes.rb +4044 -0
  427. data/generated/google/apis/slides_v1/representations.rb +1765 -0
  428. data/generated/google/apis/slides_v1/service.rb +202 -0
  429. data/generated/google/apis/speech_v1beta1.rb +34 -0
  430. data/generated/google/apis/speech_v1beta1/classes.rb +513 -0
  431. data/generated/google/apis/speech_v1beta1/representations.rb +218 -0
  432. data/generated/google/apis/speech_v1beta1/service.rb +273 -0
  433. data/generated/google/apis/sqladmin_v1beta4.rb +38 -0
  434. data/generated/google/apis/sqladmin_v1beta4/classes.rb +2142 -0
  435. data/generated/google/apis/sqladmin_v1beta4/representations.rb +893 -0
  436. data/generated/google/apis/sqladmin_v1beta4/service.rb +1709 -0
  437. data/generated/google/apis/storage_v1.rb +46 -0
  438. data/generated/google/apis/storage_v1/classes.rb +1255 -0
  439. data/generated/google/apis/storage_v1/representations.rb +502 -0
  440. data/generated/google/apis/storage_v1/service.rb +1906 -0
  441. data/generated/google/apis/storagetransfer_v1.rb +35 -0
  442. data/generated/google/apis/storagetransfer_v1/classes.rb +1046 -0
  443. data/generated/google/apis/storagetransfer_v1/representations.rb +418 -0
  444. data/generated/google/apis/storagetransfer_v1/service.rb +473 -0
  445. data/generated/google/apis/tagmanager_v1.rb +52 -0
  446. data/generated/google/apis/tagmanager_v1/classes.rb +1494 -0
  447. data/generated/google/apis/tagmanager_v1/representations.rb +611 -0
  448. data/generated/google/apis/tagmanager_v1/service.rb +2119 -0
  449. data/generated/google/apis/taskqueue_v1beta2.rb +37 -0
  450. data/generated/google/apis/taskqueue_v1beta2/classes.rb +254 -0
  451. data/generated/google/apis/taskqueue_v1beta2/representations.rb +126 -0
  452. data/generated/google/apis/taskqueue_v1beta2/service.rb +408 -0
  453. data/generated/google/apis/tasks_v1.rb +37 -0
  454. data/generated/google/apis/tasks_v1/classes.rb +296 -0
  455. data/generated/google/apis/tasks_v1/representations.rb +125 -0
  456. data/generated/google/apis/tasks_v1/service.rb +643 -0
  457. data/generated/google/apis/translate_v2.rb +31 -0
  458. data/generated/google/apis/translate_v2/classes.rb +168 -0
  459. data/generated/google/apis/translate_v2/representations.rb +121 -0
  460. data/generated/google/apis/translate_v2/service.rb +182 -0
  461. data/generated/google/apis/urlshortener_v1.rb +34 -0
  462. data/generated/google/apis/urlshortener_v1/classes.rb +246 -0
  463. data/generated/google/apis/urlshortener_v1/representations.rb +121 -0
  464. data/generated/google/apis/urlshortener_v1/service.rb +176 -0
  465. data/generated/google/apis/vision_v1.rb +36 -0
  466. data/generated/google/apis/vision_v1/classes.rb +1267 -0
  467. data/generated/google/apis/vision_v1/representations.rb +418 -0
  468. data/generated/google/apis/vision_v1/service.rb +90 -0
  469. data/generated/google/apis/webmasters_v3.rb +37 -0
  470. data/generated/google/apis/webmasters_v3/classes.rb +570 -0
  471. data/generated/google/apis/webmasters_v3/representations.rb +283 -0
  472. data/generated/google/apis/webmasters_v3/service.rb +573 -0
  473. data/generated/google/apis/youtube_analytics_v1.rb +46 -0
  474. data/generated/google/apis/youtube_analytics_v1/classes.rb +337 -0
  475. data/generated/google/apis/youtube_analytics_v1/representations.rb +174 -0
  476. data/generated/google/apis/youtube_analytics_v1/service.rb +486 -0
  477. data/generated/google/apis/youtube_partner_v1.rb +37 -0
  478. data/generated/google/apis/youtube_partner_v1/classes.rb +3854 -0
  479. data/generated/google/apis/youtube_partner_v1/representations.rb +1537 -0
  480. data/generated/google/apis/youtube_partner_v1/service.rb +3269 -0
  481. data/generated/google/apis/youtube_v3.rb +50 -0
  482. data/generated/google/apis/youtube_v3/classes.rb +8375 -0
  483. data/generated/google/apis/youtube_v3/representations.rb +3273 -0
  484. data/generated/google/apis/youtube_v3/service.rb +4440 -0
  485. data/generated/google/apis/youtubereporting_v1.rb +38 -0
  486. data/generated/google/apis/youtubereporting_v1/classes.rb +302 -0
  487. data/generated/google/apis/youtubereporting_v1/representations.rb +149 -0
  488. data/generated/google/apis/youtubereporting_v1/service.rb +385 -0
  489. data/google-api-client.gemspec +33 -0
  490. data/lib/cacerts.pem +2183 -0
  491. data/lib/google/api_client/auth/installed_app.rb +128 -0
  492. data/lib/google/api_client/auth/key_utils.rb +94 -0
  493. data/lib/google/api_client/auth/storage.rb +104 -0
  494. data/lib/google/api_client/auth/storages/file_store.rb +57 -0
  495. data/lib/google/api_client/auth/storages/redis_store.rb +59 -0
  496. data/lib/google/api_client/client_secrets.rb +177 -0
  497. data/lib/google/apis.rb +58 -0
  498. data/lib/google/apis/core/api_command.rb +146 -0
  499. data/lib/google/apis/core/base_service.rb +401 -0
  500. data/lib/google/apis/core/batch.rb +239 -0
  501. data/lib/google/apis/core/download.rb +108 -0
  502. data/lib/google/apis/core/hashable.rb +44 -0
  503. data/lib/google/apis/core/http_client_adapter.rb +82 -0
  504. data/lib/google/apis/core/http_command.rb +332 -0
  505. data/lib/google/apis/core/json_representation.rb +145 -0
  506. data/lib/google/apis/core/logging.rb +30 -0
  507. data/lib/google/apis/core/multipart.rb +187 -0
  508. data/lib/google/apis/core/upload.rb +295 -0
  509. data/lib/google/apis/errors.rb +80 -0
  510. data/lib/google/apis/generator.rb +70 -0
  511. data/lib/google/apis/generator/annotator.rb +301 -0
  512. data/lib/google/apis/generator/helpers.rb +74 -0
  513. data/lib/google/apis/generator/model.rb +143 -0
  514. data/lib/google/apis/generator/template.rb +124 -0
  515. data/lib/google/apis/generator/templates/_class.tmpl +40 -0
  516. data/lib/google/apis/generator/templates/_method.tmpl +92 -0
  517. data/lib/google/apis/generator/templates/_representation.tmpl +51 -0
  518. data/lib/google/apis/generator/templates/_representation_stub.tmpl +17 -0
  519. data/lib/google/apis/generator/templates/_representation_type.tmpl +10 -0
  520. data/lib/google/apis/generator/templates/classes.rb.tmpl +29 -0
  521. data/lib/google/apis/generator/templates/module.rb.tmpl +40 -0
  522. data/lib/google/apis/generator/templates/representations.rb.tmpl +32 -0
  523. data/lib/google/apis/generator/templates/service.rb.tmpl +60 -0
  524. data/lib/google/apis/options.rb +85 -0
  525. data/lib/google/apis/version.rb +39 -0
  526. data/rakelib/metrics.rake +22 -0
  527. data/rakelib/rubocop.rake +10 -0
  528. data/rakelib/spec.rake +11 -0
  529. data/rakelib/yard.rake +11 -0
  530. data/samples/cli/.env +4 -0
  531. data/samples/cli/Gemfile +7 -0
  532. data/samples/cli/README.md +51 -0
  533. data/samples/cli/google-api-samples +32 -0
  534. data/samples/cli/lib/base_cli.rb +95 -0
  535. data/samples/cli/lib/samples/analytics.rb +62 -0
  536. data/samples/cli/lib/samples/androidpublisher.rb +47 -0
  537. data/samples/cli/lib/samples/bigquery.rb +101 -0
  538. data/samples/cli/lib/samples/calendar.rb +83 -0
  539. data/samples/cli/lib/samples/drive.rb +82 -0
  540. data/samples/cli/lib/samples/gmail.rb +124 -0
  541. data/samples/cli/lib/samples/pubsub.rb +114 -0
  542. data/samples/cli/lib/samples/sheets.rb +61 -0
  543. data/samples/cli/lib/samples/translate.rb +44 -0
  544. data/samples/cli/lib/samples/you_tube.rb +44 -0
  545. data/samples/web/.env +2 -0
  546. data/samples/web/Gemfile +7 -0
  547. data/samples/web/README.md +44 -0
  548. data/samples/web/app.rb +120 -0
  549. data/samples/web/views/calendar.erb +34 -0
  550. data/samples/web/views/drive.erb +33 -0
  551. data/samples/web/views/home.erb +34 -0
  552. data/samples/web/views/layout.erb +40 -0
  553. data/sync.rb +71 -0
  554. data/third_party/hurley_patches.rb +103 -0
  555. metadata +735 -0
@@ -0,0 +1,34 @@
1
+ # Copyright 2015 Google Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'google/apis/books_v1/service.rb'
16
+ require 'google/apis/books_v1/classes.rb'
17
+ require 'google/apis/books_v1/representations.rb'
18
+
19
+ module Google
20
+ module Apis
21
+ # Books API
22
+ #
23
+ # Searches for books and manages your Google Books library.
24
+ #
25
+ # @see https://developers.google.com/books/docs/v1/getting_started
26
+ module BooksV1
27
+ VERSION = 'V1'
28
+ REVISION = '20161206'
29
+
30
+ # Manage your books
31
+ AUTH_BOOKS = 'https://www.googleapis.com/auth/books'
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,4160 @@
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
+ # The list of crm experiment ids.
1999
+ # Corresponds to the JSON property `crmExperimentIds`
2000
+ # @return [Array<String>]
2001
+ attr_accessor :crm_experiment_ids
2002
+
2003
+ #
2004
+ # Corresponds to the JSON property `doc_id`
2005
+ # @return [String]
2006
+ attr_accessor :doc_id
2007
+
2008
+ #
2009
+ # Corresponds to the JSON property `doc_type`
2010
+ # @return [String]
2011
+ attr_accessor :doc_type
2012
+
2013
+ #
2014
+ # Corresponds to the JSON property `dont_show_notification`
2015
+ # @return [Boolean]
2016
+ attr_accessor :dont_show_notification
2017
+ alias_method :dont_show_notification?, :dont_show_notification
2018
+
2019
+ #
2020
+ # Corresponds to the JSON property `iconUrl`
2021
+ # @return [String]
2022
+ attr_accessor :icon_url
2023
+
2024
+ # Resource type.
2025
+ # Corresponds to the JSON property `kind`
2026
+ # @return [String]
2027
+ attr_accessor :kind
2028
+
2029
+ #
2030
+ # Corresponds to the JSON property `notificationGroup`
2031
+ # @return [String]
2032
+ attr_accessor :notification_group
2033
+
2034
+ #
2035
+ # Corresponds to the JSON property `notification_type`
2036
+ # @return [String]
2037
+ attr_accessor :notification_type
2038
+
2039
+ #
2040
+ # Corresponds to the JSON property `pcampaign_id`
2041
+ # @return [String]
2042
+ attr_accessor :pcampaign_id
2043
+
2044
+ #
2045
+ # Corresponds to the JSON property `reason`
2046
+ # @return [String]
2047
+ attr_accessor :reason
2048
+
2049
+ #
2050
+ # Corresponds to the JSON property `show_notification_settings_action`
2051
+ # @return [Boolean]
2052
+ attr_accessor :show_notification_settings_action
2053
+ alias_method :show_notification_settings_action?, :show_notification_settings_action
2054
+
2055
+ #
2056
+ # Corresponds to the JSON property `targetUrl`
2057
+ # @return [String]
2058
+ attr_accessor :target_url
2059
+
2060
+ #
2061
+ # Corresponds to the JSON property `title`
2062
+ # @return [String]
2063
+ attr_accessor :title
2064
+
2065
+ def initialize(**args)
2066
+ update!(**args)
2067
+ end
2068
+
2069
+ # Update properties of this object
2070
+ def update!(**args)
2071
+ @body = args[:body] if args.key?(:body)
2072
+ @crm_experiment_ids = args[:crm_experiment_ids] if args.key?(:crm_experiment_ids)
2073
+ @doc_id = args[:doc_id] if args.key?(:doc_id)
2074
+ @doc_type = args[:doc_type] if args.key?(:doc_type)
2075
+ @dont_show_notification = args[:dont_show_notification] if args.key?(:dont_show_notification)
2076
+ @icon_url = args[:icon_url] if args.key?(:icon_url)
2077
+ @kind = args[:kind] if args.key?(:kind)
2078
+ @notification_group = args[:notification_group] if args.key?(:notification_group)
2079
+ @notification_type = args[:notification_type] if args.key?(:notification_type)
2080
+ @pcampaign_id = args[:pcampaign_id] if args.key?(:pcampaign_id)
2081
+ @reason = args[:reason] if args.key?(:reason)
2082
+ @show_notification_settings_action = args[:show_notification_settings_action] if args.key?(:show_notification_settings_action)
2083
+ @target_url = args[:target_url] if args.key?(:target_url)
2084
+ @title = args[:title] if args.key?(:title)
2085
+ end
2086
+ end
2087
+
2088
+ #
2089
+ class Offers
2090
+ include Google::Apis::Core::Hashable
2091
+
2092
+ # A list of offers.
2093
+ # Corresponds to the JSON property `items`
2094
+ # @return [Array<Google::Apis::BooksV1::Offers::Item>]
2095
+ attr_accessor :items
2096
+
2097
+ # Resource type.
2098
+ # Corresponds to the JSON property `kind`
2099
+ # @return [String]
2100
+ attr_accessor :kind
2101
+
2102
+ def initialize(**args)
2103
+ update!(**args)
2104
+ end
2105
+
2106
+ # Update properties of this object
2107
+ def update!(**args)
2108
+ @items = args[:items] if args.key?(:items)
2109
+ @kind = args[:kind] if args.key?(:kind)
2110
+ end
2111
+
2112
+ #
2113
+ class Item
2114
+ include Google::Apis::Core::Hashable
2115
+
2116
+ #
2117
+ # Corresponds to the JSON property `artUrl`
2118
+ # @return [String]
2119
+ attr_accessor :art_url
2120
+
2121
+ #
2122
+ # Corresponds to the JSON property `gservicesKey`
2123
+ # @return [String]
2124
+ attr_accessor :gservices_key
2125
+
2126
+ #
2127
+ # Corresponds to the JSON property `id`
2128
+ # @return [String]
2129
+ attr_accessor :id
2130
+
2131
+ #
2132
+ # Corresponds to the JSON property `items`
2133
+ # @return [Array<Google::Apis::BooksV1::Offers::Item::Item>]
2134
+ attr_accessor :items
2135
+
2136
+ def initialize(**args)
2137
+ update!(**args)
2138
+ end
2139
+
2140
+ # Update properties of this object
2141
+ def update!(**args)
2142
+ @art_url = args[:art_url] if args.key?(:art_url)
2143
+ @gservices_key = args[:gservices_key] if args.key?(:gservices_key)
2144
+ @id = args[:id] if args.key?(:id)
2145
+ @items = args[:items] if args.key?(:items)
2146
+ end
2147
+
2148
+ #
2149
+ class Item
2150
+ include Google::Apis::Core::Hashable
2151
+
2152
+ #
2153
+ # Corresponds to the JSON property `author`
2154
+ # @return [String]
2155
+ attr_accessor :author
2156
+
2157
+ #
2158
+ # Corresponds to the JSON property `canonicalVolumeLink`
2159
+ # @return [String]
2160
+ attr_accessor :canonical_volume_link
2161
+
2162
+ #
2163
+ # Corresponds to the JSON property `coverUrl`
2164
+ # @return [String]
2165
+ attr_accessor :cover_url
2166
+
2167
+ #
2168
+ # Corresponds to the JSON property `description`
2169
+ # @return [String]
2170
+ attr_accessor :description
2171
+
2172
+ #
2173
+ # Corresponds to the JSON property `title`
2174
+ # @return [String]
2175
+ attr_accessor :title
2176
+
2177
+ #
2178
+ # Corresponds to the JSON property `volumeId`
2179
+ # @return [String]
2180
+ attr_accessor :volume_id
2181
+
2182
+ def initialize(**args)
2183
+ update!(**args)
2184
+ end
2185
+
2186
+ # Update properties of this object
2187
+ def update!(**args)
2188
+ @author = args[:author] if args.key?(:author)
2189
+ @canonical_volume_link = args[:canonical_volume_link] if args.key?(:canonical_volume_link)
2190
+ @cover_url = args[:cover_url] if args.key?(:cover_url)
2191
+ @description = args[:description] if args.key?(:description)
2192
+ @title = args[:title] if args.key?(:title)
2193
+ @volume_id = args[:volume_id] if args.key?(:volume_id)
2194
+ end
2195
+ end
2196
+ end
2197
+ end
2198
+
2199
+ #
2200
+ class ReadingPosition
2201
+ include Google::Apis::Core::Hashable
2202
+
2203
+ # Position in an EPUB as a CFI.
2204
+ # Corresponds to the JSON property `epubCfiPosition`
2205
+ # @return [String]
2206
+ attr_accessor :epub_cfi_position
2207
+
2208
+ # Position in a volume for image-based content.
2209
+ # Corresponds to the JSON property `gbImagePosition`
2210
+ # @return [String]
2211
+ attr_accessor :gb_image_position
2212
+
2213
+ # Position in a volume for text-based content.
2214
+ # Corresponds to the JSON property `gbTextPosition`
2215
+ # @return [String]
2216
+ attr_accessor :gb_text_position
2217
+
2218
+ # Resource type for a reading position.
2219
+ # Corresponds to the JSON property `kind`
2220
+ # @return [String]
2221
+ attr_accessor :kind
2222
+
2223
+ # Position in a PDF file.
2224
+ # Corresponds to the JSON property `pdfPosition`
2225
+ # @return [String]
2226
+ attr_accessor :pdf_position
2227
+
2228
+ # Timestamp when this reading position was last updated (formatted UTC timestamp
2229
+ # with millisecond resolution).
2230
+ # Corresponds to the JSON property `updated`
2231
+ # @return [DateTime]
2232
+ attr_accessor :updated
2233
+
2234
+ # Volume id associated with this reading position.
2235
+ # Corresponds to the JSON property `volumeId`
2236
+ # @return [String]
2237
+ attr_accessor :volume_id
2238
+
2239
+ def initialize(**args)
2240
+ update!(**args)
2241
+ end
2242
+
2243
+ # Update properties of this object
2244
+ def update!(**args)
2245
+ @epub_cfi_position = args[:epub_cfi_position] if args.key?(:epub_cfi_position)
2246
+ @gb_image_position = args[:gb_image_position] if args.key?(:gb_image_position)
2247
+ @gb_text_position = args[:gb_text_position] if args.key?(:gb_text_position)
2248
+ @kind = args[:kind] if args.key?(:kind)
2249
+ @pdf_position = args[:pdf_position] if args.key?(:pdf_position)
2250
+ @updated = args[:updated] if args.key?(:updated)
2251
+ @volume_id = args[:volume_id] if args.key?(:volume_id)
2252
+ end
2253
+ end
2254
+
2255
+ #
2256
+ class RequestAccess
2257
+ include Google::Apis::Core::Hashable
2258
+
2259
+ # A concurrent access response.
2260
+ # Corresponds to the JSON property `concurrentAccess`
2261
+ # @return [Google::Apis::BooksV1::ConcurrentAccessRestriction]
2262
+ attr_accessor :concurrent_access
2263
+
2264
+ # A download access response.
2265
+ # Corresponds to the JSON property `downloadAccess`
2266
+ # @return [Google::Apis::BooksV1::DownloadAccessRestriction]
2267
+ attr_accessor :download_access
2268
+
2269
+ # Resource type.
2270
+ # Corresponds to the JSON property `kind`
2271
+ # @return [String]
2272
+ attr_accessor :kind
2273
+
2274
+ def initialize(**args)
2275
+ update!(**args)
2276
+ end
2277
+
2278
+ # Update properties of this object
2279
+ def update!(**args)
2280
+ @concurrent_access = args[:concurrent_access] if args.key?(:concurrent_access)
2281
+ @download_access = args[:download_access] if args.key?(:download_access)
2282
+ @kind = args[:kind] if args.key?(:kind)
2283
+ end
2284
+ end
2285
+
2286
+ #
2287
+ class Review
2288
+ include Google::Apis::Core::Hashable
2289
+
2290
+ # Author of this review.
2291
+ # Corresponds to the JSON property `author`
2292
+ # @return [Google::Apis::BooksV1::Review::Author]
2293
+ attr_accessor :author
2294
+
2295
+ # Review text.
2296
+ # Corresponds to the JSON property `content`
2297
+ # @return [String]
2298
+ attr_accessor :content
2299
+
2300
+ # Date of this review.
2301
+ # Corresponds to the JSON property `date`
2302
+ # @return [String]
2303
+ attr_accessor :date
2304
+
2305
+ # URL for the full review text, for reviews gathered from the web.
2306
+ # Corresponds to the JSON property `fullTextUrl`
2307
+ # @return [String]
2308
+ attr_accessor :full_text_url
2309
+
2310
+ # Resource type for a review.
2311
+ # Corresponds to the JSON property `kind`
2312
+ # @return [String]
2313
+ attr_accessor :kind
2314
+
2315
+ # Star rating for this review. Possible values are ONE, TWO, THREE, FOUR, FIVE
2316
+ # or NOT_RATED.
2317
+ # Corresponds to the JSON property `rating`
2318
+ # @return [String]
2319
+ attr_accessor :rating
2320
+
2321
+ # Information regarding the source of this review, when the review is not from a
2322
+ # Google Books user.
2323
+ # Corresponds to the JSON property `source`
2324
+ # @return [Google::Apis::BooksV1::Review::Source]
2325
+ attr_accessor :source
2326
+
2327
+ # Title for this review.
2328
+ # Corresponds to the JSON property `title`
2329
+ # @return [String]
2330
+ attr_accessor :title
2331
+
2332
+ # Source type for this review. Possible values are EDITORIAL, WEB_USER or
2333
+ # GOOGLE_USER.
2334
+ # Corresponds to the JSON property `type`
2335
+ # @return [String]
2336
+ attr_accessor :type
2337
+
2338
+ # Volume that this review is for.
2339
+ # Corresponds to the JSON property `volumeId`
2340
+ # @return [String]
2341
+ attr_accessor :volume_id
2342
+
2343
+ def initialize(**args)
2344
+ update!(**args)
2345
+ end
2346
+
2347
+ # Update properties of this object
2348
+ def update!(**args)
2349
+ @author = args[:author] if args.key?(:author)
2350
+ @content = args[:content] if args.key?(:content)
2351
+ @date = args[:date] if args.key?(:date)
2352
+ @full_text_url = args[:full_text_url] if args.key?(:full_text_url)
2353
+ @kind = args[:kind] if args.key?(:kind)
2354
+ @rating = args[:rating] if args.key?(:rating)
2355
+ @source = args[:source] if args.key?(:source)
2356
+ @title = args[:title] if args.key?(:title)
2357
+ @type = args[:type] if args.key?(:type)
2358
+ @volume_id = args[:volume_id] if args.key?(:volume_id)
2359
+ end
2360
+
2361
+ # Author of this review.
2362
+ class Author
2363
+ include Google::Apis::Core::Hashable
2364
+
2365
+ # Name of this person.
2366
+ # Corresponds to the JSON property `displayName`
2367
+ # @return [String]
2368
+ attr_accessor :display_name
2369
+
2370
+ def initialize(**args)
2371
+ update!(**args)
2372
+ end
2373
+
2374
+ # Update properties of this object
2375
+ def update!(**args)
2376
+ @display_name = args[:display_name] if args.key?(:display_name)
2377
+ end
2378
+ end
2379
+
2380
+ # Information regarding the source of this review, when the review is not from a
2381
+ # Google Books user.
2382
+ class Source
2383
+ include Google::Apis::Core::Hashable
2384
+
2385
+ # Name of the source.
2386
+ # Corresponds to the JSON property `description`
2387
+ # @return [String]
2388
+ attr_accessor :description
2389
+
2390
+ # Extra text about the source of the review.
2391
+ # Corresponds to the JSON property `extraDescription`
2392
+ # @return [String]
2393
+ attr_accessor :extra_description
2394
+
2395
+ # URL of the source of the review.
2396
+ # Corresponds to the JSON property `url`
2397
+ # @return [String]
2398
+ attr_accessor :url
2399
+
2400
+ def initialize(**args)
2401
+ update!(**args)
2402
+ end
2403
+
2404
+ # Update properties of this object
2405
+ def update!(**args)
2406
+ @description = args[:description] if args.key?(:description)
2407
+ @extra_description = args[:extra_description] if args.key?(:extra_description)
2408
+ @url = args[:url] if args.key?(:url)
2409
+ end
2410
+ end
2411
+ end
2412
+
2413
+ #
2414
+ class Series
2415
+ include Google::Apis::Core::Hashable
2416
+
2417
+ # Resource type.
2418
+ # Corresponds to the JSON property `kind`
2419
+ # @return [String]
2420
+ attr_accessor :kind
2421
+
2422
+ #
2423
+ # Corresponds to the JSON property `series`
2424
+ # @return [Array<Google::Apis::BooksV1::Series::Series>]
2425
+ attr_accessor :series
2426
+
2427
+ def initialize(**args)
2428
+ update!(**args)
2429
+ end
2430
+
2431
+ # Update properties of this object
2432
+ def update!(**args)
2433
+ @kind = args[:kind] if args.key?(:kind)
2434
+ @series = args[:series] if args.key?(:series)
2435
+ end
2436
+
2437
+ #
2438
+ class Series
2439
+ include Google::Apis::Core::Hashable
2440
+
2441
+ #
2442
+ # Corresponds to the JSON property `bannerImageUrl`
2443
+ # @return [String]
2444
+ attr_accessor :banner_image_url
2445
+
2446
+ #
2447
+ # Corresponds to the JSON property `imageUrl`
2448
+ # @return [String]
2449
+ attr_accessor :image_url
2450
+
2451
+ #
2452
+ # Corresponds to the JSON property `seriesId`
2453
+ # @return [String]
2454
+ attr_accessor :series_id
2455
+
2456
+ #
2457
+ # Corresponds to the JSON property `seriesType`
2458
+ # @return [String]
2459
+ attr_accessor :series_type
2460
+
2461
+ #
2462
+ # Corresponds to the JSON property `title`
2463
+ # @return [String]
2464
+ attr_accessor :title
2465
+
2466
+ def initialize(**args)
2467
+ update!(**args)
2468
+ end
2469
+
2470
+ # Update properties of this object
2471
+ def update!(**args)
2472
+ @banner_image_url = args[:banner_image_url] if args.key?(:banner_image_url)
2473
+ @image_url = args[:image_url] if args.key?(:image_url)
2474
+ @series_id = args[:series_id] if args.key?(:series_id)
2475
+ @series_type = args[:series_type] if args.key?(:series_type)
2476
+ @title = args[:title] if args.key?(:title)
2477
+ end
2478
+ end
2479
+ end
2480
+
2481
+ #
2482
+ class SeriesMembership
2483
+ include Google::Apis::Core::Hashable
2484
+
2485
+ # Resorce type.
2486
+ # Corresponds to the JSON property `kind`
2487
+ # @return [String]
2488
+ attr_accessor :kind
2489
+
2490
+ #
2491
+ # Corresponds to the JSON property `member`
2492
+ # @return [Array<Google::Apis::BooksV1::Volume>]
2493
+ attr_accessor :member
2494
+
2495
+ #
2496
+ # Corresponds to the JSON property `nextPageToken`
2497
+ # @return [String]
2498
+ attr_accessor :next_page_token
2499
+
2500
+ def initialize(**args)
2501
+ update!(**args)
2502
+ end
2503
+
2504
+ # Update properties of this object
2505
+ def update!(**args)
2506
+ @kind = args[:kind] if args.key?(:kind)
2507
+ @member = args[:member] if args.key?(:member)
2508
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2509
+ end
2510
+ end
2511
+
2512
+ #
2513
+ class UserSettings
2514
+ include Google::Apis::Core::Hashable
2515
+
2516
+ # Resource type.
2517
+ # Corresponds to the JSON property `kind`
2518
+ # @return [String]
2519
+ attr_accessor :kind
2520
+
2521
+ # User settings in sub-objects, each for different purposes.
2522
+ # Corresponds to the JSON property `notesExport`
2523
+ # @return [Google::Apis::BooksV1::UserSettings::NotesExport]
2524
+ attr_accessor :notes_export
2525
+
2526
+ #
2527
+ # Corresponds to the JSON property `notification`
2528
+ # @return [Google::Apis::BooksV1::UserSettings::Notification]
2529
+ attr_accessor :notification
2530
+
2531
+ def initialize(**args)
2532
+ update!(**args)
2533
+ end
2534
+
2535
+ # Update properties of this object
2536
+ def update!(**args)
2537
+ @kind = args[:kind] if args.key?(:kind)
2538
+ @notes_export = args[:notes_export] if args.key?(:notes_export)
2539
+ @notification = args[:notification] if args.key?(:notification)
2540
+ end
2541
+
2542
+ # User settings in sub-objects, each for different purposes.
2543
+ class NotesExport
2544
+ include Google::Apis::Core::Hashable
2545
+
2546
+ #
2547
+ # Corresponds to the JSON property `folderName`
2548
+ # @return [String]
2549
+ attr_accessor :folder_name
2550
+
2551
+ #
2552
+ # Corresponds to the JSON property `isEnabled`
2553
+ # @return [Boolean]
2554
+ attr_accessor :is_enabled
2555
+ alias_method :is_enabled?, :is_enabled
2556
+
2557
+ def initialize(**args)
2558
+ update!(**args)
2559
+ end
2560
+
2561
+ # Update properties of this object
2562
+ def update!(**args)
2563
+ @folder_name = args[:folder_name] if args.key?(:folder_name)
2564
+ @is_enabled = args[:is_enabled] if args.key?(:is_enabled)
2565
+ end
2566
+ end
2567
+
2568
+ #
2569
+ class Notification
2570
+ include Google::Apis::Core::Hashable
2571
+
2572
+ #
2573
+ # Corresponds to the JSON property `moreFromAuthors`
2574
+ # @return [Google::Apis::BooksV1::UserSettings::Notification::MoreFromAuthors]
2575
+ attr_accessor :more_from_authors
2576
+
2577
+ #
2578
+ # Corresponds to the JSON property `moreFromSeries`
2579
+ # @return [Google::Apis::BooksV1::UserSettings::Notification::MoreFromSeries]
2580
+ attr_accessor :more_from_series
2581
+
2582
+ def initialize(**args)
2583
+ update!(**args)
2584
+ end
2585
+
2586
+ # Update properties of this object
2587
+ def update!(**args)
2588
+ @more_from_authors = args[:more_from_authors] if args.key?(:more_from_authors)
2589
+ @more_from_series = args[:more_from_series] if args.key?(:more_from_series)
2590
+ end
2591
+
2592
+ #
2593
+ class MoreFromAuthors
2594
+ include Google::Apis::Core::Hashable
2595
+
2596
+ #
2597
+ # Corresponds to the JSON property `opted_state`
2598
+ # @return [String]
2599
+ attr_accessor :opted_state
2600
+
2601
+ def initialize(**args)
2602
+ update!(**args)
2603
+ end
2604
+
2605
+ # Update properties of this object
2606
+ def update!(**args)
2607
+ @opted_state = args[:opted_state] if args.key?(:opted_state)
2608
+ end
2609
+ end
2610
+
2611
+ #
2612
+ class MoreFromSeries
2613
+ include Google::Apis::Core::Hashable
2614
+
2615
+ #
2616
+ # Corresponds to the JSON property `opted_state`
2617
+ # @return [String]
2618
+ attr_accessor :opted_state
2619
+
2620
+ def initialize(**args)
2621
+ update!(**args)
2622
+ end
2623
+
2624
+ # Update properties of this object
2625
+ def update!(**args)
2626
+ @opted_state = args[:opted_state] if args.key?(:opted_state)
2627
+ end
2628
+ end
2629
+ end
2630
+ end
2631
+
2632
+ #
2633
+ class Volume
2634
+ include Google::Apis::Core::Hashable
2635
+
2636
+ # Any information about a volume related to reading or obtaining that volume
2637
+ # text. This information can depend on country (books may be public domain in
2638
+ # one country but not in another, e.g.).
2639
+ # Corresponds to the JSON property `accessInfo`
2640
+ # @return [Google::Apis::BooksV1::Volume::AccessInfo]
2641
+ attr_accessor :access_info
2642
+
2643
+ # Opaque identifier for a specific version of a volume resource. (In LITE
2644
+ # projection)
2645
+ # Corresponds to the JSON property `etag`
2646
+ # @return [String]
2647
+ attr_accessor :etag
2648
+
2649
+ # Unique identifier for a volume. (In LITE projection.)
2650
+ # Corresponds to the JSON property `id`
2651
+ # @return [String]
2652
+ attr_accessor :id
2653
+
2654
+ # Resource type for a volume. (In LITE projection.)
2655
+ # Corresponds to the JSON property `kind`
2656
+ # @return [String]
2657
+ attr_accessor :kind
2658
+
2659
+ # What layers exist in this volume and high level information about them.
2660
+ # Corresponds to the JSON property `layerInfo`
2661
+ # @return [Google::Apis::BooksV1::Volume::LayerInfo]
2662
+ attr_accessor :layer_info
2663
+
2664
+ # Recommendation related information for this volume.
2665
+ # Corresponds to the JSON property `recommendedInfo`
2666
+ # @return [Google::Apis::BooksV1::Volume::RecommendedInfo]
2667
+ attr_accessor :recommended_info
2668
+
2669
+ # Any information about a volume related to the eBookstore and/or
2670
+ # purchaseability. This information can depend on the country where the request
2671
+ # originates from (i.e. books may not be for sale in certain countries).
2672
+ # Corresponds to the JSON property `saleInfo`
2673
+ # @return [Google::Apis::BooksV1::Volume::SaleInfo]
2674
+ attr_accessor :sale_info
2675
+
2676
+ # Search result information related to this volume.
2677
+ # Corresponds to the JSON property `searchInfo`
2678
+ # @return [Google::Apis::BooksV1::Volume::SearchInfo]
2679
+ attr_accessor :search_info
2680
+
2681
+ # URL to this resource. (In LITE projection.)
2682
+ # Corresponds to the JSON property `selfLink`
2683
+ # @return [String]
2684
+ attr_accessor :self_link
2685
+
2686
+ # User specific information related to this volume. (e.g. page this user last
2687
+ # read or whether they purchased this book)
2688
+ # Corresponds to the JSON property `userInfo`
2689
+ # @return [Google::Apis::BooksV1::Volume::UserInfo]
2690
+ attr_accessor :user_info
2691
+
2692
+ # General volume information.
2693
+ # Corresponds to the JSON property `volumeInfo`
2694
+ # @return [Google::Apis::BooksV1::Volume::VolumeInfo]
2695
+ attr_accessor :volume_info
2696
+
2697
+ def initialize(**args)
2698
+ update!(**args)
2699
+ end
2700
+
2701
+ # Update properties of this object
2702
+ def update!(**args)
2703
+ @access_info = args[:access_info] if args.key?(:access_info)
2704
+ @etag = args[:etag] if args.key?(:etag)
2705
+ @id = args[:id] if args.key?(:id)
2706
+ @kind = args[:kind] if args.key?(:kind)
2707
+ @layer_info = args[:layer_info] if args.key?(:layer_info)
2708
+ @recommended_info = args[:recommended_info] if args.key?(:recommended_info)
2709
+ @sale_info = args[:sale_info] if args.key?(:sale_info)
2710
+ @search_info = args[:search_info] if args.key?(:search_info)
2711
+ @self_link = args[:self_link] if args.key?(:self_link)
2712
+ @user_info = args[:user_info] if args.key?(:user_info)
2713
+ @volume_info = args[:volume_info] if args.key?(:volume_info)
2714
+ end
2715
+
2716
+ # Any information about a volume related to reading or obtaining that volume
2717
+ # text. This information can depend on country (books may be public domain in
2718
+ # one country but not in another, e.g.).
2719
+ class AccessInfo
2720
+ include Google::Apis::Core::Hashable
2721
+
2722
+ # Combines the access and viewability of this volume into a single status field
2723
+ # for this user. Values can be FULL_PURCHASED, FULL_PUBLIC_DOMAIN, SAMPLE or
2724
+ # NONE. (In LITE projection.)
2725
+ # Corresponds to the JSON property `accessViewStatus`
2726
+ # @return [String]
2727
+ attr_accessor :access_view_status
2728
+
2729
+ # The two-letter ISO_3166-1 country code for which this access information is
2730
+ # valid. (In LITE projection.)
2731
+ # Corresponds to the JSON property `country`
2732
+ # @return [String]
2733
+ attr_accessor :country
2734
+
2735
+ # Information about a volume's download license access restrictions.
2736
+ # Corresponds to the JSON property `downloadAccess`
2737
+ # @return [Google::Apis::BooksV1::DownloadAccessRestriction]
2738
+ attr_accessor :download_access
2739
+
2740
+ # URL to the Google Drive viewer if this volume is uploaded by the user by
2741
+ # selecting the file from Google Drive.
2742
+ # Corresponds to the JSON property `driveImportedContentLink`
2743
+ # @return [String]
2744
+ attr_accessor :drive_imported_content_link
2745
+
2746
+ # Whether this volume can be embedded in a viewport using the Embedded Viewer
2747
+ # API.
2748
+ # Corresponds to the JSON property `embeddable`
2749
+ # @return [Boolean]
2750
+ attr_accessor :embeddable
2751
+ alias_method :embeddable?, :embeddable
2752
+
2753
+ # Information about epub content. (In LITE projection.)
2754
+ # Corresponds to the JSON property `epub`
2755
+ # @return [Google::Apis::BooksV1::Volume::AccessInfo::Epub]
2756
+ attr_accessor :epub
2757
+
2758
+ # Whether this volume requires that the client explicitly request offline
2759
+ # download license rather than have it done automatically when loading the
2760
+ # content, if the client supports it.
2761
+ # Corresponds to the JSON property `explicitOfflineLicenseManagement`
2762
+ # @return [Boolean]
2763
+ attr_accessor :explicit_offline_license_management
2764
+ alias_method :explicit_offline_license_management?, :explicit_offline_license_management
2765
+
2766
+ # Information about pdf content. (In LITE projection.)
2767
+ # Corresponds to the JSON property `pdf`
2768
+ # @return [Google::Apis::BooksV1::Volume::AccessInfo::Pdf]
2769
+ attr_accessor :pdf
2770
+
2771
+ # Whether or not this book is public domain in the country listed above.
2772
+ # Corresponds to the JSON property `publicDomain`
2773
+ # @return [Boolean]
2774
+ attr_accessor :public_domain
2775
+ alias_method :public_domain?, :public_domain
2776
+
2777
+ # Whether quote sharing is allowed for this volume.
2778
+ # Corresponds to the JSON property `quoteSharingAllowed`
2779
+ # @return [Boolean]
2780
+ attr_accessor :quote_sharing_allowed
2781
+ alias_method :quote_sharing_allowed?, :quote_sharing_allowed
2782
+
2783
+ # Whether text-to-speech is permitted for this volume. Values can be ALLOWED,
2784
+ # ALLOWED_FOR_ACCESSIBILITY, or NOT_ALLOWED.
2785
+ # Corresponds to the JSON property `textToSpeechPermission`
2786
+ # @return [String]
2787
+ attr_accessor :text_to_speech_permission
2788
+
2789
+ # For ordered but not yet processed orders, we give a URL that can be used to go
2790
+ # to the appropriate Google Wallet page.
2791
+ # Corresponds to the JSON property `viewOrderUrl`
2792
+ # @return [String]
2793
+ attr_accessor :view_order_url
2794
+
2795
+ # The read access of a volume. Possible values are PARTIAL, ALL_PAGES, NO_PAGES
2796
+ # or UNKNOWN. This value depends on the country listed above. A value of PARTIAL
2797
+ # means that the publisher has allowed some portion of the volume to be viewed
2798
+ # publicly, without purchase. This can apply to eBooks as well as non-eBooks.
2799
+ # Public domain books will always have a value of ALL_PAGES.
2800
+ # Corresponds to the JSON property `viewability`
2801
+ # @return [String]
2802
+ attr_accessor :viewability
2803
+
2804
+ # URL to read this volume on the Google Books site. Link will not allow users to
2805
+ # read non-viewable volumes.
2806
+ # Corresponds to the JSON property `webReaderLink`
2807
+ # @return [String]
2808
+ attr_accessor :web_reader_link
2809
+
2810
+ def initialize(**args)
2811
+ update!(**args)
2812
+ end
2813
+
2814
+ # Update properties of this object
2815
+ def update!(**args)
2816
+ @access_view_status = args[:access_view_status] if args.key?(:access_view_status)
2817
+ @country = args[:country] if args.key?(:country)
2818
+ @download_access = args[:download_access] if args.key?(:download_access)
2819
+ @drive_imported_content_link = args[:drive_imported_content_link] if args.key?(:drive_imported_content_link)
2820
+ @embeddable = args[:embeddable] if args.key?(:embeddable)
2821
+ @epub = args[:epub] if args.key?(:epub)
2822
+ @explicit_offline_license_management = args[:explicit_offline_license_management] if args.key?(:explicit_offline_license_management)
2823
+ @pdf = args[:pdf] if args.key?(:pdf)
2824
+ @public_domain = args[:public_domain] if args.key?(:public_domain)
2825
+ @quote_sharing_allowed = args[:quote_sharing_allowed] if args.key?(:quote_sharing_allowed)
2826
+ @text_to_speech_permission = args[:text_to_speech_permission] if args.key?(:text_to_speech_permission)
2827
+ @view_order_url = args[:view_order_url] if args.key?(:view_order_url)
2828
+ @viewability = args[:viewability] if args.key?(:viewability)
2829
+ @web_reader_link = args[:web_reader_link] if args.key?(:web_reader_link)
2830
+ end
2831
+
2832
+ # Information about epub content. (In LITE projection.)
2833
+ class Epub
2834
+ include Google::Apis::Core::Hashable
2835
+
2836
+ # URL to retrieve ACS token for epub download. (In LITE projection.)
2837
+ # Corresponds to the JSON property `acsTokenLink`
2838
+ # @return [String]
2839
+ attr_accessor :acs_token_link
2840
+
2841
+ # URL to download epub. (In LITE projection.)
2842
+ # Corresponds to the JSON property `downloadLink`
2843
+ # @return [String]
2844
+ attr_accessor :download_link
2845
+
2846
+ # Is a flowing text epub available either as public domain or for purchase. (In
2847
+ # LITE projection.)
2848
+ # Corresponds to the JSON property `isAvailable`
2849
+ # @return [Boolean]
2850
+ attr_accessor :is_available
2851
+ alias_method :is_available?, :is_available
2852
+
2853
+ def initialize(**args)
2854
+ update!(**args)
2855
+ end
2856
+
2857
+ # Update properties of this object
2858
+ def update!(**args)
2859
+ @acs_token_link = args[:acs_token_link] if args.key?(:acs_token_link)
2860
+ @download_link = args[:download_link] if args.key?(:download_link)
2861
+ @is_available = args[:is_available] if args.key?(:is_available)
2862
+ end
2863
+ end
2864
+
2865
+ # Information about pdf content. (In LITE projection.)
2866
+ class Pdf
2867
+ include Google::Apis::Core::Hashable
2868
+
2869
+ # URL to retrieve ACS token for pdf download. (In LITE projection.)
2870
+ # Corresponds to the JSON property `acsTokenLink`
2871
+ # @return [String]
2872
+ attr_accessor :acs_token_link
2873
+
2874
+ # URL to download pdf. (In LITE projection.)
2875
+ # Corresponds to the JSON property `downloadLink`
2876
+ # @return [String]
2877
+ attr_accessor :download_link
2878
+
2879
+ # Is a scanned image pdf available either as public domain or for purchase. (In
2880
+ # LITE projection.)
2881
+ # Corresponds to the JSON property `isAvailable`
2882
+ # @return [Boolean]
2883
+ attr_accessor :is_available
2884
+ alias_method :is_available?, :is_available
2885
+
2886
+ def initialize(**args)
2887
+ update!(**args)
2888
+ end
2889
+
2890
+ # Update properties of this object
2891
+ def update!(**args)
2892
+ @acs_token_link = args[:acs_token_link] if args.key?(:acs_token_link)
2893
+ @download_link = args[:download_link] if args.key?(:download_link)
2894
+ @is_available = args[:is_available] if args.key?(:is_available)
2895
+ end
2896
+ end
2897
+ end
2898
+
2899
+ # What layers exist in this volume and high level information about them.
2900
+ class LayerInfo
2901
+ include Google::Apis::Core::Hashable
2902
+
2903
+ # A layer should appear here if and only if the layer exists for this book.
2904
+ # Corresponds to the JSON property `layers`
2905
+ # @return [Array<Google::Apis::BooksV1::Volume::LayerInfo::Layer>]
2906
+ attr_accessor :layers
2907
+
2908
+ def initialize(**args)
2909
+ update!(**args)
2910
+ end
2911
+
2912
+ # Update properties of this object
2913
+ def update!(**args)
2914
+ @layers = args[:layers] if args.key?(:layers)
2915
+ end
2916
+
2917
+ #
2918
+ class Layer
2919
+ include Google::Apis::Core::Hashable
2920
+
2921
+ # The layer id of this layer (e.g. "geo").
2922
+ # Corresponds to the JSON property `layerId`
2923
+ # @return [String]
2924
+ attr_accessor :layer_id
2925
+
2926
+ # The current version of this layer's volume annotations. Note that this version
2927
+ # applies only to the data in the books.layers.volumeAnnotations.* responses.
2928
+ # The actual annotation data is versioned separately.
2929
+ # Corresponds to the JSON property `volumeAnnotationsVersion`
2930
+ # @return [String]
2931
+ attr_accessor :volume_annotations_version
2932
+
2933
+ def initialize(**args)
2934
+ update!(**args)
2935
+ end
2936
+
2937
+ # Update properties of this object
2938
+ def update!(**args)
2939
+ @layer_id = args[:layer_id] if args.key?(:layer_id)
2940
+ @volume_annotations_version = args[:volume_annotations_version] if args.key?(:volume_annotations_version)
2941
+ end
2942
+ end
2943
+ end
2944
+
2945
+ # Recommendation related information for this volume.
2946
+ class RecommendedInfo
2947
+ include Google::Apis::Core::Hashable
2948
+
2949
+ # A text explaining why this volume is recommended.
2950
+ # Corresponds to the JSON property `explanation`
2951
+ # @return [String]
2952
+ attr_accessor :explanation
2953
+
2954
+ def initialize(**args)
2955
+ update!(**args)
2956
+ end
2957
+
2958
+ # Update properties of this object
2959
+ def update!(**args)
2960
+ @explanation = args[:explanation] if args.key?(:explanation)
2961
+ end
2962
+ end
2963
+
2964
+ # Any information about a volume related to the eBookstore and/or
2965
+ # purchaseability. This information can depend on the country where the request
2966
+ # originates from (i.e. books may not be for sale in certain countries).
2967
+ class SaleInfo
2968
+ include Google::Apis::Core::Hashable
2969
+
2970
+ # URL to purchase this volume on the Google Books site. (In LITE projection)
2971
+ # Corresponds to the JSON property `buyLink`
2972
+ # @return [String]
2973
+ attr_accessor :buy_link
2974
+
2975
+ # The two-letter ISO_3166-1 country code for which this sale information is
2976
+ # valid. (In LITE projection.)
2977
+ # Corresponds to the JSON property `country`
2978
+ # @return [String]
2979
+ attr_accessor :country
2980
+
2981
+ # Whether or not this volume is an eBook (can be added to the My eBooks shelf).
2982
+ # Corresponds to the JSON property `isEbook`
2983
+ # @return [Boolean]
2984
+ attr_accessor :is_ebook
2985
+ alias_method :is_ebook?, :is_ebook
2986
+
2987
+ # Suggested retail price. (In LITE projection.)
2988
+ # Corresponds to the JSON property `listPrice`
2989
+ # @return [Google::Apis::BooksV1::Volume::SaleInfo::ListPrice]
2990
+ attr_accessor :list_price
2991
+
2992
+ # Offers available for this volume (sales and rentals).
2993
+ # Corresponds to the JSON property `offers`
2994
+ # @return [Array<Google::Apis::BooksV1::Volume::SaleInfo::Offer>]
2995
+ attr_accessor :offers
2996
+
2997
+ # The date on which this book is available for sale.
2998
+ # Corresponds to the JSON property `onSaleDate`
2999
+ # @return [DateTime]
3000
+ attr_accessor :on_sale_date
3001
+
3002
+ # The actual selling price of the book. This is the same as the suggested retail
3003
+ # or list price unless there are offers or discounts on this volume. (In LITE
3004
+ # projection.)
3005
+ # Corresponds to the JSON property `retailPrice`
3006
+ # @return [Google::Apis::BooksV1::Volume::SaleInfo::RetailPrice]
3007
+ attr_accessor :retail_price
3008
+
3009
+ # Whether or not this book is available for sale or offered for free in the
3010
+ # Google eBookstore for the country listed above. Possible values are FOR_SALE,
3011
+ # FOR_RENTAL_ONLY, FOR_SALE_AND_RENTAL, FREE, NOT_FOR_SALE, or FOR_PREORDER.
3012
+ # Corresponds to the JSON property `saleability`
3013
+ # @return [String]
3014
+ attr_accessor :saleability
3015
+
3016
+ def initialize(**args)
3017
+ update!(**args)
3018
+ end
3019
+
3020
+ # Update properties of this object
3021
+ def update!(**args)
3022
+ @buy_link = args[:buy_link] if args.key?(:buy_link)
3023
+ @country = args[:country] if args.key?(:country)
3024
+ @is_ebook = args[:is_ebook] if args.key?(:is_ebook)
3025
+ @list_price = args[:list_price] if args.key?(:list_price)
3026
+ @offers = args[:offers] if args.key?(:offers)
3027
+ @on_sale_date = args[:on_sale_date] if args.key?(:on_sale_date)
3028
+ @retail_price = args[:retail_price] if args.key?(:retail_price)
3029
+ @saleability = args[:saleability] if args.key?(:saleability)
3030
+ end
3031
+
3032
+ # Suggested retail price. (In LITE projection.)
3033
+ class ListPrice
3034
+ include Google::Apis::Core::Hashable
3035
+
3036
+ # Amount in the currency listed below. (In LITE projection.)
3037
+ # Corresponds to the JSON property `amount`
3038
+ # @return [Float]
3039
+ attr_accessor :amount
3040
+
3041
+ # An ISO 4217, three-letter currency code. (In LITE projection.)
3042
+ # Corresponds to the JSON property `currencyCode`
3043
+ # @return [String]
3044
+ attr_accessor :currency_code
3045
+
3046
+ def initialize(**args)
3047
+ update!(**args)
3048
+ end
3049
+
3050
+ # Update properties of this object
3051
+ def update!(**args)
3052
+ @amount = args[:amount] if args.key?(:amount)
3053
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
3054
+ end
3055
+ end
3056
+
3057
+ #
3058
+ class Offer
3059
+ include Google::Apis::Core::Hashable
3060
+
3061
+ # The finsky offer type (e.g., PURCHASE=0 RENTAL=3)
3062
+ # Corresponds to the JSON property `finskyOfferType`
3063
+ # @return [Fixnum]
3064
+ attr_accessor :finsky_offer_type
3065
+
3066
+ # Indicates whether the offer is giftable.
3067
+ # Corresponds to the JSON property `giftable`
3068
+ # @return [Boolean]
3069
+ attr_accessor :giftable
3070
+ alias_method :giftable?, :giftable
3071
+
3072
+ # Offer list (=undiscounted) price in Micros.
3073
+ # Corresponds to the JSON property `listPrice`
3074
+ # @return [Google::Apis::BooksV1::Volume::SaleInfo::Offer::ListPrice]
3075
+ attr_accessor :list_price
3076
+
3077
+ # The rental duration (for rental offers only).
3078
+ # Corresponds to the JSON property `rentalDuration`
3079
+ # @return [Google::Apis::BooksV1::Volume::SaleInfo::Offer::RentalDuration]
3080
+ attr_accessor :rental_duration
3081
+
3082
+ # Offer retail (=discounted) price in Micros
3083
+ # Corresponds to the JSON property `retailPrice`
3084
+ # @return [Google::Apis::BooksV1::Volume::SaleInfo::Offer::RetailPrice]
3085
+ attr_accessor :retail_price
3086
+
3087
+ def initialize(**args)
3088
+ update!(**args)
3089
+ end
3090
+
3091
+ # Update properties of this object
3092
+ def update!(**args)
3093
+ @finsky_offer_type = args[:finsky_offer_type] if args.key?(:finsky_offer_type)
3094
+ @giftable = args[:giftable] if args.key?(:giftable)
3095
+ @list_price = args[:list_price] if args.key?(:list_price)
3096
+ @rental_duration = args[:rental_duration] if args.key?(:rental_duration)
3097
+ @retail_price = args[:retail_price] if args.key?(:retail_price)
3098
+ end
3099
+
3100
+ # Offer list (=undiscounted) price in Micros.
3101
+ class ListPrice
3102
+ include Google::Apis::Core::Hashable
3103
+
3104
+ #
3105
+ # Corresponds to the JSON property `amountInMicros`
3106
+ # @return [Float]
3107
+ attr_accessor :amount_in_micros
3108
+
3109
+ #
3110
+ # Corresponds to the JSON property `currencyCode`
3111
+ # @return [String]
3112
+ attr_accessor :currency_code
3113
+
3114
+ def initialize(**args)
3115
+ update!(**args)
3116
+ end
3117
+
3118
+ # Update properties of this object
3119
+ def update!(**args)
3120
+ @amount_in_micros = args[:amount_in_micros] if args.key?(:amount_in_micros)
3121
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
3122
+ end
3123
+ end
3124
+
3125
+ # The rental duration (for rental offers only).
3126
+ class RentalDuration
3127
+ include Google::Apis::Core::Hashable
3128
+
3129
+ #
3130
+ # Corresponds to the JSON property `count`
3131
+ # @return [Float]
3132
+ attr_accessor :count
3133
+
3134
+ #
3135
+ # Corresponds to the JSON property `unit`
3136
+ # @return [String]
3137
+ attr_accessor :unit
3138
+
3139
+ def initialize(**args)
3140
+ update!(**args)
3141
+ end
3142
+
3143
+ # Update properties of this object
3144
+ def update!(**args)
3145
+ @count = args[:count] if args.key?(:count)
3146
+ @unit = args[:unit] if args.key?(:unit)
3147
+ end
3148
+ end
3149
+
3150
+ # Offer retail (=discounted) price in Micros
3151
+ class RetailPrice
3152
+ include Google::Apis::Core::Hashable
3153
+
3154
+ #
3155
+ # Corresponds to the JSON property `amountInMicros`
3156
+ # @return [Float]
3157
+ attr_accessor :amount_in_micros
3158
+
3159
+ #
3160
+ # Corresponds to the JSON property `currencyCode`
3161
+ # @return [String]
3162
+ attr_accessor :currency_code
3163
+
3164
+ def initialize(**args)
3165
+ update!(**args)
3166
+ end
3167
+
3168
+ # Update properties of this object
3169
+ def update!(**args)
3170
+ @amount_in_micros = args[:amount_in_micros] if args.key?(:amount_in_micros)
3171
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
3172
+ end
3173
+ end
3174
+ end
3175
+
3176
+ # The actual selling price of the book. This is the same as the suggested retail
3177
+ # or list price unless there are offers or discounts on this volume. (In LITE
3178
+ # projection.)
3179
+ class RetailPrice
3180
+ include Google::Apis::Core::Hashable
3181
+
3182
+ # Amount in the currency listed below. (In LITE projection.)
3183
+ # Corresponds to the JSON property `amount`
3184
+ # @return [Float]
3185
+ attr_accessor :amount
3186
+
3187
+ # An ISO 4217, three-letter currency code. (In LITE projection.)
3188
+ # Corresponds to the JSON property `currencyCode`
3189
+ # @return [String]
3190
+ attr_accessor :currency_code
3191
+
3192
+ def initialize(**args)
3193
+ update!(**args)
3194
+ end
3195
+
3196
+ # Update properties of this object
3197
+ def update!(**args)
3198
+ @amount = args[:amount] if args.key?(:amount)
3199
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
3200
+ end
3201
+ end
3202
+ end
3203
+
3204
+ # Search result information related to this volume.
3205
+ class SearchInfo
3206
+ include Google::Apis::Core::Hashable
3207
+
3208
+ # A text snippet containing the search query.
3209
+ # Corresponds to the JSON property `textSnippet`
3210
+ # @return [String]
3211
+ attr_accessor :text_snippet
3212
+
3213
+ def initialize(**args)
3214
+ update!(**args)
3215
+ end
3216
+
3217
+ # Update properties of this object
3218
+ def update!(**args)
3219
+ @text_snippet = args[:text_snippet] if args.key?(:text_snippet)
3220
+ end
3221
+ end
3222
+
3223
+ # User specific information related to this volume. (e.g. page this user last
3224
+ # read or whether they purchased this book)
3225
+ class UserInfo
3226
+ include Google::Apis::Core::Hashable
3227
+
3228
+ # Timestamp when this volume was acquired by the user. (RFC 3339 UTC date-time
3229
+ # format) Acquiring includes purchase, user upload, receiving family sharing,
3230
+ # etc.
3231
+ # Corresponds to the JSON property `acquiredTime`
3232
+ # @return [DateTime]
3233
+ attr_accessor :acquired_time
3234
+
3235
+ # How this volume was acquired.
3236
+ # Corresponds to the JSON property `acquisitionType`
3237
+ # @return [Fixnum]
3238
+ attr_accessor :acquisition_type
3239
+
3240
+ # Copy/Paste accounting information.
3241
+ # Corresponds to the JSON property `copy`
3242
+ # @return [Google::Apis::BooksV1::Volume::UserInfo::Copy]
3243
+ attr_accessor :copy
3244
+
3245
+ # Whether this volume is purchased, sample, pd download etc.
3246
+ # Corresponds to the JSON property `entitlementType`
3247
+ # @return [Fixnum]
3248
+ attr_accessor :entitlement_type
3249
+
3250
+ # Information on the ability to share with the family.
3251
+ # Corresponds to the JSON property `familySharing`
3252
+ # @return [Google::Apis::BooksV1::Volume::UserInfo::FamilySharing]
3253
+ attr_accessor :family_sharing
3254
+
3255
+ # Whether or not the user shared this volume with the family.
3256
+ # Corresponds to the JSON property `isFamilySharedFromUser`
3257
+ # @return [Boolean]
3258
+ attr_accessor :is_family_shared_from_user
3259
+ alias_method :is_family_shared_from_user?, :is_family_shared_from_user
3260
+
3261
+ # Whether or not the user received this volume through family sharing.
3262
+ # Corresponds to the JSON property `isFamilySharedToUser`
3263
+ # @return [Boolean]
3264
+ attr_accessor :is_family_shared_to_user
3265
+ alias_method :is_family_shared_to_user?, :is_family_shared_to_user
3266
+
3267
+ # Deprecated: Replaced by familySharing.
3268
+ # Corresponds to the JSON property `isFamilySharingAllowed`
3269
+ # @return [Boolean]
3270
+ attr_accessor :is_family_sharing_allowed
3271
+ alias_method :is_family_sharing_allowed?, :is_family_sharing_allowed
3272
+
3273
+ # Deprecated: Replaced by familySharing.
3274
+ # Corresponds to the JSON property `isFamilySharingDisabledByFop`
3275
+ # @return [Boolean]
3276
+ attr_accessor :is_family_sharing_disabled_by_fop
3277
+ alias_method :is_family_sharing_disabled_by_fop?, :is_family_sharing_disabled_by_fop
3278
+
3279
+ # Whether or not this volume is currently in "my books."
3280
+ # Corresponds to the JSON property `isInMyBooks`
3281
+ # @return [Boolean]
3282
+ attr_accessor :is_in_my_books
3283
+ alias_method :is_in_my_books?, :is_in_my_books
3284
+
3285
+ # Whether or not this volume was pre-ordered by the authenticated user making
3286
+ # the request. (In LITE projection.)
3287
+ # Corresponds to the JSON property `isPreordered`
3288
+ # @return [Boolean]
3289
+ attr_accessor :is_preordered
3290
+ alias_method :is_preordered?, :is_preordered
3291
+
3292
+ # Whether or not this volume was purchased by the authenticated user making the
3293
+ # request. (In LITE projection.)
3294
+ # Corresponds to the JSON property `isPurchased`
3295
+ # @return [Boolean]
3296
+ attr_accessor :is_purchased
3297
+ alias_method :is_purchased?, :is_purchased
3298
+
3299
+ # Whether or not this volume was user uploaded.
3300
+ # Corresponds to the JSON property `isUploaded`
3301
+ # @return [Boolean]
3302
+ attr_accessor :is_uploaded
3303
+ alias_method :is_uploaded?, :is_uploaded
3304
+
3305
+ # The user's current reading position in the volume, if one is available. (In
3306
+ # LITE projection.)
3307
+ # Corresponds to the JSON property `readingPosition`
3308
+ # @return [Google::Apis::BooksV1::ReadingPosition]
3309
+ attr_accessor :reading_position
3310
+
3311
+ # Period during this book is/was a valid rental.
3312
+ # Corresponds to the JSON property `rentalPeriod`
3313
+ # @return [Google::Apis::BooksV1::Volume::UserInfo::RentalPeriod]
3314
+ attr_accessor :rental_period
3315
+
3316
+ # Whether this book is an active or an expired rental.
3317
+ # Corresponds to the JSON property `rentalState`
3318
+ # @return [String]
3319
+ attr_accessor :rental_state
3320
+
3321
+ # This user's review of this volume, if one exists.
3322
+ # Corresponds to the JSON property `review`
3323
+ # @return [Google::Apis::BooksV1::Review]
3324
+ attr_accessor :review
3325
+
3326
+ # Timestamp when this volume was last modified by a user action, such as a
3327
+ # reading position update, volume purchase or writing a review. (RFC 3339 UTC
3328
+ # date-time format).
3329
+ # Corresponds to the JSON property `updated`
3330
+ # @return [DateTime]
3331
+ attr_accessor :updated
3332
+
3333
+ #
3334
+ # Corresponds to the JSON property `userUploadedVolumeInfo`
3335
+ # @return [Google::Apis::BooksV1::Volume::UserInfo::UserUploadedVolumeInfo]
3336
+ attr_accessor :user_uploaded_volume_info
3337
+
3338
+ def initialize(**args)
3339
+ update!(**args)
3340
+ end
3341
+
3342
+ # Update properties of this object
3343
+ def update!(**args)
3344
+ @acquired_time = args[:acquired_time] if args.key?(:acquired_time)
3345
+ @acquisition_type = args[:acquisition_type] if args.key?(:acquisition_type)
3346
+ @copy = args[:copy] if args.key?(:copy)
3347
+ @entitlement_type = args[:entitlement_type] if args.key?(:entitlement_type)
3348
+ @family_sharing = args[:family_sharing] if args.key?(:family_sharing)
3349
+ @is_family_shared_from_user = args[:is_family_shared_from_user] if args.key?(:is_family_shared_from_user)
3350
+ @is_family_shared_to_user = args[:is_family_shared_to_user] if args.key?(:is_family_shared_to_user)
3351
+ @is_family_sharing_allowed = args[:is_family_sharing_allowed] if args.key?(:is_family_sharing_allowed)
3352
+ @is_family_sharing_disabled_by_fop = args[:is_family_sharing_disabled_by_fop] if args.key?(:is_family_sharing_disabled_by_fop)
3353
+ @is_in_my_books = args[:is_in_my_books] if args.key?(:is_in_my_books)
3354
+ @is_preordered = args[:is_preordered] if args.key?(:is_preordered)
3355
+ @is_purchased = args[:is_purchased] if args.key?(:is_purchased)
3356
+ @is_uploaded = args[:is_uploaded] if args.key?(:is_uploaded)
3357
+ @reading_position = args[:reading_position] if args.key?(:reading_position)
3358
+ @rental_period = args[:rental_period] if args.key?(:rental_period)
3359
+ @rental_state = args[:rental_state] if args.key?(:rental_state)
3360
+ @review = args[:review] if args.key?(:review)
3361
+ @updated = args[:updated] if args.key?(:updated)
3362
+ @user_uploaded_volume_info = args[:user_uploaded_volume_info] if args.key?(:user_uploaded_volume_info)
3363
+ end
3364
+
3365
+ # Copy/Paste accounting information.
3366
+ class Copy
3367
+ include Google::Apis::Core::Hashable
3368
+
3369
+ #
3370
+ # Corresponds to the JSON property `allowedCharacterCount`
3371
+ # @return [Fixnum]
3372
+ attr_accessor :allowed_character_count
3373
+
3374
+ #
3375
+ # Corresponds to the JSON property `limitType`
3376
+ # @return [String]
3377
+ attr_accessor :limit_type
3378
+
3379
+ #
3380
+ # Corresponds to the JSON property `remainingCharacterCount`
3381
+ # @return [Fixnum]
3382
+ attr_accessor :remaining_character_count
3383
+
3384
+ #
3385
+ # Corresponds to the JSON property `updated`
3386
+ # @return [DateTime]
3387
+ attr_accessor :updated
3388
+
3389
+ def initialize(**args)
3390
+ update!(**args)
3391
+ end
3392
+
3393
+ # Update properties of this object
3394
+ def update!(**args)
3395
+ @allowed_character_count = args[:allowed_character_count] if args.key?(:allowed_character_count)
3396
+ @limit_type = args[:limit_type] if args.key?(:limit_type)
3397
+ @remaining_character_count = args[:remaining_character_count] if args.key?(:remaining_character_count)
3398
+ @updated = args[:updated] if args.key?(:updated)
3399
+ end
3400
+ end
3401
+
3402
+ # Information on the ability to share with the family.
3403
+ class FamilySharing
3404
+ include Google::Apis::Core::Hashable
3405
+
3406
+ # The role of the user in the family.
3407
+ # Corresponds to the JSON property `familyRole`
3408
+ # @return [String]
3409
+ attr_accessor :family_role
3410
+
3411
+ # Whether or not this volume can be shared with the family by the user. This
3412
+ # includes sharing eligibility of both the volume and the user. If the value is
3413
+ # true, the user can initiate a family sharing action.
3414
+ # Corresponds to the JSON property `isSharingAllowed`
3415
+ # @return [Boolean]
3416
+ attr_accessor :is_sharing_allowed
3417
+ alias_method :is_sharing_allowed?, :is_sharing_allowed
3418
+
3419
+ # Whether or not sharing this volume is temporarily disabled due to issues with
3420
+ # the Family Wallet.
3421
+ # Corresponds to the JSON property `isSharingDisabledByFop`
3422
+ # @return [Boolean]
3423
+ attr_accessor :is_sharing_disabled_by_fop
3424
+ alias_method :is_sharing_disabled_by_fop?, :is_sharing_disabled_by_fop
3425
+
3426
+ def initialize(**args)
3427
+ update!(**args)
3428
+ end
3429
+
3430
+ # Update properties of this object
3431
+ def update!(**args)
3432
+ @family_role = args[:family_role] if args.key?(:family_role)
3433
+ @is_sharing_allowed = args[:is_sharing_allowed] if args.key?(:is_sharing_allowed)
3434
+ @is_sharing_disabled_by_fop = args[:is_sharing_disabled_by_fop] if args.key?(:is_sharing_disabled_by_fop)
3435
+ end
3436
+ end
3437
+
3438
+ # Period during this book is/was a valid rental.
3439
+ class RentalPeriod
3440
+ include Google::Apis::Core::Hashable
3441
+
3442
+ #
3443
+ # Corresponds to the JSON property `endUtcSec`
3444
+ # @return [String]
3445
+ attr_accessor :end_utc_sec
3446
+
3447
+ #
3448
+ # Corresponds to the JSON property `startUtcSec`
3449
+ # @return [String]
3450
+ attr_accessor :start_utc_sec
3451
+
3452
+ def initialize(**args)
3453
+ update!(**args)
3454
+ end
3455
+
3456
+ # Update properties of this object
3457
+ def update!(**args)
3458
+ @end_utc_sec = args[:end_utc_sec] if args.key?(:end_utc_sec)
3459
+ @start_utc_sec = args[:start_utc_sec] if args.key?(:start_utc_sec)
3460
+ end
3461
+ end
3462
+
3463
+ #
3464
+ class UserUploadedVolumeInfo
3465
+ include Google::Apis::Core::Hashable
3466
+
3467
+ #
3468
+ # Corresponds to the JSON property `processingState`
3469
+ # @return [String]
3470
+ attr_accessor :processing_state
3471
+
3472
+ def initialize(**args)
3473
+ update!(**args)
3474
+ end
3475
+
3476
+ # Update properties of this object
3477
+ def update!(**args)
3478
+ @processing_state = args[:processing_state] if args.key?(:processing_state)
3479
+ end
3480
+ end
3481
+ end
3482
+
3483
+ # General volume information.
3484
+ class VolumeInfo
3485
+ include Google::Apis::Core::Hashable
3486
+
3487
+ # Whether anonymous logging should be allowed.
3488
+ # Corresponds to the JSON property `allowAnonLogging`
3489
+ # @return [Boolean]
3490
+ attr_accessor :allow_anon_logging
3491
+ alias_method :allow_anon_logging?, :allow_anon_logging
3492
+
3493
+ # The names of the authors and/or editors for this volume. (In LITE projection)
3494
+ # Corresponds to the JSON property `authors`
3495
+ # @return [Array<String>]
3496
+ attr_accessor :authors
3497
+
3498
+ # The mean review rating for this volume. (min = 1.0, max = 5.0)
3499
+ # Corresponds to the JSON property `averageRating`
3500
+ # @return [Float]
3501
+ attr_accessor :average_rating
3502
+
3503
+ # Canonical URL for a volume. (In LITE projection.)
3504
+ # Corresponds to the JSON property `canonicalVolumeLink`
3505
+ # @return [String]
3506
+ attr_accessor :canonical_volume_link
3507
+
3508
+ # A list of subject categories, such as "Fiction", "Suspense", etc.
3509
+ # Corresponds to the JSON property `categories`
3510
+ # @return [Array<String>]
3511
+ attr_accessor :categories
3512
+
3513
+ # An identifier for the version of the volume content (text & images). (In LITE
3514
+ # projection)
3515
+ # Corresponds to the JSON property `contentVersion`
3516
+ # @return [String]
3517
+ attr_accessor :content_version
3518
+
3519
+ # A synopsis of the volume. The text of the description is formatted in HTML and
3520
+ # includes simple formatting elements, such as b, i, and br tags. (In LITE
3521
+ # projection.)
3522
+ # Corresponds to the JSON property `description`
3523
+ # @return [String]
3524
+ attr_accessor :description
3525
+
3526
+ # Physical dimensions of this volume.
3527
+ # Corresponds to the JSON property `dimensions`
3528
+ # @return [Google::Apis::BooksV1::Volume::VolumeInfo::Dimensions]
3529
+ attr_accessor :dimensions
3530
+
3531
+ # A list of image links for all the sizes that are available. (In LITE
3532
+ # projection.)
3533
+ # Corresponds to the JSON property `imageLinks`
3534
+ # @return [Google::Apis::BooksV1::Volume::VolumeInfo::ImageLinks]
3535
+ attr_accessor :image_links
3536
+
3537
+ # Industry standard identifiers for this volume.
3538
+ # Corresponds to the JSON property `industryIdentifiers`
3539
+ # @return [Array<Google::Apis::BooksV1::Volume::VolumeInfo::IndustryIdentifier>]
3540
+ attr_accessor :industry_identifiers
3541
+
3542
+ # URL to view information about this volume on the Google Books site. (In LITE
3543
+ # projection)
3544
+ # Corresponds to the JSON property `infoLink`
3545
+ # @return [String]
3546
+ attr_accessor :info_link
3547
+
3548
+ # Best language for this volume (based on content). It is the two-letter ISO 639-
3549
+ # 1 code such as 'fr', 'en', etc.
3550
+ # Corresponds to the JSON property `language`
3551
+ # @return [String]
3552
+ attr_accessor :language
3553
+
3554
+ # The main category to which this volume belongs. It will be the category from
3555
+ # the categories list returned below that has the highest weight.
3556
+ # Corresponds to the JSON property `mainCategory`
3557
+ # @return [String]
3558
+ attr_accessor :main_category
3559
+
3560
+ #
3561
+ # Corresponds to the JSON property `maturityRating`
3562
+ # @return [String]
3563
+ attr_accessor :maturity_rating
3564
+
3565
+ # Total number of pages as per publisher metadata.
3566
+ # Corresponds to the JSON property `pageCount`
3567
+ # @return [Fixnum]
3568
+ attr_accessor :page_count
3569
+
3570
+ # A top-level summary of the panelization info in this volume.
3571
+ # Corresponds to the JSON property `panelizationSummary`
3572
+ # @return [Google::Apis::BooksV1::Volume::VolumeInfo::PanelizationSummary]
3573
+ attr_accessor :panelization_summary
3574
+
3575
+ # URL to preview this volume on the Google Books site.
3576
+ # Corresponds to the JSON property `previewLink`
3577
+ # @return [String]
3578
+ attr_accessor :preview_link
3579
+
3580
+ # Type of publication of this volume. Possible values are BOOK or MAGAZINE.
3581
+ # Corresponds to the JSON property `printType`
3582
+ # @return [String]
3583
+ attr_accessor :print_type
3584
+
3585
+ # Total number of printed pages in generated pdf representation.
3586
+ # Corresponds to the JSON property `printedPageCount`
3587
+ # @return [Fixnum]
3588
+ attr_accessor :printed_page_count
3589
+
3590
+ # Date of publication. (In LITE projection.)
3591
+ # Corresponds to the JSON property `publishedDate`
3592
+ # @return [String]
3593
+ attr_accessor :published_date
3594
+
3595
+ # Publisher of this volume. (In LITE projection.)
3596
+ # Corresponds to the JSON property `publisher`
3597
+ # @return [String]
3598
+ attr_accessor :publisher
3599
+
3600
+ # The number of review ratings for this volume.
3601
+ # Corresponds to the JSON property `ratingsCount`
3602
+ # @return [Fixnum]
3603
+ attr_accessor :ratings_count
3604
+
3605
+ # The reading modes available for this volume.
3606
+ # Corresponds to the JSON property `readingModes`
3607
+ # @return [Object]
3608
+ attr_accessor :reading_modes
3609
+
3610
+ # Total number of sample pages as per publisher metadata.
3611
+ # Corresponds to the JSON property `samplePageCount`
3612
+ # @return [Fixnum]
3613
+ attr_accessor :sample_page_count
3614
+
3615
+ #
3616
+ # Corresponds to the JSON property `seriesInfo`
3617
+ # @return [Google::Apis::BooksV1::Volumeseriesinfo]
3618
+ attr_accessor :series_info
3619
+
3620
+ # Volume subtitle. (In LITE projection.)
3621
+ # Corresponds to the JSON property `subtitle`
3622
+ # @return [String]
3623
+ attr_accessor :subtitle
3624
+
3625
+ # Volume title. (In LITE projection.)
3626
+ # Corresponds to the JSON property `title`
3627
+ # @return [String]
3628
+ attr_accessor :title
3629
+
3630
+ def initialize(**args)
3631
+ update!(**args)
3632
+ end
3633
+
3634
+ # Update properties of this object
3635
+ def update!(**args)
3636
+ @allow_anon_logging = args[:allow_anon_logging] if args.key?(:allow_anon_logging)
3637
+ @authors = args[:authors] if args.key?(:authors)
3638
+ @average_rating = args[:average_rating] if args.key?(:average_rating)
3639
+ @canonical_volume_link = args[:canonical_volume_link] if args.key?(:canonical_volume_link)
3640
+ @categories = args[:categories] if args.key?(:categories)
3641
+ @content_version = args[:content_version] if args.key?(:content_version)
3642
+ @description = args[:description] if args.key?(:description)
3643
+ @dimensions = args[:dimensions] if args.key?(:dimensions)
3644
+ @image_links = args[:image_links] if args.key?(:image_links)
3645
+ @industry_identifiers = args[:industry_identifiers] if args.key?(:industry_identifiers)
3646
+ @info_link = args[:info_link] if args.key?(:info_link)
3647
+ @language = args[:language] if args.key?(:language)
3648
+ @main_category = args[:main_category] if args.key?(:main_category)
3649
+ @maturity_rating = args[:maturity_rating] if args.key?(:maturity_rating)
3650
+ @page_count = args[:page_count] if args.key?(:page_count)
3651
+ @panelization_summary = args[:panelization_summary] if args.key?(:panelization_summary)
3652
+ @preview_link = args[:preview_link] if args.key?(:preview_link)
3653
+ @print_type = args[:print_type] if args.key?(:print_type)
3654
+ @printed_page_count = args[:printed_page_count] if args.key?(:printed_page_count)
3655
+ @published_date = args[:published_date] if args.key?(:published_date)
3656
+ @publisher = args[:publisher] if args.key?(:publisher)
3657
+ @ratings_count = args[:ratings_count] if args.key?(:ratings_count)
3658
+ @reading_modes = args[:reading_modes] if args.key?(:reading_modes)
3659
+ @sample_page_count = args[:sample_page_count] if args.key?(:sample_page_count)
3660
+ @series_info = args[:series_info] if args.key?(:series_info)
3661
+ @subtitle = args[:subtitle] if args.key?(:subtitle)
3662
+ @title = args[:title] if args.key?(:title)
3663
+ end
3664
+
3665
+ # Physical dimensions of this volume.
3666
+ class Dimensions
3667
+ include Google::Apis::Core::Hashable
3668
+
3669
+ # Height or length of this volume (in cm).
3670
+ # Corresponds to the JSON property `height`
3671
+ # @return [String]
3672
+ attr_accessor :height
3673
+
3674
+ # Thickness of this volume (in cm).
3675
+ # Corresponds to the JSON property `thickness`
3676
+ # @return [String]
3677
+ attr_accessor :thickness
3678
+
3679
+ # Width of this volume (in cm).
3680
+ # Corresponds to the JSON property `width`
3681
+ # @return [String]
3682
+ attr_accessor :width
3683
+
3684
+ def initialize(**args)
3685
+ update!(**args)
3686
+ end
3687
+
3688
+ # Update properties of this object
3689
+ def update!(**args)
3690
+ @height = args[:height] if args.key?(:height)
3691
+ @thickness = args[:thickness] if args.key?(:thickness)
3692
+ @width = args[:width] if args.key?(:width)
3693
+ end
3694
+ end
3695
+
3696
+ # A list of image links for all the sizes that are available. (In LITE
3697
+ # projection.)
3698
+ class ImageLinks
3699
+ include Google::Apis::Core::Hashable
3700
+
3701
+ # Image link for extra large size (width of ~1280 pixels). (In LITE projection)
3702
+ # Corresponds to the JSON property `extraLarge`
3703
+ # @return [String]
3704
+ attr_accessor :extra_large
3705
+
3706
+ # Image link for large size (width of ~800 pixels). (In LITE projection)
3707
+ # Corresponds to the JSON property `large`
3708
+ # @return [String]
3709
+ attr_accessor :large
3710
+
3711
+ # Image link for medium size (width of ~575 pixels). (In LITE projection)
3712
+ # Corresponds to the JSON property `medium`
3713
+ # @return [String]
3714
+ attr_accessor :medium
3715
+
3716
+ # Image link for small size (width of ~300 pixels). (In LITE projection)
3717
+ # Corresponds to the JSON property `small`
3718
+ # @return [String]
3719
+ attr_accessor :small
3720
+
3721
+ # Image link for small thumbnail size (width of ~80 pixels). (In LITE projection)
3722
+ # Corresponds to the JSON property `smallThumbnail`
3723
+ # @return [String]
3724
+ attr_accessor :small_thumbnail
3725
+
3726
+ # Image link for thumbnail size (width of ~128 pixels). (In LITE projection)
3727
+ # Corresponds to the JSON property `thumbnail`
3728
+ # @return [String]
3729
+ attr_accessor :thumbnail
3730
+
3731
+ def initialize(**args)
3732
+ update!(**args)
3733
+ end
3734
+
3735
+ # Update properties of this object
3736
+ def update!(**args)
3737
+ @extra_large = args[:extra_large] if args.key?(:extra_large)
3738
+ @large = args[:large] if args.key?(:large)
3739
+ @medium = args[:medium] if args.key?(:medium)
3740
+ @small = args[:small] if args.key?(:small)
3741
+ @small_thumbnail = args[:small_thumbnail] if args.key?(:small_thumbnail)
3742
+ @thumbnail = args[:thumbnail] if args.key?(:thumbnail)
3743
+ end
3744
+ end
3745
+
3746
+ #
3747
+ class IndustryIdentifier
3748
+ include Google::Apis::Core::Hashable
3749
+
3750
+ # Industry specific volume identifier.
3751
+ # Corresponds to the JSON property `identifier`
3752
+ # @return [String]
3753
+ attr_accessor :identifier
3754
+
3755
+ # Identifier type. Possible values are ISBN_10, ISBN_13, ISSN and OTHER.
3756
+ # Corresponds to the JSON property `type`
3757
+ # @return [String]
3758
+ attr_accessor :type
3759
+
3760
+ def initialize(**args)
3761
+ update!(**args)
3762
+ end
3763
+
3764
+ # Update properties of this object
3765
+ def update!(**args)
3766
+ @identifier = args[:identifier] if args.key?(:identifier)
3767
+ @type = args[:type] if args.key?(:type)
3768
+ end
3769
+ end
3770
+
3771
+ # A top-level summary of the panelization info in this volume.
3772
+ class PanelizationSummary
3773
+ include Google::Apis::Core::Hashable
3774
+
3775
+ #
3776
+ # Corresponds to the JSON property `containsEpubBubbles`
3777
+ # @return [Boolean]
3778
+ attr_accessor :contains_epub_bubbles
3779
+ alias_method :contains_epub_bubbles?, :contains_epub_bubbles
3780
+
3781
+ #
3782
+ # Corresponds to the JSON property `containsImageBubbles`
3783
+ # @return [Boolean]
3784
+ attr_accessor :contains_image_bubbles
3785
+ alias_method :contains_image_bubbles?, :contains_image_bubbles
3786
+
3787
+ #
3788
+ # Corresponds to the JSON property `epubBubbleVersion`
3789
+ # @return [String]
3790
+ attr_accessor :epub_bubble_version
3791
+
3792
+ #
3793
+ # Corresponds to the JSON property `imageBubbleVersion`
3794
+ # @return [String]
3795
+ attr_accessor :image_bubble_version
3796
+
3797
+ def initialize(**args)
3798
+ update!(**args)
3799
+ end
3800
+
3801
+ # Update properties of this object
3802
+ def update!(**args)
3803
+ @contains_epub_bubbles = args[:contains_epub_bubbles] if args.key?(:contains_epub_bubbles)
3804
+ @contains_image_bubbles = args[:contains_image_bubbles] if args.key?(:contains_image_bubbles)
3805
+ @epub_bubble_version = args[:epub_bubble_version] if args.key?(:epub_bubble_version)
3806
+ @image_bubble_version = args[:image_bubble_version] if args.key?(:image_bubble_version)
3807
+ end
3808
+ end
3809
+ end
3810
+ end
3811
+
3812
+ #
3813
+ class Volume2
3814
+ include Google::Apis::Core::Hashable
3815
+
3816
+ # A list of volumes.
3817
+ # Corresponds to the JSON property `items`
3818
+ # @return [Array<Google::Apis::BooksV1::Volume>]
3819
+ attr_accessor :items
3820
+
3821
+ # Resource type.
3822
+ # Corresponds to the JSON property `kind`
3823
+ # @return [String]
3824
+ attr_accessor :kind
3825
+
3826
+ #
3827
+ # Corresponds to the JSON property `nextPageToken`
3828
+ # @return [String]
3829
+ attr_accessor :next_page_token
3830
+
3831
+ def initialize(**args)
3832
+ update!(**args)
3833
+ end
3834
+
3835
+ # Update properties of this object
3836
+ def update!(**args)
3837
+ @items = args[:items] if args.key?(:items)
3838
+ @kind = args[:kind] if args.key?(:kind)
3839
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3840
+ end
3841
+ end
3842
+
3843
+ #
3844
+ class VolumeAnnotation
3845
+ include Google::Apis::Core::Hashable
3846
+
3847
+ # The annotation data id for this volume annotation.
3848
+ # Corresponds to the JSON property `annotationDataId`
3849
+ # @return [String]
3850
+ attr_accessor :annotation_data_id
3851
+
3852
+ # Link to get data for this annotation.
3853
+ # Corresponds to the JSON property `annotationDataLink`
3854
+ # @return [String]
3855
+ attr_accessor :annotation_data_link
3856
+
3857
+ # The type of annotation this is.
3858
+ # Corresponds to the JSON property `annotationType`
3859
+ # @return [String]
3860
+ attr_accessor :annotation_type
3861
+
3862
+ # The content ranges to identify the selected text.
3863
+ # Corresponds to the JSON property `contentRanges`
3864
+ # @return [Google::Apis::BooksV1::VolumeAnnotation::ContentRanges]
3865
+ attr_accessor :content_ranges
3866
+
3867
+ # Data for this annotation.
3868
+ # Corresponds to the JSON property `data`
3869
+ # @return [String]
3870
+ attr_accessor :data
3871
+
3872
+ # Indicates that this annotation is deleted.
3873
+ # Corresponds to the JSON property `deleted`
3874
+ # @return [Boolean]
3875
+ attr_accessor :deleted
3876
+ alias_method :deleted?, :deleted
3877
+
3878
+ # Unique id of this volume annotation.
3879
+ # Corresponds to the JSON property `id`
3880
+ # @return [String]
3881
+ attr_accessor :id
3882
+
3883
+ # Resource Type
3884
+ # Corresponds to the JSON property `kind`
3885
+ # @return [String]
3886
+ attr_accessor :kind
3887
+
3888
+ # The Layer this annotation is for.
3889
+ # Corresponds to the JSON property `layerId`
3890
+ # @return [String]
3891
+ attr_accessor :layer_id
3892
+
3893
+ # Pages the annotation spans.
3894
+ # Corresponds to the JSON property `pageIds`
3895
+ # @return [Array<String>]
3896
+ attr_accessor :page_ids
3897
+
3898
+ # Excerpt from the volume.
3899
+ # Corresponds to the JSON property `selectedText`
3900
+ # @return [String]
3901
+ attr_accessor :selected_text
3902
+
3903
+ # URL to this resource.
3904
+ # Corresponds to the JSON property `selfLink`
3905
+ # @return [String]
3906
+ attr_accessor :self_link
3907
+
3908
+ # Timestamp for the last time this anntoation was updated. (RFC 3339 UTC date-
3909
+ # time format).
3910
+ # Corresponds to the JSON property `updated`
3911
+ # @return [DateTime]
3912
+ attr_accessor :updated
3913
+
3914
+ # The Volume this annotation is for.
3915
+ # Corresponds to the JSON property `volumeId`
3916
+ # @return [String]
3917
+ attr_accessor :volume_id
3918
+
3919
+ def initialize(**args)
3920
+ update!(**args)
3921
+ end
3922
+
3923
+ # Update properties of this object
3924
+ def update!(**args)
3925
+ @annotation_data_id = args[:annotation_data_id] if args.key?(:annotation_data_id)
3926
+ @annotation_data_link = args[:annotation_data_link] if args.key?(:annotation_data_link)
3927
+ @annotation_type = args[:annotation_type] if args.key?(:annotation_type)
3928
+ @content_ranges = args[:content_ranges] if args.key?(:content_ranges)
3929
+ @data = args[:data] if args.key?(:data)
3930
+ @deleted = args[:deleted] if args.key?(:deleted)
3931
+ @id = args[:id] if args.key?(:id)
3932
+ @kind = args[:kind] if args.key?(:kind)
3933
+ @layer_id = args[:layer_id] if args.key?(:layer_id)
3934
+ @page_ids = args[:page_ids] if args.key?(:page_ids)
3935
+ @selected_text = args[:selected_text] if args.key?(:selected_text)
3936
+ @self_link = args[:self_link] if args.key?(:self_link)
3937
+ @updated = args[:updated] if args.key?(:updated)
3938
+ @volume_id = args[:volume_id] if args.key?(:volume_id)
3939
+ end
3940
+
3941
+ # The content ranges to identify the selected text.
3942
+ class ContentRanges
3943
+ include Google::Apis::Core::Hashable
3944
+
3945
+ # Range in CFI format for this annotation for version above.
3946
+ # Corresponds to the JSON property `cfiRange`
3947
+ # @return [Google::Apis::BooksV1::AnnotatinsRange]
3948
+ attr_accessor :cfi_range
3949
+
3950
+ # Content version applicable to ranges below.
3951
+ # Corresponds to the JSON property `contentVersion`
3952
+ # @return [String]
3953
+ attr_accessor :content_version
3954
+
3955
+ # Range in GB image format for this annotation for version above.
3956
+ # Corresponds to the JSON property `gbImageRange`
3957
+ # @return [Google::Apis::BooksV1::AnnotatinsRange]
3958
+ attr_accessor :gb_image_range
3959
+
3960
+ # Range in GB text format for this annotation for version above.
3961
+ # Corresponds to the JSON property `gbTextRange`
3962
+ # @return [Google::Apis::BooksV1::AnnotatinsRange]
3963
+ attr_accessor :gb_text_range
3964
+
3965
+ def initialize(**args)
3966
+ update!(**args)
3967
+ end
3968
+
3969
+ # Update properties of this object
3970
+ def update!(**args)
3971
+ @cfi_range = args[:cfi_range] if args.key?(:cfi_range)
3972
+ @content_version = args[:content_version] if args.key?(:content_version)
3973
+ @gb_image_range = args[:gb_image_range] if args.key?(:gb_image_range)
3974
+ @gb_text_range = args[:gb_text_range] if args.key?(:gb_text_range)
3975
+ end
3976
+ end
3977
+ end
3978
+
3979
+ #
3980
+ class Volumeannotations
3981
+ include Google::Apis::Core::Hashable
3982
+
3983
+ # A list of volume annotations.
3984
+ # Corresponds to the JSON property `items`
3985
+ # @return [Array<Google::Apis::BooksV1::VolumeAnnotation>]
3986
+ attr_accessor :items
3987
+
3988
+ # Resource type
3989
+ # Corresponds to the JSON property `kind`
3990
+ # @return [String]
3991
+ attr_accessor :kind
3992
+
3993
+ # Token to pass in for pagination for the next page. This will not be present if
3994
+ # this request does not have more results.
3995
+ # Corresponds to the JSON property `nextPageToken`
3996
+ # @return [String]
3997
+ attr_accessor :next_page_token
3998
+
3999
+ # The total number of volume annotations found.
4000
+ # Corresponds to the JSON property `totalItems`
4001
+ # @return [Fixnum]
4002
+ attr_accessor :total_items
4003
+
4004
+ # The version string for all of the volume annotations in this layer (not just
4005
+ # the ones in this response). Note: the version string doesn't apply to the
4006
+ # annotation data, just the information in this response (e.g. the location of
4007
+ # annotations in the book).
4008
+ # Corresponds to the JSON property `version`
4009
+ # @return [String]
4010
+ attr_accessor :version
4011
+
4012
+ def initialize(**args)
4013
+ update!(**args)
4014
+ end
4015
+
4016
+ # Update properties of this object
4017
+ def update!(**args)
4018
+ @items = args[:items] if args.key?(:items)
4019
+ @kind = args[:kind] if args.key?(:kind)
4020
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
4021
+ @total_items = args[:total_items] if args.key?(:total_items)
4022
+ @version = args[:version] if args.key?(:version)
4023
+ end
4024
+ end
4025
+
4026
+ #
4027
+ class Volumes
4028
+ include Google::Apis::Core::Hashable
4029
+
4030
+ # A list of volumes.
4031
+ # Corresponds to the JSON property `items`
4032
+ # @return [Array<Google::Apis::BooksV1::Volume>]
4033
+ attr_accessor :items
4034
+
4035
+ # Resource type.
4036
+ # Corresponds to the JSON property `kind`
4037
+ # @return [String]
4038
+ attr_accessor :kind
4039
+
4040
+ # Total number of volumes found. This might be greater than the number of
4041
+ # volumes returned in this response if results have been paginated.
4042
+ # Corresponds to the JSON property `totalItems`
4043
+ # @return [Fixnum]
4044
+ attr_accessor :total_items
4045
+
4046
+ def initialize(**args)
4047
+ update!(**args)
4048
+ end
4049
+
4050
+ # Update properties of this object
4051
+ def update!(**args)
4052
+ @items = args[:items] if args.key?(:items)
4053
+ @kind = args[:kind] if args.key?(:kind)
4054
+ @total_items = args[:total_items] if args.key?(:total_items)
4055
+ end
4056
+ end
4057
+
4058
+ #
4059
+ class Volumeseriesinfo
4060
+ include Google::Apis::Core::Hashable
4061
+
4062
+ # The display number string. This should be used only for display purposes and
4063
+ # the actual sequence should be inferred from the below orderNumber.
4064
+ # Corresponds to the JSON property `bookDisplayNumber`
4065
+ # @return [String]
4066
+ attr_accessor :book_display_number
4067
+
4068
+ # Resource type.
4069
+ # Corresponds to the JSON property `kind`
4070
+ # @return [String]
4071
+ attr_accessor :kind
4072
+
4073
+ # Short book title in the context of the series.
4074
+ # Corresponds to the JSON property `shortSeriesBookTitle`
4075
+ # @return [String]
4076
+ attr_accessor :short_series_book_title
4077
+
4078
+ #
4079
+ # Corresponds to the JSON property `volumeSeries`
4080
+ # @return [Array<Google::Apis::BooksV1::Volumeseriesinfo::VolumeSeries>]
4081
+ attr_accessor :volume_series
4082
+
4083
+ def initialize(**args)
4084
+ update!(**args)
4085
+ end
4086
+
4087
+ # Update properties of this object
4088
+ def update!(**args)
4089
+ @book_display_number = args[:book_display_number] if args.key?(:book_display_number)
4090
+ @kind = args[:kind] if args.key?(:kind)
4091
+ @short_series_book_title = args[:short_series_book_title] if args.key?(:short_series_book_title)
4092
+ @volume_series = args[:volume_series] if args.key?(:volume_series)
4093
+ end
4094
+
4095
+ #
4096
+ class VolumeSeries
4097
+ include Google::Apis::Core::Hashable
4098
+
4099
+ # List of issues. Applicable only for Collection Edition and Omnibus.
4100
+ # Corresponds to the JSON property `issue`
4101
+ # @return [Array<Google::Apis::BooksV1::Volumeseriesinfo::VolumeSeries::Issue>]
4102
+ attr_accessor :issue
4103
+
4104
+ # The book order number in the series.
4105
+ # Corresponds to the JSON property `orderNumber`
4106
+ # @return [Fixnum]
4107
+ attr_accessor :order_number
4108
+
4109
+ # The book type in the context of series. Examples - Single Issue, Collection
4110
+ # Edition, etc.
4111
+ # Corresponds to the JSON property `seriesBookType`
4112
+ # @return [String]
4113
+ attr_accessor :series_book_type
4114
+
4115
+ # The series id.
4116
+ # Corresponds to the JSON property `seriesId`
4117
+ # @return [String]
4118
+ attr_accessor :series_id
4119
+
4120
+ def initialize(**args)
4121
+ update!(**args)
4122
+ end
4123
+
4124
+ # Update properties of this object
4125
+ def update!(**args)
4126
+ @issue = args[:issue] if args.key?(:issue)
4127
+ @order_number = args[:order_number] if args.key?(:order_number)
4128
+ @series_book_type = args[:series_book_type] if args.key?(:series_book_type)
4129
+ @series_id = args[:series_id] if args.key?(:series_id)
4130
+ end
4131
+
4132
+ #
4133
+ class Issue
4134
+ include Google::Apis::Core::Hashable
4135
+
4136
+ #
4137
+ # Corresponds to the JSON property `issueDisplayNumber`
4138
+ # @return [String]
4139
+ attr_accessor :issue_display_number
4140
+
4141
+ #
4142
+ # Corresponds to the JSON property `issueOrderNumber`
4143
+ # @return [Fixnum]
4144
+ attr_accessor :issue_order_number
4145
+
4146
+ def initialize(**args)
4147
+ update!(**args)
4148
+ end
4149
+
4150
+ # Update properties of this object
4151
+ def update!(**args)
4152
+ @issue_display_number = args[:issue_display_number] if args.key?(:issue_display_number)
4153
+ @issue_order_number = args[:issue_order_number] if args.key?(:issue_order_number)
4154
+ end
4155
+ end
4156
+ end
4157
+ end
4158
+ end
4159
+ end
4160
+ end