google-api-client 0.8.7 → 0.9.pre1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (397) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +20 -0
  3. data/.rspec +2 -0
  4. data/.rubocop.yml +7 -0
  5. data/.rubocop_todo.yml +63 -0
  6. data/.travis.yml +21 -0
  7. data/.yardopts +12 -0
  8. data/CHANGELOG.md +6 -3
  9. data/CONTRIBUTING.md +31 -0
  10. data/Gemfile +28 -2
  11. data/MIGRATING.md +171 -0
  12. data/README.md +158 -150
  13. data/Rakefile +1 -40
  14. data/api_names.yaml +872 -0
  15. data/api_names_out.yaml +20843 -0
  16. data/bin/generate-api +93 -0
  17. data/generated/google/apis/adexchangebuyer_v1_3.rb +35 -0
  18. data/generated/google/apis/adexchangebuyer_v1_3/classes.rb +1124 -0
  19. data/generated/google/apis/adexchangebuyer_v1_3/representations.rb +375 -0
  20. data/generated/google/apis/adexchangebuyer_v1_3/service.rb +893 -0
  21. data/generated/google/apis/adexchangeseller_v2_0.rb +38 -0
  22. data/generated/google/apis/adexchangeseller_v2_0/classes.rb +792 -0
  23. data/generated/google/apis/adexchangeseller_v2_0/representations.rb +309 -0
  24. data/generated/google/apis/adexchangeseller_v2_0/service.rb +682 -0
  25. data/generated/google/apis/admin_directory_v1.rb +89 -0
  26. data/generated/google/apis/admin_directory_v1/classes.rb +2389 -0
  27. data/generated/google/apis/admin_directory_v1/representations.rb +780 -0
  28. data/generated/google/apis/admin_directory_v1/service.rb +2805 -0
  29. data/generated/google/apis/admin_reports_v1.rb +38 -0
  30. data/generated/google/apis/admin_reports_v1/classes.rb +582 -0
  31. data/generated/google/apis/admin_reports_v1/representations.rb +231 -0
  32. data/generated/google/apis/admin_reports_v1/service.rb +341 -0
  33. data/generated/google/apis/adsense_v1_4.rb +38 -0
  34. data/generated/google/apis/adsense_v1_4/classes.rb +1279 -0
  35. data/generated/google/apis/adsense_v1_4/representations.rb +493 -0
  36. data/generated/google/apis/adsense_v1_4/service.rb +1752 -0
  37. data/generated/google/apis/adsensehost_v4_1.rb +35 -0
  38. data/generated/google/apis/adsensehost_v4_1/classes.rb +834 -0
  39. data/generated/google/apis/adsensehost_v4_1/representations.rb +327 -0
  40. data/generated/google/apis/adsensehost_v4_1/service.rb +1190 -0
  41. data/generated/google/apis/analytics_v3.rb +49 -0
  42. data/generated/google/apis/analytics_v3/classes.rb +5113 -0
  43. data/generated/google/apis/analytics_v3/representations.rb +1661 -0
  44. data/generated/google/apis/analytics_v3/service.rb +3600 -0
  45. data/generated/google/apis/androidenterprise_v1.rb +34 -0
  46. data/generated/google/apis/androidenterprise_v1/classes.rb +1162 -0
  47. data/generated/google/apis/androidenterprise_v1/representations.rb +431 -0
  48. data/generated/google/apis/androidenterprise_v1/service.rb +1979 -0
  49. data/generated/google/apis/androidpublisher_v2.rb +34 -0
  50. data/generated/google/apis/androidpublisher_v2/classes.rb +1374 -0
  51. data/generated/google/apis/androidpublisher_v2/representations.rb +630 -0
  52. data/generated/google/apis/androidpublisher_v2/service.rb +2390 -0
  53. data/generated/google/apis/appsactivity_v1.rb +46 -0
  54. data/generated/google/apis/appsactivity_v1/classes.rb +392 -0
  55. data/generated/google/apis/appsactivity_v1/representations.rb +184 -0
  56. data/generated/google/apis/appsactivity_v1/service.rb +129 -0
  57. data/generated/google/apis/appstate_v1.rb +34 -0
  58. data/generated/google/apis/appstate_v1/classes.rb +154 -0
  59. data/generated/google/apis/appstate_v1/representations.rb +79 -0
  60. data/generated/google/apis/appstate_v1/service.rb +265 -0
  61. data/generated/google/apis/autoscaler_v1beta2.rb +38 -0
  62. data/generated/google/apis/autoscaler_v1beta2/classes.rb +747 -0
  63. data/generated/google/apis/autoscaler_v1beta2/representations.rb +281 -0
  64. data/generated/google/apis/autoscaler_v1beta2/service.rb +488 -0
  65. data/generated/google/apis/bigquery_v2.rb +49 -0
  66. data/generated/google/apis/bigquery_v2/classes.rb +2255 -0
  67. data/generated/google/apis/bigquery_v2/representations.rb +754 -0
  68. data/generated/google/apis/bigquery_v2/service.rb +1003 -0
  69. data/generated/google/apis/blogger_v3.rb +37 -0
  70. data/generated/google/apis/blogger_v3/classes.rb +1354 -0
  71. data/generated/google/apis/blogger_v3/representations.rb +562 -0
  72. data/generated/google/apis/blogger_v3/service.rb +1620 -0
  73. data/generated/google/apis/books_v1.rb +34 -0
  74. data/generated/google/apis/books_v1/classes.rb +3515 -0
  75. data/generated/google/apis/books_v1/representations.rb +1361 -0
  76. data/generated/google/apis/books_v1/service.rb +2170 -0
  77. data/generated/google/apis/calendar_v3.rb +37 -0
  78. data/generated/google/apis/calendar_v3/classes.rb +1702 -0
  79. data/generated/google/apis/calendar_v3/representations.rb +566 -0
  80. data/generated/google/apis/calendar_v3/service.rb +1943 -0
  81. data/generated/google/apis/civicinfo_v2.rb +31 -0
  82. data/generated/google/apis/civicinfo_v2/classes.rb +1057 -0
  83. data/generated/google/apis/civicinfo_v2/representations.rb +374 -0
  84. data/generated/google/apis/civicinfo_v2/service.rb +284 -0
  85. data/generated/google/apis/cloudmonitoring_v2beta2.rb +34 -0
  86. data/generated/google/apis/cloudmonitoring_v2beta2/classes.rb +679 -0
  87. data/generated/google/apis/cloudmonitoring_v2beta2/representations.rb +311 -0
  88. data/generated/google/apis/cloudmonitoring_v2beta2/service.rb +458 -0
  89. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +38 -0
  90. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +139 -0
  91. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +65 -0
  92. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +301 -0
  93. data/generated/google/apis/compute_v1.rb +49 -0
  94. data/generated/google/apis/compute_v1/classes.rb +6391 -0
  95. data/generated/google/apis/compute_v1/representations.rb +2209 -0
  96. data/generated/google/apis/compute_v1/service.rb +6352 -0
  97. data/generated/google/apis/container_v1beta1.rb +35 -0
  98. data/generated/google/apis/container_v1beta1/classes.rb +466 -0
  99. data/generated/google/apis/container_v1beta1/representations.rb +177 -0
  100. data/generated/google/apis/container_v1beta1/service.rb +394 -0
  101. data/generated/google/apis/content_v2.rb +35 -0
  102. data/generated/google/apis/content_v2/classes.rb +3780 -0
  103. data/generated/google/apis/content_v2/representations.rb +1456 -0
  104. data/generated/google/apis/content_v2/service.rb +1706 -0
  105. data/generated/google/apis/coordinate_v1.rb +37 -0
  106. data/generated/google/apis/coordinate_v1/classes.rb +669 -0
  107. data/generated/google/apis/coordinate_v1/representations.rb +285 -0
  108. data/generated/google/apis/coordinate_v1/service.rb +687 -0
  109. data/{lib/google/api_client/auth/compute_service_account.rb → generated/google/apis/customsearch_v1.rb} +13 -10
  110. data/generated/google/apis/customsearch_v1/classes.rb +771 -0
  111. data/generated/google/apis/customsearch_v1/representations.rb +276 -0
  112. data/generated/google/apis/customsearch_v1/service.rb +208 -0
  113. data/generated/google/apis/datastore_v1beta2.rb +40 -0
  114. data/generated/google/apis/datastore_v1beta2/classes.rb +1186 -0
  115. data/generated/google/apis/datastore_v1beta2/representations.rb +526 -0
  116. data/generated/google/apis/datastore_v1beta2/service.rb +300 -0
  117. data/generated/google/apis/deploymentmanager_v2beta2.rb +41 -0
  118. data/generated/google/apis/deploymentmanager_v2beta2/classes.rb +820 -0
  119. data/generated/google/apis/deploymentmanager_v2beta2/representations.rb +303 -0
  120. data/generated/google/apis/deploymentmanager_v2beta2/service.rb +647 -0
  121. data/generated/google/apis/dfareporting_v2_1.rb +37 -0
  122. data/generated/google/apis/dfareporting_v2_1/classes.rb +10755 -0
  123. data/generated/google/apis/dfareporting_v2_1/representations.rb +3438 -0
  124. data/generated/google/apis/dfareporting_v2_1/service.rb +8775 -0
  125. data/generated/google/apis/discovery_v1.rb +32 -0
  126. data/generated/google/apis/discovery_v1/classes.rb +947 -0
  127. data/generated/google/apis/discovery_v1/representations.rb +355 -0
  128. data/generated/google/apis/discovery_v1/service.rb +144 -0
  129. data/generated/google/apis/dns_v1.rb +41 -0
  130. data/generated/google/apis/dns_v1/classes.rb +406 -0
  131. data/generated/google/apis/dns_v1/representations.rb +151 -0
  132. data/generated/google/apis/dns_v1/service.rb +460 -0
  133. data/{spec/google/api_client/request_spec.rb → generated/google/apis/doubleclickbidmanager_v1.rb} +15 -13
  134. data/generated/google/apis/doubleclickbidmanager_v1/classes.rb +709 -0
  135. data/generated/google/apis/doubleclickbidmanager_v1/representations.rb +297 -0
  136. data/generated/google/apis/doubleclickbidmanager_v1/service.rb +349 -0
  137. data/generated/google/apis/doubleclicksearch_v2.rb +35 -0
  138. data/generated/google/apis/doubleclicksearch_v2/classes.rb +947 -0
  139. data/generated/google/apis/doubleclicksearch_v2/representations.rb +315 -0
  140. data/generated/google/apis/doubleclicksearch_v2/service.rb +490 -0
  141. data/generated/google/apis/drive_v2.rb +55 -0
  142. data/generated/google/apis/drive_v2/classes.rb +2519 -0
  143. data/generated/google/apis/drive_v2/representations.rb +781 -0
  144. data/generated/google/apis/drive_v2/service.rb +2685 -0
  145. data/generated/google/apis/fitness_v1.rb +49 -0
  146. data/generated/google/apis/fitness_v1/classes.rb +809 -0
  147. data/generated/google/apis/fitness_v1/representations.rb +295 -0
  148. data/generated/google/apis/fitness_v1/service.rb +684 -0
  149. data/generated/google/apis/fusiontables_v2.rb +37 -0
  150. data/generated/google/apis/fusiontables_v2/classes.rb +1048 -0
  151. data/generated/google/apis/fusiontables_v2/representations.rb +409 -0
  152. data/generated/google/apis/fusiontables_v2/service.rb +1496 -0
  153. data/generated/google/apis/games_configuration_v1configuration.rb +34 -0
  154. data/generated/google/apis/games_configuration_v1configuration/classes.rb +506 -0
  155. data/generated/google/apis/games_configuration_v1configuration/representations.rb +206 -0
  156. data/generated/google/apis/games_configuration_v1configuration/service.rb +578 -0
  157. data/generated/google/apis/games_v1.rb +40 -0
  158. data/generated/google/apis/games_v1/classes.rb +4578 -0
  159. data/generated/google/apis/games_v1/representations.rb +1570 -0
  160. data/generated/google/apis/games_v1/service.rb +2306 -0
  161. data/generated/google/apis/gan_v1beta1.rb +31 -0
  162. data/generated/google/apis/gan_v1beta1/classes.rb +1428 -0
  163. data/generated/google/apis/gan_v1beta1/representations.rb +428 -0
  164. data/generated/google/apis/gan_v1beta1/service.rb +692 -0
  165. data/generated/google/apis/genomics_v1beta2.rb +46 -0
  166. data/generated/google/apis/genomics_v1beta2/classes.rb +3288 -0
  167. data/generated/google/apis/genomics_v1beta2/representations.rb +1194 -0
  168. data/generated/google/apis/genomics_v1beta2/service.rb +2356 -0
  169. data/generated/google/apis/gmail_v1.rb +49 -0
  170. data/generated/google/apis/gmail_v1/classes.rb +794 -0
  171. data/generated/google/apis/gmail_v1/representations.rb +339 -0
  172. data/generated/google/apis/gmail_v1/service.rb +1502 -0
  173. data/generated/google/apis/groupsmigration_v1.rb +34 -0
  174. data/generated/google/apis/groupsmigration_v1/classes.rb +51 -0
  175. data/generated/google/apis/groupsmigration_v1/representations.rb +38 -0
  176. data/generated/google/apis/groupsmigration_v1/service.rb +111 -0
  177. data/generated/google/apis/groupssettings_v1.rb +34 -0
  178. data/generated/google/apis/groupssettings_v1/classes.rb +221 -0
  179. data/generated/google/apis/groupssettings_v1/representations.rb +64 -0
  180. data/generated/google/apis/groupssettings_v1/service.rb +179 -0
  181. data/generated/google/apis/identitytoolkit_v3.rb +31 -0
  182. data/generated/google/apis/identitytoolkit_v3/classes.rb +1229 -0
  183. data/generated/google/apis/identitytoolkit_v3/representations.rb +422 -0
  184. data/generated/google/apis/identitytoolkit_v3/service.rb +491 -0
  185. data/generated/google/apis/licensing_v1.rb +34 -0
  186. data/generated/google/apis/licensing_v1/classes.rb +132 -0
  187. data/generated/google/apis/licensing_v1/representations.rb +68 -0
  188. data/generated/google/apis/licensing_v1/service.rb +376 -0
  189. data/generated/google/apis/logging_v1beta3.rb +35 -0
  190. data/generated/google/apis/logging_v1beta3/classes.rb +505 -0
  191. data/generated/google/apis/logging_v1beta3/representations.rb +222 -0
  192. data/generated/google/apis/logging_v1beta3/service.rb +670 -0
  193. data/generated/google/apis/manager_v1beta2.rb +50 -0
  194. data/generated/google/apis/manager_v1beta2/classes.rb +1287 -0
  195. data/generated/google/apis/manager_v1beta2/representations.rb +536 -0
  196. data/generated/google/apis/manager_v1beta2/service.rb +380 -0
  197. data/generated/google/apis/mapsengine_v1.rb +38 -0
  198. data/generated/google/apis/mapsengine_v1/classes.rb +2873 -0
  199. data/generated/google/apis/mapsengine_v1/representations.rb +1235 -0
  200. data/generated/google/apis/mapsengine_v1/service.rb +3465 -0
  201. data/generated/google/apis/mirror_v1.rb +37 -0
  202. data/generated/google/apis/mirror_v1/classes.rb +1072 -0
  203. data/generated/google/apis/mirror_v1/representations.rb +350 -0
  204. data/generated/google/apis/mirror_v1/service.rb +1001 -0
  205. data/generated/google/apis/oauth2_v2.rb +43 -0
  206. data/generated/google/apis/oauth2_v2/classes.rb +245 -0
  207. data/generated/google/apis/oauth2_v2/representations.rb +94 -0
  208. data/generated/google/apis/oauth2_v2/service.rb +203 -0
  209. data/generated/google/apis/pagespeedonline_v2.rb +32 -0
  210. data/generated/google/apis/pagespeedonline_v2/classes.rb +614 -0
  211. data/generated/google/apis/pagespeedonline_v2/representations.rb +244 -0
  212. data/generated/google/apis/pagespeedonline_v2/service.rb +120 -0
  213. data/generated/google/apis/plus_domains_v1.rb +61 -0
  214. data/generated/google/apis/plus_domains_v1/classes.rb +2402 -0
  215. data/generated/google/apis/plus_domains_v1/representations.rb +873 -0
  216. data/generated/google/apis/plus_domains_v1/service.rb +924 -0
  217. data/generated/google/apis/plus_v1.rb +43 -0
  218. data/generated/google/apis/plus_v1/classes.rb +2384 -0
  219. data/generated/google/apis/plus_v1/representations.rb +812 -0
  220. data/generated/google/apis/plus_v1/service.rb +616 -0
  221. data/generated/google/apis/prediction_v1_6.rb +44 -0
  222. data/generated/google/apis/prediction_v1_6/classes.rb +751 -0
  223. data/generated/google/apis/prediction_v1_6/representations.rb +327 -0
  224. data/generated/google/apis/prediction_v1_6/service.rb +388 -0
  225. data/generated/google/apis/pubsub_v1beta2.rb +37 -0
  226. data/generated/google/apis/pubsub_v1beta2/classes.rb +824 -0
  227. data/generated/google/apis/pubsub_v1beta2/representations.rb +366 -0
  228. data/generated/google/apis/pubsub_v1beta2/service.rb +778 -0
  229. data/generated/google/apis/qpx_express_v1.rb +31 -0
  230. data/generated/google/apis/qpx_express_v1/classes.rb +1268 -0
  231. data/generated/google/apis/qpx_express_v1/representations.rb +424 -0
  232. data/generated/google/apis/qpx_express_v1/service.rb +101 -0
  233. data/generated/google/apis/replicapool_v1beta2.rb +41 -0
  234. data/generated/google/apis/replicapool_v1beta2/classes.rb +621 -0
  235. data/generated/google/apis/replicapool_v1beta2/representations.rb +235 -0
  236. data/generated/google/apis/replicapool_v1beta2/service.rb +620 -0
  237. data/generated/google/apis/replicapoolupdater_v1beta1.rb +41 -0
  238. data/generated/google/apis/replicapoolupdater_v1beta1/classes.rb +682 -0
  239. data/generated/google/apis/replicapoolupdater_v1beta1/representations.rb +247 -0
  240. data/generated/google/apis/replicapoolupdater_v1beta1/service.rb +472 -0
  241. data/generated/google/apis/reseller_v1.rb +37 -0
  242. data/generated/google/apis/reseller_v1/classes.rb +502 -0
  243. data/generated/google/apis/reseller_v1/representations.rb +199 -0
  244. data/generated/google/apis/reseller_v1/service.rb +637 -0
  245. data/generated/google/apis/resourceviews_v1beta2.rb +47 -0
  246. data/generated/google/apis/resourceviews_v1beta2/classes.rb +660 -0
  247. data/generated/google/apis/resourceviews_v1beta2/representations.rb +269 -0
  248. data/generated/google/apis/resourceviews_v1beta2/service.rb +574 -0
  249. data/generated/google/apis/site_verification_v1.rb +37 -0
  250. data/generated/google/apis/site_verification_v1/classes.rb +185 -0
  251. data/generated/google/apis/site_verification_v1/representations.rb +101 -0
  252. data/generated/google/apis/site_verification_v1/service.rb +322 -0
  253. data/generated/google/apis/sqladmin_v1beta4.rb +37 -0
  254. data/generated/google/apis/sqladmin_v1beta4/classes.rb +1817 -0
  255. data/generated/google/apis/sqladmin_v1beta4/representations.rb +688 -0
  256. data/generated/google/apis/sqladmin_v1beta4/service.rb +1534 -0
  257. data/generated/google/apis/storage_v1.rb +43 -0
  258. data/generated/google/apis/storage_v1/classes.rb +1177 -0
  259. data/generated/google/apis/storage_v1/representations.rb +427 -0
  260. data/generated/google/apis/storage_v1/service.rb +1920 -0
  261. data/generated/google/apis/tagmanager_v1.rb +52 -0
  262. data/generated/google/apis/tagmanager_v1/classes.rb +1226 -0
  263. data/generated/google/apis/tagmanager_v1/representations.rb +461 -0
  264. data/generated/google/apis/tagmanager_v1/service.rb +1978 -0
  265. data/generated/google/apis/taskqueue_v1beta2.rb +37 -0
  266. data/generated/google/apis/taskqueue_v1beta2/classes.rb +254 -0
  267. data/generated/google/apis/taskqueue_v1beta2/representations.rb +114 -0
  268. data/generated/google/apis/taskqueue_v1beta2/service.rb +416 -0
  269. data/generated/google/apis/tasks_v1.rb +37 -0
  270. data/generated/google/apis/tasks_v1/classes.rb +296 -0
  271. data/generated/google/apis/tasks_v1/representations.rb +115 -0
  272. data/generated/google/apis/tasks_v1/service.rb +657 -0
  273. data/generated/google/apis/translate_v2.rb +31 -0
  274. data/generated/google/apis/translate_v2/classes.rb +168 -0
  275. data/generated/google/apis/translate_v2/representations.rb +109 -0
  276. data/generated/google/apis/translate_v2/service.rb +185 -0
  277. data/generated/google/apis/urlshortener_v1.rb +34 -0
  278. data/generated/google/apis/urlshortener_v1/classes.rb +246 -0
  279. data/generated/google/apis/urlshortener_v1/representations.rb +111 -0
  280. data/generated/google/apis/urlshortener_v1/service.rb +179 -0
  281. data/generated/google/apis/webmasters_v3.rb +37 -0
  282. data/generated/google/apis/webmasters_v3/classes.rb +563 -0
  283. data/generated/google/apis/webmasters_v3/representations.rb +250 -0
  284. data/generated/google/apis/webmasters_v3/service.rb +587 -0
  285. data/generated/google/apis/youtube_analytics_v1.rb +46 -0
  286. data/generated/google/apis/youtube_analytics_v1/classes.rb +540 -0
  287. data/generated/google/apis/youtube_analytics_v1/representations.rb +242 -0
  288. data/generated/google/apis/youtube_analytics_v1/service.rb +567 -0
  289. data/generated/google/apis/youtube_v3.rb +49 -0
  290. data/generated/google/apis/youtube_v3/classes.rb +7225 -0
  291. data/generated/google/apis/youtube_v3/representations.rb +2529 -0
  292. data/generated/google/apis/youtube_v3/service.rb +4051 -0
  293. data/google-api-client.gemspec +27 -39
  294. data/lib/google/api_client/auth/storage.rb +3 -2
  295. data/lib/google/api_client/auth/storages/file_store.rb +1 -3
  296. data/lib/google/api_client/auth/storages/redis_store.rb +6 -2
  297. data/lib/google/apis.rb +48 -0
  298. data/lib/google/apis/core/api_command.rb +128 -0
  299. data/lib/google/apis/core/base_service.rb +314 -0
  300. data/lib/google/apis/core/batch.rb +222 -0
  301. data/lib/google/apis/core/download.rb +94 -0
  302. data/lib/google/apis/core/hashable.rb +44 -0
  303. data/lib/google/apis/core/http_command.rb +275 -0
  304. data/lib/google/apis/core/json_representation.rb +122 -0
  305. data/lib/google/{api_client/version.rb → apis/core/logging.rb} +12 -8
  306. data/lib/google/apis/core/multipart.rb +173 -0
  307. data/lib/google/apis/core/upload.rb +275 -0
  308. data/lib/google/{api_client → apis}/errors.rb +32 -28
  309. data/lib/google/apis/generator.rb +70 -0
  310. data/lib/google/apis/generator/annotator.rb +271 -0
  311. data/lib/google/apis/generator/helpers.rb +74 -0
  312. data/lib/google/apis/generator/model.rb +130 -0
  313. data/lib/google/apis/generator/template.rb +124 -0
  314. data/lib/google/apis/generator/templates/_class.tmpl +40 -0
  315. data/lib/google/apis/generator/templates/_method.tmpl +90 -0
  316. data/lib/google/apis/generator/templates/_representation.tmpl +51 -0
  317. data/lib/google/apis/generator/templates/_representation_stub.tmpl +15 -0
  318. data/lib/google/apis/generator/templates/_representation_type.tmpl +10 -0
  319. data/lib/google/{api_client/reference.rb → apis/generator/templates/classes.rb.tmpl} +11 -9
  320. data/lib/google/apis/generator/templates/module.rb.tmpl +40 -0
  321. data/lib/google/apis/generator/templates/representations.rb.tmpl +32 -0
  322. data/lib/google/apis/generator/templates/service.rb.tmpl +60 -0
  323. data/lib/google/apis/options.rb +79 -0
  324. data/lib/google/apis/version.rb +39 -0
  325. data/rakelib/metrics.rake +22 -0
  326. data/rakelib/rubocop.rake +10 -0
  327. data/rakelib/spec.rake +11 -0
  328. data/rakelib/yard.rake +11 -0
  329. data/samples/calendar/calendar.rb +43 -0
  330. data/samples/drive/drive.rb +40 -0
  331. data/samples/pubsub/pubsub.rb +52 -0
  332. data/{lib/google/api_client/discovery.rb → samples/translate/translate.rb} +14 -5
  333. data/script/generate +79 -0
  334. data/script/package +8 -0
  335. data/script/release +15 -0
  336. data/spec/fixtures/files/api_names.yaml +3 -0
  337. data/spec/fixtures/files/auth_stored_credentials.json +8 -0
  338. data/spec/fixtures/files/client_secrets.json +1 -0
  339. data/spec/fixtures/files/test.blah +1 -0
  340. data/spec/fixtures/files/test.txt +1 -0
  341. data/spec/fixtures/files/test_api.json +440 -0
  342. data/spec/google/api_client/auth/storage_spec.rb +1 -3
  343. data/spec/google/api_client/auth/storages/file_store_spec.rb +1 -2
  344. data/spec/google/api_client/auth/storages/redis_store_spec.rb +1 -3
  345. data/spec/google/apis/core/api_command_spec.rb +170 -0
  346. data/spec/google/apis/core/batch_spec.rb +128 -0
  347. data/spec/google/apis/core/download_spec.rb +90 -0
  348. data/spec/google/apis/core/hashable_spec.rb +60 -0
  349. data/spec/google/apis/core/http_command_spec.rb +238 -0
  350. data/spec/google/apis/core/json_representation_spec.rb +192 -0
  351. data/spec/google/apis/core/service_spec.rb +247 -0
  352. data/spec/google/apis/core/upload_spec.rb +238 -0
  353. data/{lib/google/api_client/service_account.rb → spec/google/apis/generated_spec.rb} +14 -8
  354. data/spec/google/apis/generator/generator_spec.rb +272 -0
  355. data/spec/google/apis/logging_spec.rb +45 -0
  356. data/spec/google/apis/options_spec.rb +40 -0
  357. data/spec/integration_tests/drive_spec.rb +35 -0
  358. data/spec/integration_tests/pubsub_spec.rb +48 -0
  359. data/spec/integration_tests/url_shortener_spec.rb +31 -0
  360. data/spec/spec_helper.rb +102 -46
  361. metadata +433 -178
  362. data/lib/compat/multi_json.rb +0 -19
  363. data/lib/google/api_client.rb +0 -750
  364. data/lib/google/api_client/auth/file_storage.rb +0 -59
  365. data/lib/google/api_client/auth/jwt_asserter.rb +0 -126
  366. data/lib/google/api_client/auth/key_utils.rb +0 -93
  367. data/lib/google/api_client/auth/pkcs12.rb +0 -41
  368. data/lib/google/api_client/batch.rb +0 -326
  369. data/lib/google/api_client/charset.rb +0 -33
  370. data/lib/google/api_client/discovery/api.rb +0 -310
  371. data/lib/google/api_client/discovery/media.rb +0 -77
  372. data/lib/google/api_client/discovery/method.rb +0 -363
  373. data/lib/google/api_client/discovery/resource.rb +0 -156
  374. data/lib/google/api_client/discovery/schema.rb +0 -117
  375. data/lib/google/api_client/environment.rb +0 -42
  376. data/lib/google/api_client/gzip.rb +0 -28
  377. data/lib/google/api_client/logging.rb +0 -32
  378. data/lib/google/api_client/media.rb +0 -259
  379. data/lib/google/api_client/railtie.rb +0 -18
  380. data/lib/google/api_client/request.rb +0 -350
  381. data/lib/google/api_client/result.rb +0 -255
  382. data/lib/google/api_client/service.rb +0 -233
  383. data/lib/google/api_client/service/batch.rb +0 -110
  384. data/lib/google/api_client/service/request.rb +0 -144
  385. data/lib/google/api_client/service/resource.rb +0 -40
  386. data/lib/google/api_client/service/result.rb +0 -162
  387. data/lib/google/api_client/service/simple_file_store.rb +0 -151
  388. data/lib/google/api_client/service/stub_generator.rb +0 -61
  389. data/spec/google/api_client/batch_spec.rb +0 -248
  390. data/spec/google/api_client/discovery_spec.rb +0 -708
  391. data/spec/google/api_client/gzip_spec.rb +0 -98
  392. data/spec/google/api_client/media_spec.rb +0 -178
  393. data/spec/google/api_client/result_spec.rb +0 -207
  394. data/spec/google/api_client/service_account_spec.rb +0 -169
  395. data/spec/google/api_client/service_spec.rb +0 -618
  396. data/spec/google/api_client/simple_file_store_spec.rb +0 -133
  397. data/spec/google/api_client_spec.rb +0 -352
