lemboy-google-api-client 0.9.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,300 @@
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/core/base_service'
16
+ require 'google/apis/core/json_representation'
17
+ require 'google/apis/core/hashable'
18
+ require 'google/apis/errors'
19
+
20
+ module Google
21
+ module Apis
22
+ module CivicinfoV2
23
+ # Google Civic Information API
24
+ #
25
+ # Provides polling places, early vote locations, contest data, election
26
+ # officials, and government representatives for U.S. residential addresses.
27
+ #
28
+ # @example
29
+ # require 'google/apis/civicinfo_v2'
30
+ #
31
+ # Civicinfo = Google::Apis::CivicinfoV2 # Alias the module
32
+ # service = Civicinfo::CivicInfoService.new
33
+ #
34
+ # @see https://developers.google.com/civic-information
35
+ class CivicInfoService < Google::Apis::Core::BaseService
36
+ # @return [String]
37
+ # API key. Your API key identifies your project and provides you with API access,
38
+ # quota, and reports. Required unless you provide an OAuth 2.0 token.
39
+ attr_accessor :key
40
+
41
+ # @return [String]
42
+ # Available to use for quota purposes for server-side applications. Can be any
43
+ # arbitrary string assigned to a user, but should not exceed 40 characters.
44
+ # Overrides userIp if both are provided.
45
+ attr_accessor :quota_user
46
+
47
+ # @return [String]
48
+ # IP address of the site where the request originates. Use this if you want to
49
+ # enforce per-user limits.
50
+ attr_accessor :user_ip
51
+
52
+ def initialize
53
+ super('https://www.googleapis.com/', 'civicinfo/v2/')
54
+ end
55
+
56
+ # Searches for political divisions by their natural name or OCD ID.
57
+ # @param [Google::Apis::CivicinfoV2::DivisionSearchRequest] division_search_request_object
58
+ # @param [String] query
59
+ # The search query. Queries can cover any parts of a OCD ID or a human readable
60
+ # division name. All words given in the query are treated as required patterns.
61
+ # In addition to that, most query operators of the Apache Lucene library are
62
+ # supported. See http://lucene.apache.org/core/2_9_4/queryparsersyntax.html
63
+ # @param [String] fields
64
+ # Selector specifying which fields to include in a partial response.
65
+ # @param [String] quota_user
66
+ # Available to use for quota purposes for server-side applications. Can be any
67
+ # arbitrary string assigned to a user, but should not exceed 40 characters.
68
+ # Overrides userIp if both are provided.
69
+ # @param [String] user_ip
70
+ # IP address of the site where the request originates. Use this if you want to
71
+ # enforce per-user limits.
72
+ # @param [Google::Apis::RequestOptions] options
73
+ # Request-specific options
74
+ #
75
+ # @yield [result, err] Result & error if block supplied
76
+ # @yieldparam result [Google::Apis::CivicinfoV2::DivisionSearchResponse] parsed result object
77
+ # @yieldparam err [StandardError] error object if request failed
78
+ #
79
+ # @return [Google::Apis::CivicinfoV2::DivisionSearchResponse]
80
+ #
81
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
82
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
83
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
84
+ def search_divisions(division_search_request_object = nil, query: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block)
85
+ command = make_simple_command(:get, 'divisions', options)
86
+ command.request_representation = Google::Apis::CivicinfoV2::DivisionSearchRequest::Representation
87
+ command.request_object = division_search_request_object
88
+ command.response_representation = Google::Apis::CivicinfoV2::DivisionSearchResponse::Representation
89
+ command.response_class = Google::Apis::CivicinfoV2::DivisionSearchResponse
90
+ command.query['query'] = query unless query.nil?
91
+ command.query['fields'] = fields unless fields.nil?
92
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
93
+ command.query['userIp'] = user_ip unless user_ip.nil?
94
+ execute_or_queue_command(command, &block)
95
+ end
96
+
97
+ # List of available elections to query.
98
+ # @param [Google::Apis::CivicinfoV2::ElectionsQueryRequest] elections_query_request_object
99
+ # @param [String] fields
100
+ # Selector specifying which fields to include in a partial response.
101
+ # @param [String] quota_user
102
+ # Available to use for quota purposes for server-side applications. Can be any
103
+ # arbitrary string assigned to a user, but should not exceed 40 characters.
104
+ # Overrides userIp if both are provided.
105
+ # @param [String] user_ip
106
+ # IP address of the site where the request originates. Use this if you want to
107
+ # enforce per-user limits.
108
+ # @param [Google::Apis::RequestOptions] options
109
+ # Request-specific options
110
+ #
111
+ # @yield [result, err] Result & error if block supplied
112
+ # @yieldparam result [Google::Apis::CivicinfoV2::QueryElectionsResponse] parsed result object
113
+ # @yieldparam err [StandardError] error object if request failed
114
+ #
115
+ # @return [Google::Apis::CivicinfoV2::QueryElectionsResponse]
116
+ #
117
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
118
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
119
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
120
+ def query_election(elections_query_request_object = nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block)
121
+ command = make_simple_command(:get, 'elections', options)
122
+ command.request_representation = Google::Apis::CivicinfoV2::ElectionsQueryRequest::Representation
123
+ command.request_object = elections_query_request_object
124
+ command.response_representation = Google::Apis::CivicinfoV2::QueryElectionsResponse::Representation
125
+ command.response_class = Google::Apis::CivicinfoV2::QueryElectionsResponse
126
+ command.query['fields'] = fields unless fields.nil?
127
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
128
+ command.query['userIp'] = user_ip unless user_ip.nil?
129
+ execute_or_queue_command(command, &block)
130
+ end
131
+
132
+ # Looks up information relevant to a voter based on the voter's registered
133
+ # address.
134
+ # @param [String] address
135
+ # The registered address of the voter to look up.
136
+ # @param [Google::Apis::CivicinfoV2::VoterInfoRequest] voter_info_request_object
137
+ # @param [String] election_id
138
+ # The unique ID of the election to look up. A list of election IDs can be
139
+ # obtained at https://www.googleapis.com/civicinfo/`version`/elections
140
+ # @param [Boolean] official_only
141
+ # If set to true, only data from official state sources will be returned.
142
+ # @param [Boolean] return_all_available_data
143
+ # If set to true, the query will return the success codeand include any partial
144
+ # information when it is unable to determine a matching address or unable to
145
+ # determine the election for electionId=0 queries.
146
+ # @param [String] fields
147
+ # Selector specifying which fields to include in a partial response.
148
+ # @param [String] quota_user
149
+ # Available to use for quota purposes for server-side applications. Can be any
150
+ # arbitrary string assigned to a user, but should not exceed 40 characters.
151
+ # Overrides userIp if both are provided.
152
+ # @param [String] user_ip
153
+ # IP address of the site where the request originates. Use this if you want to
154
+ # enforce per-user limits.
155
+ # @param [Google::Apis::RequestOptions] options
156
+ # Request-specific options
157
+ #
158
+ # @yield [result, err] Result & error if block supplied
159
+ # @yieldparam result [Google::Apis::CivicinfoV2::VoterInfoResponse] parsed result object
160
+ # @yieldparam err [StandardError] error object if request failed
161
+ #
162
+ # @return [Google::Apis::CivicinfoV2::VoterInfoResponse]
163
+ #
164
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
165
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
166
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
167
+ def query_voter_info(address, voter_info_request_object = nil, election_id: nil, official_only: nil, return_all_available_data: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block)
168
+ command = make_simple_command(:get, 'voterinfo', options)
169
+ command.request_representation = Google::Apis::CivicinfoV2::VoterInfoRequest::Representation
170
+ command.request_object = voter_info_request_object
171
+ command.response_representation = Google::Apis::CivicinfoV2::VoterInfoResponse::Representation
172
+ command.response_class = Google::Apis::CivicinfoV2::VoterInfoResponse
173
+ command.query['address'] = address unless address.nil?
174
+ command.query['electionId'] = election_id unless election_id.nil?
175
+ command.query['officialOnly'] = official_only unless official_only.nil?
176
+ command.query['returnAllAvailableData'] = return_all_available_data unless return_all_available_data.nil?
177
+ command.query['fields'] = fields unless fields.nil?
178
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
179
+ command.query['userIp'] = user_ip unless user_ip.nil?
180
+ execute_or_queue_command(command, &block)
181
+ end
182
+
183
+ # Looks up political geography and representative information for a single
184
+ # address.
185
+ # @param [Google::Apis::CivicinfoV2::RepresentativeInfoRequest] representative_info_request_object
186
+ # @param [String] address
187
+ # The address to look up. May only be specified if the field ocdId is not given
188
+ # in the URL.
189
+ # @param [Boolean] include_offices
190
+ # Whether to return information about offices and officials. If false, only the
191
+ # top-level district information will be returned.
192
+ # @param [Array<String>, String] levels
193
+ # A list of office levels to filter by. Only offices that serve at least one of
194
+ # these levels will be returned. Divisions that don't contain a matching office
195
+ # will not be returned.
196
+ # @param [Array<String>, String] roles
197
+ # A list of office roles to filter by. Only offices fulfilling one of these
198
+ # roles will be returned. Divisions that don't contain a matching office will
199
+ # not be returned.
200
+ # @param [String] fields
201
+ # Selector specifying which fields to include in a partial response.
202
+ # @param [String] quota_user
203
+ # Available to use for quota purposes for server-side applications. Can be any
204
+ # arbitrary string assigned to a user, but should not exceed 40 characters.
205
+ # Overrides userIp if both are provided.
206
+ # @param [String] user_ip
207
+ # IP address of the site where the request originates. Use this if you want to
208
+ # enforce per-user limits.
209
+ # @param [Google::Apis::RequestOptions] options
210
+ # Request-specific options
211
+ #
212
+ # @yield [result, err] Result & error if block supplied
213
+ # @yieldparam result [Google::Apis::CivicinfoV2::RepresentativeInfoResponse] parsed result object
214
+ # @yieldparam err [StandardError] error object if request failed
215
+ #
216
+ # @return [Google::Apis::CivicinfoV2::RepresentativeInfoResponse]
217
+ #
218
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
219
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
220
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
221
+ def representative_info_by_address(representative_info_request_object = nil, address: nil, include_offices: nil, levels: nil, roles: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block)
222
+ command = make_simple_command(:get, 'representatives', options)
223
+ command.request_representation = Google::Apis::CivicinfoV2::RepresentativeInfoRequest::Representation
224
+ command.request_object = representative_info_request_object
225
+ command.response_representation = Google::Apis::CivicinfoV2::RepresentativeInfoResponse::Representation
226
+ command.response_class = Google::Apis::CivicinfoV2::RepresentativeInfoResponse
227
+ command.query['address'] = address unless address.nil?
228
+ command.query['includeOffices'] = include_offices unless include_offices.nil?
229
+ command.query['levels'] = levels unless levels.nil?
230
+ command.query['roles'] = roles unless roles.nil?
231
+ command.query['fields'] = fields unless fields.nil?
232
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
233
+ command.query['userIp'] = user_ip unless user_ip.nil?
234
+ execute_or_queue_command(command, &block)
235
+ end
236
+
237
+ # Looks up representative information for a single geographic division.
238
+ # @param [String] ocd_id
239
+ # The Open Civic Data division identifier of the division to look up.
240
+ # @param [Google::Apis::CivicinfoV2::DivisionRepresentativeInfoRequest] division_representative_info_request_object
241
+ # @param [Array<String>, String] levels
242
+ # A list of office levels to filter by. Only offices that serve at least one of
243
+ # these levels will be returned. Divisions that don't contain a matching office
244
+ # will not be returned.
245
+ # @param [Boolean] recursive
246
+ # If true, information about all divisions contained in the division requested
247
+ # will be included as well. For example, if querying ocd-division/country:us/
248
+ # district:dc, this would also return all DC's wards and ANCs.
249
+ # @param [Array<String>, String] roles
250
+ # A list of office roles to filter by. Only offices fulfilling one of these
251
+ # roles will be returned. Divisions that don't contain a matching office will
252
+ # not be returned.
253
+ # @param [String] fields
254
+ # Selector specifying which fields to include in a partial response.
255
+ # @param [String] quota_user
256
+ # Available to use for quota purposes for server-side applications. Can be any
257
+ # arbitrary string assigned to a user, but should not exceed 40 characters.
258
+ # Overrides userIp if both are provided.
259
+ # @param [String] user_ip
260
+ # IP address of the site where the request originates. Use this if you want to
261
+ # enforce per-user limits.
262
+ # @param [Google::Apis::RequestOptions] options
263
+ # Request-specific options
264
+ #
265
+ # @yield [result, err] Result & error if block supplied
266
+ # @yieldparam result [Google::Apis::CivicinfoV2::RepresentativeInfoData] parsed result object
267
+ # @yieldparam err [StandardError] error object if request failed
268
+ #
269
+ # @return [Google::Apis::CivicinfoV2::RepresentativeInfoData]
270
+ #
271
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
272
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
273
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
274
+ def representative_info_by_division(ocd_id, division_representative_info_request_object = nil, levels: nil, recursive: nil, roles: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block)
275
+ command = make_simple_command(:get, 'representatives/{ocdId}', options)
276
+ command.request_representation = Google::Apis::CivicinfoV2::DivisionRepresentativeInfoRequest::Representation
277
+ command.request_object = division_representative_info_request_object
278
+ command.response_representation = Google::Apis::CivicinfoV2::RepresentativeInfoData::Representation
279
+ command.response_class = Google::Apis::CivicinfoV2::RepresentativeInfoData
280
+ command.params['ocdId'] = ocd_id unless ocd_id.nil?
281
+ command.query['levels'] = levels unless levels.nil?
282
+ command.query['recursive'] = recursive unless recursive.nil?
283
+ command.query['roles'] = roles unless roles.nil?
284
+ command.query['fields'] = fields unless fields.nil?
285
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
286
+ command.query['userIp'] = user_ip unless user_ip.nil?
287
+ execute_or_queue_command(command, &block)
288
+ end
289
+
290
+ protected
291
+
292
+ def apply_command_defaults(command)
293
+ command.query['key'] = key unless key.nil?
294
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
295
+ command.query['userIp'] = user_ip unless user_ip.nil?
296
+ end
297
+ end
298
+ end
299
+ end
300
+ end
@@ -0,0 +1,70 @@
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/classroom_v1/service.rb'
16
+ require 'google/apis/classroom_v1/classes.rb'
17
+ require 'google/apis/classroom_v1/representations.rb'
18
+
19
+ module Google
20
+ module Apis
21
+ # Google Classroom API
22
+ #
23
+ # Manages classes, rosters, and invitations in Google Classroom.
24
+ #
25
+ # @see https://developers.google.com/classroom/
26
+ module ClassroomV1
27
+ VERSION = 'V1'
28
+ REVISION = '20170110'
29
+
30
+ # View instructions for teacher-assigned work in your Google Classroom classes
31
+ AUTH_CLASSROOM_COURSE_WORK_READONLY = 'https://www.googleapis.com/auth/classroom.course-work.readonly'
32
+
33
+ # Manage your Google Classroom classes
34
+ AUTH_CLASSROOM_COURSES = 'https://www.googleapis.com/auth/classroom.courses'
35
+
36
+ # View your Google Classroom classes
37
+ AUTH_CLASSROOM_COURSES_READONLY = 'https://www.googleapis.com/auth/classroom.courses.readonly'
38
+
39
+ # Manage your course work and view your grades in Google Classroom
40
+ AUTH_CLASSROOM_COURSEWORK_ME = 'https://www.googleapis.com/auth/classroom.coursework.me'
41
+
42
+ # View your course work and grades in Google Classroom
43
+ AUTH_CLASSROOM_COURSEWORK_ME_READONLY = 'https://www.googleapis.com/auth/classroom.coursework.me.readonly'
44
+
45
+ # Manage course work and grades for students in the Google Classroom classes you teach and view the course work and grades for classes you administer
46
+ AUTH_CLASSROOM_COURSEWORK_STUDENTS = 'https://www.googleapis.com/auth/classroom.coursework.students'
47
+
48
+ # View course work and grades for students in the Google Classroom classes you teach or administer
49
+ AUTH_CLASSROOM_COURSEWORK_STUDENTS_READONLY = 'https://www.googleapis.com/auth/classroom.coursework.students.readonly'
50
+
51
+ # View the email addresses of people in your classes
52
+ AUTH_CLASSROOM_PROFILE_EMAILS = 'https://www.googleapis.com/auth/classroom.profile.emails'
53
+
54
+ # View the profile photos of people in your classes
55
+ AUTH_CLASSROOM_PROFILE_PHOTOS = 'https://www.googleapis.com/auth/classroom.profile.photos'
56
+
57
+ # Manage your Google Classroom class rosters
58
+ AUTH_CLASSROOM_ROSTERS = 'https://www.googleapis.com/auth/classroom.rosters'
59
+
60
+ # View your Google Classroom class rosters
61
+ AUTH_CLASSROOM_ROSTERS_READONLY = 'https://www.googleapis.com/auth/classroom.rosters.readonly'
62
+
63
+ # View your course work and grades in Google Classroom
64
+ AUTH_CLASSROOM_STUDENT_SUBMISSIONS_ME_READONLY = 'https://www.googleapis.com/auth/classroom.student-submissions.me.readonly'
65
+
66
+ # View course work and grades for students in the Google Classroom classes you teach or administer
67
+ AUTH_CLASSROOM_STUDENT_SUBMISSIONS_STUDENTS_READONLY = 'https://www.googleapis.com/auth/classroom.student-submissions.students.readonly'
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,1572 @@
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 ClassroomV1
24
+
25
+ # A Course in Classroom.
26
+ class Course
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Identifier for this course assigned by Classroom. When creating a course, you
30
+ # may optionally set this identifier to an alias string in the request to create
31
+ # a corresponding alias. The `id` is still assigned by Classroom and cannot be
32
+ # updated after the course is created. Specifying this field in a course update
33
+ # mask results in an error.
34
+ # Corresponds to the JSON property `id`
35
+ # @return [String]
36
+ attr_accessor :id
37
+
38
+ # Name of the course. For example, "10th Grade Biology". The name is required.
39
+ # It must be between 1 and 750 characters and a valid UTF-8 string.
40
+ # Corresponds to the JSON property `name`
41
+ # @return [String]
42
+ attr_accessor :name
43
+
44
+ # Section of the course. For example, "Period 2". If set, this field must be a
45
+ # valid UTF-8 string and no longer than 2800 characters.
46
+ # Corresponds to the JSON property `section`
47
+ # @return [String]
48
+ attr_accessor :section
49
+
50
+ # Optional heading for the description. For example, "Welcome to 10th Grade
51
+ # Biology." If set, this field must be a valid UTF-8 string and no longer than
52
+ # 3600 characters.
53
+ # Corresponds to the JSON property `descriptionHeading`
54
+ # @return [String]
55
+ attr_accessor :description_heading
56
+
57
+ # Optional description. For example, "We'll be learning about the structure of
58
+ # living creatures from a combination of textbooks, guest lectures, and lab work.
59
+ # Expect to be excited!" If set, this field must be a valid UTF-8 string and no
60
+ # longer than 30,000 characters.
61
+ # Corresponds to the JSON property `description`
62
+ # @return [String]
63
+ attr_accessor :description
64
+
65
+ # Optional room location. For example, "301". If set, this field must be a valid
66
+ # UTF-8 string and no longer than 650 characters.
67
+ # Corresponds to the JSON property `room`
68
+ # @return [String]
69
+ attr_accessor :room
70
+
71
+ # The identifier of the owner of a course. When specified as a parameter of a
72
+ # create course request, this field is required. The identifier can be one of
73
+ # the following: * the numeric identifier for the user * the email address of
74
+ # the user * the string literal `"me"`, indicating the requesting user This must
75
+ # be set in a create request. Specifying this field in a course update mask
76
+ # results in an `INVALID_ARGUMENT` error.
77
+ # Corresponds to the JSON property `ownerId`
78
+ # @return [String]
79
+ attr_accessor :owner_id
80
+
81
+ # Creation time of the course. Specifying this field in a course update mask
82
+ # results in an error. Read-only.
83
+ # Corresponds to the JSON property `creationTime`
84
+ # @return [String]
85
+ attr_accessor :creation_time
86
+
87
+ # Time of the most recent update to this course. Specifying this field in a
88
+ # course update mask results in an error. Read-only.
89
+ # Corresponds to the JSON property `updateTime`
90
+ # @return [String]
91
+ attr_accessor :update_time
92
+
93
+ # Enrollment code to use when joining this course. Specifying this field in a
94
+ # course update mask results in an error. Read-only.
95
+ # Corresponds to the JSON property `enrollmentCode`
96
+ # @return [String]
97
+ attr_accessor :enrollment_code
98
+
99
+ # State of the course. If unspecified, the default state is `PROVISIONED`.
100
+ # Corresponds to the JSON property `courseState`
101
+ # @return [String]
102
+ attr_accessor :course_state
103
+
104
+ # Absolute link to this course in the Classroom web UI. Read-only.
105
+ # Corresponds to the JSON property `alternateLink`
106
+ # @return [String]
107
+ attr_accessor :alternate_link
108
+
109
+ # The email address of a Google group containing all teachers of the course.
110
+ # This group does not accept email and can only be used for permissions. Read-
111
+ # only.
112
+ # Corresponds to the JSON property `teacherGroupEmail`
113
+ # @return [String]
114
+ attr_accessor :teacher_group_email
115
+
116
+ # The email address of a Google group containing all members of the course. This
117
+ # group does not accept email and can only be used for permissions. Read-only.
118
+ # Corresponds to the JSON property `courseGroupEmail`
119
+ # @return [String]
120
+ attr_accessor :course_group_email
121
+
122
+ # Representation of a Google Drive folder.
123
+ # Corresponds to the JSON property `teacherFolder`
124
+ # @return [Google::Apis::ClassroomV1::DriveFolder]
125
+ attr_accessor :teacher_folder
126
+
127
+ # Sets of materials that appear on the "about" page of this course. Read-only.
128
+ # Corresponds to the JSON property `courseMaterialSets`
129
+ # @return [Array<Google::Apis::ClassroomV1::CourseMaterialSet>]
130
+ attr_accessor :course_material_sets
131
+
132
+ # Whether or not guardian notifications are enabled for this course. Read-only.
133
+ # Corresponds to the JSON property `guardiansEnabled`
134
+ # @return [Boolean]
135
+ attr_accessor :guardians_enabled
136
+ alias_method :guardians_enabled?, :guardians_enabled
137
+
138
+ def initialize(**args)
139
+ update!(**args)
140
+ end
141
+
142
+ # Update properties of this object
143
+ def update!(**args)
144
+ @id = args[:id] if args.key?(:id)
145
+ @name = args[:name] if args.key?(:name)
146
+ @section = args[:section] if args.key?(:section)
147
+ @description_heading = args[:description_heading] if args.key?(:description_heading)
148
+ @description = args[:description] if args.key?(:description)
149
+ @room = args[:room] if args.key?(:room)
150
+ @owner_id = args[:owner_id] if args.key?(:owner_id)
151
+ @creation_time = args[:creation_time] if args.key?(:creation_time)
152
+ @update_time = args[:update_time] if args.key?(:update_time)
153
+ @enrollment_code = args[:enrollment_code] if args.key?(:enrollment_code)
154
+ @course_state = args[:course_state] if args.key?(:course_state)
155
+ @alternate_link = args[:alternate_link] if args.key?(:alternate_link)
156
+ @teacher_group_email = args[:teacher_group_email] if args.key?(:teacher_group_email)
157
+ @course_group_email = args[:course_group_email] if args.key?(:course_group_email)
158
+ @teacher_folder = args[:teacher_folder] if args.key?(:teacher_folder)
159
+ @course_material_sets = args[:course_material_sets] if args.key?(:course_material_sets)
160
+ @guardians_enabled = args[:guardians_enabled] if args.key?(:guardians_enabled)
161
+ end
162
+ end
163
+
164
+ # Representation of a Google Drive folder.
165
+ class DriveFolder
166
+ include Google::Apis::Core::Hashable
167
+
168
+ # Drive API resource ID.
169
+ # Corresponds to the JSON property `id`
170
+ # @return [String]
171
+ attr_accessor :id
172
+
173
+ # Title of the Drive folder. Read-only.
174
+ # Corresponds to the JSON property `title`
175
+ # @return [String]
176
+ attr_accessor :title
177
+
178
+ # URL that can be used to access the Drive folder. Read-only.
179
+ # Corresponds to the JSON property `alternateLink`
180
+ # @return [String]
181
+ attr_accessor :alternate_link
182
+
183
+ def initialize(**args)
184
+ update!(**args)
185
+ end
186
+
187
+ # Update properties of this object
188
+ def update!(**args)
189
+ @id = args[:id] if args.key?(:id)
190
+ @title = args[:title] if args.key?(:title)
191
+ @alternate_link = args[:alternate_link] if args.key?(:alternate_link)
192
+ end
193
+ end
194
+
195
+ # A set of materials that appears on the "About" page of the course. These
196
+ # materials might include a syllabus, schedule, or other background information
197
+ # relating to the course as a whole.
198
+ class CourseMaterialSet
199
+ include Google::Apis::Core::Hashable
200
+
201
+ # Title for this set.
202
+ # Corresponds to the JSON property `title`
203
+ # @return [String]
204
+ attr_accessor :title
205
+
206
+ # Materials attached to this set.
207
+ # Corresponds to the JSON property `materials`
208
+ # @return [Array<Google::Apis::ClassroomV1::CourseMaterial>]
209
+ attr_accessor :materials
210
+
211
+ def initialize(**args)
212
+ update!(**args)
213
+ end
214
+
215
+ # Update properties of this object
216
+ def update!(**args)
217
+ @title = args[:title] if args.key?(:title)
218
+ @materials = args[:materials] if args.key?(:materials)
219
+ end
220
+ end
221
+
222
+ # A material attached to a course as part of a material set.
223
+ class CourseMaterial
224
+ include Google::Apis::Core::Hashable
225
+
226
+ # Representation of a Google Drive file.
227
+ # Corresponds to the JSON property `driveFile`
228
+ # @return [Google::Apis::ClassroomV1::DriveFile]
229
+ attr_accessor :drive_file
230
+
231
+ # YouTube video item.
232
+ # Corresponds to the JSON property `youTubeVideo`
233
+ # @return [Google::Apis::ClassroomV1::YouTubeVideo]
234
+ attr_accessor :you_tube_video
235
+
236
+ # URL item.
237
+ # Corresponds to the JSON property `link`
238
+ # @return [Google::Apis::ClassroomV1::Link]
239
+ attr_accessor :link
240
+
241
+ # Google Forms item.
242
+ # Corresponds to the JSON property `form`
243
+ # @return [Google::Apis::ClassroomV1::Form]
244
+ attr_accessor :form
245
+
246
+ def initialize(**args)
247
+ update!(**args)
248
+ end
249
+
250
+ # Update properties of this object
251
+ def update!(**args)
252
+ @drive_file = args[:drive_file] if args.key?(:drive_file)
253
+ @you_tube_video = args[:you_tube_video] if args.key?(:you_tube_video)
254
+ @link = args[:link] if args.key?(:link)
255
+ @form = args[:form] if args.key?(:form)
256
+ end
257
+ end
258
+
259
+ # Representation of a Google Drive file.
260
+ class DriveFile
261
+ include Google::Apis::Core::Hashable
262
+
263
+ # Drive API resource ID.
264
+ # Corresponds to the JSON property `id`
265
+ # @return [String]
266
+ attr_accessor :id
267
+
268
+ # Title of the Drive item. Read-only.
269
+ # Corresponds to the JSON property `title`
270
+ # @return [String]
271
+ attr_accessor :title
272
+
273
+ # URL that can be used to access the Drive item. Read-only.
274
+ # Corresponds to the JSON property `alternateLink`
275
+ # @return [String]
276
+ attr_accessor :alternate_link
277
+
278
+ # URL of a thumbnail image of the Drive item. Read-only.
279
+ # Corresponds to the JSON property `thumbnailUrl`
280
+ # @return [String]
281
+ attr_accessor :thumbnail_url
282
+
283
+ def initialize(**args)
284
+ update!(**args)
285
+ end
286
+
287
+ # Update properties of this object
288
+ def update!(**args)
289
+ @id = args[:id] if args.key?(:id)
290
+ @title = args[:title] if args.key?(:title)
291
+ @alternate_link = args[:alternate_link] if args.key?(:alternate_link)
292
+ @thumbnail_url = args[:thumbnail_url] if args.key?(:thumbnail_url)
293
+ end
294
+ end
295
+
296
+ # YouTube video item.
297
+ class YouTubeVideo
298
+ include Google::Apis::Core::Hashable
299
+
300
+ # YouTube API resource ID.
301
+ # Corresponds to the JSON property `id`
302
+ # @return [String]
303
+ attr_accessor :id
304
+
305
+ # Title of the YouTube video. Read-only.
306
+ # Corresponds to the JSON property `title`
307
+ # @return [String]
308
+ attr_accessor :title
309
+
310
+ # URL that can be used to view the YouTube video. Read-only.
311
+ # Corresponds to the JSON property `alternateLink`
312
+ # @return [String]
313
+ attr_accessor :alternate_link
314
+
315
+ # URL of a thumbnail image of the YouTube video. Read-only.
316
+ # Corresponds to the JSON property `thumbnailUrl`
317
+ # @return [String]
318
+ attr_accessor :thumbnail_url
319
+
320
+ def initialize(**args)
321
+ update!(**args)
322
+ end
323
+
324
+ # Update properties of this object
325
+ def update!(**args)
326
+ @id = args[:id] if args.key?(:id)
327
+ @title = args[:title] if args.key?(:title)
328
+ @alternate_link = args[:alternate_link] if args.key?(:alternate_link)
329
+ @thumbnail_url = args[:thumbnail_url] if args.key?(:thumbnail_url)
330
+ end
331
+ end
332
+
333
+ # URL item.
334
+ class Link
335
+ include Google::Apis::Core::Hashable
336
+
337
+ # URL to link to. This must be a valid UTF-8 string containing between 1 and
338
+ # 2024 characters.
339
+ # Corresponds to the JSON property `url`
340
+ # @return [String]
341
+ attr_accessor :url
342
+
343
+ # Title of the target of the URL. Read-only.
344
+ # Corresponds to the JSON property `title`
345
+ # @return [String]
346
+ attr_accessor :title
347
+
348
+ # URL of a thumbnail image of the target URL. Read-only.
349
+ # Corresponds to the JSON property `thumbnailUrl`
350
+ # @return [String]
351
+ attr_accessor :thumbnail_url
352
+
353
+ def initialize(**args)
354
+ update!(**args)
355
+ end
356
+
357
+ # Update properties of this object
358
+ def update!(**args)
359
+ @url = args[:url] if args.key?(:url)
360
+ @title = args[:title] if args.key?(:title)
361
+ @thumbnail_url = args[:thumbnail_url] if args.key?(:thumbnail_url)
362
+ end
363
+ end
364
+
365
+ # Google Forms item.
366
+ class Form
367
+ include Google::Apis::Core::Hashable
368
+
369
+ # URL of the form.
370
+ # Corresponds to the JSON property `formUrl`
371
+ # @return [String]
372
+ attr_accessor :form_url
373
+
374
+ # URL of the form responses document. Only set if respsonses have been recorded
375
+ # and only when the requesting user is an editor of the form. Read-only.
376
+ # Corresponds to the JSON property `responseUrl`
377
+ # @return [String]
378
+ attr_accessor :response_url
379
+
380
+ # Title of the Form. Read-only.
381
+ # Corresponds to the JSON property `title`
382
+ # @return [String]
383
+ attr_accessor :title
384
+
385
+ # URL of a thumbnail image of the Form. Read-only.
386
+ # Corresponds to the JSON property `thumbnailUrl`
387
+ # @return [String]
388
+ attr_accessor :thumbnail_url
389
+
390
+ def initialize(**args)
391
+ update!(**args)
392
+ end
393
+
394
+ # Update properties of this object
395
+ def update!(**args)
396
+ @form_url = args[:form_url] if args.key?(:form_url)
397
+ @response_url = args[:response_url] if args.key?(:response_url)
398
+ @title = args[:title] if args.key?(:title)
399
+ @thumbnail_url = args[:thumbnail_url] if args.key?(:thumbnail_url)
400
+ end
401
+ end
402
+
403
+ # A generic empty message that you can re-use to avoid defining duplicated empty
404
+ # messages in your APIs. A typical example is to use it as the request or the
405
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
406
+ # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
407
+ # `Empty` is empty JSON object ````.
408
+ class Empty
409
+ include Google::Apis::Core::Hashable
410
+
411
+ def initialize(**args)
412
+ update!(**args)
413
+ end
414
+
415
+ # Update properties of this object
416
+ def update!(**args)
417
+ end
418
+ end
419
+
420
+ # Response when listing courses.
421
+ class ListCoursesResponse
422
+ include Google::Apis::Core::Hashable
423
+
424
+ # Courses that match the list request.
425
+ # Corresponds to the JSON property `courses`
426
+ # @return [Array<Google::Apis::ClassroomV1::Course>]
427
+ attr_accessor :courses
428
+
429
+ # Token identifying the next page of results to return. If empty, no further
430
+ # results are available.
431
+ # Corresponds to the JSON property `nextPageToken`
432
+ # @return [String]
433
+ attr_accessor :next_page_token
434
+
435
+ def initialize(**args)
436
+ update!(**args)
437
+ end
438
+
439
+ # Update properties of this object
440
+ def update!(**args)
441
+ @courses = args[:courses] if args.key?(:courses)
442
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
443
+ end
444
+ end
445
+
446
+ # Alternative identifier for a course. An alias uniquely identifies a course. It
447
+ # must be unique within one of the following scopes: * domain: A domain-scoped
448
+ # alias is visible to all users within the alias creator's domain and can be
449
+ # created only by a domain admin. A domain-scoped alias is often used when a
450
+ # course has an identifier external to Classroom. * project: A project-scoped
451
+ # alias is visible to any request from an application using the Developer
452
+ # Console project ID that created the alias and can be created by any project. A
453
+ # project-scoped alias is often used when an application has alternative
454
+ # identifiers. A random value can also be used to avoid duplicate courses in the
455
+ # event of transmission failures, as retrying a request will return `
456
+ # ALREADY_EXISTS` if a previous one has succeeded.
457
+ class CourseAlias
458
+ include Google::Apis::Core::Hashable
459
+
460
+ # Alias string. The format of the string indicates the desired alias scoping. * `
461
+ # d:` indicates a domain-scoped alias. Example: `d:math_101` * `p:` indicates a
462
+ # project-scoped alias. Example: `p:abc123` This field has a maximum length of
463
+ # 256 characters.
464
+ # Corresponds to the JSON property `alias`
465
+ # @return [String]
466
+ attr_accessor :alias
467
+
468
+ def initialize(**args)
469
+ update!(**args)
470
+ end
471
+
472
+ # Update properties of this object
473
+ def update!(**args)
474
+ @alias = args[:alias] if args.key?(:alias)
475
+ end
476
+ end
477
+
478
+ # Response when listing course aliases.
479
+ class ListCourseAliasesResponse
480
+ include Google::Apis::Core::Hashable
481
+
482
+ # The course aliases.
483
+ # Corresponds to the JSON property `aliases`
484
+ # @return [Array<Google::Apis::ClassroomV1::CourseAlias>]
485
+ attr_accessor :aliases
486
+
487
+ # Token identifying the next page of results to return. If empty, no further
488
+ # results are available.
489
+ # Corresponds to the JSON property `nextPageToken`
490
+ # @return [String]
491
+ attr_accessor :next_page_token
492
+
493
+ def initialize(**args)
494
+ update!(**args)
495
+ end
496
+
497
+ # Update properties of this object
498
+ def update!(**args)
499
+ @aliases = args[:aliases] if args.key?(:aliases)
500
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
501
+ end
502
+ end
503
+
504
+ # Response when listing guardian invitations.
505
+ class ListGuardianInvitationsResponse
506
+ include Google::Apis::Core::Hashable
507
+
508
+ # Guardian invitations that matched the list request.
509
+ # Corresponds to the JSON property `guardianInvitations`
510
+ # @return [Array<Google::Apis::ClassroomV1::GuardianInvitation>]
511
+ attr_accessor :guardian_invitations
512
+
513
+ # Token identifying the next page of results to return. If empty, no further
514
+ # results are available.
515
+ # Corresponds to the JSON property `nextPageToken`
516
+ # @return [String]
517
+ attr_accessor :next_page_token
518
+
519
+ def initialize(**args)
520
+ update!(**args)
521
+ end
522
+
523
+ # Update properties of this object
524
+ def update!(**args)
525
+ @guardian_invitations = args[:guardian_invitations] if args.key?(:guardian_invitations)
526
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
527
+ end
528
+ end
529
+
530
+ # An invitation to become the guardian of a specified user, sent to a specified
531
+ # email address.
532
+ class GuardianInvitation
533
+ include Google::Apis::Core::Hashable
534
+
535
+ # ID of the student (in standard format)
536
+ # Corresponds to the JSON property `studentId`
537
+ # @return [String]
538
+ attr_accessor :student_id
539
+
540
+ # Unique identifier for this invitation. Read-only.
541
+ # Corresponds to the JSON property `invitationId`
542
+ # @return [String]
543
+ attr_accessor :invitation_id
544
+
545
+ # Email address that the invitation was sent to. This field is only visible to
546
+ # domain administrators.
547
+ # Corresponds to the JSON property `invitedEmailAddress`
548
+ # @return [String]
549
+ attr_accessor :invited_email_address
550
+
551
+ # The state that this invitation is in.
552
+ # Corresponds to the JSON property `state`
553
+ # @return [String]
554
+ attr_accessor :state
555
+
556
+ # The time that this invitation was created. Read-only.
557
+ # Corresponds to the JSON property `creationTime`
558
+ # @return [String]
559
+ attr_accessor :creation_time
560
+
561
+ def initialize(**args)
562
+ update!(**args)
563
+ end
564
+
565
+ # Update properties of this object
566
+ def update!(**args)
567
+ @student_id = args[:student_id] if args.key?(:student_id)
568
+ @invitation_id = args[:invitation_id] if args.key?(:invitation_id)
569
+ @invited_email_address = args[:invited_email_address] if args.key?(:invited_email_address)
570
+ @state = args[:state] if args.key?(:state)
571
+ @creation_time = args[:creation_time] if args.key?(:creation_time)
572
+ end
573
+ end
574
+
575
+ # Global information for a user.
576
+ class UserProfile
577
+ include Google::Apis::Core::Hashable
578
+
579
+ # Identifier of the user. Read-only.
580
+ # Corresponds to the JSON property `id`
581
+ # @return [String]
582
+ attr_accessor :id
583
+
584
+ # Details of the user's name.
585
+ # Corresponds to the JSON property `name`
586
+ # @return [Google::Apis::ClassroomV1::Name]
587
+ attr_accessor :name
588
+
589
+ # Email address of the user. Read-only.
590
+ # Corresponds to the JSON property `emailAddress`
591
+ # @return [String]
592
+ attr_accessor :email_address
593
+
594
+ # URL of user's profile photo. Read-only.
595
+ # Corresponds to the JSON property `photoUrl`
596
+ # @return [String]
597
+ attr_accessor :photo_url
598
+
599
+ # Global permissions of the user. Read-only.
600
+ # Corresponds to the JSON property `permissions`
601
+ # @return [Array<Google::Apis::ClassroomV1::GlobalPermission>]
602
+ attr_accessor :permissions
603
+
604
+ def initialize(**args)
605
+ update!(**args)
606
+ end
607
+
608
+ # Update properties of this object
609
+ def update!(**args)
610
+ @id = args[:id] if args.key?(:id)
611
+ @name = args[:name] if args.key?(:name)
612
+ @email_address = args[:email_address] if args.key?(:email_address)
613
+ @photo_url = args[:photo_url] if args.key?(:photo_url)
614
+ @permissions = args[:permissions] if args.key?(:permissions)
615
+ end
616
+ end
617
+
618
+ # Details of the user's name.
619
+ class Name
620
+ include Google::Apis::Core::Hashable
621
+
622
+ # The user's first name. Read-only.
623
+ # Corresponds to the JSON property `givenName`
624
+ # @return [String]
625
+ attr_accessor :given_name
626
+
627
+ # The user's last name. Read-only.
628
+ # Corresponds to the JSON property `familyName`
629
+ # @return [String]
630
+ attr_accessor :family_name
631
+
632
+ # The user's full name formed by concatenating the first and last name values.
633
+ # Read-only.
634
+ # Corresponds to the JSON property `fullName`
635
+ # @return [String]
636
+ attr_accessor :full_name
637
+
638
+ def initialize(**args)
639
+ update!(**args)
640
+ end
641
+
642
+ # Update properties of this object
643
+ def update!(**args)
644
+ @given_name = args[:given_name] if args.key?(:given_name)
645
+ @family_name = args[:family_name] if args.key?(:family_name)
646
+ @full_name = args[:full_name] if args.key?(:full_name)
647
+ end
648
+ end
649
+
650
+ # Global user permission description.
651
+ class GlobalPermission
652
+ include Google::Apis::Core::Hashable
653
+
654
+ # Permission value.
655
+ # Corresponds to the JSON property `permission`
656
+ # @return [String]
657
+ attr_accessor :permission
658
+
659
+ def initialize(**args)
660
+ update!(**args)
661
+ end
662
+
663
+ # Update properties of this object
664
+ def update!(**args)
665
+ @permission = args[:permission] if args.key?(:permission)
666
+ end
667
+ end
668
+
669
+ # Teacher of a course.
670
+ class Teacher
671
+ include Google::Apis::Core::Hashable
672
+
673
+ # Identifier of the course. Read-only.
674
+ # Corresponds to the JSON property `courseId`
675
+ # @return [String]
676
+ attr_accessor :course_id
677
+
678
+ # Identifier of the user. When specified as a parameter of a request, this
679
+ # identifier can be one of the following: * the numeric identifier for the user *
680
+ # the email address of the user * the string literal `"me"`, indicating the
681
+ # requesting user
682
+ # Corresponds to the JSON property `userId`
683
+ # @return [String]
684
+ attr_accessor :user_id
685
+
686
+ # Global information for a user.
687
+ # Corresponds to the JSON property `profile`
688
+ # @return [Google::Apis::ClassroomV1::UserProfile]
689
+ attr_accessor :profile
690
+
691
+ def initialize(**args)
692
+ update!(**args)
693
+ end
694
+
695
+ # Update properties of this object
696
+ def update!(**args)
697
+ @course_id = args[:course_id] if args.key?(:course_id)
698
+ @user_id = args[:user_id] if args.key?(:user_id)
699
+ @profile = args[:profile] if args.key?(:profile)
700
+ end
701
+ end
702
+
703
+ # Response when listing teachers.
704
+ class ListTeachersResponse
705
+ include Google::Apis::Core::Hashable
706
+
707
+ # Teachers who match the list request.
708
+ # Corresponds to the JSON property `teachers`
709
+ # @return [Array<Google::Apis::ClassroomV1::Teacher>]
710
+ attr_accessor :teachers
711
+
712
+ # Token identifying the next page of results to return. If empty, no further
713
+ # results are available.
714
+ # Corresponds to the JSON property `nextPageToken`
715
+ # @return [String]
716
+ attr_accessor :next_page_token
717
+
718
+ def initialize(**args)
719
+ update!(**args)
720
+ end
721
+
722
+ # Update properties of this object
723
+ def update!(**args)
724
+ @teachers = args[:teachers] if args.key?(:teachers)
725
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
726
+ end
727
+ end
728
+
729
+ # Student in a course.
730
+ class Student
731
+ include Google::Apis::Core::Hashable
732
+
733
+ # Identifier of the course. Read-only.
734
+ # Corresponds to the JSON property `courseId`
735
+ # @return [String]
736
+ attr_accessor :course_id
737
+
738
+ # Identifier of the user. When specified as a parameter of a request, this
739
+ # identifier can be one of the following: * the numeric identifier for the user *
740
+ # the email address of the user * the string literal `"me"`, indicating the
741
+ # requesting user
742
+ # Corresponds to the JSON property `userId`
743
+ # @return [String]
744
+ attr_accessor :user_id
745
+
746
+ # Global information for a user.
747
+ # Corresponds to the JSON property `profile`
748
+ # @return [Google::Apis::ClassroomV1::UserProfile]
749
+ attr_accessor :profile
750
+
751
+ # Representation of a Google Drive folder.
752
+ # Corresponds to the JSON property `studentWorkFolder`
753
+ # @return [Google::Apis::ClassroomV1::DriveFolder]
754
+ attr_accessor :student_work_folder
755
+
756
+ def initialize(**args)
757
+ update!(**args)
758
+ end
759
+
760
+ # Update properties of this object
761
+ def update!(**args)
762
+ @course_id = args[:course_id] if args.key?(:course_id)
763
+ @user_id = args[:user_id] if args.key?(:user_id)
764
+ @profile = args[:profile] if args.key?(:profile)
765
+ @student_work_folder = args[:student_work_folder] if args.key?(:student_work_folder)
766
+ end
767
+ end
768
+
769
+ # Response when listing students.
770
+ class ListStudentsResponse
771
+ include Google::Apis::Core::Hashable
772
+
773
+ # Students who match the list request.
774
+ # Corresponds to the JSON property `students`
775
+ # @return [Array<Google::Apis::ClassroomV1::Student>]
776
+ attr_accessor :students
777
+
778
+ # Token identifying the next page of results to return. If empty, no further
779
+ # results are available.
780
+ # Corresponds to the JSON property `nextPageToken`
781
+ # @return [String]
782
+ attr_accessor :next_page_token
783
+
784
+ def initialize(**args)
785
+ update!(**args)
786
+ end
787
+
788
+ # Update properties of this object
789
+ def update!(**args)
790
+ @students = args[:students] if args.key?(:students)
791
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
792
+ end
793
+ end
794
+
795
+ # Response when listing guardians.
796
+ class ListGuardiansResponse
797
+ include Google::Apis::Core::Hashable
798
+
799
+ # Guardians on this page of results that met the criteria specified in the
800
+ # request.
801
+ # Corresponds to the JSON property `guardians`
802
+ # @return [Array<Google::Apis::ClassroomV1::Guardian>]
803
+ attr_accessor :guardians
804
+
805
+ # Token identifying the next page of results to return. If empty, no further
806
+ # results are available.
807
+ # Corresponds to the JSON property `nextPageToken`
808
+ # @return [String]
809
+ attr_accessor :next_page_token
810
+
811
+ def initialize(**args)
812
+ update!(**args)
813
+ end
814
+
815
+ # Update properties of this object
816
+ def update!(**args)
817
+ @guardians = args[:guardians] if args.key?(:guardians)
818
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
819
+ end
820
+ end
821
+
822
+ # Association between a student and a guardian of that student. The guardian may
823
+ # receive information about the student's course work.
824
+ class Guardian
825
+ include Google::Apis::Core::Hashable
826
+
827
+ # Identifier for the student to whom the guardian relationship applies.
828
+ # Corresponds to the JSON property `studentId`
829
+ # @return [String]
830
+ attr_accessor :student_id
831
+
832
+ # Identifier for the guardian.
833
+ # Corresponds to the JSON property `guardianId`
834
+ # @return [String]
835
+ attr_accessor :guardian_id
836
+
837
+ # Global information for a user.
838
+ # Corresponds to the JSON property `guardianProfile`
839
+ # @return [Google::Apis::ClassroomV1::UserProfile]
840
+ attr_accessor :guardian_profile
841
+
842
+ # The email address to which the initial guardian invitation was sent. This
843
+ # field is only visible to domain administrators.
844
+ # Corresponds to the JSON property `invitedEmailAddress`
845
+ # @return [String]
846
+ attr_accessor :invited_email_address
847
+
848
+ def initialize(**args)
849
+ update!(**args)
850
+ end
851
+
852
+ # Update properties of this object
853
+ def update!(**args)
854
+ @student_id = args[:student_id] if args.key?(:student_id)
855
+ @guardian_id = args[:guardian_id] if args.key?(:guardian_id)
856
+ @guardian_profile = args[:guardian_profile] if args.key?(:guardian_profile)
857
+ @invited_email_address = args[:invited_email_address] if args.key?(:invited_email_address)
858
+ end
859
+ end
860
+
861
+ # An invitation to join a course.
862
+ class Invitation
863
+ include Google::Apis::Core::Hashable
864
+
865
+ # Identifier assigned by Classroom. Read-only.
866
+ # Corresponds to the JSON property `id`
867
+ # @return [String]
868
+ attr_accessor :id
869
+
870
+ # Identifier of the invited user. When specified as a parameter of a request,
871
+ # this identifier can be set to one of the following: * the numeric identifier
872
+ # for the user * the email address of the user * the string literal `"me"`,
873
+ # indicating the requesting user
874
+ # Corresponds to the JSON property `userId`
875
+ # @return [String]
876
+ attr_accessor :user_id
877
+
878
+ # Identifier of the course to invite the user to.
879
+ # Corresponds to the JSON property `courseId`
880
+ # @return [String]
881
+ attr_accessor :course_id
882
+
883
+ # Role to invite the user to have. Must not be `COURSE_ROLE_UNSPECIFIED`.
884
+ # Corresponds to the JSON property `role`
885
+ # @return [String]
886
+ attr_accessor :role
887
+
888
+ def initialize(**args)
889
+ update!(**args)
890
+ end
891
+
892
+ # Update properties of this object
893
+ def update!(**args)
894
+ @id = args[:id] if args.key?(:id)
895
+ @user_id = args[:user_id] if args.key?(:user_id)
896
+ @course_id = args[:course_id] if args.key?(:course_id)
897
+ @role = args[:role] if args.key?(:role)
898
+ end
899
+ end
900
+
901
+ # Response when listing invitations.
902
+ class ListInvitationsResponse
903
+ include Google::Apis::Core::Hashable
904
+
905
+ # Invitations that match the list request.
906
+ # Corresponds to the JSON property `invitations`
907
+ # @return [Array<Google::Apis::ClassroomV1::Invitation>]
908
+ attr_accessor :invitations
909
+
910
+ # Token identifying the next page of results to return. If empty, no further
911
+ # results are available.
912
+ # Corresponds to the JSON property `nextPageToken`
913
+ # @return [String]
914
+ attr_accessor :next_page_token
915
+
916
+ def initialize(**args)
917
+ update!(**args)
918
+ end
919
+
920
+ # Update properties of this object
921
+ def update!(**args)
922
+ @invitations = args[:invitations] if args.key?(:invitations)
923
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
924
+ end
925
+ end
926
+
927
+ # Course work created by a teacher for students of the course.
928
+ class CourseWork
929
+ include Google::Apis::Core::Hashable
930
+
931
+ # Identifier of the course. Read-only.
932
+ # Corresponds to the JSON property `courseId`
933
+ # @return [String]
934
+ attr_accessor :course_id
935
+
936
+ # Classroom-assigned identifier of this course work, unique per course. Read-
937
+ # only.
938
+ # Corresponds to the JSON property `id`
939
+ # @return [String]
940
+ attr_accessor :id
941
+
942
+ # Title of this course work. The title must be a valid UTF-8 string containing
943
+ # between 1 and 3000 characters.
944
+ # Corresponds to the JSON property `title`
945
+ # @return [String]
946
+ attr_accessor :title
947
+
948
+ # Optional description of this course work. If set, the description must be a
949
+ # valid UTF-8 string containing no more than 30,000 characters.
950
+ # Corresponds to the JSON property `description`
951
+ # @return [String]
952
+ attr_accessor :description
953
+
954
+ # Additional materials. CourseWork must have no more than 20 material items.
955
+ # Corresponds to the JSON property `materials`
956
+ # @return [Array<Google::Apis::ClassroomV1::Material>]
957
+ attr_accessor :materials
958
+
959
+ # Status of this course work. If unspecified, the default state is `DRAFT`.
960
+ # Corresponds to the JSON property `state`
961
+ # @return [String]
962
+ attr_accessor :state
963
+
964
+ # Absolute link to this course work in the Classroom web UI. This is only
965
+ # populated if `state` is `PUBLISHED`. Read-only.
966
+ # Corresponds to the JSON property `alternateLink`
967
+ # @return [String]
968
+ attr_accessor :alternate_link
969
+
970
+ # Timestamp when this course work was created. Read-only.
971
+ # Corresponds to the JSON property `creationTime`
972
+ # @return [String]
973
+ attr_accessor :creation_time
974
+
975
+ # Timestamp of the most recent change to this course work. Read-only.
976
+ # Corresponds to the JSON property `updateTime`
977
+ # @return [String]
978
+ attr_accessor :update_time
979
+
980
+ # Represents a whole calendar date, e.g. date of birth. The time of day and time
981
+ # zone are either specified elsewhere or are not significant. The date is
982
+ # relative to the Proleptic Gregorian Calendar. The day may be 0 to represent a
983
+ # year and month where the day is not significant, e.g. credit card expiration
984
+ # date. The year may be 0 to represent a month and day independent of year, e.g.
985
+ # anniversary date. Related types are google.type.TimeOfDay and `google.protobuf.
986
+ # Timestamp`.
987
+ # Corresponds to the JSON property `dueDate`
988
+ # @return [Google::Apis::ClassroomV1::Date]
989
+ attr_accessor :due_date
990
+
991
+ # Represents a time of day. The date and time zone are either not significant or
992
+ # are specified elsewhere. An API may chose to allow leap seconds. Related types
993
+ # are google.type.Date and `google.protobuf.Timestamp`.
994
+ # Corresponds to the JSON property `dueTime`
995
+ # @return [Google::Apis::ClassroomV1::TimeOfDay]
996
+ attr_accessor :due_time
997
+
998
+ # Maximum grade for this course work. If zero or unspecified, this assignment is
999
+ # considered ungraded. This must be a non-negative integer value.
1000
+ # Corresponds to the JSON property `maxPoints`
1001
+ # @return [Float]
1002
+ attr_accessor :max_points
1003
+
1004
+ # Type of this course work. The type is set when the course work is created and
1005
+ # cannot be changed.
1006
+ # Corresponds to the JSON property `workType`
1007
+ # @return [String]
1008
+ attr_accessor :work_type
1009
+
1010
+ # Whether this course work item is associated with the Developer Console project
1011
+ # making the request. See google.classroom.Work.CreateCourseWork for more
1012
+ # details. Read-only.
1013
+ # Corresponds to the JSON property `associatedWithDeveloper`
1014
+ # @return [Boolean]
1015
+ attr_accessor :associated_with_developer
1016
+ alias_method :associated_with_developer?, :associated_with_developer
1017
+
1018
+ # Setting to determine when students are allowed to modify submissions. If
1019
+ # unspecified, the default value is `MODIFIABLE_UNTIL_TURNED_IN`.
1020
+ # Corresponds to the JSON property `submissionModificationMode`
1021
+ # @return [String]
1022
+ attr_accessor :submission_modification_mode
1023
+
1024
+ # Additional details for assignments.
1025
+ # Corresponds to the JSON property `assignment`
1026
+ # @return [Google::Apis::ClassroomV1::Assignment]
1027
+ attr_accessor :assignment
1028
+
1029
+ # Additional details for multiple-choice questions.
1030
+ # Corresponds to the JSON property `multipleChoiceQuestion`
1031
+ # @return [Google::Apis::ClassroomV1::MultipleChoiceQuestion]
1032
+ attr_accessor :multiple_choice_question
1033
+
1034
+ def initialize(**args)
1035
+ update!(**args)
1036
+ end
1037
+
1038
+ # Update properties of this object
1039
+ def update!(**args)
1040
+ @course_id = args[:course_id] if args.key?(:course_id)
1041
+ @id = args[:id] if args.key?(:id)
1042
+ @title = args[:title] if args.key?(:title)
1043
+ @description = args[:description] if args.key?(:description)
1044
+ @materials = args[:materials] if args.key?(:materials)
1045
+ @state = args[:state] if args.key?(:state)
1046
+ @alternate_link = args[:alternate_link] if args.key?(:alternate_link)
1047
+ @creation_time = args[:creation_time] if args.key?(:creation_time)
1048
+ @update_time = args[:update_time] if args.key?(:update_time)
1049
+ @due_date = args[:due_date] if args.key?(:due_date)
1050
+ @due_time = args[:due_time] if args.key?(:due_time)
1051
+ @max_points = args[:max_points] if args.key?(:max_points)
1052
+ @work_type = args[:work_type] if args.key?(:work_type)
1053
+ @associated_with_developer = args[:associated_with_developer] if args.key?(:associated_with_developer)
1054
+ @submission_modification_mode = args[:submission_modification_mode] if args.key?(:submission_modification_mode)
1055
+ @assignment = args[:assignment] if args.key?(:assignment)
1056
+ @multiple_choice_question = args[:multiple_choice_question] if args.key?(:multiple_choice_question)
1057
+ end
1058
+ end
1059
+
1060
+ # Material attached to course work. When creating attachments, setting the `form`
1061
+ # field is not supported.
1062
+ class Material
1063
+ include Google::Apis::Core::Hashable
1064
+
1065
+ # Drive file that is used as material for course work.
1066
+ # Corresponds to the JSON property `driveFile`
1067
+ # @return [Google::Apis::ClassroomV1::SharedDriveFile]
1068
+ attr_accessor :drive_file
1069
+
1070
+ # YouTube video item.
1071
+ # Corresponds to the JSON property `youtubeVideo`
1072
+ # @return [Google::Apis::ClassroomV1::YouTubeVideo]
1073
+ attr_accessor :youtube_video
1074
+
1075
+ # URL item.
1076
+ # Corresponds to the JSON property `link`
1077
+ # @return [Google::Apis::ClassroomV1::Link]
1078
+ attr_accessor :link
1079
+
1080
+ # Google Forms item.
1081
+ # Corresponds to the JSON property `form`
1082
+ # @return [Google::Apis::ClassroomV1::Form]
1083
+ attr_accessor :form
1084
+
1085
+ def initialize(**args)
1086
+ update!(**args)
1087
+ end
1088
+
1089
+ # Update properties of this object
1090
+ def update!(**args)
1091
+ @drive_file = args[:drive_file] if args.key?(:drive_file)
1092
+ @youtube_video = args[:youtube_video] if args.key?(:youtube_video)
1093
+ @link = args[:link] if args.key?(:link)
1094
+ @form = args[:form] if args.key?(:form)
1095
+ end
1096
+ end
1097
+
1098
+ # Drive file that is used as material for course work.
1099
+ class SharedDriveFile
1100
+ include Google::Apis::Core::Hashable
1101
+
1102
+ # Representation of a Google Drive file.
1103
+ # Corresponds to the JSON property `driveFile`
1104
+ # @return [Google::Apis::ClassroomV1::DriveFile]
1105
+ attr_accessor :drive_file
1106
+
1107
+ # Mechanism by which students access the Drive item.
1108
+ # Corresponds to the JSON property `shareMode`
1109
+ # @return [String]
1110
+ attr_accessor :share_mode
1111
+
1112
+ def initialize(**args)
1113
+ update!(**args)
1114
+ end
1115
+
1116
+ # Update properties of this object
1117
+ def update!(**args)
1118
+ @drive_file = args[:drive_file] if args.key?(:drive_file)
1119
+ @share_mode = args[:share_mode] if args.key?(:share_mode)
1120
+ end
1121
+ end
1122
+
1123
+ # Represents a whole calendar date, e.g. date of birth. The time of day and time
1124
+ # zone are either specified elsewhere or are not significant. The date is
1125
+ # relative to the Proleptic Gregorian Calendar. The day may be 0 to represent a
1126
+ # year and month where the day is not significant, e.g. credit card expiration
1127
+ # date. The year may be 0 to represent a month and day independent of year, e.g.
1128
+ # anniversary date. Related types are google.type.TimeOfDay and `google.protobuf.
1129
+ # Timestamp`.
1130
+ class Date
1131
+ include Google::Apis::Core::Hashable
1132
+
1133
+ # Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year.
1134
+ # Corresponds to the JSON property `year`
1135
+ # @return [Fixnum]
1136
+ attr_accessor :year
1137
+
1138
+ # Month of year. Must be from 1 to 12.
1139
+ # Corresponds to the JSON property `month`
1140
+ # @return [Fixnum]
1141
+ attr_accessor :month
1142
+
1143
+ # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if
1144
+ # specifying a year/month where the day is not significant.
1145
+ # Corresponds to the JSON property `day`
1146
+ # @return [Fixnum]
1147
+ attr_accessor :day
1148
+
1149
+ def initialize(**args)
1150
+ update!(**args)
1151
+ end
1152
+
1153
+ # Update properties of this object
1154
+ def update!(**args)
1155
+ @year = args[:year] if args.key?(:year)
1156
+ @month = args[:month] if args.key?(:month)
1157
+ @day = args[:day] if args.key?(:day)
1158
+ end
1159
+ end
1160
+
1161
+ # Represents a time of day. The date and time zone are either not significant or
1162
+ # are specified elsewhere. An API may chose to allow leap seconds. Related types
1163
+ # are google.type.Date and `google.protobuf.Timestamp`.
1164
+ class TimeOfDay
1165
+ include Google::Apis::Core::Hashable
1166
+
1167
+ # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to
1168
+ # allow the value "24:00:00" for scenarios like business closing time.
1169
+ # Corresponds to the JSON property `hours`
1170
+ # @return [Fixnum]
1171
+ attr_accessor :hours
1172
+
1173
+ # Minutes of hour of day. Must be from 0 to 59.
1174
+ # Corresponds to the JSON property `minutes`
1175
+ # @return [Fixnum]
1176
+ attr_accessor :minutes
1177
+
1178
+ # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
1179
+ # allow the value 60 if it allows leap-seconds.
1180
+ # Corresponds to the JSON property `seconds`
1181
+ # @return [Fixnum]
1182
+ attr_accessor :seconds
1183
+
1184
+ # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1185
+ # Corresponds to the JSON property `nanos`
1186
+ # @return [Fixnum]
1187
+ attr_accessor :nanos
1188
+
1189
+ def initialize(**args)
1190
+ update!(**args)
1191
+ end
1192
+
1193
+ # Update properties of this object
1194
+ def update!(**args)
1195
+ @hours = args[:hours] if args.key?(:hours)
1196
+ @minutes = args[:minutes] if args.key?(:minutes)
1197
+ @seconds = args[:seconds] if args.key?(:seconds)
1198
+ @nanos = args[:nanos] if args.key?(:nanos)
1199
+ end
1200
+ end
1201
+
1202
+ # Additional details for assignments.
1203
+ class Assignment
1204
+ include Google::Apis::Core::Hashable
1205
+
1206
+ # Representation of a Google Drive folder.
1207
+ # Corresponds to the JSON property `studentWorkFolder`
1208
+ # @return [Google::Apis::ClassroomV1::DriveFolder]
1209
+ attr_accessor :student_work_folder
1210
+
1211
+ def initialize(**args)
1212
+ update!(**args)
1213
+ end
1214
+
1215
+ # Update properties of this object
1216
+ def update!(**args)
1217
+ @student_work_folder = args[:student_work_folder] if args.key?(:student_work_folder)
1218
+ end
1219
+ end
1220
+
1221
+ # Additional details for multiple-choice questions.
1222
+ class MultipleChoiceQuestion
1223
+ include Google::Apis::Core::Hashable
1224
+
1225
+ # Possible choices.
1226
+ # Corresponds to the JSON property `choices`
1227
+ # @return [Array<String>]
1228
+ attr_accessor :choices
1229
+
1230
+ def initialize(**args)
1231
+ update!(**args)
1232
+ end
1233
+
1234
+ # Update properties of this object
1235
+ def update!(**args)
1236
+ @choices = args[:choices] if args.key?(:choices)
1237
+ end
1238
+ end
1239
+
1240
+ # Response when listing course work.
1241
+ class ListCourseWorkResponse
1242
+ include Google::Apis::Core::Hashable
1243
+
1244
+ # Course work items that match the request.
1245
+ # Corresponds to the JSON property `courseWork`
1246
+ # @return [Array<Google::Apis::ClassroomV1::CourseWork>]
1247
+ attr_accessor :course_work
1248
+
1249
+ # Token identifying the next page of results to return. If empty, no further
1250
+ # results are available.
1251
+ # Corresponds to the JSON property `nextPageToken`
1252
+ # @return [String]
1253
+ attr_accessor :next_page_token
1254
+
1255
+ def initialize(**args)
1256
+ update!(**args)
1257
+ end
1258
+
1259
+ # Update properties of this object
1260
+ def update!(**args)
1261
+ @course_work = args[:course_work] if args.key?(:course_work)
1262
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1263
+ end
1264
+ end
1265
+
1266
+ # Student submission for course work. StudentSubmission items are generated when
1267
+ # a CourseWork item is created. StudentSubmissions that have never been accessed
1268
+ # (i.e. with `state` = NEW) may not have a creation time or update time.
1269
+ class StudentSubmission
1270
+ include Google::Apis::Core::Hashable
1271
+
1272
+ # Identifier of the course. Read-only.
1273
+ # Corresponds to the JSON property `courseId`
1274
+ # @return [String]
1275
+ attr_accessor :course_id
1276
+
1277
+ # Identifier for the course work this corresponds to. Read-only.
1278
+ # Corresponds to the JSON property `courseWorkId`
1279
+ # @return [String]
1280
+ attr_accessor :course_work_id
1281
+
1282
+ # Classroom-assigned Identifier for the student submission. This is unique among
1283
+ # submissions for the relevant course work. Read-only.
1284
+ # Corresponds to the JSON property `id`
1285
+ # @return [String]
1286
+ attr_accessor :id
1287
+
1288
+ # Identifier for the student that owns this submission. Read-only.
1289
+ # Corresponds to the JSON property `userId`
1290
+ # @return [String]
1291
+ attr_accessor :user_id
1292
+
1293
+ # Creation time of this submission. This may be unset if the student has not
1294
+ # accessed this item. Read-only.
1295
+ # Corresponds to the JSON property `creationTime`
1296
+ # @return [String]
1297
+ attr_accessor :creation_time
1298
+
1299
+ # Last update time of this submission. This may be unset if the student has not
1300
+ # accessed this item. Read-only.
1301
+ # Corresponds to the JSON property `updateTime`
1302
+ # @return [String]
1303
+ attr_accessor :update_time
1304
+
1305
+ # State of this submission. Read-only.
1306
+ # Corresponds to the JSON property `state`
1307
+ # @return [String]
1308
+ attr_accessor :state
1309
+
1310
+ # Whether this submission is late. Read-only.
1311
+ # Corresponds to the JSON property `late`
1312
+ # @return [Boolean]
1313
+ attr_accessor :late
1314
+ alias_method :late?, :late
1315
+
1316
+ # Optional pending grade. If unset, no grade was set. This must be a non-
1317
+ # negative integer value. This is only visible to and modifiable by course
1318
+ # teachers.
1319
+ # Corresponds to the JSON property `draftGrade`
1320
+ # @return [Float]
1321
+ attr_accessor :draft_grade
1322
+
1323
+ # Optional grade. If unset, no grade was set. This must be a non-negative
1324
+ # integer value. This may be modified only by course teachers.
1325
+ # Corresponds to the JSON property `assignedGrade`
1326
+ # @return [Float]
1327
+ attr_accessor :assigned_grade
1328
+
1329
+ # Absolute link to the submission in the Classroom web UI. Read-only.
1330
+ # Corresponds to the JSON property `alternateLink`
1331
+ # @return [String]
1332
+ attr_accessor :alternate_link
1333
+
1334
+ # Type of course work this submission is for. Read-only.
1335
+ # Corresponds to the JSON property `courseWorkType`
1336
+ # @return [String]
1337
+ attr_accessor :course_work_type
1338
+
1339
+ # Whether this student submission is associated with the Developer Console
1340
+ # project making the request. See google.classroom.Work.CreateCourseWork for
1341
+ # more details. Read-only.
1342
+ # Corresponds to the JSON property `associatedWithDeveloper`
1343
+ # @return [Boolean]
1344
+ attr_accessor :associated_with_developer
1345
+ alias_method :associated_with_developer?, :associated_with_developer
1346
+
1347
+ # Student work for an assignment.
1348
+ # Corresponds to the JSON property `assignmentSubmission`
1349
+ # @return [Google::Apis::ClassroomV1::AssignmentSubmission]
1350
+ attr_accessor :assignment_submission
1351
+
1352
+ # Student work for a short answer question.
1353
+ # Corresponds to the JSON property `shortAnswerSubmission`
1354
+ # @return [Google::Apis::ClassroomV1::ShortAnswerSubmission]
1355
+ attr_accessor :short_answer_submission
1356
+
1357
+ # Student work for a multiple-choice question.
1358
+ # Corresponds to the JSON property `multipleChoiceSubmission`
1359
+ # @return [Google::Apis::ClassroomV1::MultipleChoiceSubmission]
1360
+ attr_accessor :multiple_choice_submission
1361
+
1362
+ def initialize(**args)
1363
+ update!(**args)
1364
+ end
1365
+
1366
+ # Update properties of this object
1367
+ def update!(**args)
1368
+ @course_id = args[:course_id] if args.key?(:course_id)
1369
+ @course_work_id = args[:course_work_id] if args.key?(:course_work_id)
1370
+ @id = args[:id] if args.key?(:id)
1371
+ @user_id = args[:user_id] if args.key?(:user_id)
1372
+ @creation_time = args[:creation_time] if args.key?(:creation_time)
1373
+ @update_time = args[:update_time] if args.key?(:update_time)
1374
+ @state = args[:state] if args.key?(:state)
1375
+ @late = args[:late] if args.key?(:late)
1376
+ @draft_grade = args[:draft_grade] if args.key?(:draft_grade)
1377
+ @assigned_grade = args[:assigned_grade] if args.key?(:assigned_grade)
1378
+ @alternate_link = args[:alternate_link] if args.key?(:alternate_link)
1379
+ @course_work_type = args[:course_work_type] if args.key?(:course_work_type)
1380
+ @associated_with_developer = args[:associated_with_developer] if args.key?(:associated_with_developer)
1381
+ @assignment_submission = args[:assignment_submission] if args.key?(:assignment_submission)
1382
+ @short_answer_submission = args[:short_answer_submission] if args.key?(:short_answer_submission)
1383
+ @multiple_choice_submission = args[:multiple_choice_submission] if args.key?(:multiple_choice_submission)
1384
+ end
1385
+ end
1386
+
1387
+ # Student work for an assignment.
1388
+ class AssignmentSubmission
1389
+ include Google::Apis::Core::Hashable
1390
+
1391
+ # Attachments added by the student. Drive files that correspond to materials
1392
+ # with a share mode of STUDENT_COPY may not exist yet if the student has not
1393
+ # accessed the assignment in Classroom. Some attachment metadata is only
1394
+ # populated if the requesting user has permission to access it. Identifier and
1395
+ # alternate_link fields are always available, but others (e.g. title) may not be.
1396
+ # Corresponds to the JSON property `attachments`
1397
+ # @return [Array<Google::Apis::ClassroomV1::Attachment>]
1398
+ attr_accessor :attachments
1399
+
1400
+ def initialize(**args)
1401
+ update!(**args)
1402
+ end
1403
+
1404
+ # Update properties of this object
1405
+ def update!(**args)
1406
+ @attachments = args[:attachments] if args.key?(:attachments)
1407
+ end
1408
+ end
1409
+
1410
+ # Attachment added to student assignment work. When creating attachments,
1411
+ # setting the `form` field is not supported.
1412
+ class Attachment
1413
+ include Google::Apis::Core::Hashable
1414
+
1415
+ # Representation of a Google Drive file.
1416
+ # Corresponds to the JSON property `driveFile`
1417
+ # @return [Google::Apis::ClassroomV1::DriveFile]
1418
+ attr_accessor :drive_file
1419
+
1420
+ # YouTube video item.
1421
+ # Corresponds to the JSON property `youTubeVideo`
1422
+ # @return [Google::Apis::ClassroomV1::YouTubeVideo]
1423
+ attr_accessor :you_tube_video
1424
+
1425
+ # URL item.
1426
+ # Corresponds to the JSON property `link`
1427
+ # @return [Google::Apis::ClassroomV1::Link]
1428
+ attr_accessor :link
1429
+
1430
+ # Google Forms item.
1431
+ # Corresponds to the JSON property `form`
1432
+ # @return [Google::Apis::ClassroomV1::Form]
1433
+ attr_accessor :form
1434
+
1435
+ def initialize(**args)
1436
+ update!(**args)
1437
+ end
1438
+
1439
+ # Update properties of this object
1440
+ def update!(**args)
1441
+ @drive_file = args[:drive_file] if args.key?(:drive_file)
1442
+ @you_tube_video = args[:you_tube_video] if args.key?(:you_tube_video)
1443
+ @link = args[:link] if args.key?(:link)
1444
+ @form = args[:form] if args.key?(:form)
1445
+ end
1446
+ end
1447
+
1448
+ # Student work for a short answer question.
1449
+ class ShortAnswerSubmission
1450
+ include Google::Apis::Core::Hashable
1451
+
1452
+ # Student response to a short-answer question.
1453
+ # Corresponds to the JSON property `answer`
1454
+ # @return [String]
1455
+ attr_accessor :answer
1456
+
1457
+ def initialize(**args)
1458
+ update!(**args)
1459
+ end
1460
+
1461
+ # Update properties of this object
1462
+ def update!(**args)
1463
+ @answer = args[:answer] if args.key?(:answer)
1464
+ end
1465
+ end
1466
+
1467
+ # Student work for a multiple-choice question.
1468
+ class MultipleChoiceSubmission
1469
+ include Google::Apis::Core::Hashable
1470
+
1471
+ # Student's select choice.
1472
+ # Corresponds to the JSON property `answer`
1473
+ # @return [String]
1474
+ attr_accessor :answer
1475
+
1476
+ def initialize(**args)
1477
+ update!(**args)
1478
+ end
1479
+
1480
+ # Update properties of this object
1481
+ def update!(**args)
1482
+ @answer = args[:answer] if args.key?(:answer)
1483
+ end
1484
+ end
1485
+
1486
+ # Response when listing student submissions.
1487
+ class ListStudentSubmissionsResponse
1488
+ include Google::Apis::Core::Hashable
1489
+
1490
+ # Student work that matches the request.
1491
+ # Corresponds to the JSON property `studentSubmissions`
1492
+ # @return [Array<Google::Apis::ClassroomV1::StudentSubmission>]
1493
+ attr_accessor :student_submissions
1494
+
1495
+ # Token identifying the next page of results to return. If empty, no further
1496
+ # results are available.
1497
+ # Corresponds to the JSON property `nextPageToken`
1498
+ # @return [String]
1499
+ attr_accessor :next_page_token
1500
+
1501
+ def initialize(**args)
1502
+ update!(**args)
1503
+ end
1504
+
1505
+ # Update properties of this object
1506
+ def update!(**args)
1507
+ @student_submissions = args[:student_submissions] if args.key?(:student_submissions)
1508
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1509
+ end
1510
+ end
1511
+
1512
+ # Request to turn in a student submission.
1513
+ class TurnInStudentSubmissionRequest
1514
+ include Google::Apis::Core::Hashable
1515
+
1516
+ def initialize(**args)
1517
+ update!(**args)
1518
+ end
1519
+
1520
+ # Update properties of this object
1521
+ def update!(**args)
1522
+ end
1523
+ end
1524
+
1525
+ # Request to reclaim a student submission.
1526
+ class ReclaimStudentSubmissionRequest
1527
+ include Google::Apis::Core::Hashable
1528
+
1529
+ def initialize(**args)
1530
+ update!(**args)
1531
+ end
1532
+
1533
+ # Update properties of this object
1534
+ def update!(**args)
1535
+ end
1536
+ end
1537
+
1538
+ # Request to return a student submission.
1539
+ class ReturnStudentSubmissionRequest
1540
+ include Google::Apis::Core::Hashable
1541
+
1542
+ def initialize(**args)
1543
+ update!(**args)
1544
+ end
1545
+
1546
+ # Update properties of this object
1547
+ def update!(**args)
1548
+ end
1549
+ end
1550
+
1551
+ # Request to modify the attachments of a student submission.
1552
+ class ModifyAttachmentsRequest
1553
+ include Google::Apis::Core::Hashable
1554
+
1555
+ # Attachments to add. A student submission may not have more than 20 attachments.
1556
+ # Form attachments are not supported.
1557
+ # Corresponds to the JSON property `addAttachments`
1558
+ # @return [Array<Google::Apis::ClassroomV1::Attachment>]
1559
+ attr_accessor :add_attachments
1560
+
1561
+ def initialize(**args)
1562
+ update!(**args)
1563
+ end
1564
+
1565
+ # Update properties of this object
1566
+ def update!(**args)
1567
+ @add_attachments = args[:add_attachments] if args.key?(:add_attachments)
1568
+ end
1569
+ end
1570
+ end
1571
+ end
1572
+ end