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,36 @@
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/vision_v1/service.rb'
16
+ require 'google/apis/vision_v1/classes.rb'
17
+ require 'google/apis/vision_v1/representations.rb'
18
+
19
+ module Google
20
+ module Apis
21
+ # Google Cloud Vision API
22
+ #
23
+ # Integrates Google Vision features, including image labeling, face, logo, and
24
+ # landmark detection, optical character recognition (OCR), and detection of
25
+ # explicit content, into applications.
26
+ #
27
+ # @see https://cloud.google.com/vision/
28
+ module VisionV1
29
+ VERSION = 'V1'
30
+ REVISION = '20170126'
31
+
32
+ # View and manage your data across Google Cloud Platform services
33
+ AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,1267 @@
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 VisionV1
24
+
25
+ # The `Status` type defines a logical error model that is suitable for different
26
+ # programming environments, including REST APIs and RPC APIs. It is used by
27
+ # [gRPC](https://github.com/grpc). The error model is designed to be:
28
+ # - Simple to use and understand for most users
29
+ # - Flexible enough to meet unexpected needs
30
+ # # Overview
31
+ # The `Status` message contains three pieces of data: error code, error message,
32
+ # and error details. The error code should be an enum value of
33
+ # google.rpc.Code, but it may accept additional error codes if needed. The
34
+ # error message should be a developer-facing English message that helps
35
+ # developers *understand* and *resolve* the error. If a localized user-facing
36
+ # error message is needed, put the localized message in the error details or
37
+ # localize it in the client. The optional error details may contain arbitrary
38
+ # information about the error. There is a predefined set of error detail types
39
+ # in the package `google.rpc` which can be used for common error conditions.
40
+ # # Language mapping
41
+ # The `Status` message is the logical representation of the error model, but it
42
+ # is not necessarily the actual wire format. When the `Status` message is
43
+ # exposed in different client libraries and different wire protocols, it can be
44
+ # mapped differently. For example, it will likely be mapped to some exceptions
45
+ # in Java, but more likely mapped to some error codes in C.
46
+ # # Other uses
47
+ # The error model and the `Status` message can be used in a variety of
48
+ # environments, either with or without APIs, to provide a
49
+ # consistent developer experience across different environments.
50
+ # Example uses of this error model include:
51
+ # - Partial errors. If a service needs to return partial errors to the client,
52
+ # it may embed the `Status` in the normal response to indicate the partial
53
+ # errors.
54
+ # - Workflow errors. A typical workflow has multiple steps. Each step may
55
+ # have a `Status` message for error reporting purpose.
56
+ # - Batch operations. If a client uses batch request and batch response, the
57
+ # `Status` message should be used directly inside batch response, one for
58
+ # each error sub-response.
59
+ # - Asynchronous operations. If an API call embeds asynchronous operation
60
+ # results in its response, the status of those operations should be
61
+ # represented directly using the `Status` message.
62
+ # - Logging. If some API errors are stored in logs, the message `Status` could
63
+ # be used directly after any stripping needed for security/privacy reasons.
64
+ class Status
65
+ include Google::Apis::Core::Hashable
66
+
67
+ # A list of messages that carry the error details. There will be a
68
+ # common set of message types for APIs to use.
69
+ # Corresponds to the JSON property `details`
70
+ # @return [Array<Hash<String,Object>>]
71
+ attr_accessor :details
72
+
73
+ # The status code, which should be an enum value of google.rpc.Code.
74
+ # Corresponds to the JSON property `code`
75
+ # @return [Fixnum]
76
+ attr_accessor :code
77
+
78
+ # A developer-facing error message, which should be in English. Any
79
+ # user-facing error message should be localized and sent in the
80
+ # google.rpc.Status.details field, or localized by the client.
81
+ # Corresponds to the JSON property `message`
82
+ # @return [String]
83
+ attr_accessor :message
84
+
85
+ def initialize(**args)
86
+ update!(**args)
87
+ end
88
+
89
+ # Update properties of this object
90
+ def update!(**args)
91
+ @details = args[:details] if args.key?(:details)
92
+ @code = args[:code] if args.key?(:code)
93
+ @message = args[:message] if args.key?(:message)
94
+ end
95
+ end
96
+
97
+ # Rectangle determined by min and max `LatLng` pairs.
98
+ class LatLongRect
99
+ include Google::Apis::Core::Hashable
100
+
101
+ # An object representing a latitude/longitude pair. This is expressed as a pair
102
+ # of doubles representing degrees latitude and degrees longitude. Unless
103
+ # specified otherwise, this must conform to the
104
+ # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
105
+ # standard</a>. Values must be within normalized ranges.
106
+ # Example of normalization code in Python:
107
+ # def NormalizeLongitude(longitude):
108
+ # """Wraps decimal degrees longitude to [-180.0, 180.0]."""
109
+ # q, r = divmod(longitude, 360.0)
110
+ # if r > 180.0 or (r == 180.0 and q <= -1.0):
111
+ # return r - 360.0
112
+ # return r
113
+ # def NormalizeLatLng(latitude, longitude):
114
+ # """Wraps decimal degrees latitude and longitude to
115
+ # [-90.0, 90.0] and [-180.0, 180.0], respectively."""
116
+ # r = latitude % 360.0
117
+ # if r <= 90.0:
118
+ # return r, NormalizeLongitude(longitude)
119
+ # elif r >= 270.0:
120
+ # return r - 360, NormalizeLongitude(longitude)
121
+ # else:
122
+ # return 180 - r, NormalizeLongitude(longitude + 180.0)
123
+ # assert 180.0 == NormalizeLongitude(180.0)
124
+ # assert -180.0 == NormalizeLongitude(-180.0)
125
+ # assert -179.0 == NormalizeLongitude(181.0)
126
+ # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
127
+ # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
128
+ # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
129
+ # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
130
+ # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
131
+ # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
132
+ # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
133
+ # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
134
+ # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
135
+ # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
136
+ # The code in logs/storage/validator/logs_validator_traits.cc treats this type
137
+ # as if it were annotated as ST_LOCATION.
138
+ # Corresponds to the JSON property `maxLatLng`
139
+ # @return [Google::Apis::VisionV1::LatLng]
140
+ attr_accessor :max_lat_lng
141
+
142
+ # An object representing a latitude/longitude pair. This is expressed as a pair
143
+ # of doubles representing degrees latitude and degrees longitude. Unless
144
+ # specified otherwise, this must conform to the
145
+ # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
146
+ # standard</a>. Values must be within normalized ranges.
147
+ # Example of normalization code in Python:
148
+ # def NormalizeLongitude(longitude):
149
+ # """Wraps decimal degrees longitude to [-180.0, 180.0]."""
150
+ # q, r = divmod(longitude, 360.0)
151
+ # if r > 180.0 or (r == 180.0 and q <= -1.0):
152
+ # return r - 360.0
153
+ # return r
154
+ # def NormalizeLatLng(latitude, longitude):
155
+ # """Wraps decimal degrees latitude and longitude to
156
+ # [-90.0, 90.0] and [-180.0, 180.0], respectively."""
157
+ # r = latitude % 360.0
158
+ # if r <= 90.0:
159
+ # return r, NormalizeLongitude(longitude)
160
+ # elif r >= 270.0:
161
+ # return r - 360, NormalizeLongitude(longitude)
162
+ # else:
163
+ # return 180 - r, NormalizeLongitude(longitude + 180.0)
164
+ # assert 180.0 == NormalizeLongitude(180.0)
165
+ # assert -180.0 == NormalizeLongitude(-180.0)
166
+ # assert -179.0 == NormalizeLongitude(181.0)
167
+ # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
168
+ # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
169
+ # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
170
+ # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
171
+ # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
172
+ # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
173
+ # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
174
+ # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
175
+ # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
176
+ # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
177
+ # The code in logs/storage/validator/logs_validator_traits.cc treats this type
178
+ # as if it were annotated as ST_LOCATION.
179
+ # Corresponds to the JSON property `minLatLng`
180
+ # @return [Google::Apis::VisionV1::LatLng]
181
+ attr_accessor :min_lat_lng
182
+
183
+ def initialize(**args)
184
+ update!(**args)
185
+ end
186
+
187
+ # Update properties of this object
188
+ def update!(**args)
189
+ @max_lat_lng = args[:max_lat_lng] if args.key?(:max_lat_lng)
190
+ @min_lat_lng = args[:min_lat_lng] if args.key?(:min_lat_lng)
191
+ end
192
+ end
193
+
194
+ # An object representing a latitude/longitude pair. This is expressed as a pair
195
+ # of doubles representing degrees latitude and degrees longitude. Unless
196
+ # specified otherwise, this must conform to the
197
+ # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
198
+ # standard</a>. Values must be within normalized ranges.
199
+ # Example of normalization code in Python:
200
+ # def NormalizeLongitude(longitude):
201
+ # """Wraps decimal degrees longitude to [-180.0, 180.0]."""
202
+ # q, r = divmod(longitude, 360.0)
203
+ # if r > 180.0 or (r == 180.0 and q <= -1.0):
204
+ # return r - 360.0
205
+ # return r
206
+ # def NormalizeLatLng(latitude, longitude):
207
+ # """Wraps decimal degrees latitude and longitude to
208
+ # [-90.0, 90.0] and [-180.0, 180.0], respectively."""
209
+ # r = latitude % 360.0
210
+ # if r <= 90.0:
211
+ # return r, NormalizeLongitude(longitude)
212
+ # elif r >= 270.0:
213
+ # return r - 360, NormalizeLongitude(longitude)
214
+ # else:
215
+ # return 180 - r, NormalizeLongitude(longitude + 180.0)
216
+ # assert 180.0 == NormalizeLongitude(180.0)
217
+ # assert -180.0 == NormalizeLongitude(-180.0)
218
+ # assert -179.0 == NormalizeLongitude(181.0)
219
+ # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
220
+ # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
221
+ # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
222
+ # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
223
+ # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
224
+ # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
225
+ # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
226
+ # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
227
+ # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
228
+ # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
229
+ # The code in logs/storage/validator/logs_validator_traits.cc treats this type
230
+ # as if it were annotated as ST_LOCATION.
231
+ class LatLng
232
+ include Google::Apis::Core::Hashable
233
+
234
+ # The latitude in degrees. It must be in the range [-90.0, +90.0].
235
+ # Corresponds to the JSON property `latitude`
236
+ # @return [Float]
237
+ attr_accessor :latitude
238
+
239
+ # The longitude in degrees. It must be in the range [-180.0, +180.0].
240
+ # Corresponds to the JSON property `longitude`
241
+ # @return [Float]
242
+ attr_accessor :longitude
243
+
244
+ def initialize(**args)
245
+ update!(**args)
246
+ end
247
+
248
+ # Update properties of this object
249
+ def update!(**args)
250
+ @latitude = args[:latitude] if args.key?(:latitude)
251
+ @longitude = args[:longitude] if args.key?(:longitude)
252
+ end
253
+ end
254
+
255
+ # Represents a color in the RGBA color space. This representation is designed
256
+ # for simplicity of conversion to/from color representations in various
257
+ # languages over compactness; for example, the fields of this representation
258
+ # can be trivially provided to the constructor of "java.awt.Color" in Java; it
259
+ # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
260
+ # method in iOS; and, with just a little work, it can be easily formatted into
261
+ # a CSS "rgba()" string in JavaScript, as well. Here are some examples:
262
+ # Example (Java):
263
+ # import com.google.type.Color;
264
+ # // ...
265
+ # public static java.awt.Color fromProto(Color protocolor) `
266
+ # float alpha = protocolor.hasAlpha()
267
+ # ? protocolor.getAlpha().getValue()
268
+ # : 1.0;
269
+ # return new java.awt.Color(
270
+ # protocolor.getRed(),
271
+ # protocolor.getGreen(),
272
+ # protocolor.getBlue(),
273
+ # alpha);
274
+ # `
275
+ # public static Color toProto(java.awt.Color color) `
276
+ # float red = (float) color.getRed();
277
+ # float green = (float) color.getGreen();
278
+ # float blue = (float) color.getBlue();
279
+ # float denominator = 255.0;
280
+ # Color.Builder resultBuilder =
281
+ # Color
282
+ # .newBuilder()
283
+ # .setRed(red / denominator)
284
+ # .setGreen(green / denominator)
285
+ # .setBlue(blue / denominator);
286
+ # int alpha = color.getAlpha();
287
+ # if (alpha != 255) `
288
+ # result.setAlpha(
289
+ # FloatValue
290
+ # .newBuilder()
291
+ # .setValue(((float) alpha) / denominator)
292
+ # .build());
293
+ # `
294
+ # return resultBuilder.build();
295
+ # `
296
+ # // ...
297
+ # Example (iOS / Obj-C):
298
+ # // ...
299
+ # static UIColor* fromProto(Color* protocolor) `
300
+ # float red = [protocolor red];
301
+ # float green = [protocolor green];
302
+ # float blue = [protocolor blue];
303
+ # FloatValue* alpha_wrapper = [protocolor alpha];
304
+ # float alpha = 1.0;
305
+ # if (alpha_wrapper != nil) `
306
+ # alpha = [alpha_wrapper value];
307
+ # `
308
+ # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
309
+ # `
310
+ # static Color* toProto(UIColor* color) `
311
+ # CGFloat red, green, blue, alpha;
312
+ # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) `
313
+ # return nil;
314
+ # `
315
+ # Color* result = [Color alloc] init];
316
+ # [result setRed:red];
317
+ # [result setGreen:green];
318
+ # [result setBlue:blue];
319
+ # if (alpha <= 0.9999) `
320
+ # [result setAlpha:floatWrapperWithValue(alpha)];
321
+ # `
322
+ # [result autorelease];
323
+ # return result;
324
+ # `
325
+ # // ...
326
+ # Example (JavaScript):
327
+ # // ...
328
+ # var protoToCssColor = function(rgb_color) `
329
+ # var redFrac = rgb_color.red || 0.0;
330
+ # var greenFrac = rgb_color.green || 0.0;
331
+ # var blueFrac = rgb_color.blue || 0.0;
332
+ # var red = Math.floor(redFrac * 255);
333
+ # var green = Math.floor(greenFrac * 255);
334
+ # var blue = Math.floor(blueFrac * 255);
335
+ # if (!('alpha' in rgb_color)) `
336
+ # return rgbToCssColor_(red, green, blue);
337
+ # `
338
+ # var alphaFrac = rgb_color.alpha.value || 0.0;
339
+ # var rgbParams = [red, green, blue].join(',');
340
+ # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
341
+ # `;
342
+ # var rgbToCssColor_ = function(red, green, blue) `
343
+ # var rgbNumber = new Number((red << 16) | (green << 8) | blue);
344
+ # var hexString = rgbNumber.toString(16);
345
+ # var missingZeros = 6 - hexString.length;
346
+ # var resultBuilder = ['#'];
347
+ # for (var i = 0; i < missingZeros; i++) `
348
+ # resultBuilder.push('0');
349
+ # `
350
+ # resultBuilder.push(hexString);
351
+ # return resultBuilder.join('');
352
+ # `;
353
+ # // ...
354
+ class Color
355
+ include Google::Apis::Core::Hashable
356
+
357
+ # The amount of red in the color as a value in the interval [0, 1].
358
+ # Corresponds to the JSON property `red`
359
+ # @return [Float]
360
+ attr_accessor :red
361
+
362
+ # The amount of green in the color as a value in the interval [0, 1].
363
+ # Corresponds to the JSON property `green`
364
+ # @return [Float]
365
+ attr_accessor :green
366
+
367
+ # The amount of blue in the color as a value in the interval [0, 1].
368
+ # Corresponds to the JSON property `blue`
369
+ # @return [Float]
370
+ attr_accessor :blue
371
+
372
+ # The fraction of this color that should be applied to the pixel. That is,
373
+ # the final pixel color is defined by the equation:
374
+ # pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
375
+ # This means that a value of 1.0 corresponds to a solid color, whereas
376
+ # a value of 0.0 corresponds to a completely transparent color. This
377
+ # uses a wrapper message rather than a simple float scalar so that it is
378
+ # possible to distinguish between a default value and the value being unset.
379
+ # If omitted, this color object is to be rendered as a solid color
380
+ # (as if the alpha value had been explicitly given with a value of 1.0).
381
+ # Corresponds to the JSON property `alpha`
382
+ # @return [Float]
383
+ attr_accessor :alpha
384
+
385
+ def initialize(**args)
386
+ update!(**args)
387
+ end
388
+
389
+ # Update properties of this object
390
+ def update!(**args)
391
+ @red = args[:red] if args.key?(:red)
392
+ @green = args[:green] if args.key?(:green)
393
+ @blue = args[:blue] if args.key?(:blue)
394
+ @alpha = args[:alpha] if args.key?(:alpha)
395
+ end
396
+ end
397
+
398
+ # Stores image properties, such as dominant colors.
399
+ class ImageProperties
400
+ include Google::Apis::Core::Hashable
401
+
402
+ # Set of dominant colors and their corresponding scores.
403
+ # Corresponds to the JSON property `dominantColors`
404
+ # @return [Google::Apis::VisionV1::DominantColorsAnnotation]
405
+ attr_accessor :dominant_colors
406
+
407
+ def initialize(**args)
408
+ update!(**args)
409
+ end
410
+
411
+ # Update properties of this object
412
+ def update!(**args)
413
+ @dominant_colors = args[:dominant_colors] if args.key?(:dominant_colors)
414
+ end
415
+ end
416
+
417
+ # Users describe the type of Google Cloud Vision API tasks to perform over
418
+ # images by using *Feature*s. Each Feature indicates a type of image
419
+ # detection task to perform. Features encode the Cloud Vision API
420
+ # vertical to operate on and the number of top-scoring results to return.
421
+ class Feature
422
+ include Google::Apis::Core::Hashable
423
+
424
+ # The feature type.
425
+ # Corresponds to the JSON property `type`
426
+ # @return [String]
427
+ attr_accessor :type
428
+
429
+ # Maximum number of results of this type.
430
+ # Corresponds to the JSON property `maxResults`
431
+ # @return [Fixnum]
432
+ attr_accessor :max_results
433
+
434
+ def initialize(**args)
435
+ update!(**args)
436
+ end
437
+
438
+ # Update properties of this object
439
+ def update!(**args)
440
+ @type = args[:type] if args.key?(:type)
441
+ @max_results = args[:max_results] if args.key?(:max_results)
442
+ end
443
+ end
444
+
445
+ #
446
+ class SafeSearchAnnotation
447
+ include Google::Apis::Core::Hashable
448
+
449
+ # Spoof likelihood. The likelihood that an modification
450
+ # was made to the image's canonical version to make it appear
451
+ # funny or offensive.
452
+ # Corresponds to the JSON property `spoof`
453
+ # @return [String]
454
+ attr_accessor :spoof
455
+
456
+ # Likelihood that this is a medical image.
457
+ # Corresponds to the JSON property `medical`
458
+ # @return [String]
459
+ attr_accessor :medical
460
+
461
+ # Violence likelihood.
462
+ # Corresponds to the JSON property `violence`
463
+ # @return [String]
464
+ attr_accessor :violence
465
+
466
+ # Represents the adult content likelihood for the image.
467
+ # Corresponds to the JSON property `adult`
468
+ # @return [String]
469
+ attr_accessor :adult
470
+
471
+ def initialize(**args)
472
+ update!(**args)
473
+ end
474
+
475
+ # Update properties of this object
476
+ def update!(**args)
477
+ @spoof = args[:spoof] if args.key?(:spoof)
478
+ @medical = args[:medical] if args.key?(:medical)
479
+ @violence = args[:violence] if args.key?(:violence)
480
+ @adult = args[:adult] if args.key?(:adult)
481
+ end
482
+ end
483
+
484
+ # Set of dominant colors and their corresponding scores.
485
+ class DominantColorsAnnotation
486
+ include Google::Apis::Core::Hashable
487
+
488
+ # RGB color values with their score and pixel fraction.
489
+ # Corresponds to the JSON property `colors`
490
+ # @return [Array<Google::Apis::VisionV1::ColorInfo>]
491
+ attr_accessor :colors
492
+
493
+ def initialize(**args)
494
+ update!(**args)
495
+ end
496
+
497
+ # Update properties of this object
498
+ def update!(**args)
499
+ @colors = args[:colors] if args.key?(:colors)
500
+ end
501
+ end
502
+
503
+ # A vertex represents a 2D point in the image.
504
+ # NOTE: the vertex coordinates are in the same scale as the original image.
505
+ class Vertex
506
+ include Google::Apis::Core::Hashable
507
+
508
+ # Y coordinate.
509
+ # Corresponds to the JSON property `y`
510
+ # @return [Fixnum]
511
+ attr_accessor :y
512
+
513
+ # X coordinate.
514
+ # Corresponds to the JSON property `x`
515
+ # @return [Fixnum]
516
+ attr_accessor :x
517
+
518
+ def initialize(**args)
519
+ update!(**args)
520
+ end
521
+
522
+ # Update properties of this object
523
+ def update!(**args)
524
+ @y = args[:y] if args.key?(:y)
525
+ @x = args[:x] if args.key?(:x)
526
+ end
527
+ end
528
+
529
+ # A bounding polygon for the detected image annotation.
530
+ class BoundingPoly
531
+ include Google::Apis::Core::Hashable
532
+
533
+ # The bounding polygon vertices.
534
+ # Corresponds to the JSON property `vertices`
535
+ # @return [Array<Google::Apis::VisionV1::Vertex>]
536
+ attr_accessor :vertices
537
+
538
+ def initialize(**args)
539
+ update!(**args)
540
+ end
541
+
542
+ # Update properties of this object
543
+ def update!(**args)
544
+ @vertices = args[:vertices] if args.key?(:vertices)
545
+ end
546
+ end
547
+
548
+ # Response to an image annotation request.
549
+ class AnnotateImageResponse
550
+ include Google::Apis::Core::Hashable
551
+
552
+ # If present, logo detection has completed successfully.
553
+ # Corresponds to the JSON property `logoAnnotations`
554
+ # @return [Array<Google::Apis::VisionV1::EntityAnnotation>]
555
+ attr_accessor :logo_annotations
556
+
557
+ # If present, label detection has completed successfully.
558
+ # Corresponds to the JSON property `labelAnnotations`
559
+ # @return [Array<Google::Apis::VisionV1::EntityAnnotation>]
560
+ attr_accessor :label_annotations
561
+
562
+ # If present, safe-search annotation has completed successfully.
563
+ # Corresponds to the JSON property `safeSearchAnnotation`
564
+ # @return [Google::Apis::VisionV1::SafeSearchAnnotation]
565
+ attr_accessor :safe_search_annotation
566
+
567
+ # The `Status` type defines a logical error model that is suitable for different
568
+ # programming environments, including REST APIs and RPC APIs. It is used by
569
+ # [gRPC](https://github.com/grpc). The error model is designed to be:
570
+ # - Simple to use and understand for most users
571
+ # - Flexible enough to meet unexpected needs
572
+ # # Overview
573
+ # The `Status` message contains three pieces of data: error code, error message,
574
+ # and error details. The error code should be an enum value of
575
+ # google.rpc.Code, but it may accept additional error codes if needed. The
576
+ # error message should be a developer-facing English message that helps
577
+ # developers *understand* and *resolve* the error. If a localized user-facing
578
+ # error message is needed, put the localized message in the error details or
579
+ # localize it in the client. The optional error details may contain arbitrary
580
+ # information about the error. There is a predefined set of error detail types
581
+ # in the package `google.rpc` which can be used for common error conditions.
582
+ # # Language mapping
583
+ # The `Status` message is the logical representation of the error model, but it
584
+ # is not necessarily the actual wire format. When the `Status` message is
585
+ # exposed in different client libraries and different wire protocols, it can be
586
+ # mapped differently. For example, it will likely be mapped to some exceptions
587
+ # in Java, but more likely mapped to some error codes in C.
588
+ # # Other uses
589
+ # The error model and the `Status` message can be used in a variety of
590
+ # environments, either with or without APIs, to provide a
591
+ # consistent developer experience across different environments.
592
+ # Example uses of this error model include:
593
+ # - Partial errors. If a service needs to return partial errors to the client,
594
+ # it may embed the `Status` in the normal response to indicate the partial
595
+ # errors.
596
+ # - Workflow errors. A typical workflow has multiple steps. Each step may
597
+ # have a `Status` message for error reporting purpose.
598
+ # - Batch operations. If a client uses batch request and batch response, the
599
+ # `Status` message should be used directly inside batch response, one for
600
+ # each error sub-response.
601
+ # - Asynchronous operations. If an API call embeds asynchronous operation
602
+ # results in its response, the status of those operations should be
603
+ # represented directly using the `Status` message.
604
+ # - Logging. If some API errors are stored in logs, the message `Status` could
605
+ # be used directly after any stripping needed for security/privacy reasons.
606
+ # Corresponds to the JSON property `error`
607
+ # @return [Google::Apis::VisionV1::Status]
608
+ attr_accessor :error
609
+
610
+ # If present, landmark detection has completed successfully.
611
+ # Corresponds to the JSON property `landmarkAnnotations`
612
+ # @return [Array<Google::Apis::VisionV1::EntityAnnotation>]
613
+ attr_accessor :landmark_annotations
614
+
615
+ # If present, text (OCR) detection or document (OCR) text detection has
616
+ # completed successfully.
617
+ # Corresponds to the JSON property `textAnnotations`
618
+ # @return [Array<Google::Apis::VisionV1::EntityAnnotation>]
619
+ attr_accessor :text_annotations
620
+
621
+ # Stores image properties, such as dominant colors.
622
+ # Corresponds to the JSON property `imagePropertiesAnnotation`
623
+ # @return [Google::Apis::VisionV1::ImageProperties]
624
+ attr_accessor :image_properties_annotation
625
+
626
+ # If present, face detection has completed successfully.
627
+ # Corresponds to the JSON property `faceAnnotations`
628
+ # @return [Array<Google::Apis::VisionV1::FaceAnnotation>]
629
+ attr_accessor :face_annotations
630
+
631
+ def initialize(**args)
632
+ update!(**args)
633
+ end
634
+
635
+ # Update properties of this object
636
+ def update!(**args)
637
+ @logo_annotations = args[:logo_annotations] if args.key?(:logo_annotations)
638
+ @label_annotations = args[:label_annotations] if args.key?(:label_annotations)
639
+ @safe_search_annotation = args[:safe_search_annotation] if args.key?(:safe_search_annotation)
640
+ @error = args[:error] if args.key?(:error)
641
+ @landmark_annotations = args[:landmark_annotations] if args.key?(:landmark_annotations)
642
+ @text_annotations = args[:text_annotations] if args.key?(:text_annotations)
643
+ @image_properties_annotation = args[:image_properties_annotation] if args.key?(:image_properties_annotation)
644
+ @face_annotations = args[:face_annotations] if args.key?(:face_annotations)
645
+ end
646
+ end
647
+
648
+ # A `Property` consists of a user-supplied name/value pair.
649
+ class Property
650
+ include Google::Apis::Core::Hashable
651
+
652
+ # Value of the property.
653
+ # Corresponds to the JSON property `value`
654
+ # @return [String]
655
+ attr_accessor :value
656
+
657
+ # Name of the property.
658
+ # Corresponds to the JSON property `name`
659
+ # @return [String]
660
+ attr_accessor :name
661
+
662
+ def initialize(**args)
663
+ update!(**args)
664
+ end
665
+
666
+ # Update properties of this object
667
+ def update!(**args)
668
+ @value = args[:value] if args.key?(:value)
669
+ @name = args[:name] if args.key?(:name)
670
+ end
671
+ end
672
+
673
+ # Detected entity location information.
674
+ class LocationInfo
675
+ include Google::Apis::Core::Hashable
676
+
677
+ # An object representing a latitude/longitude pair. This is expressed as a pair
678
+ # of doubles representing degrees latitude and degrees longitude. Unless
679
+ # specified otherwise, this must conform to the
680
+ # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
681
+ # standard</a>. Values must be within normalized ranges.
682
+ # Example of normalization code in Python:
683
+ # def NormalizeLongitude(longitude):
684
+ # """Wraps decimal degrees longitude to [-180.0, 180.0]."""
685
+ # q, r = divmod(longitude, 360.0)
686
+ # if r > 180.0 or (r == 180.0 and q <= -1.0):
687
+ # return r - 360.0
688
+ # return r
689
+ # def NormalizeLatLng(latitude, longitude):
690
+ # """Wraps decimal degrees latitude and longitude to
691
+ # [-90.0, 90.0] and [-180.0, 180.0], respectively."""
692
+ # r = latitude % 360.0
693
+ # if r <= 90.0:
694
+ # return r, NormalizeLongitude(longitude)
695
+ # elif r >= 270.0:
696
+ # return r - 360, NormalizeLongitude(longitude)
697
+ # else:
698
+ # return 180 - r, NormalizeLongitude(longitude + 180.0)
699
+ # assert 180.0 == NormalizeLongitude(180.0)
700
+ # assert -180.0 == NormalizeLongitude(-180.0)
701
+ # assert -179.0 == NormalizeLongitude(181.0)
702
+ # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
703
+ # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
704
+ # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
705
+ # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
706
+ # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
707
+ # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
708
+ # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
709
+ # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
710
+ # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
711
+ # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
712
+ # The code in logs/storage/validator/logs_validator_traits.cc treats this type
713
+ # as if it were annotated as ST_LOCATION.
714
+ # Corresponds to the JSON property `latLng`
715
+ # @return [Google::Apis::VisionV1::LatLng]
716
+ attr_accessor :lat_lng
717
+
718
+ def initialize(**args)
719
+ update!(**args)
720
+ end
721
+
722
+ # Update properties of this object
723
+ def update!(**args)
724
+ @lat_lng = args[:lat_lng] if args.key?(:lat_lng)
725
+ end
726
+ end
727
+
728
+ # Response to a batch image annotation request.
729
+ class BatchAnnotateImagesResponse
730
+ include Google::Apis::Core::Hashable
731
+
732
+ # Individual responses to image annotation requests within the batch.
733
+ # Corresponds to the JSON property `responses`
734
+ # @return [Array<Google::Apis::VisionV1::AnnotateImageResponse>]
735
+ attr_accessor :responses
736
+
737
+ def initialize(**args)
738
+ update!(**args)
739
+ end
740
+
741
+ # Update properties of this object
742
+ def update!(**args)
743
+ @responses = args[:responses] if args.key?(:responses)
744
+ end
745
+ end
746
+
747
+ # External image source (Google Cloud Storage image location).
748
+ class ImageSource
749
+ include Google::Apis::Core::Hashable
750
+
751
+ # NOTE: For new code `image_uri` below is preferred.
752
+ # Google Cloud Storage image URI, which must be in the following form:
753
+ # `gs://bucket_name/object_name` (for details, see
754
+ # [Google Cloud Storage Request
755
+ # URIs](https://cloud.google.com/storage/docs/reference-uris)).
756
+ # NOTE: Cloud Storage object versioning is not supported.
757
+ # Corresponds to the JSON property `gcsImageUri`
758
+ # @return [String]
759
+ attr_accessor :gcs_image_uri
760
+
761
+ def initialize(**args)
762
+ update!(**args)
763
+ end
764
+
765
+ # Update properties of this object
766
+ def update!(**args)
767
+ @gcs_image_uri = args[:gcs_image_uri] if args.key?(:gcs_image_uri)
768
+ end
769
+ end
770
+
771
+ # A 3D position in the image, used primarily for Face detection landmarks.
772
+ # A valid Position must have both x and y coordinates.
773
+ # The position coordinates are in the same scale as the original image.
774
+ class Position
775
+ include Google::Apis::Core::Hashable
776
+
777
+ # Y coordinate.
778
+ # Corresponds to the JSON property `y`
779
+ # @return [Float]
780
+ attr_accessor :y
781
+
782
+ # X coordinate.
783
+ # Corresponds to the JSON property `x`
784
+ # @return [Float]
785
+ attr_accessor :x
786
+
787
+ # Z coordinate (or depth).
788
+ # Corresponds to the JSON property `z`
789
+ # @return [Float]
790
+ attr_accessor :z
791
+
792
+ def initialize(**args)
793
+ update!(**args)
794
+ end
795
+
796
+ # Update properties of this object
797
+ def update!(**args)
798
+ @y = args[:y] if args.key?(:y)
799
+ @x = args[:x] if args.key?(:x)
800
+ @z = args[:z] if args.key?(:z)
801
+ end
802
+ end
803
+
804
+ # Color information consists of RGB channels, score, and the fraction of
805
+ # the image that the color occupies in the image.
806
+ class ColorInfo
807
+ include Google::Apis::Core::Hashable
808
+
809
+ # The fraction of pixels the color occupies in the image.
810
+ # Value in range [0, 1].
811
+ # Corresponds to the JSON property `pixelFraction`
812
+ # @return [Float]
813
+ attr_accessor :pixel_fraction
814
+
815
+ # Represents a color in the RGBA color space. This representation is designed
816
+ # for simplicity of conversion to/from color representations in various
817
+ # languages over compactness; for example, the fields of this representation
818
+ # can be trivially provided to the constructor of "java.awt.Color" in Java; it
819
+ # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
820
+ # method in iOS; and, with just a little work, it can be easily formatted into
821
+ # a CSS "rgba()" string in JavaScript, as well. Here are some examples:
822
+ # Example (Java):
823
+ # import com.google.type.Color;
824
+ # // ...
825
+ # public static java.awt.Color fromProto(Color protocolor) `
826
+ # float alpha = protocolor.hasAlpha()
827
+ # ? protocolor.getAlpha().getValue()
828
+ # : 1.0;
829
+ # return new java.awt.Color(
830
+ # protocolor.getRed(),
831
+ # protocolor.getGreen(),
832
+ # protocolor.getBlue(),
833
+ # alpha);
834
+ # `
835
+ # public static Color toProto(java.awt.Color color) `
836
+ # float red = (float) color.getRed();
837
+ # float green = (float) color.getGreen();
838
+ # float blue = (float) color.getBlue();
839
+ # float denominator = 255.0;
840
+ # Color.Builder resultBuilder =
841
+ # Color
842
+ # .newBuilder()
843
+ # .setRed(red / denominator)
844
+ # .setGreen(green / denominator)
845
+ # .setBlue(blue / denominator);
846
+ # int alpha = color.getAlpha();
847
+ # if (alpha != 255) `
848
+ # result.setAlpha(
849
+ # FloatValue
850
+ # .newBuilder()
851
+ # .setValue(((float) alpha) / denominator)
852
+ # .build());
853
+ # `
854
+ # return resultBuilder.build();
855
+ # `
856
+ # // ...
857
+ # Example (iOS / Obj-C):
858
+ # // ...
859
+ # static UIColor* fromProto(Color* protocolor) `
860
+ # float red = [protocolor red];
861
+ # float green = [protocolor green];
862
+ # float blue = [protocolor blue];
863
+ # FloatValue* alpha_wrapper = [protocolor alpha];
864
+ # float alpha = 1.0;
865
+ # if (alpha_wrapper != nil) `
866
+ # alpha = [alpha_wrapper value];
867
+ # `
868
+ # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
869
+ # `
870
+ # static Color* toProto(UIColor* color) `
871
+ # CGFloat red, green, blue, alpha;
872
+ # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) `
873
+ # return nil;
874
+ # `
875
+ # Color* result = [Color alloc] init];
876
+ # [result setRed:red];
877
+ # [result setGreen:green];
878
+ # [result setBlue:blue];
879
+ # if (alpha <= 0.9999) `
880
+ # [result setAlpha:floatWrapperWithValue(alpha)];
881
+ # `
882
+ # [result autorelease];
883
+ # return result;
884
+ # `
885
+ # // ...
886
+ # Example (JavaScript):
887
+ # // ...
888
+ # var protoToCssColor = function(rgb_color) `
889
+ # var redFrac = rgb_color.red || 0.0;
890
+ # var greenFrac = rgb_color.green || 0.0;
891
+ # var blueFrac = rgb_color.blue || 0.0;
892
+ # var red = Math.floor(redFrac * 255);
893
+ # var green = Math.floor(greenFrac * 255);
894
+ # var blue = Math.floor(blueFrac * 255);
895
+ # if (!('alpha' in rgb_color)) `
896
+ # return rgbToCssColor_(red, green, blue);
897
+ # `
898
+ # var alphaFrac = rgb_color.alpha.value || 0.0;
899
+ # var rgbParams = [red, green, blue].join(',');
900
+ # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
901
+ # `;
902
+ # var rgbToCssColor_ = function(red, green, blue) `
903
+ # var rgbNumber = new Number((red << 16) | (green << 8) | blue);
904
+ # var hexString = rgbNumber.toString(16);
905
+ # var missingZeros = 6 - hexString.length;
906
+ # var resultBuilder = ['#'];
907
+ # for (var i = 0; i < missingZeros; i++) `
908
+ # resultBuilder.push('0');
909
+ # `
910
+ # resultBuilder.push(hexString);
911
+ # return resultBuilder.join('');
912
+ # `;
913
+ # // ...
914
+ # Corresponds to the JSON property `color`
915
+ # @return [Google::Apis::VisionV1::Color]
916
+ attr_accessor :color
917
+
918
+ # Image-specific score for this color. Value in range [0, 1].
919
+ # Corresponds to the JSON property `score`
920
+ # @return [Float]
921
+ attr_accessor :score
922
+
923
+ def initialize(**args)
924
+ update!(**args)
925
+ end
926
+
927
+ # Update properties of this object
928
+ def update!(**args)
929
+ @pixel_fraction = args[:pixel_fraction] if args.key?(:pixel_fraction)
930
+ @color = args[:color] if args.key?(:color)
931
+ @score = args[:score] if args.key?(:score)
932
+ end
933
+ end
934
+
935
+ # Set of detected entity features.
936
+ class EntityAnnotation
937
+ include Google::Apis::Core::Hashable
938
+
939
+ # The location information for the detected entity. Multiple
940
+ # `LocationInfo` elements can be present because one location may
941
+ # indicate the location of the scene in the image, and another location
942
+ # may indicate the location of the place where the image was taken.
943
+ # Location information is usually present for landmarks.
944
+ # Corresponds to the JSON property `locations`
945
+ # @return [Array<Google::Apis::VisionV1::LocationInfo>]
946
+ attr_accessor :locations
947
+
948
+ # Opaque entity ID. Some IDs may be available in
949
+ # [Google Knowledge Graph Search API](https://developers.google.com/knowledge-
950
+ # graph/).
951
+ # Corresponds to the JSON property `mid`
952
+ # @return [String]
953
+ attr_accessor :mid
954
+
955
+ # The accuracy of the entity detection in an image.
956
+ # For example, for an image in which the "Eiffel Tower" entity is detected,
957
+ # this field represents the confidence that there is a tower in the query
958
+ # image. Range [0, 1].
959
+ # Corresponds to the JSON property `confidence`
960
+ # @return [Float]
961
+ attr_accessor :confidence
962
+
963
+ # The language code for the locale in which the entity textual
964
+ # `description` is expressed.
965
+ # Corresponds to the JSON property `locale`
966
+ # @return [String]
967
+ attr_accessor :locale
968
+
969
+ # A bounding polygon for the detected image annotation.
970
+ # Corresponds to the JSON property `boundingPoly`
971
+ # @return [Google::Apis::VisionV1::BoundingPoly]
972
+ attr_accessor :bounding_poly
973
+
974
+ # The relevancy of the ICA (Image Content Annotation) label to the
975
+ # image. For example, the relevancy of "tower" is likely higher to an image
976
+ # containing the detected "Eiffel Tower" than to an image containing a
977
+ # detected distant towering building, even though the confidence that
978
+ # there is a tower in each image may be the same. Range [0, 1].
979
+ # Corresponds to the JSON property `topicality`
980
+ # @return [Float]
981
+ attr_accessor :topicality
982
+
983
+ # Entity textual description, expressed in its `locale` language.
984
+ # Corresponds to the JSON property `description`
985
+ # @return [String]
986
+ attr_accessor :description
987
+
988
+ # Some entities may have optional user-supplied `Property` (name/value)
989
+ # fields, such a score or string that qualifies the entity.
990
+ # Corresponds to the JSON property `properties`
991
+ # @return [Array<Google::Apis::VisionV1::Property>]
992
+ attr_accessor :properties
993
+
994
+ # Overall score of the result. Range [0, 1].
995
+ # Corresponds to the JSON property `score`
996
+ # @return [Float]
997
+ attr_accessor :score
998
+
999
+ def initialize(**args)
1000
+ update!(**args)
1001
+ end
1002
+
1003
+ # Update properties of this object
1004
+ def update!(**args)
1005
+ @locations = args[:locations] if args.key?(:locations)
1006
+ @mid = args[:mid] if args.key?(:mid)
1007
+ @confidence = args[:confidence] if args.key?(:confidence)
1008
+ @locale = args[:locale] if args.key?(:locale)
1009
+ @bounding_poly = args[:bounding_poly] if args.key?(:bounding_poly)
1010
+ @topicality = args[:topicality] if args.key?(:topicality)
1011
+ @description = args[:description] if args.key?(:description)
1012
+ @properties = args[:properties] if args.key?(:properties)
1013
+ @score = args[:score] if args.key?(:score)
1014
+ end
1015
+ end
1016
+
1017
+ # A face-specific landmark (for example, a face feature).
1018
+ # Landmark positions may fall outside the bounds of the image
1019
+ # if the face is near one or more edges of the image.
1020
+ # Therefore it is NOT guaranteed that `0 <= x < width` or
1021
+ # `0 <= y < height`.
1022
+ class Landmark
1023
+ include Google::Apis::Core::Hashable
1024
+
1025
+ # Face landmark type.
1026
+ # Corresponds to the JSON property `type`
1027
+ # @return [String]
1028
+ attr_accessor :type
1029
+
1030
+ # A 3D position in the image, used primarily for Face detection landmarks.
1031
+ # A valid Position must have both x and y coordinates.
1032
+ # The position coordinates are in the same scale as the original image.
1033
+ # Corresponds to the JSON property `position`
1034
+ # @return [Google::Apis::VisionV1::Position]
1035
+ attr_accessor :position
1036
+
1037
+ def initialize(**args)
1038
+ update!(**args)
1039
+ end
1040
+
1041
+ # Update properties of this object
1042
+ def update!(**args)
1043
+ @type = args[:type] if args.key?(:type)
1044
+ @position = args[:position] if args.key?(:position)
1045
+ end
1046
+ end
1047
+
1048
+ # Client image to perform Google Cloud Vision API tasks over.
1049
+ class Image
1050
+ include Google::Apis::Core::Hashable
1051
+
1052
+ # Image content, represented as a stream of bytes.
1053
+ # Note: as with all `bytes` fields, protobuffers use a pure binary
1054
+ # representation, whereas JSON representations use base64.
1055
+ # Corresponds to the JSON property `content`
1056
+ # @return [String]
1057
+ attr_accessor :content
1058
+
1059
+ # External image source (Google Cloud Storage image location).
1060
+ # Corresponds to the JSON property `source`
1061
+ # @return [Google::Apis::VisionV1::ImageSource]
1062
+ attr_accessor :source
1063
+
1064
+ def initialize(**args)
1065
+ update!(**args)
1066
+ end
1067
+
1068
+ # Update properties of this object
1069
+ def update!(**args)
1070
+ @content = args[:content] if args.key?(:content)
1071
+ @source = args[:source] if args.key?(:source)
1072
+ end
1073
+ end
1074
+
1075
+ # A face annotation object contains the results of face detection.
1076
+ class FaceAnnotation
1077
+ include Google::Apis::Core::Hashable
1078
+
1079
+ # A bounding polygon for the detected image annotation.
1080
+ # Corresponds to the JSON property `fdBoundingPoly`
1081
+ # @return [Google::Apis::VisionV1::BoundingPoly]
1082
+ attr_accessor :fd_bounding_poly
1083
+
1084
+ # Anger likelihood.
1085
+ # Corresponds to the JSON property `angerLikelihood`
1086
+ # @return [String]
1087
+ attr_accessor :anger_likelihood
1088
+
1089
+ # Detected face landmarks.
1090
+ # Corresponds to the JSON property `landmarks`
1091
+ # @return [Array<Google::Apis::VisionV1::Landmark>]
1092
+ attr_accessor :landmarks
1093
+
1094
+ # Surprise likelihood.
1095
+ # Corresponds to the JSON property `surpriseLikelihood`
1096
+ # @return [String]
1097
+ attr_accessor :surprise_likelihood
1098
+
1099
+ # Face landmarking confidence. Range [0, 1].
1100
+ # Corresponds to the JSON property `landmarkingConfidence`
1101
+ # @return [Float]
1102
+ attr_accessor :landmarking_confidence
1103
+
1104
+ # Joy likelihood.
1105
+ # Corresponds to the JSON property `joyLikelihood`
1106
+ # @return [String]
1107
+ attr_accessor :joy_likelihood
1108
+
1109
+ # Under-exposed likelihood.
1110
+ # Corresponds to the JSON property `underExposedLikelihood`
1111
+ # @return [String]
1112
+ attr_accessor :under_exposed_likelihood
1113
+
1114
+ # Yaw angle, which indicates the leftward/rightward angle that the face is
1115
+ # pointing relative to the vertical plane perpendicular to the image. Range
1116
+ # [-180,180].
1117
+ # Corresponds to the JSON property `panAngle`
1118
+ # @return [Float]
1119
+ attr_accessor :pan_angle
1120
+
1121
+ # Detection confidence. Range [0, 1].
1122
+ # Corresponds to the JSON property `detectionConfidence`
1123
+ # @return [Float]
1124
+ attr_accessor :detection_confidence
1125
+
1126
+ # Blurred likelihood.
1127
+ # Corresponds to the JSON property `blurredLikelihood`
1128
+ # @return [String]
1129
+ attr_accessor :blurred_likelihood
1130
+
1131
+ # Headwear likelihood.
1132
+ # Corresponds to the JSON property `headwearLikelihood`
1133
+ # @return [String]
1134
+ attr_accessor :headwear_likelihood
1135
+
1136
+ # A bounding polygon for the detected image annotation.
1137
+ # Corresponds to the JSON property `boundingPoly`
1138
+ # @return [Google::Apis::VisionV1::BoundingPoly]
1139
+ attr_accessor :bounding_poly
1140
+
1141
+ # Roll angle, which indicates the amount of clockwise/anti-clockwise rotation
1142
+ # of the face relative to the image vertical about the axis perpendicular to
1143
+ # the face. Range [-180,180].
1144
+ # Corresponds to the JSON property `rollAngle`
1145
+ # @return [Float]
1146
+ attr_accessor :roll_angle
1147
+
1148
+ # Sorrow likelihood.
1149
+ # Corresponds to the JSON property `sorrowLikelihood`
1150
+ # @return [String]
1151
+ attr_accessor :sorrow_likelihood
1152
+
1153
+ # Pitch angle, which indicates the upwards/downwards angle that the face is
1154
+ # pointing relative to the image's horizontal plane. Range [-180,180].
1155
+ # Corresponds to the JSON property `tiltAngle`
1156
+ # @return [Float]
1157
+ attr_accessor :tilt_angle
1158
+
1159
+ def initialize(**args)
1160
+ update!(**args)
1161
+ end
1162
+
1163
+ # Update properties of this object
1164
+ def update!(**args)
1165
+ @fd_bounding_poly = args[:fd_bounding_poly] if args.key?(:fd_bounding_poly)
1166
+ @anger_likelihood = args[:anger_likelihood] if args.key?(:anger_likelihood)
1167
+ @landmarks = args[:landmarks] if args.key?(:landmarks)
1168
+ @surprise_likelihood = args[:surprise_likelihood] if args.key?(:surprise_likelihood)
1169
+ @landmarking_confidence = args[:landmarking_confidence] if args.key?(:landmarking_confidence)
1170
+ @joy_likelihood = args[:joy_likelihood] if args.key?(:joy_likelihood)
1171
+ @under_exposed_likelihood = args[:under_exposed_likelihood] if args.key?(:under_exposed_likelihood)
1172
+ @pan_angle = args[:pan_angle] if args.key?(:pan_angle)
1173
+ @detection_confidence = args[:detection_confidence] if args.key?(:detection_confidence)
1174
+ @blurred_likelihood = args[:blurred_likelihood] if args.key?(:blurred_likelihood)
1175
+ @headwear_likelihood = args[:headwear_likelihood] if args.key?(:headwear_likelihood)
1176
+ @bounding_poly = args[:bounding_poly] if args.key?(:bounding_poly)
1177
+ @roll_angle = args[:roll_angle] if args.key?(:roll_angle)
1178
+ @sorrow_likelihood = args[:sorrow_likelihood] if args.key?(:sorrow_likelihood)
1179
+ @tilt_angle = args[:tilt_angle] if args.key?(:tilt_angle)
1180
+ end
1181
+ end
1182
+
1183
+ # Multiple image annotation requests are batched into a single service call.
1184
+ class BatchAnnotateImagesRequest
1185
+ include Google::Apis::Core::Hashable
1186
+
1187
+ # Individual image annotation requests for this batch.
1188
+ # Corresponds to the JSON property `requests`
1189
+ # @return [Array<Google::Apis::VisionV1::AnnotateImageRequest>]
1190
+ attr_accessor :requests
1191
+
1192
+ def initialize(**args)
1193
+ update!(**args)
1194
+ end
1195
+
1196
+ # Update properties of this object
1197
+ def update!(**args)
1198
+ @requests = args[:requests] if args.key?(:requests)
1199
+ end
1200
+ end
1201
+
1202
+ # Image context and/or feature-specific parameters.
1203
+ class ImageContext
1204
+ include Google::Apis::Core::Hashable
1205
+
1206
+ # Rectangle determined by min and max `LatLng` pairs.
1207
+ # Corresponds to the JSON property `latLongRect`
1208
+ # @return [Google::Apis::VisionV1::LatLongRect]
1209
+ attr_accessor :lat_long_rect
1210
+
1211
+ # List of languages to use for TEXT_DETECTION. In most cases, an empty value
1212
+ # yields the best results since it enables automatic language detection. For
1213
+ # languages based on the Latin alphabet, setting `language_hints` is not
1214
+ # needed. In rare cases, when the language of the text in the image is known,
1215
+ # setting a hint will help get better results (although it will be a
1216
+ # significant hindrance if the hint is wrong). Text detection returns an
1217
+ # error if one or more of the specified languages is not one of the
1218
+ # [supported languages](/vision/docs/languages).
1219
+ # Corresponds to the JSON property `languageHints`
1220
+ # @return [Array<String>]
1221
+ attr_accessor :language_hints
1222
+
1223
+ def initialize(**args)
1224
+ update!(**args)
1225
+ end
1226
+
1227
+ # Update properties of this object
1228
+ def update!(**args)
1229
+ @lat_long_rect = args[:lat_long_rect] if args.key?(:lat_long_rect)
1230
+ @language_hints = args[:language_hints] if args.key?(:language_hints)
1231
+ end
1232
+ end
1233
+
1234
+ # Request for performing Google Cloud Vision API tasks over a user-provided
1235
+ # image, with user-requested features.
1236
+ class AnnotateImageRequest
1237
+ include Google::Apis::Core::Hashable
1238
+
1239
+ # Client image to perform Google Cloud Vision API tasks over.
1240
+ # Corresponds to the JSON property `image`
1241
+ # @return [Google::Apis::VisionV1::Image]
1242
+ attr_accessor :image
1243
+
1244
+ # Requested features.
1245
+ # Corresponds to the JSON property `features`
1246
+ # @return [Array<Google::Apis::VisionV1::Feature>]
1247
+ attr_accessor :features
1248
+
1249
+ # Image context and/or feature-specific parameters.
1250
+ # Corresponds to the JSON property `imageContext`
1251
+ # @return [Google::Apis::VisionV1::ImageContext]
1252
+ attr_accessor :image_context
1253
+
1254
+ def initialize(**args)
1255
+ update!(**args)
1256
+ end
1257
+
1258
+ # Update properties of this object
1259
+ def update!(**args)
1260
+ @image = args[:image] if args.key?(:image)
1261
+ @features = args[:features] if args.key?(:features)
1262
+ @image_context = args[:image_context] if args.key?(:image_context)
1263
+ end
1264
+ end
1265
+ end
1266
+ end
1267
+ end