lemboy-google-api-client 0.9.26

Sign up to get free protection for your applications and to get access to all the features.
Files changed (555) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +20 -0
  3. data/.rspec +2 -0
  4. data/.rubocop.yml +7 -0
  5. data/.rubocop_todo.yml +63 -0
  6. data/.travis.yml +27 -0
  7. data/.yardopts +12 -0
  8. data/CHANGELOG.md +309 -0
  9. data/CONTRIBUTING.md +31 -0
  10. data/Gemfile +53 -0
  11. data/LICENSE +202 -0
  12. data/MIGRATING.md +171 -0
  13. data/README.md +327 -0
  14. data/Rakefile +2 -0
  15. data/api_names.yaml +36215 -0
  16. data/bin/generate-api +109 -0
  17. data/generated/google/apis/adexchangebuyer2_v2beta1.rb +35 -0
  18. data/generated/google/apis/adexchangebuyer2_v2beta1/classes.rb +298 -0
  19. data/generated/google/apis/adexchangebuyer2_v2beta1/representations.rb +122 -0
  20. data/generated/google/apis/adexchangebuyer2_v2beta1/service.rb +458 -0
  21. data/generated/google/apis/adexchangebuyer_v1_3.rb +35 -0
  22. data/generated/google/apis/adexchangebuyer_v1_3/classes.rb +1335 -0
  23. data/generated/google/apis/adexchangebuyer_v1_3/representations.rb +446 -0
  24. data/generated/google/apis/adexchangebuyer_v1_3/service.rb +872 -0
  25. data/generated/google/apis/adexchangebuyer_v1_4.rb +35 -0
  26. data/generated/google/apis/adexchangebuyer_v1_4/classes.rb +3550 -0
  27. data/generated/google/apis/adexchangebuyer_v1_4/representations.rb +1421 -0
  28. data/generated/google/apis/adexchangebuyer_v1_4/service.rb +1538 -0
  29. data/generated/google/apis/adexchangeseller_v2_0.rb +37 -0
  30. data/generated/google/apis/adexchangeseller_v2_0/classes.rb +792 -0
  31. data/generated/google/apis/adexchangeseller_v2_0/representations.rb +347 -0
  32. data/generated/google/apis/adexchangeseller_v2_0/service.rb +667 -0
  33. data/generated/google/apis/admin_datatransfer_v1.rb +37 -0
  34. data/generated/google/apis/admin_datatransfer_v1/classes.rb +267 -0
  35. data/generated/google/apis/admin_datatransfer_v1/representations.rb +130 -0
  36. data/generated/google/apis/admin_datatransfer_v1/service.rb +262 -0
  37. data/generated/google/apis/admin_directory_v1.rb +113 -0
  38. data/generated/google/apis/admin_directory_v1/classes.rb +3241 -0
  39. data/generated/google/apis/admin_directory_v1/representations.rb +1172 -0
  40. data/generated/google/apis/admin_directory_v1/service.rb +3857 -0
  41. data/generated/google/apis/admin_reports_v1.rb +38 -0
  42. data/generated/google/apis/admin_reports_v1/classes.rb +582 -0
  43. data/generated/google/apis/admin_reports_v1/representations.rb +257 -0
  44. data/generated/google/apis/admin_reports_v1/service.rb +336 -0
  45. data/generated/google/apis/adsense_v1_4.rb +37 -0
  46. data/generated/google/apis/adsense_v1_4/classes.rb +1280 -0
  47. data/generated/google/apis/adsense_v1_4/representations.rb +555 -0
  48. data/generated/google/apis/adsense_v1_4/service.rb +1713 -0
  49. data/generated/google/apis/adsensehost_v4_1.rb +35 -0
  50. data/generated/google/apis/adsensehost_v4_1/classes.rb +836 -0
  51. data/generated/google/apis/adsensehost_v4_1/representations.rb +367 -0
  52. data/generated/google/apis/adsensehost_v4_1/service.rb +1164 -0
  53. data/generated/google/apis/analytics_v3.rb +49 -0
  54. data/generated/google/apis/analytics_v3/classes.rb +5536 -0
  55. data/generated/google/apis/analytics_v3/representations.rb +1992 -0
  56. data/generated/google/apis/analytics_v3/service.rb +3785 -0
  57. data/generated/google/apis/analyticsreporting_v4.rb +37 -0
  58. data/generated/google/apis/analyticsreporting_v4/classes.rb +1420 -0
  59. data/generated/google/apis/analyticsreporting_v4/representations.rb +598 -0
  60. data/generated/google/apis/analyticsreporting_v4/service.rb +88 -0
  61. data/generated/google/apis/androidenterprise_v1.rb +34 -0
  62. data/generated/google/apis/androidenterprise_v1/classes.rb +2250 -0
  63. data/generated/google/apis/androidenterprise_v1/representations.rb +970 -0
  64. data/generated/google/apis/androidenterprise_v1/service.rb +3267 -0
  65. data/generated/google/apis/androidpublisher_v2.rb +34 -0
  66. data/generated/google/apis/androidpublisher_v2/classes.rb +1941 -0
  67. data/generated/google/apis/androidpublisher_v2/representations.rb +975 -0
  68. data/generated/google/apis/androidpublisher_v2/service.rb +2572 -0
  69. data/generated/google/apis/appengine_v1beta4.rb +35 -0
  70. data/generated/google/apis/appengine_v1beta4/classes.rb +1585 -0
  71. data/generated/google/apis/appengine_v1beta4/representations.rb +542 -0
  72. data/generated/google/apis/appengine_v1beta4/service.rb +477 -0
  73. data/generated/google/apis/appengine_v1beta5.rb +40 -0
  74. data/generated/google/apis/appengine_v1beta5/classes.rb +1984 -0
  75. data/generated/google/apis/appengine_v1beta5/representations.rb +765 -0
  76. data/generated/google/apis/appengine_v1beta5/service.rb +864 -0
  77. data/generated/google/apis/appsactivity_v1.rb +46 -0
  78. data/generated/google/apis/appsactivity_v1/classes.rb +415 -0
  79. data/generated/google/apis/appsactivity_v1/representations.rb +209 -0
  80. data/generated/google/apis/appsactivity_v1/service.rb +128 -0
  81. data/generated/google/apis/appstate_v1.rb +34 -0
  82. data/generated/google/apis/appstate_v1/classes.rb +154 -0
  83. data/generated/google/apis/appstate_v1/representations.rb +87 -0
  84. data/generated/google/apis/appstate_v1/service.rb +260 -0
  85. data/generated/google/apis/autoscaler_v1beta2.rb +38 -0
  86. data/generated/google/apis/autoscaler_v1beta2/classes.rb +710 -0
  87. data/generated/google/apis/autoscaler_v1beta2/representations.rb +296 -0
  88. data/generated/google/apis/autoscaler_v1beta2/service.rb +478 -0
  89. data/generated/google/apis/bigquery_v2.rb +52 -0
  90. data/generated/google/apis/bigquery_v2/classes.rb +3081 -0
  91. data/generated/google/apis/bigquery_v2/representations.rb +1094 -0
  92. data/generated/google/apis/bigquery_v2/service.rb +988 -0
  93. data/generated/google/apis/blogger_v3.rb +37 -0
  94. data/generated/google/apis/blogger_v3/classes.rb +1354 -0
  95. data/generated/google/apis/blogger_v3/representations.rb +632 -0
  96. data/generated/google/apis/blogger_v3/service.rb +1587 -0
  97. data/generated/google/apis/books_v1.rb +34 -0
  98. data/generated/google/apis/books_v1/classes.rb +4160 -0
  99. data/generated/google/apis/books_v1/representations.rb +1799 -0
  100. data/generated/google/apis/books_v1/service.rb +2300 -0
  101. data/generated/google/apis/calendar_v3.rb +37 -0
  102. data/generated/google/apis/calendar_v3/classes.rb +1742 -0
  103. data/generated/google/apis/calendar_v3/representations.rb +631 -0
  104. data/generated/google/apis/calendar_v3/service.rb +1968 -0
  105. data/generated/google/apis/civicinfo_v2.rb +32 -0
  106. data/generated/google/apis/civicinfo_v2/classes.rb +1499 -0
  107. data/generated/google/apis/civicinfo_v2/representations.rb +572 -0
  108. data/generated/google/apis/civicinfo_v2/service.rb +300 -0
  109. data/generated/google/apis/classroom_v1.rb +70 -0
  110. data/generated/google/apis/classroom_v1/classes.rb +1572 -0
  111. data/generated/google/apis/classroom_v1/representations.rb +729 -0
  112. data/generated/google/apis/classroom_v1/service.rb +1945 -0
  113. data/generated/google/apis/classroom_v1beta1.rb +49 -0
  114. data/generated/google/apis/classroom_v1beta1/classes.rb +447 -0
  115. data/generated/google/apis/classroom_v1beta1/representations.rb +190 -0
  116. data/generated/google/apis/classroom_v1beta1/service.rb +791 -0
  117. data/generated/google/apis/cloudbilling_v1.rb +35 -0
  118. data/generated/google/apis/cloudbilling_v1/classes.rb +169 -0
  119. data/generated/google/apis/cloudbilling_v1/representations.rb +87 -0
  120. data/generated/google/apis/cloudbilling_v1/service.rb +258 -0
  121. data/generated/google/apis/cloudbuild_v1.rb +34 -0
  122. data/generated/google/apis/cloudbuild_v1/classes.rb +919 -0
  123. data/generated/google/apis/cloudbuild_v1/representations.rb +364 -0
  124. data/generated/google/apis/cloudbuild_v1/service.rb +492 -0
  125. data/generated/google/apis/clouddebugger_v2.rb +38 -0
  126. data/generated/google/apis/clouddebugger_v2/classes.rb +1081 -0
  127. data/generated/google/apis/clouddebugger_v2/representations.rb +465 -0
  128. data/generated/google/apis/clouddebugger_v2/service.rb +396 -0
  129. data/generated/google/apis/cloudkms_v1beta1.rb +34 -0
  130. data/generated/google/apis/cloudkms_v1beta1/classes.rb +999 -0
  131. data/generated/google/apis/cloudkms_v1beta1/representations.rb +448 -0
  132. data/generated/google/apis/cloudkms_v1beta1/service.rb +932 -0
  133. data/generated/google/apis/cloudlatencytest_v2.rb +34 -0
  134. data/generated/google/apis/cloudlatencytest_v2/classes.rb +195 -0
  135. data/generated/google/apis/cloudlatencytest_v2/representations.rb +127 -0
  136. data/generated/google/apis/cloudlatencytest_v2/service.rb +135 -0
  137. data/generated/google/apis/cloudmonitoring_v2beta2.rb +37 -0
  138. data/generated/google/apis/cloudmonitoring_v2beta2/classes.rb +679 -0
  139. data/generated/google/apis/cloudmonitoring_v2beta2/representations.rb +353 -0
  140. data/generated/google/apis/cloudmonitoring_v2beta2/service.rb +452 -0
  141. data/generated/google/apis/cloudresourcemanager_v1.rb +38 -0
  142. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +886 -0
  143. data/generated/google/apis/cloudresourcemanager_v1/representations.rb +359 -0
  144. data/generated/google/apis/cloudresourcemanager_v1/service.rb +686 -0
  145. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +38 -0
  146. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +682 -0
  147. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +312 -0
  148. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +710 -0
  149. data/generated/google/apis/cloudtrace_v1.rb +43 -0
  150. data/generated/google/apis/cloudtrace_v1/classes.rb +188 -0
  151. data/generated/google/apis/cloudtrace_v1/representations.rb +102 -0
  152. data/generated/google/apis/cloudtrace_v1/service.rb +192 -0
  153. data/generated/google/apis/clouduseraccounts_beta.rb +44 -0
  154. data/generated/google/apis/clouduseraccounts_beta/classes.rb +845 -0
  155. data/generated/google/apis/clouduseraccounts_beta/representations.rb +352 -0
  156. data/generated/google/apis/clouduseraccounts_beta/service.rb +907 -0
  157. data/generated/google/apis/compute_beta.rb +49 -0
  158. data/generated/google/apis/compute_beta/classes.rb +12261 -0
  159. data/generated/google/apis/compute_beta/representations.rb +4615 -0
  160. data/generated/google/apis/compute_beta/service.rb +15330 -0
  161. data/generated/google/apis/compute_v1.rb +49 -0
  162. data/generated/google/apis/compute_v1/classes.rb +11179 -0
  163. data/generated/google/apis/compute_v1/representations.rb +4203 -0
  164. data/generated/google/apis/compute_v1/service.rb +12937 -0
  165. data/generated/google/apis/container_v1.rb +35 -0
  166. data/generated/google/apis/container_v1/classes.rb +1040 -0
  167. data/generated/google/apis/container_v1/representations.rb +415 -0
  168. data/generated/google/apis/container_v1/service.rb +659 -0
  169. data/generated/google/apis/container_v1beta1.rb +35 -0
  170. data/generated/google/apis/container_v1beta1/classes.rb +466 -0
  171. data/generated/google/apis/container_v1beta1/representations.rb +177 -0
  172. data/generated/google/apis/container_v1beta1/service.rb +394 -0
  173. data/generated/google/apis/content_v2.rb +35 -0
  174. data/generated/google/apis/content_v2/classes.rb +6887 -0
  175. data/generated/google/apis/content_v2/representations.rb +2963 -0
  176. data/generated/google/apis/content_v2/service.rb +2653 -0
  177. data/generated/google/apis/coordinate_v1.rb +37 -0
  178. data/generated/google/apis/coordinate_v1/classes.rb +669 -0
  179. data/generated/google/apis/coordinate_v1/representations.rb +321 -0
  180. data/generated/google/apis/coordinate_v1/service.rb +678 -0
  181. data/generated/google/apis/customsearch_v1.rb +31 -0
  182. data/generated/google/apis/customsearch_v1/classes.rb +771 -0
  183. data/generated/google/apis/customsearch_v1/representations.rb +302 -0
  184. data/generated/google/apis/customsearch_v1/service.rb +207 -0
  185. data/generated/google/apis/dataflow_v1b3.rb +37 -0
  186. data/generated/google/apis/dataflow_v1b3/classes.rb +4225 -0
  187. data/generated/google/apis/dataflow_v1b3/representations.rb +1809 -0
  188. data/generated/google/apis/dataflow_v1b3/service.rb +874 -0
  189. data/generated/google/apis/dataproc_v1.rb +34 -0
  190. data/generated/google/apis/dataproc_v1/classes.rb +1716 -0
  191. data/generated/google/apis/dataproc_v1/representations.rb +678 -0
  192. data/generated/google/apis/dataproc_v1/service.rb +670 -0
  193. data/generated/google/apis/datastore_v1.rb +38 -0
  194. data/generated/google/apis/datastore_v1/classes.rb +1289 -0
  195. data/generated/google/apis/datastore_v1/representations.rb +572 -0
  196. data/generated/google/apis/datastore_v1/service.rb +259 -0
  197. data/generated/google/apis/datastore_v1beta2.rb +40 -0
  198. data/generated/google/apis/datastore_v1beta2/classes.rb +1186 -0
  199. data/generated/google/apis/datastore_v1beta2/representations.rb +594 -0
  200. data/generated/google/apis/datastore_v1beta2/service.rb +294 -0
  201. data/generated/google/apis/datastore_v1beta3.rb +38 -0
  202. data/generated/google/apis/datastore_v1beta3/classes.rb +1284 -0
  203. data/generated/google/apis/datastore_v1beta3/representations.rb +572 -0
  204. data/generated/google/apis/datastore_v1beta3/service.rb +259 -0
  205. data/generated/google/apis/deploymentmanager_v2.rb +43 -0
  206. data/generated/google/apis/deploymentmanager_v2/classes.rb +1582 -0
  207. data/generated/google/apis/deploymentmanager_v2/representations.rb +686 -0
  208. data/generated/google/apis/deploymentmanager_v2/service.rb +1026 -0
  209. data/generated/google/apis/deploymentmanager_v2beta2.rb +44 -0
  210. data/generated/google/apis/deploymentmanager_v2beta2/classes.rb +843 -0
  211. data/generated/google/apis/deploymentmanager_v2beta2/representations.rb +306 -0
  212. data/generated/google/apis/deploymentmanager_v2beta2/service.rb +689 -0
  213. data/generated/google/apis/dfareporting_v2_1.rb +37 -0
  214. data/generated/google/apis/dfareporting_v2_1/classes.rb +10770 -0
  215. data/generated/google/apis/dfareporting_v2_1/representations.rb +3438 -0
  216. data/generated/google/apis/dfareporting_v2_1/service.rb +8585 -0
  217. data/generated/google/apis/dfareporting_v2_3.rb +37 -0
  218. data/generated/google/apis/dfareporting_v2_3/classes.rb +10839 -0
  219. data/generated/google/apis/dfareporting_v2_3/representations.rb +3829 -0
  220. data/generated/google/apis/dfareporting_v2_3/service.rb +8581 -0
  221. data/generated/google/apis/dfareporting_v2_5.rb +40 -0
  222. data/generated/google/apis/dfareporting_v2_5/classes.rb +11225 -0
  223. data/generated/google/apis/dfareporting_v2_5/representations.rb +3982 -0
  224. data/generated/google/apis/dfareporting_v2_5/service.rb +8755 -0
  225. data/generated/google/apis/dfareporting_v2_6.rb +40 -0
  226. data/generated/google/apis/dfareporting_v2_6/classes.rb +11586 -0
  227. data/generated/google/apis/dfareporting_v2_6/representations.rb +4119 -0
  228. data/generated/google/apis/dfareporting_v2_6/service.rb +9025 -0
  229. data/generated/google/apis/dfareporting_v2_7.rb +40 -0
  230. data/generated/google/apis/dfareporting_v2_7/classes.rb +11876 -0
  231. data/generated/google/apis/dfareporting_v2_7/representations.rb +4243 -0
  232. data/generated/google/apis/dfareporting_v2_7/service.rb +9095 -0
  233. data/generated/google/apis/discovery_v1.rb +32 -0
  234. data/generated/google/apis/discovery_v1/classes.rb +961 -0
  235. data/generated/google/apis/discovery_v1/representations.rb +397 -0
  236. data/generated/google/apis/discovery_v1/service.rb +142 -0
  237. data/generated/google/apis/dns_v1.rb +43 -0
  238. data/generated/google/apis/dns_v1/classes.rb +406 -0
  239. data/generated/google/apis/dns_v1/representations.rb +167 -0
  240. data/generated/google/apis/dns_v1/service.rb +453 -0
  241. data/generated/google/apis/dns_v2beta1.rb +43 -0
  242. data/generated/google/apis/dns_v2beta1/classes.rb +915 -0
  243. data/generated/google/apis/dns_v2beta1/representations.rb +368 -0
  244. data/generated/google/apis/dns_v2beta1/service.rb +768 -0
  245. data/generated/google/apis/doubleclickbidmanager_v1.rb +31 -0
  246. data/generated/google/apis/doubleclickbidmanager_v1/classes.rb +795 -0
  247. data/generated/google/apis/doubleclickbidmanager_v1/representations.rb +368 -0
  248. data/generated/google/apis/doubleclickbidmanager_v1/service.rb +376 -0
  249. data/generated/google/apis/doubleclicksearch_v2.rb +35 -0
  250. data/generated/google/apis/doubleclicksearch_v2/classes.rb +960 -0
  251. data/generated/google/apis/doubleclicksearch_v2/representations.rb +350 -0
  252. data/generated/google/apis/doubleclicksearch_v2/service.rb +480 -0
  253. data/generated/google/apis/drive_v2.rb +59 -0
  254. data/generated/google/apis/drive_v2/classes.rb +2633 -0
  255. data/generated/google/apis/drive_v2/representations.rb +885 -0
  256. data/generated/google/apis/drive_v2/service.rb +2754 -0
  257. data/generated/google/apis/drive_v3.rb +56 -0
  258. data/generated/google/apis/drive_v3/classes.rb +1611 -0
  259. data/generated/google/apis/drive_v3/representations.rb +555 -0
  260. data/generated/google/apis/drive_v3/service.rb +1553 -0
  261. data/generated/google/apis/fitness_v1.rb +85 -0
  262. data/generated/google/apis/fitness_v1/classes.rb +943 -0
  263. data/generated/google/apis/fitness_v1/representations.rb +380 -0
  264. data/generated/google/apis/fitness_v1/service.rb +674 -0
  265. data/generated/google/apis/fusiontables_v2.rb +37 -0
  266. data/generated/google/apis/fusiontables_v2/classes.rb +1049 -0
  267. data/generated/google/apis/fusiontables_v2/representations.rb +457 -0
  268. data/generated/google/apis/fusiontables_v2/service.rb +1463 -0
  269. data/generated/google/apis/games_configuration_v1configuration.rb +34 -0
  270. data/generated/google/apis/games_configuration_v1configuration/classes.rb +506 -0
  271. data/generated/google/apis/games_configuration_v1configuration/representations.rb +228 -0
  272. data/generated/google/apis/games_configuration_v1configuration/service.rb +565 -0
  273. data/generated/google/apis/games_management_v1management.rb +37 -0
  274. data/generated/google/apis/games_management_v1management/classes.rb +567 -0
  275. data/generated/google/apis/games_management_v1management/representations.rb +278 -0
  276. data/generated/google/apis/games_management_v1management/service.rb +994 -0
  277. data/generated/google/apis/games_v1.rb +40 -0
  278. data/generated/google/apis/games_v1/classes.rb +4667 -0
  279. data/generated/google/apis/games_v1/representations.rb +1800 -0
  280. data/generated/google/apis/games_v1/service.rb +2449 -0
  281. data/generated/google/apis/gan_v1beta1.rb +31 -0
  282. data/generated/google/apis/gan_v1beta1/classes.rb +1428 -0
  283. data/generated/google/apis/gan_v1beta1/representations.rb +462 -0
  284. data/generated/google/apis/gan_v1beta1/service.rb +682 -0
  285. data/generated/google/apis/genomics_v1.rb +46 -0
  286. data/generated/google/apis/genomics_v1/classes.rb +3477 -0
  287. data/generated/google/apis/genomics_v1/representations.rb +1284 -0
  288. data/generated/google/apis/genomics_v1/service.rb +2207 -0
  289. data/generated/google/apis/genomics_v1beta2.rb +46 -0
  290. data/generated/google/apis/genomics_v1beta2/classes.rb +3288 -0
  291. data/generated/google/apis/genomics_v1beta2/representations.rb +1194 -0
  292. data/generated/google/apis/genomics_v1beta2/service.rb +2392 -0
  293. data/generated/google/apis/gmail_v1.rb +61 -0
  294. data/generated/google/apis/gmail_v1/classes.rb +1382 -0
  295. data/generated/google/apis/gmail_v1/representations.rb +624 -0
  296. data/generated/google/apis/gmail_v1/service.rb +2447 -0
  297. data/generated/google/apis/groupsmigration_v1.rb +34 -0
  298. data/generated/google/apis/groupsmigration_v1/classes.rb +51 -0
  299. data/generated/google/apis/groupsmigration_v1/representations.rb +40 -0
  300. data/generated/google/apis/groupsmigration_v1/service.rb +110 -0
  301. data/generated/google/apis/groupssettings_v1.rb +34 -0
  302. data/generated/google/apis/groupssettings_v1/classes.rb +240 -0
  303. data/generated/google/apis/groupssettings_v1/representations.rb +69 -0
  304. data/generated/google/apis/groupssettings_v1/service.rb +179 -0
  305. data/generated/google/apis/iam_v1.rb +36 -0
  306. data/generated/google/apis/iam_v1/classes.rb +640 -0
  307. data/generated/google/apis/iam_v1/representations.rb +316 -0
  308. data/generated/google/apis/iam_v1/service.rb +554 -0
  309. data/generated/google/apis/identitytoolkit_v3.rb +37 -0
  310. data/generated/google/apis/identitytoolkit_v3/classes.rb +2182 -0
  311. data/generated/google/apis/identitytoolkit_v3/representations.rb +742 -0
  312. data/generated/google/apis/identitytoolkit_v3/service.rb +657 -0
  313. data/generated/google/apis/kgsearch_v1.rb +31 -0
  314. data/generated/google/apis/kgsearch_v1/classes.rb +59 -0
  315. data/generated/google/apis/kgsearch_v1/representations.rb +41 -0
  316. data/generated/google/apis/kgsearch_v1/service.rb +113 -0
  317. data/generated/google/apis/language_v1beta1.rb +36 -0
  318. data/generated/google/apis/language_v1beta1/classes.rb +757 -0
  319. data/generated/google/apis/language_v1beta1/representations.rb +339 -0
  320. data/generated/google/apis/language_v1beta1/service.rb +184 -0
  321. data/generated/google/apis/licensing_v1.rb +34 -0
  322. data/generated/google/apis/licensing_v1/classes.rb +132 -0
  323. data/generated/google/apis/licensing_v1/representations.rb +74 -0
  324. data/generated/google/apis/licensing_v1/service.rb +369 -0
  325. data/generated/google/apis/logging_v1beta3.rb +47 -0
  326. data/generated/google/apis/logging_v1beta3/classes.rb +1079 -0
  327. data/generated/google/apis/logging_v1beta3/representations.rb +366 -0
  328. data/generated/google/apis/logging_v1beta3/service.rb +1001 -0
  329. data/generated/google/apis/logging_v2beta1.rb +46 -0
  330. data/generated/google/apis/logging_v2beta1/classes.rb +1254 -0
  331. data/generated/google/apis/logging_v2beta1/representations.rb +421 -0
  332. data/generated/google/apis/logging_v2beta1/service.rb +788 -0
  333. data/generated/google/apis/manager_v1beta2.rb +53 -0
  334. data/generated/google/apis/manager_v1beta2/classes.rb +1287 -0
  335. data/generated/google/apis/manager_v1beta2/representations.rb +606 -0
  336. data/generated/google/apis/manager_v1beta2/service.rb +372 -0
  337. data/generated/google/apis/manufacturers_v1.rb +34 -0
  338. data/generated/google/apis/manufacturers_v1/classes.rb +258 -0
  339. data/generated/google/apis/manufacturers_v1/representations.rb +103 -0
  340. data/generated/google/apis/manufacturers_v1/service.rb +138 -0
  341. data/generated/google/apis/mirror_v1.rb +37 -0
  342. data/generated/google/apis/mirror_v1/classes.rb +1072 -0
  343. data/generated/google/apis/mirror_v1/representations.rb +390 -0
  344. data/generated/google/apis/mirror_v1/service.rb +977 -0
  345. data/generated/google/apis/monitoring_v3.rb +45 -0
  346. data/generated/google/apis/monitoring_v3/classes.rb +1335 -0
  347. data/generated/google/apis/monitoring_v3/representations.rb +516 -0
  348. data/generated/google/apis/monitoring_v3/service.rb +706 -0
  349. data/generated/google/apis/mybusiness_v3.rb +32 -0
  350. data/generated/google/apis/mybusiness_v3/classes.rb +1864 -0
  351. data/generated/google/apis/mybusiness_v3/representations.rb +741 -0
  352. data/generated/google/apis/mybusiness_v3/service.rb +960 -0
  353. data/generated/google/apis/oauth2_v2.rb +43 -0
  354. data/generated/google/apis/oauth2_v2/classes.rb +245 -0
  355. data/generated/google/apis/oauth2_v2/representations.rb +102 -0
  356. data/generated/google/apis/oauth2_v2/service.rb +199 -0
  357. data/generated/google/apis/pagespeedonline_v2.rb +32 -0
  358. data/generated/google/apis/pagespeedonline_v2/classes.rb +614 -0
  359. data/generated/google/apis/pagespeedonline_v2/representations.rb +272 -0
  360. data/generated/google/apis/pagespeedonline_v2/service.rb +119 -0
  361. data/generated/google/apis/partners_v2.rb +32 -0
  362. data/generated/google/apis/partners_v2/classes.rb +942 -0
  363. data/generated/google/apis/partners_v2/representations.rb +454 -0
  364. data/generated/google/apis/partners_v2/service.rb +400 -0
  365. data/generated/google/apis/people_v1.rb +59 -0
  366. data/generated/google/apis/people_v1/classes.rb +1521 -0
  367. data/generated/google/apis/people_v1/representations.rb +663 -0
  368. data/generated/google/apis/people_v1/service.rb +189 -0
  369. data/generated/google/apis/plus_domains_v1.rb +61 -0
  370. data/generated/google/apis/plus_domains_v1/classes.rb +2609 -0
  371. data/generated/google/apis/plus_domains_v1/representations.rb +1111 -0
  372. data/generated/google/apis/plus_domains_v1/service.rb +904 -0
  373. data/generated/google/apis/plus_v1.rb +43 -0
  374. data/generated/google/apis/plus_v1/classes.rb +2094 -0
  375. data/generated/google/apis/plus_v1/representations.rb +907 -0
  376. data/generated/google/apis/plus_v1/service.rb +470 -0
  377. data/generated/google/apis/prediction_v1_6.rb +47 -0
  378. data/generated/google/apis/prediction_v1_6/classes.rb +751 -0
  379. data/generated/google/apis/prediction_v1_6/representations.rb +369 -0
  380. data/generated/google/apis/prediction_v1_6/service.rb +380 -0
  381. data/generated/google/apis/proximitybeacon_v1beta1.rb +34 -0
  382. data/generated/google/apis/proximitybeacon_v1beta1/classes.rb +786 -0
  383. data/generated/google/apis/proximitybeacon_v1beta1/representations.rb +347 -0
  384. data/generated/google/apis/proximitybeacon_v1beta1/service.rb +806 -0
  385. data/generated/google/apis/pubsub_v1.rb +37 -0
  386. data/generated/google/apis/pubsub_v1/classes.rb +676 -0
  387. data/generated/google/apis/pubsub_v1/representations.rb +323 -0
  388. data/generated/google/apis/pubsub_v1/service.rb +900 -0
  389. data/generated/google/apis/pubsub_v1beta2.rb +37 -0
  390. data/generated/google/apis/pubsub_v1beta2/classes.rb +620 -0
  391. data/generated/google/apis/pubsub_v1beta2/representations.rb +282 -0
  392. data/generated/google/apis/pubsub_v1beta2/service.rb +774 -0
  393. data/generated/google/apis/qpx_express_v1.rb +31 -0
  394. data/generated/google/apis/qpx_express_v1/classes.rb +1274 -0
  395. data/generated/google/apis/qpx_express_v1/representations.rb +473 -0
  396. data/generated/google/apis/qpx_express_v1/service.rb +100 -0
  397. data/generated/google/apis/replicapool_v1beta2.rb +44 -0
  398. data/generated/google/apis/replicapool_v1beta2/classes.rb +631 -0
  399. data/generated/google/apis/replicapool_v1beta2/representations.rb +264 -0
  400. data/generated/google/apis/replicapool_v1beta2/service.rb +608 -0
  401. data/generated/google/apis/replicapoolupdater_v1beta1.rb +45 -0
  402. data/generated/google/apis/replicapoolupdater_v1beta1/classes.rb +733 -0
  403. data/generated/google/apis/replicapoolupdater_v1beta1/representations.rb +294 -0
  404. data/generated/google/apis/replicapoolupdater_v1beta1/service.rb +509 -0
  405. data/generated/google/apis/reseller_v1.rb +37 -0
  406. data/generated/google/apis/reseller_v1/classes.rb +540 -0
  407. data/generated/google/apis/reseller_v1/representations.rb +225 -0
  408. data/generated/google/apis/reseller_v1/service.rb +623 -0
  409. data/generated/google/apis/resourceviews_v1beta2.rb +50 -0
  410. data/generated/google/apis/resourceviews_v1beta2/classes.rb +660 -0
  411. data/generated/google/apis/resourceviews_v1beta2/representations.rb +301 -0
  412. data/generated/google/apis/resourceviews_v1beta2/service.rb +563 -0
  413. data/generated/google/apis/script_v1.rb +64 -0
  414. data/generated/google/apis/script_v1/classes.rb +265 -0
  415. data/generated/google/apis/script_v1/representations.rb +119 -0
  416. data/generated/google/apis/script_v1/service.rb +98 -0
  417. data/generated/google/apis/sheets_v4.rb +43 -0
  418. data/generated/google/apis/sheets_v4/classes.rb +6368 -0
  419. data/generated/google/apis/sheets_v4/representations.rb +2289 -0
  420. data/generated/google/apis/sheets_v4/service.rb +569 -0
  421. data/generated/google/apis/site_verification_v1.rb +37 -0
  422. data/generated/google/apis/site_verification_v1/classes.rb +185 -0
  423. data/generated/google/apis/site_verification_v1/representations.rb +113 -0
  424. data/generated/google/apis/site_verification_v1/service.rb +315 -0
  425. data/generated/google/apis/slides_v1.rb +49 -0
  426. data/generated/google/apis/slides_v1/classes.rb +4044 -0
  427. data/generated/google/apis/slides_v1/representations.rb +1765 -0
  428. data/generated/google/apis/slides_v1/service.rb +202 -0
  429. data/generated/google/apis/speech_v1beta1.rb +34 -0
  430. data/generated/google/apis/speech_v1beta1/classes.rb +513 -0
  431. data/generated/google/apis/speech_v1beta1/representations.rb +218 -0
  432. data/generated/google/apis/speech_v1beta1/service.rb +273 -0
  433. data/generated/google/apis/sqladmin_v1beta4.rb +38 -0
  434. data/generated/google/apis/sqladmin_v1beta4/classes.rb +2142 -0
  435. data/generated/google/apis/sqladmin_v1beta4/representations.rb +893 -0
  436. data/generated/google/apis/sqladmin_v1beta4/service.rb +1709 -0
  437. data/generated/google/apis/storage_v1.rb +46 -0
  438. data/generated/google/apis/storage_v1/classes.rb +1255 -0
  439. data/generated/google/apis/storage_v1/representations.rb +502 -0
  440. data/generated/google/apis/storage_v1/service.rb +1906 -0
  441. data/generated/google/apis/storagetransfer_v1.rb +35 -0
  442. data/generated/google/apis/storagetransfer_v1/classes.rb +1046 -0
  443. data/generated/google/apis/storagetransfer_v1/representations.rb +418 -0
  444. data/generated/google/apis/storagetransfer_v1/service.rb +473 -0
  445. data/generated/google/apis/tagmanager_v1.rb +52 -0
  446. data/generated/google/apis/tagmanager_v1/classes.rb +1494 -0
  447. data/generated/google/apis/tagmanager_v1/representations.rb +611 -0
  448. data/generated/google/apis/tagmanager_v1/service.rb +2119 -0
  449. data/generated/google/apis/taskqueue_v1beta2.rb +37 -0
  450. data/generated/google/apis/taskqueue_v1beta2/classes.rb +254 -0
  451. data/generated/google/apis/taskqueue_v1beta2/representations.rb +126 -0
  452. data/generated/google/apis/taskqueue_v1beta2/service.rb +408 -0
  453. data/generated/google/apis/tasks_v1.rb +37 -0
  454. data/generated/google/apis/tasks_v1/classes.rb +296 -0
  455. data/generated/google/apis/tasks_v1/representations.rb +125 -0
  456. data/generated/google/apis/tasks_v1/service.rb +643 -0
  457. data/generated/google/apis/translate_v2.rb +31 -0
  458. data/generated/google/apis/translate_v2/classes.rb +168 -0
  459. data/generated/google/apis/translate_v2/representations.rb +121 -0
  460. data/generated/google/apis/translate_v2/service.rb +182 -0
  461. data/generated/google/apis/urlshortener_v1.rb +34 -0
  462. data/generated/google/apis/urlshortener_v1/classes.rb +246 -0
  463. data/generated/google/apis/urlshortener_v1/representations.rb +121 -0
  464. data/generated/google/apis/urlshortener_v1/service.rb +176 -0
  465. data/generated/google/apis/vision_v1.rb +36 -0
  466. data/generated/google/apis/vision_v1/classes.rb +1267 -0
  467. data/generated/google/apis/vision_v1/representations.rb +418 -0
  468. data/generated/google/apis/vision_v1/service.rb +90 -0
  469. data/generated/google/apis/webmasters_v3.rb +37 -0
  470. data/generated/google/apis/webmasters_v3/classes.rb +570 -0
  471. data/generated/google/apis/webmasters_v3/representations.rb +283 -0
  472. data/generated/google/apis/webmasters_v3/service.rb +573 -0
  473. data/generated/google/apis/youtube_analytics_v1.rb +46 -0
  474. data/generated/google/apis/youtube_analytics_v1/classes.rb +337 -0
  475. data/generated/google/apis/youtube_analytics_v1/representations.rb +174 -0
  476. data/generated/google/apis/youtube_analytics_v1/service.rb +486 -0
  477. data/generated/google/apis/youtube_partner_v1.rb +37 -0
  478. data/generated/google/apis/youtube_partner_v1/classes.rb +3854 -0
  479. data/generated/google/apis/youtube_partner_v1/representations.rb +1537 -0
  480. data/generated/google/apis/youtube_partner_v1/service.rb +3269 -0
  481. data/generated/google/apis/youtube_v3.rb +50 -0
  482. data/generated/google/apis/youtube_v3/classes.rb +8375 -0
  483. data/generated/google/apis/youtube_v3/representations.rb +3273 -0
  484. data/generated/google/apis/youtube_v3/service.rb +4440 -0
  485. data/generated/google/apis/youtubereporting_v1.rb +38 -0
  486. data/generated/google/apis/youtubereporting_v1/classes.rb +302 -0
  487. data/generated/google/apis/youtubereporting_v1/representations.rb +149 -0
  488. data/generated/google/apis/youtubereporting_v1/service.rb +385 -0
  489. data/google-api-client.gemspec +33 -0
  490. data/lib/cacerts.pem +2183 -0
  491. data/lib/google/api_client/auth/installed_app.rb +128 -0
  492. data/lib/google/api_client/auth/key_utils.rb +94 -0
  493. data/lib/google/api_client/auth/storage.rb +104 -0
  494. data/lib/google/api_client/auth/storages/file_store.rb +57 -0
  495. data/lib/google/api_client/auth/storages/redis_store.rb +59 -0
  496. data/lib/google/api_client/client_secrets.rb +177 -0
  497. data/lib/google/apis.rb +58 -0
  498. data/lib/google/apis/core/api_command.rb +146 -0
  499. data/lib/google/apis/core/base_service.rb +401 -0
  500. data/lib/google/apis/core/batch.rb +239 -0
  501. data/lib/google/apis/core/download.rb +108 -0
  502. data/lib/google/apis/core/hashable.rb +44 -0
  503. data/lib/google/apis/core/http_client_adapter.rb +82 -0
  504. data/lib/google/apis/core/http_command.rb +332 -0
  505. data/lib/google/apis/core/json_representation.rb +145 -0
  506. data/lib/google/apis/core/logging.rb +30 -0
  507. data/lib/google/apis/core/multipart.rb +187 -0
  508. data/lib/google/apis/core/upload.rb +295 -0
  509. data/lib/google/apis/errors.rb +80 -0
  510. data/lib/google/apis/generator.rb +70 -0
  511. data/lib/google/apis/generator/annotator.rb +301 -0
  512. data/lib/google/apis/generator/helpers.rb +74 -0
  513. data/lib/google/apis/generator/model.rb +143 -0
  514. data/lib/google/apis/generator/template.rb +124 -0
  515. data/lib/google/apis/generator/templates/_class.tmpl +40 -0
  516. data/lib/google/apis/generator/templates/_method.tmpl +92 -0
  517. data/lib/google/apis/generator/templates/_representation.tmpl +51 -0
  518. data/lib/google/apis/generator/templates/_representation_stub.tmpl +17 -0
  519. data/lib/google/apis/generator/templates/_representation_type.tmpl +10 -0
  520. data/lib/google/apis/generator/templates/classes.rb.tmpl +29 -0
  521. data/lib/google/apis/generator/templates/module.rb.tmpl +40 -0
  522. data/lib/google/apis/generator/templates/representations.rb.tmpl +32 -0
  523. data/lib/google/apis/generator/templates/service.rb.tmpl +60 -0
  524. data/lib/google/apis/options.rb +85 -0
  525. data/lib/google/apis/version.rb +39 -0
  526. data/rakelib/metrics.rake +22 -0
  527. data/rakelib/rubocop.rake +10 -0
  528. data/rakelib/spec.rake +11 -0
  529. data/rakelib/yard.rake +11 -0
  530. data/samples/cli/.env +4 -0
  531. data/samples/cli/Gemfile +7 -0
  532. data/samples/cli/README.md +51 -0
  533. data/samples/cli/google-api-samples +32 -0
  534. data/samples/cli/lib/base_cli.rb +95 -0
  535. data/samples/cli/lib/samples/analytics.rb +62 -0
  536. data/samples/cli/lib/samples/androidpublisher.rb +47 -0
  537. data/samples/cli/lib/samples/bigquery.rb +101 -0
  538. data/samples/cli/lib/samples/calendar.rb +83 -0
  539. data/samples/cli/lib/samples/drive.rb +82 -0
  540. data/samples/cli/lib/samples/gmail.rb +124 -0
  541. data/samples/cli/lib/samples/pubsub.rb +114 -0
  542. data/samples/cli/lib/samples/sheets.rb +61 -0
  543. data/samples/cli/lib/samples/translate.rb +44 -0
  544. data/samples/cli/lib/samples/you_tube.rb +44 -0
  545. data/samples/web/.env +2 -0
  546. data/samples/web/Gemfile +7 -0
  547. data/samples/web/README.md +44 -0
  548. data/samples/web/app.rb +120 -0
  549. data/samples/web/views/calendar.erb +34 -0
  550. data/samples/web/views/drive.erb +33 -0
  551. data/samples/web/views/home.erb +34 -0
  552. data/samples/web/views/layout.erb +40 -0
  553. data/sync.rb +71 -0
  554. data/third_party/hurley_patches.rb +103 -0
  555. metadata +735 -0
@@ -0,0 +1,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