@@ -0,0 +1,31 @@
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/civicinfo_v2/service.rb'
16
+ require 'google/apis/civicinfo_v2/classes.rb'
17
+ require 'google/apis/civicinfo_v2/representations.rb'
18
+
19
+ module Google
20
+ module Apis
21
+ # Google Civic Information API
22
+ #
23
+ # An API for accessing civic information.
24
+ #
25
+ # @see https://developers.google.com/civic-information
26
+ module CivicinfoV2
27
+ VERSION = 'V2'
28
+ REVISION = '20150302'
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,1057 @@
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 CivicinfoV2
24
+
25
+ # Describes information about a regional election administrative area.
26
+ class AdministrationRegion
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Information about an election administrative body (e.g. County Board of
30
+ # Elections).
31
+ # Corresponds to the JSON property `electionAdministrationBody`
32
+ # @return [Google::Apis::CivicinfoV2::AdministrativeBody]
33
+ attr_accessor :election_administration_body
34
+
35
+ # An ID for this object. IDs may change in future requests and should not be
36
+ # cached. Access to this field requires special access that can be requested
37
+ # from the Request more link on the Quotas page.
38
+ # Corresponds to the JSON property `id`
39
+ # @return [String]
40
+ attr_accessor :id
41
+
42
+ # Describes information about a regional election administrative area.
43
+ # Corresponds to the JSON property `local_jurisdiction`
44
+ # @return [Google::Apis::CivicinfoV2::AdministrationRegion]
45
+ attr_accessor :local_jurisdiction
46
+
47
+ # The name of the jurisdiction.
48
+ # Corresponds to the JSON property `name`
49
+ # @return [String]
50
+ attr_accessor :name
51
+
52
+ # A list of sources for this area. If multiple sources are listed the data has
53
+ # been aggregated from those sources.
54
+ # Corresponds to the JSON property `sources`
55
+ # @return [Array<Google::Apis::CivicinfoV2::Source>]
56
+ attr_accessor :sources
57
+
58
+ def initialize(**args)
59
+ update!(**args)
60
+ end
61
+
62
+ # Update properties of this object
63
+ def update!(**args)
64
+ @election_administration_body = args[:election_administration_body] unless args[:election_administration_body].nil?
65
+ @id = args[:id] unless args[:id].nil?
66
+ @local_jurisdiction = args[:local_jurisdiction] unless args[:local_jurisdiction].nil?
67
+ @name = args[:name] unless args[:name].nil?
68
+ @sources = args[:sources] unless args[:sources].nil?
69
+ end
70
+ end
71
+
72
+ # Information about an election administrative body (e.g. County Board of
73
+ # Elections).
74
+ class AdministrativeBody
75
+ include Google::Apis::Core::Hashable
76
+
77
+ # A URL provided by this administrative body for information on absentee voting.
78
+ # Corresponds to the JSON property `absenteeVotingInfoUrl`
79
+ # @return [String]
80
+ attr_accessor :absentee_voting_info_url
81
+
82
+ # A URL provided by this administrative body to give contest information to the
83
+ # voter.
84
+ # Corresponds to the JSON property `ballotInfoUrl`
85
+ # @return [String]
86
+ attr_accessor :ballot_info_url
87
+
88
+ # A simple representation of an address.
89
+ # Corresponds to the JSON property `correspondenceAddress`
90
+ # @return [Google::Apis::CivicinfoV2::SimpleAddressType]
91
+ attr_accessor :correspondence_address
92
+
93
+ # A URL provided by this administrative body for looking up general election
94
+ # information.
95
+ # Corresponds to the JSON property `electionInfoUrl`
96
+ # @return [String]
97
+ attr_accessor :election_info_url
98
+
99
+ # The election officials for this election administrative body.
100
+ # Corresponds to the JSON property `electionOfficials`
101
+ # @return [Array<Google::Apis::CivicinfoV2::ElectionOfficial>]
102
+ attr_accessor :election_officials
103
+
104
+ # A URL provided by this administrative body for confirming that the voter is
105
+ # registered to vote.
106
+ # Corresponds to the JSON property `electionRegistrationConfirmationUrl`
107
+ # @return [String]
108
+ attr_accessor :election_registration_confirmation_url
109
+
110
+ # A URL provided by this administrative body for looking up how to register to
111
+ # vote.
112
+ # Corresponds to the JSON property `electionRegistrationUrl`
113
+ # @return [String]
114
+ attr_accessor :election_registration_url
115
+
116
+ # A URL provided by this administrative body describing election rules to the
117
+ # voter.
118
+ # Corresponds to the JSON property `electionRulesUrl`
119
+ # @return [String]
120
+ attr_accessor :election_rules_url
121
+
122
+ # A description of the hours of operation for this administrative body.
123
+ # Corresponds to the JSON property `hoursOfOperation`
124
+ # @return [String]
125
+ attr_accessor :hours_of_operation
126
+
127
+ # The name of this election administrative body.
128
+ # Corresponds to the JSON property `name`
129
+ # @return [String]
130
+ attr_accessor :name
131
+
132
+ # A simple representation of an address.
133
+ # Corresponds to the JSON property `physicalAddress`
134
+ # @return [Google::Apis::CivicinfoV2::SimpleAddressType]
135
+ attr_accessor :physical_address
136
+
137
+ # A description of the services this administrative body may provide.
138
+ # Corresponds to the JSON property `voter_services`
139
+ # @return [Array<String>]
140
+ attr_accessor :voter_services
141
+
142
+ # A URL provided by this administrative body for looking up where to vote.
143
+ # Corresponds to the JSON property `votingLocationFinderUrl`
144
+ # @return [String]
145
+ attr_accessor :voting_location_finder_url
146
+
147
+ def initialize(**args)
148
+ update!(**args)
149
+ end
150
+
151
+ # Update properties of this object
152
+ def update!(**args)
153
+ @absentee_voting_info_url = args[:absentee_voting_info_url] unless args[:absentee_voting_info_url].nil?
154
+ @ballot_info_url = args[:ballot_info_url] unless args[:ballot_info_url].nil?
155
+ @correspondence_address = args[:correspondence_address] unless args[:correspondence_address].nil?
156
+ @election_info_url = args[:election_info_url] unless args[:election_info_url].nil?
157
+ @election_officials = args[:election_officials] unless args[:election_officials].nil?
158
+ @election_registration_confirmation_url = args[:election_registration_confirmation_url] unless args[:election_registration_confirmation_url].nil?
159
+ @election_registration_url = args[:election_registration_url] unless args[:election_registration_url].nil?
160
+ @election_rules_url = args[:election_rules_url] unless args[:election_rules_url].nil?
161
+ @hours_of_operation = args[:hours_of_operation] unless args[:hours_of_operation].nil?
162
+ @name = args[:name] unless args[:name].nil?
163
+ @physical_address = args[:physical_address] unless args[:physical_address].nil?
164
+ @voter_services = args[:voter_services] unless args[:voter_services].nil?
165
+ @voting_location_finder_url = args[:voting_location_finder_url] unless args[:voting_location_finder_url].nil?
166
+ end
167
+ end
168
+
169
+ # Information about a candidate running for elected office.
170
+ class Candidate
171
+ include Google::Apis::Core::Hashable
172
+
173
+ # The URL for the candidate's campaign web site.
174
+ # Corresponds to the JSON property `candidateUrl`
175
+ # @return [String]
176
+ attr_accessor :candidate_url
177
+
178
+ # A list of known (social) media channels for this candidate.
179
+ # Corresponds to the JSON property `channels`
180
+ # @return [Array<Google::Apis::CivicinfoV2::Channel>]
181
+ attr_accessor :channels
182
+
183
+ # The email address for the candidate's campaign.
184
+ # Corresponds to the JSON property `email`
185
+ # @return [String]
186
+ attr_accessor :email
187
+
188
+ # The candidate's name.
189
+ # Corresponds to the JSON property `name`
190
+ # @return [String]
191
+ attr_accessor :name
192
+
193
+ # The order the candidate appears on the ballot for this contest.
194
+ # Corresponds to the JSON property `orderOnBallot`
195
+ # @return [String]
196
+ attr_accessor :order_on_ballot
197
+
198
+ # The full name of the party the candidate is a member of.
199
+ # Corresponds to the JSON property `party`
200
+ # @return [String]
201
+ attr_accessor :party
202
+
203
+ # The voice phone number for the candidate's campaign office.
204
+ # Corresponds to the JSON property `phone`
205
+ # @return [String]
206
+ attr_accessor :phone
207
+
208
+ # A URL for a photo of the candidate.
209
+ # Corresponds to the JSON property `photoUrl`
210
+ # @return [String]
211
+ attr_accessor :photo_url
212
+
213
+ def initialize(**args)
214
+ update!(**args)
215
+ end
216
+
217
+ # Update properties of this object
218
+ def update!(**args)
219
+ @candidate_url = args[:candidate_url] unless args[:candidate_url].nil?
220
+ @channels = args[:channels] unless args[:channels].nil?
221
+ @email = args[:email] unless args[:email].nil?
222
+ @name = args[:name] unless args[:name].nil?
223
+ @order_on_ballot = args[:order_on_ballot] unless args[:order_on_ballot].nil?
224
+ @party = args[:party] unless args[:party].nil?
225
+ @phone = args[:phone] unless args[:phone].nil?
226
+ @photo_url = args[:photo_url] unless args[:photo_url].nil?
227
+ end
228
+ end
229
+
230
+ # A social media or web channel for a candidate.
231
+ class Channel
232
+ include Google::Apis::Core::Hashable
233
+
234
+ # The unique public identifier for the candidate's channel.
235
+ # Corresponds to the JSON property `id`
236
+ # @return [String]
237
+ attr_accessor :id
238
+
239
+ # The type of channel. The following is a list of types of channels, but is not
240
+ # exhaustive. More channel types may be added at a later time. One of:
241
+ # GooglePlus, YouTube, Facebook, Twitter
242
+ # Corresponds to the JSON property `type`
243
+ # @return [String]
244
+ attr_accessor :type
245
+
246
+ def initialize(**args)
247
+ update!(**args)
248
+ end
249
+
250
+ # Update properties of this object
251
+ def update!(**args)
252
+ @id = args[:id] unless args[:id].nil?
253
+ @type = args[:type] unless args[:type].nil?
254
+ end
255
+ end
256
+
257
+ # Information about a contest that appears on a voter's ballot.
258
+ class Contest
259
+ include Google::Apis::Core::Hashable
260
+
261
+ # A number specifying the position of this contest on the voter's ballot.
262
+ # Corresponds to the JSON property `ballotPlacement`
263
+ # @return [String]
264
+ attr_accessor :ballot_placement
265
+
266
+ # The candidate choices for this contest.
267
+ # Corresponds to the JSON property `candidates`
268
+ # @return [Array<Google::Apis::CivicinfoV2::Candidate>]
269
+ attr_accessor :candidates
270
+
271
+ # Describes the geographic scope of a contest.
272
+ # Corresponds to the JSON property `district`
273
+ # @return [Google::Apis::CivicinfoV2::ElectoralDistrict]
274
+ attr_accessor :district
275
+
276
+ # A description of any additional eligibility requirements for voting in this
277
+ # contest.
278
+ # Corresponds to the JSON property `electorateSpecifications`
279
+ # @return [String]
280
+ attr_accessor :electorate_specifications
281
+
282
+ # An ID for this object. IDs may change in future requests and should not be
283
+ # cached. Access to this field requires special access that can be requested
284
+ # from the Request more link on the Quotas page.
285
+ # Corresponds to the JSON property `id`
286
+ # @return [String]
287
+ attr_accessor :id
288
+
289
+ # The levels of government of the office for this contest. There may be more
290
+ # than one in cases where a jurisdiction effectively acts at two different
291
+ # levels of government; for example, the mayor of the District of Columbia acts
292
+ # at "locality" level, but also effectively at both "administrative-area-2" and "
293
+ # administrative-area-1".
294
+ # Corresponds to the JSON property `level`
295
+ # @return [Array<String>]
296
+ attr_accessor :level
297
+
298
+ # The number of candidates that will be elected to office in this contest.
299
+ # Corresponds to the JSON property `numberElected`
300
+ # @return [String]
301
+ attr_accessor :number_elected
302
+
303
+ # The number of candidates that a voter may vote for in this contest.
304
+ # Corresponds to the JSON property `numberVotingFor`
305
+ # @return [String]
306
+ attr_accessor :number_voting_for
307
+
308
+ # The name of the office for this contest.
309
+ # Corresponds to the JSON property `office`
310
+ # @return [String]
311
+ attr_accessor :office
312
+
313
+ # If this is a partisan election, the name of the party it is for.
314
+ # Corresponds to the JSON property `primaryParty`
315
+ # @return [String]
316
+ attr_accessor :primary_party
317
+
318
+ # A brief description of the referendum. This field is only populated for
319
+ # contests of type 'Referendum'.
320
+ # Corresponds to the JSON property `referendumSubtitle`
321
+ # @return [String]
322
+ attr_accessor :referendum_subtitle
323
+
324
+ # The title of the referendum (e.g. 'Proposition 42'). This field is only
325
+ # populated for contests of type 'Referendum'.
326
+ # Corresponds to the JSON property `referendumTitle`
327
+ # @return [String]
328
+ attr_accessor :referendum_title
329
+
330
+ # A link to the referendum. This field is only populated for contests of type '
331
+ # Referendum'.
332
+ # Corresponds to the JSON property `referendumUrl`
333
+ # @return [String]
334
+ attr_accessor :referendum_url
335
+
336
+ # The roles which this office fulfills.
337
+ # Corresponds to the JSON property `roles`
338
+ # @return [Array<String>]
339
+ attr_accessor :roles
340
+
341
+ # A list of sources for this contest. If multiple sources are listed, the data
342
+ # has been aggregated from those sources.
343
+ # Corresponds to the JSON property `sources`
344
+ # @return [Array<Google::Apis::CivicinfoV2::Source>]
345
+ attr_accessor :sources
346
+
347
+ # "Yes" or "No" depending on whether this a contest being held outside the
348
+ # normal election cycle.
349
+ # Corresponds to the JSON property `special`
350
+ # @return [String]
351
+ attr_accessor :special
352
+
353
+ # The type of contest. Usually this will be 'General', 'Primary', or 'Run-off'
354
+ # for contests with candidates. For referenda this will be 'Referendum'.
355
+ # Corresponds to the JSON property `type`
356
+ # @return [String]
357
+ attr_accessor :type
358
+
359
+ def initialize(**args)
360
+ update!(**args)
361
+ end
362
+
363
+ # Update properties of this object
364
+ def update!(**args)
365
+ @ballot_placement = args[:ballot_placement] unless args[:ballot_placement].nil?
366
+ @candidates = args[:candidates] unless args[:candidates].nil?
367
+ @district = args[:district] unless args[:district].nil?
368
+ @electorate_specifications = args[:electorate_specifications] unless args[:electorate_specifications].nil?
369
+ @id = args[:id] unless args[:id].nil?
370
+ @level = args[:level] unless args[:level].nil?
371
+ @number_elected = args[:number_elected] unless args[:number_elected].nil?
372
+ @number_voting_for = args[:number_voting_for] unless args[:number_voting_for].nil?
373
+ @office = args[:office] unless args[:office].nil?
374
+ @primary_party = args[:primary_party] unless args[:primary_party].nil?
375
+ @referendum_subtitle = args[:referendum_subtitle] unless args[:referendum_subtitle].nil?
376
+ @referendum_title = args[:referendum_title] unless args[:referendum_title].nil?
377
+ @referendum_url = args[:referendum_url] unless args[:referendum_url].nil?
378
+ @roles = args[:roles] unless args[:roles].nil?
379
+ @sources = args[:sources] unless args[:sources].nil?
380
+ @special = args[:special] unless args[:special].nil?
381
+ @type = args[:type] unless args[:type].nil?
382
+ end
383
+ end
384
+
385
+ # The result of a division search query.
386
+ class SearchDivisionResponse
387
+ include Google::Apis::Core::Hashable
388
+
389
+ # Identifies what kind of resource this is. Value: the fixed string "civicinfo#
390
+ # divisionSearchResponse".
391
+ # Corresponds to the JSON property `kind`
392
+ # @return [String]
393
+ attr_accessor :kind
394
+
395
+ #
396
+ # Corresponds to the JSON property `results`
397
+ # @return [Array<Google::Apis::CivicinfoV2::DivisionSearchResult>]
398
+ attr_accessor :results
399
+
400
+ def initialize(**args)
401
+ update!(**args)
402
+ end
403
+
404
+ # Update properties of this object
405
+ def update!(**args)
406
+ @kind = args[:kind] unless args[:kind].nil?
407
+ @results = args[:results] unless args[:results].nil?
408
+ end
409
+ end
410
+
411
+ # Represents a political geographic division that matches the requested query.
412
+ class DivisionSearchResult
413
+ include Google::Apis::Core::Hashable
414
+
415
+ # Other Open Civic Data identifiers that refer to the same division -- for
416
+ # example, those that refer to other political divisions whose boundaries are
417
+ # defined to be coterminous with this one. For example, ocd-division/country:us/
418
+ # state:wy will include an alias of ocd-division/country:us/state:wy/cd:1, since
419
+ # Wyoming has only one Congressional district.
420
+ # Corresponds to the JSON property `aliases`
421
+ # @return [Array<String>]
422
+ attr_accessor :aliases
423
+
424
+ # The name of the division.
425
+ # Corresponds to the JSON property `name`
426
+ # @return [String]
427
+ attr_accessor :name
428
+
429
+ # The unique Open Civic Data identifier for this division.
430
+ # Corresponds to the JSON property `ocdId`
431
+ # @return [String]
432
+ attr_accessor :ocd_id
433
+
434
+ def initialize(**args)
435
+ update!(**args)
436
+ end
437
+
438
+ # Update properties of this object
439
+ def update!(**args)
440
+ @aliases = args[:aliases] unless args[:aliases].nil?
441
+ @name = args[:name] unless args[:name].nil?
442
+ @ocd_id = args[:ocd_id] unless args[:ocd_id].nil?
443
+ end
444
+ end
445
+
446
+ # Information about the election that was queried.
447
+ class Election
448
+ include Google::Apis::Core::Hashable
449
+
450
+ # Day of the election in YYYY-MM-DD format.
451
+ # Corresponds to the JSON property `electionDay`
452
+ # @return [String]
453
+ attr_accessor :election_day
454
+
455
+ # The unique ID of this election.
456
+ # Corresponds to the JSON property `id`
457
+ # @return [String]
458
+ attr_accessor :id
459
+
460
+ # A displayable name for the election.
461
+ # Corresponds to the JSON property `name`
462
+ # @return [String]
463
+ attr_accessor :name
464
+
465
+ def initialize(**args)
466
+ update!(**args)
467
+ end
468
+
469
+ # Update properties of this object
470
+ def update!(**args)
471
+ @election_day = args[:election_day] unless args[:election_day].nil?
472
+ @id = args[:id] unless args[:id].nil?
473
+ @name = args[:name] unless args[:name].nil?
474
+ end
475
+ end
476
+
477
+ # Information about individual election officials.
478
+ class ElectionOfficial
479
+ include Google::Apis::Core::Hashable
480
+
481
+ # The email address of the election official.
482
+ # Corresponds to the JSON property `emailAddress`
483
+ # @return [String]
484
+ attr_accessor :email_address
485
+
486
+ # The fax number of the election official.
487
+ # Corresponds to the JSON property `faxNumber`
488
+ # @return [String]
489
+ attr_accessor :fax_number
490
+
491
+ # The full name of the election official.
492
+ # Corresponds to the JSON property `name`
493
+ # @return [String]
494
+ attr_accessor :name
495
+
496
+ # The office phone number of the election official.
497
+ # Corresponds to the JSON property `officePhoneNumber`
498
+ # @return [String]
499
+ attr_accessor :office_phone_number
500
+
501
+ # The title of the election official.
502
+ # Corresponds to the JSON property `title`
503
+ # @return [String]
504
+ attr_accessor :title
505
+
506
+ def initialize(**args)
507
+ update!(**args)
508
+ end
509
+
510
+ # Update properties of this object
511
+ def update!(**args)
512
+ @email_address = args[:email_address] unless args[:email_address].nil?
513
+ @fax_number = args[:fax_number] unless args[:fax_number].nil?
514
+ @name = args[:name] unless args[:name].nil?
515
+ @office_phone_number = args[:office_phone_number] unless args[:office_phone_number].nil?
516
+ @title = args[:title] unless args[:title].nil?
517
+ end
518
+ end
519
+
520
+ # The list of elections available for this version of the API.
521
+ class QueryElectionsResponse
522
+ include Google::Apis::Core::Hashable
523
+
524
+ # A list of available elections
525
+ # Corresponds to the JSON property `elections`
526
+ # @return [Array<Google::Apis::CivicinfoV2::Election>]
527
+ attr_accessor :elections
528
+
529
+ # Identifies what kind of resource this is. Value: the fixed string "civicinfo#
530
+ # electionsQueryResponse".
531
+ # Corresponds to the JSON property `kind`
532
+ # @return [String]
533
+ attr_accessor :kind
534
+
535
+ def initialize(**args)
536
+ update!(**args)
537
+ end
538
+
539
+ # Update properties of this object
540
+ def update!(**args)
541
+ @elections = args[:elections] unless args[:elections].nil?
542
+ @kind = args[:kind] unless args[:kind].nil?
543
+ end
544
+ end
545
+
546
+ # Describes the geographic scope of a contest.
547
+ class ElectoralDistrict
548
+ include Google::Apis::Core::Hashable
549
+
550
+ # An identifier for this district, relative to its scope. For example, the 34th
551
+ # State Senate district would have id "34" and a scope of stateUpper.
552
+ # Corresponds to the JSON property `id`
553
+ # @return [String]
554
+ attr_accessor :id
555
+
556
+ # The name of the district.
557
+ # Corresponds to the JSON property `name`
558
+ # @return [String]
559
+ attr_accessor :name
560
+
561
+ # The geographic scope of this district. If unspecified the district's geography
562
+ # is not known. One of: national, statewide, congressional, stateUpper,
563
+ # stateLower, countywide, judicial, schoolBoard, cityWide, township,
564
+ # countyCouncil, cityCouncil, ward, special
565
+ # Corresponds to the JSON property `scope`
566
+ # @return [String]
567
+ attr_accessor :scope
568
+
569
+ def initialize(**args)
570
+ update!(**args)
571
+ end
572
+
573
+ # Update properties of this object
574
+ def update!(**args)
575
+ @id = args[:id] unless args[:id].nil?
576
+ @name = args[:name] unless args[:name].nil?
577
+ @scope = args[:scope] unless args[:scope].nil?
578
+ end
579
+ end
580
+
581
+ # Describes a political geography.
582
+ class GeographicDivision
583
+ include Google::Apis::Core::Hashable
584
+
585
+ # Any other valid OCD IDs that refer to the same division.
586
+ # Because OCD IDs are meant to be human-readable and at least somewhat
587
+ # predictable, there are occasionally several identifiers for a single division.
588
+ # These identifiers are defined to be equivalent to one another, and one is
589
+ # always indicated as the primary identifier. The primary identifier will be
590
+ # returned in ocd_id above, and any other equivalent valid identifiers will be
591
+ # returned in this list.
592
+ # For example, if this division's OCD ID is ocd-division/country:us/district:dc,
593
+ # this will contain ocd-division/country:us/state:dc.
594
+ # Corresponds to the JSON property `alsoKnownAs`
595
+ # @return [Array<String>]
596
+ attr_accessor :also_known_as
597
+
598
+ # The name of the division.
599
+ # Corresponds to the JSON property `name`
600
+ # @return [String]
601
+ attr_accessor :name
602
+
603
+ # List of indices in the offices array, one for each office elected from this
604
+ # division. Will only be present if includeOffices was true (or absent) in the
605
+ # request.
606
+ # Corresponds to the JSON property `officeIndices`
607
+ # @return [Array<Fixnum>]
608
+ attr_accessor :office_indices
609
+
610
+ def initialize(**args)
611
+ update!(**args)
612
+ end
613
+
614
+ # Update properties of this object
615
+ def update!(**args)
616
+ @also_known_as = args[:also_known_as] unless args[:also_known_as].nil?
617
+ @name = args[:name] unless args[:name].nil?
618
+ @office_indices = args[:office_indices] unless args[:office_indices].nil?
619
+ end
620
+ end
621
+
622
+ # Information about an Office held by one or more Officials.
623
+ class Office
624
+ include Google::Apis::Core::Hashable
625
+
626
+ # The OCD ID of the division with which this office is associated.
627
+ # Corresponds to the JSON property `divisionId`
628
+ # @return [String]
629
+ attr_accessor :division_id
630
+
631
+ # The levels of government of which this office is part. There may be more than
632
+ # one in cases where a jurisdiction effectively acts at two different levels of
633
+ # government; for example, the mayor of the District of Columbia acts at "
634
+ # locality" level, but also effectively at both "administrative-area-2" and "
635
+ # administrative-area-1".
636
+ # Corresponds to the JSON property `levels`
637
+ # @return [Array<String>]
638
+ attr_accessor :levels
639
+
640
+ # The human-readable name of the office.
641
+ # Corresponds to the JSON property `name`
642
+ # @return [String]
643
+ attr_accessor :name
644
+
645
+ # List of indices in the officials array of people who presently hold this
646
+ # office.
647
+ # Corresponds to the JSON property `officialIndices`
648
+ # @return [Array<Fixnum>]
649
+ attr_accessor :official_indices
650
+
651
+ # The roles which this office fulfills. Roles are not meant to be exhaustive, or
652
+ # to exactly specify the entire set of responsibilities of a given office, but
653
+ # are meant to be rough categories that are useful for general selection from or
654
+ # sorting of a list of offices.
655
+ # Corresponds to the JSON property `roles`
656
+ # @return [Array<String>]
657
+ attr_accessor :roles
658
+
659
+ # A list of sources for this office. If multiple sources are listed, the data
660
+ # has been aggregated from those sources.
661
+ # Corresponds to the JSON property `sources`
662
+ # @return [Array<Google::Apis::CivicinfoV2::Source>]
663
+ attr_accessor :sources
664
+
665
+ def initialize(**args)
666
+ update!(**args)
667
+ end
668
+
669
+ # Update properties of this object
670
+ def update!(**args)
671
+ @division_id = args[:division_id] unless args[:division_id].nil?
672
+ @levels = args[:levels] unless args[:levels].nil?
673
+ @name = args[:name] unless args[:name].nil?
674
+ @official_indices = args[:official_indices] unless args[:official_indices].nil?
675
+ @roles = args[:roles] unless args[:roles].nil?
676
+ @sources = args[:sources] unless args[:sources].nil?
677
+ end
678
+ end
679
+
680
+ # Information about a person holding an elected office.
681
+ class Official
682
+ include Google::Apis::Core::Hashable
683
+
684
+ # Addresses at which to contact the official.
685
+ # Corresponds to the JSON property `address`
686
+ # @return [Array<Google::Apis::CivicinfoV2::SimpleAddressType>]
687
+ attr_accessor :address
688
+
689
+ # A list of known (social) media channels for this official.
690
+ # Corresponds to the JSON property `channels`
691
+ # @return [Array<Google::Apis::CivicinfoV2::Channel>]
692
+ attr_accessor :channels
693
+
694
+ # The direct email addresses for the official.
695
+ # Corresponds to the JSON property `emails`
696
+ # @return [Array<String>]
697
+ attr_accessor :emails
698
+
699
+ # The official's name.
700
+ # Corresponds to the JSON property `name`
701
+ # @return [String]
702
+ attr_accessor :name
703
+
704
+ # The full name of the party the official belongs to.
705
+ # Corresponds to the JSON property `party`
706
+ # @return [String]
707
+ attr_accessor :party
708
+
709
+ # The official's public contact phone numbers.
710
+ # Corresponds to the JSON property `phones`
711
+ # @return [Array<String>]
712
+ attr_accessor :phones
713
+
714
+ # A URL for a photo of the official.
715
+ # Corresponds to the JSON property `photoUrl`
716
+ # @return [String]
717
+ attr_accessor :photo_url
718
+
719
+ # The official's public website URLs.
720
+ # Corresponds to the JSON property `urls`
721
+ # @return [Array<String>]
722
+ attr_accessor :urls
723
+
724
+ def initialize(**args)
725
+ update!(**args)
726
+ end
727
+
728
+ # Update properties of this object
729
+ def update!(**args)
730
+ @address = args[:address] unless args[:address].nil?
731
+ @channels = args[:channels] unless args[:channels].nil?
732
+ @emails = args[:emails] unless args[:emails].nil?
733
+ @name = args[:name] unless args[:name].nil?
734
+ @party = args[:party] unless args[:party].nil?
735
+ @phones = args[:phones] unless args[:phones].nil?
736
+ @photo_url = args[:photo_url] unless args[:photo_url].nil?
737
+ @urls = args[:urls] unless args[:urls].nil?
738
+ end
739
+ end
740
+
741
+ # A location where a voter can vote. This may be an early vote site, an election
742
+ # day voting location, or a drop off location for a completed ballot.
743
+ class PollingLocation
744
+ include Google::Apis::Core::Hashable
745
+
746
+ # A simple representation of an address.
747
+ # Corresponds to the JSON property `address`
748
+ # @return [Google::Apis::CivicinfoV2::SimpleAddressType]
749
+ attr_accessor :address
750
+
751
+ # The last date that this early vote site or drop off location may be used. This
752
+ # field is not populated for polling locations.
753
+ # Corresponds to the JSON property `endDate`
754
+ # @return [String]
755
+ attr_accessor :end_date
756
+
757
+ # An ID for this object. IDs may change in future requests and should not be
758
+ # cached. Access to this field requires special access that can be requested
759
+ # from the Request more link on the Quotas page.
760
+ # Corresponds to the JSON property `id`
761
+ # @return [String]
762
+ attr_accessor :id
763
+
764
+ # The name of the early vote site or drop off location. This field is not
765
+ # populated for polling locations.
766
+ # Corresponds to the JSON property `name`
767
+ # @return [String]
768
+ attr_accessor :name
769
+
770
+ # Notes about this location (e.g. accessibility ramp or entrance to use).
771
+ # Corresponds to the JSON property `notes`
772
+ # @return [String]
773
+ attr_accessor :notes
774
+
775
+ # A description of when this location is open.
776
+ # Corresponds to the JSON property `pollingHours`
777
+ # @return [String]
778
+ attr_accessor :polling_hours
779
+
780
+ # A list of sources for this location. If multiple sources are listed the data
781
+ # has been aggregated from those sources.
782
+ # Corresponds to the JSON property `sources`
783
+ # @return [Array<Google::Apis::CivicinfoV2::Source>]
784
+ attr_accessor :sources
785
+
786
+ # The first date that this early vote site or drop off location may be used.
787
+ # This field is not populated for polling locations.
788
+ # Corresponds to the JSON property `startDate`
789
+ # @return [String]
790
+ attr_accessor :start_date
791
+
792
+ # The services provided by this early vote site or drop off location. This field
793
+ # is not populated for polling locations.
794
+ # Corresponds to the JSON property `voterServices`
795
+ # @return [String]
796
+ attr_accessor :voter_services
797
+
798
+ def initialize(**args)
799
+ update!(**args)
800
+ end
801
+
802
+ # Update properties of this object
803
+ def update!(**args)
804
+ @address = args[:address] unless args[:address].nil?
805
+ @end_date = args[:end_date] unless args[:end_date].nil?
806
+ @id = args[:id] unless args[:id].nil?
807
+ @name = args[:name] unless args[:name].nil?
808
+ @notes = args[:notes] unless args[:notes].nil?
809
+ @polling_hours = args[:polling_hours] unless args[:polling_hours].nil?
810
+ @sources = args[:sources] unless args[:sources].nil?
811
+ @start_date = args[:start_date] unless args[:start_date].nil?
812
+ @voter_services = args[:voter_services] unless args[:voter_services].nil?
813
+ end
814
+ end
815
+
816
+ #
817
+ class RepresentativeInfoData
818
+ include Google::Apis::Core::Hashable
819
+
820
+ # Political geographic divisions that contain the requested address.
821
+ # Corresponds to the JSON property `divisions`
822
+ # @return [Hash<String,Google::Apis::CivicinfoV2::GeographicDivision>]
823
+ attr_accessor :divisions
824
+
825
+ # Elected offices referenced by the divisions listed above. Will only be present
826
+ # if includeOffices was true in the request.
827
+ # Corresponds to the JSON property `offices`
828
+ # @return [Array<Google::Apis::CivicinfoV2::Office>]
829
+ attr_accessor :offices
830
+
831
+ # Officials holding the offices listed above. Will only be present if
832
+ # includeOffices was true in the request.
833
+ # Corresponds to the JSON property `officials`
834
+ # @return [Array<Google::Apis::CivicinfoV2::Official>]
835
+ attr_accessor :officials
836
+
837
+ def initialize(**args)
838
+ update!(**args)
839
+ end
840
+
841
+ # Update properties of this object
842
+ def update!(**args)
843
+ @divisions = args[:divisions] unless args[:divisions].nil?
844
+ @offices = args[:offices] unless args[:offices].nil?
845
+ @officials = args[:officials] unless args[:officials].nil?
846
+ end
847
+ end
848
+
849
+ # The result of a representative info lookup query.
850
+ class RepresentativeInfoResponse
851
+ include Google::Apis::Core::Hashable
852
+
853
+ # Political geographic divisions that contain the requested address.
854
+ # Corresponds to the JSON property `divisions`
855
+ # @return [Hash<String,Google::Apis::CivicinfoV2::GeographicDivision>]
856
+ attr_accessor :divisions
857
+
858
+ # Identifies what kind of resource this is. Value: the fixed string "civicinfo#
859
+ # representativeInfoResponse".
860
+ # Corresponds to the JSON property `kind`
861
+ # @return [String]
862
+ attr_accessor :kind
863
+
864
+ # A simple representation of an address.
865
+ # Corresponds to the JSON property `normalizedInput`
866
+ # @return [Google::Apis::CivicinfoV2::SimpleAddressType]
867
+ attr_accessor :normalized_input
868
+
869
+ # Elected offices referenced by the divisions listed above. Will only be present
870
+ # if includeOffices was true in the request.
871
+ # Corresponds to the JSON property `offices`
872
+ # @return [Array<Google::Apis::CivicinfoV2::Office>]
873
+ attr_accessor :offices
874
+
875
+ # Officials holding the offices listed above. Will only be present if
876
+ # includeOffices was true in the request.
877
+ # Corresponds to the JSON property `officials`
878
+ # @return [Array<Google::Apis::CivicinfoV2::Official>]
879
+ attr_accessor :officials
880
+
881
+ def initialize(**args)
882
+ update!(**args)
883
+ end
884
+
885
+ # Update properties of this object
886
+ def update!(**args)
887
+ @divisions = args[:divisions] unless args[:divisions].nil?
888
+ @kind = args[:kind] unless args[:kind].nil?
889
+ @normalized_input = args[:normalized_input] unless args[:normalized_input].nil?
890
+ @offices = args[:offices] unless args[:offices].nil?
891
+ @officials = args[:officials] unless args[:officials].nil?
892
+ end
893
+ end
894
+
895
+ # A simple representation of an address.
896
+ class SimpleAddressType
897
+ include Google::Apis::Core::Hashable
898
+
899
+ # The city or town for the address.
900
+ # Corresponds to the JSON property `city`
901
+ # @return [String]
902
+ attr_accessor :city
903
+
904
+ # The street name and number of this address.
905
+ # Corresponds to the JSON property `line1`
906
+ # @return [String]
907
+ attr_accessor :line1
908
+
909
+ # The second line the address, if needed.
910
+ # Corresponds to the JSON property `line2`
911
+ # @return [String]
912
+ attr_accessor :line2
913
+
914
+ # The third line of the address, if needed.
915
+ # Corresponds to the JSON property `line3`
916
+ # @return [String]
917
+ attr_accessor :line3
918
+
919
+ # The name of the location.
920
+ # Corresponds to the JSON property `locationName`
921
+ # @return [String]
922
+ attr_accessor :location_name
923
+
924
+ # The US two letter state abbreviation of the address.
925
+ # Corresponds to the JSON property `state`
926
+ # @return [String]
927
+ attr_accessor :state
928
+
929
+ # The US Postal Zip Code of the address.
930
+ # Corresponds to the JSON property `zip`
931
+ # @return [String]
932
+ attr_accessor :zip
933
+
934
+ def initialize(**args)
935
+ update!(**args)
936
+ end
937
+
938
+ # Update properties of this object
939
+ def update!(**args)
940
+ @city = args[:city] unless args[:city].nil?
941
+ @line1 = args[:line1] unless args[:line1].nil?
942
+ @line2 = args[:line2] unless args[:line2].nil?
943
+ @line3 = args[:line3] unless args[:line3].nil?
944
+ @location_name = args[:location_name] unless args[:location_name].nil?
945
+ @state = args[:state] unless args[:state].nil?
946
+ @zip = args[:zip] unless args[:zip].nil?
947
+ end
948
+ end
949
+
950
+ # Contains information about the data source for the element containing it.
951
+ class Source
952
+ include Google::Apis::Core::Hashable
953
+
954
+ # The name of the data source.
955
+ # Corresponds to the JSON property `name`
956
+ # @return [String]
957
+ attr_accessor :name
958
+
959
+ # Whether this data comes from an official government source.
960
+ # Corresponds to the JSON property `official`
961
+ # @return [Boolean]
962
+ attr_accessor :official
963
+ alias_method :official?, :official
964
+
965
+ def initialize(**args)
966
+ update!(**args)
967
+ end
968
+
969
+ # Update properties of this object
970
+ def update!(**args)
971
+ @name = args[:name] unless args[:name].nil?
972
+ @official = args[:official] unless args[:official].nil?
973
+ end
974
+ end
975
+
976
+ # The result of a voter info lookup query.
977
+ class VoterInfoResponse
978
+ include Google::Apis::Core::Hashable
979
+
980
+ # Contests that will appear on the voter's ballot.
981
+ # Corresponds to the JSON property `contests`
982
+ # @return [Array<Google::Apis::CivicinfoV2::Contest>]
983
+ attr_accessor :contests
984
+
985
+ # Locations where a voter is eligible to drop off a completed ballot. The voter
986
+ # must have received and completed a ballot prior to arriving at the location.
987
+ # The location may not have ballots available on the premises. These locations
988
+ # could be open on or before election day as indicated in the pollingHours field.
989
+ # Corresponds to the JSON property `dropOffLocations`
990
+ # @return [Array<Google::Apis::CivicinfoV2::PollingLocation>]
991
+ attr_accessor :drop_off_locations
992
+
993
+ # Locations where the voter is eligible to vote early, prior to election day.
994
+ # Corresponds to the JSON property `earlyVoteSites`
995
+ # @return [Array<Google::Apis::CivicinfoV2::PollingLocation>]
996
+ attr_accessor :early_vote_sites
997
+
998
+ # Information about the election that was queried.
999
+ # Corresponds to the JSON property `election`
1000
+ # @return [Google::Apis::CivicinfoV2::Election]
1001
+ attr_accessor :election
1002
+
1003
+ # Identifies what kind of resource this is. Value: the fixed string "civicinfo#
1004
+ # voterInfoResponse".
1005
+ # Corresponds to the JSON property `kind`
1006
+ # @return [String]
1007
+ attr_accessor :kind
1008
+
1009
+ # A simple representation of an address.
1010
+ # Corresponds to the JSON property `normalizedInput`
1011
+ # @return [Google::Apis::CivicinfoV2::SimpleAddressType]
1012
+ attr_accessor :normalized_input
1013
+
1014
+ # If no election ID was specified in the query, and there was more than one
1015
+ # election with data for the given voter, this will contain information about
1016
+ # the other elections that could apply.
1017
+ # Corresponds to the JSON property `otherElections`
1018
+ # @return [Array<Google::Apis::CivicinfoV2::Election>]
1019
+ attr_accessor :other_elections
1020
+
1021
+ # Locations where the voter is eligible to vote on election day.
1022
+ # Corresponds to the JSON property `pollingLocations`
1023
+ # @return [Array<Google::Apis::CivicinfoV2::PollingLocation>]
1024
+ attr_accessor :polling_locations
1025
+
1026
+ #
1027
+ # Corresponds to the JSON property `precinctId`
1028
+ # @return [String]
1029
+ attr_accessor :precinct_id
1030
+
1031
+ # Local Election Information for the state that the voter votes in. For the US,
1032
+ # there will only be one element in this array.
1033
+ # Corresponds to the JSON property `state`
1034
+ # @return [Array<Google::Apis::CivicinfoV2::AdministrationRegion>]
1035
+ attr_accessor :state
1036
+
1037
+ def initialize(**args)
1038
+ update!(**args)
1039
+ end
1040
+
1041
+ # Update properties of this object
1042
+ def update!(**args)
1043
+ @contests = args[:contests] unless args[:contests].nil?
1044
+ @drop_off_locations = args[:drop_off_locations] unless args[:drop_off_locations].nil?
1045
+ @early_vote_sites = args[:early_vote_sites] unless args[:early_vote_sites].nil?
1046
+ @election = args[:election] unless args[:election].nil?
1047
+ @kind = args[:kind] unless args[:kind].nil?
1048
+ @normalized_input = args[:normalized_input] unless args[:normalized_input].nil?
1049
+ @other_elections = args[:other_elections] unless args[:other_elections].nil?
1050
+ @polling_locations = args[:polling_locations] unless args[:polling_locations].nil?
1051
+ @precinct_id = args[:precinct_id] unless args[:precinct_id].nil?
1052
+ @state = args[:state] unless args[:state].nil?
1053
+ end
1054
+ end
1055
+ end
1056
+ end
1057
+ end