google-api-client 0.11.2 → 0.11.3

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 (246) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -1
  3. data/README.md +6 -0
  4. data/api_names.yaml +1 -0
  5. data/generated/google/apis/acceleratedmobilepageurl_v1/classes.rb +38 -38
  6. data/generated/google/apis/acceleratedmobilepageurl_v1/representations.rb +13 -13
  7. data/generated/google/apis/acceleratedmobilepageurl_v1/service.rb +10 -10
  8. data/generated/google/apis/adexchangebuyer2_v2beta1.rb +1 -1
  9. data/generated/google/apis/adexchangebuyer2_v2beta1/classes.rb +201 -201
  10. data/generated/google/apis/adexchangebuyer2_v2beta1/representations.rb +46 -46
  11. data/generated/google/apis/adexchangebuyer2_v2beta1/service.rb +119 -119
  12. data/generated/google/apis/adexchangebuyer_v1_4.rb +1 -1
  13. data/generated/google/apis/adexchangebuyer_v1_4/classes.rb +52 -9
  14. data/generated/google/apis/adexchangebuyer_v1_4/representations.rb +9 -0
  15. data/generated/google/apis/adsense_v1_4.rb +1 -1
  16. data/generated/google/apis/adsensehost_v4_1.rb +1 -1
  17. data/generated/google/apis/analyticsreporting_v4/classes.rb +926 -926
  18. data/generated/google/apis/analyticsreporting_v4/representations.rb +149 -149
  19. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  20. data/generated/google/apis/androidenterprise_v1/classes.rb +18 -11
  21. data/generated/google/apis/androidenterprise_v1/representations.rb +1 -0
  22. data/generated/google/apis/androidpublisher_v2.rb +1 -1
  23. data/generated/google/apis/appengine_v1.rb +1 -1
  24. data/generated/google/apis/appengine_v1/classes.rb +1487 -1487
  25. data/generated/google/apis/appengine_v1/representations.rb +229 -229
  26. data/generated/google/apis/appengine_v1/service.rb +188 -188
  27. data/generated/google/apis/appstate_v1.rb +1 -1
  28. data/generated/google/apis/bigquery_v2.rb +1 -1
  29. data/generated/google/apis/bigquery_v2/classes.rb +15 -10
  30. data/generated/google/apis/calendar_v3.rb +1 -1
  31. data/generated/google/apis/calendar_v3/service.rb +10 -4
  32. data/generated/google/apis/classroom_v1.rb +26 -17
  33. data/generated/google/apis/classroom_v1/classes.rb +990 -990
  34. data/generated/google/apis/classroom_v1/representations.rb +239 -239
  35. data/generated/google/apis/classroom_v1/service.rb +853 -853
  36. data/generated/google/apis/cloudbilling_v1.rb +1 -1
  37. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  38. data/generated/google/apis/cloudbuild_v1/classes.rb +627 -627
  39. data/generated/google/apis/cloudbuild_v1/representations.rb +116 -116
  40. data/generated/google/apis/cloudbuild_v1/service.rb +162 -157
  41. data/generated/google/apis/clouddebugger_v2/classes.rb +258 -258
  42. data/generated/google/apis/clouddebugger_v2/representations.rb +80 -80
  43. data/generated/google/apis/clouddebugger_v2/service.rb +163 -163
  44. data/generated/google/apis/clouderrorreporting_v1beta1.rb +3 -4
  45. data/generated/google/apis/clouderrorreporting_v1beta1/classes.rb +202 -167
  46. data/generated/google/apis/clouderrorreporting_v1beta1/representations.rb +53 -37
  47. data/generated/google/apis/clouderrorreporting_v1beta1/service.rb +50 -51
  48. data/generated/google/apis/cloudfunctions_v1.rb +1 -1
  49. data/generated/google/apis/cloudkms_v1.rb +1 -1
  50. data/generated/google/apis/cloudkms_v1/classes.rb +628 -622
  51. data/generated/google/apis/cloudkms_v1/representations.rb +134 -133
  52. data/generated/google/apis/cloudkms_v1/service.rb +190 -190
  53. data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
  54. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +835 -835
  55. data/generated/google/apis/cloudresourcemanager_v1/representations.rb +138 -138
  56. data/generated/google/apis/cloudresourcemanager_v1/service.rb +474 -474
  57. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
  58. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +386 -386
  59. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +75 -75
  60. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +64 -64
  61. data/generated/google/apis/cloudtrace_v1.rb +4 -4
  62. data/generated/google/apis/cloudtrace_v1/classes.rb +114 -114
  63. data/generated/google/apis/cloudtrace_v1/representations.rb +23 -23
  64. data/generated/google/apis/cloudtrace_v1/service.rb +14 -14
  65. data/generated/google/apis/compute_beta.rb +1 -1
  66. data/generated/google/apis/compute_beta/classes.rb +66 -25
  67. data/generated/google/apis/compute_beta/representations.rb +16 -0
  68. data/generated/google/apis/compute_beta/service.rb +85 -3
  69. data/generated/google/apis/compute_v1.rb +1 -1
  70. data/generated/google/apis/compute_v1/classes.rb +375 -24
  71. data/generated/google/apis/compute_v1/representations.rb +155 -0
  72. data/generated/google/apis/compute_v1/service.rb +481 -3
  73. data/generated/google/apis/container_v1.rb +1 -1
  74. data/generated/google/apis/container_v1/classes.rb +301 -301
  75. data/generated/google/apis/container_v1/representations.rb +59 -59
  76. data/generated/google/apis/container_v1/service.rb +178 -178
  77. data/generated/google/apis/content_v2.rb +1 -1
  78. data/generated/google/apis/content_v2/classes.rb +37 -2
  79. data/generated/google/apis/content_v2/representations.rb +15 -0
  80. data/generated/google/apis/content_v2/service.rb +58 -3
  81. data/generated/google/apis/dataflow_v1b3.rb +4 -1
  82. data/generated/google/apis/dataflow_v1b3/classes.rb +3514 -3279
  83. data/generated/google/apis/dataflow_v1b3/representations.rb +530 -440
  84. data/generated/google/apis/dataflow_v1b3/service.rb +378 -137
  85. data/generated/google/apis/dataproc_v1.rb +1 -1
  86. data/generated/google/apis/dataproc_v1/classes.rb +446 -446
  87. data/generated/google/apis/dataproc_v1/representations.rb +96 -96
  88. data/generated/google/apis/dataproc_v1/service.rb +302 -302
  89. data/generated/google/apis/datastore_v1.rb +1 -1
  90. data/generated/google/apis/datastore_v1/classes.rb +370 -374
  91. data/generated/google/apis/datastore_v1/representations.rb +120 -120
  92. data/generated/google/apis/datastore_v1/service.rb +62 -62
  93. data/generated/google/apis/dns_v1.rb +1 -1
  94. data/generated/google/apis/dns_v2beta1.rb +1 -1
  95. data/generated/google/apis/doubleclickbidmanager_v1.rb +3 -0
  96. data/generated/google/apis/doubleclicksearch_v2.rb +1 -1
  97. data/generated/google/apis/drive_v2.rb +1 -1
  98. data/generated/google/apis/drive_v2/classes.rb +24 -21
  99. data/generated/google/apis/drive_v3.rb +1 -1
  100. data/generated/google/apis/drive_v3/classes.rb +24 -22
  101. data/generated/google/apis/firebasedynamiclinks_v1.rb +1 -1
  102. data/generated/google/apis/firebasedynamiclinks_v1/classes.rb +148 -149
  103. data/generated/google/apis/firebasedynamiclinks_v1/representations.rb +42 -42
  104. data/generated/google/apis/firebaserules_v1/classes.rb +71 -71
  105. data/generated/google/apis/firebaserules_v1/representations.rb +22 -22
  106. data/generated/google/apis/firebaserules_v1/service.rb +68 -68
  107. data/generated/google/apis/games_configuration_v1configuration.rb +1 -1
  108. data/generated/google/apis/games_management_v1management.rb +1 -1
  109. data/generated/google/apis/games_v1.rb +1 -1
  110. data/generated/google/apis/genomics_v1.rb +1 -1
  111. data/generated/google/apis/genomics_v1/classes.rb +2348 -2348
  112. data/generated/google/apis/genomics_v1/representations.rb +430 -430
  113. data/generated/google/apis/genomics_v1/service.rb +1159 -1159
  114. data/generated/google/apis/gmail_v1.rb +1 -1
  115. data/generated/google/apis/gmail_v1/service.rb +2 -2
  116. data/generated/google/apis/iam_v1.rb +1 -1
  117. data/generated/google/apis/iam_v1/classes.rb +305 -298
  118. data/generated/google/apis/iam_v1/representations.rb +97 -96
  119. data/generated/google/apis/iam_v1/service.rb +86 -86
  120. data/generated/google/apis/kgsearch_v1/classes.rb +6 -6
  121. data/generated/google/apis/kgsearch_v1/representations.rb +1 -1
  122. data/generated/google/apis/kgsearch_v1/service.rb +10 -10
  123. data/generated/google/apis/language_v1.rb +4 -4
  124. data/generated/google/apis/language_v1/classes.rb +452 -452
  125. data/generated/google/apis/language_v1/representations.rb +93 -93
  126. data/generated/google/apis/language_v1/service.rb +48 -48
  127. data/generated/google/apis/language_v1beta1.rb +4 -4
  128. data/generated/google/apis/language_v1beta1/classes.rb +84 -84
  129. data/generated/google/apis/language_v1beta1/representations.rb +22 -22
  130. data/generated/google/apis/language_v1beta1/service.rb +3 -3
  131. data/generated/google/apis/logging_v2.rb +1 -1
  132. data/generated/google/apis/logging_v2/classes.rb +884 -873
  133. data/generated/google/apis/logging_v2/representations.rb +167 -166
  134. data/generated/google/apis/logging_v2/service.rb +430 -430
  135. data/generated/google/apis/logging_v2beta1.rb +1 -1
  136. data/generated/google/apis/logging_v2beta1/classes.rb +550 -539
  137. data/generated/google/apis/logging_v2beta1/representations.rb +124 -123
  138. data/generated/google/apis/logging_v2beta1/service.rb +292 -292
  139. data/generated/google/apis/manufacturers_v1/classes.rb +322 -322
  140. data/generated/google/apis/manufacturers_v1/representations.rb +66 -66
  141. data/generated/google/apis/ml_v1.rb +1 -1
  142. data/generated/google/apis/ml_v1/classes.rb +501 -494
  143. data/generated/google/apis/ml_v1/representations.rb +92 -91
  144. data/generated/google/apis/ml_v1/service.rb +190 -190
  145. data/generated/google/apis/monitoring_v3.rb +1 -1
  146. data/generated/google/apis/monitoring_v3/classes.rb +878 -878
  147. data/generated/google/apis/monitoring_v3/representations.rb +176 -176
  148. data/generated/google/apis/monitoring_v3/service.rb +223 -262
  149. data/generated/google/apis/oauth2_v2.rb +1 -1
  150. data/generated/google/apis/partners_v2.rb +1 -1
  151. data/generated/google/apis/partners_v2/classes.rb +1506 -1506
  152. data/generated/google/apis/partners_v2/representations.rb +370 -370
  153. data/generated/google/apis/partners_v2/service.rb +393 -393
  154. data/generated/google/apis/people_v1.rb +13 -13
  155. data/generated/google/apis/people_v1/classes.rb +597 -594
  156. data/generated/google/apis/people_v1/representations.rb +121 -121
  157. data/generated/google/apis/people_v1/service.rb +39 -48
  158. data/generated/google/apis/plus_domains_v1.rb +1 -1
  159. data/generated/google/apis/plus_v1.rb +1 -1
  160. data/generated/google/apis/proximitybeacon_v1beta1.rb +1 -1
  161. data/generated/google/apis/proximitybeacon_v1beta1/classes.rb +323 -327
  162. data/generated/google/apis/proximitybeacon_v1beta1/representations.rb +100 -100
  163. data/generated/google/apis/proximitybeacon_v1beta1/service.rb +184 -184
  164. data/generated/google/apis/pubsub_v1.rb +1 -1
  165. data/generated/google/apis/pubsub_v1/classes.rb +178 -178
  166. data/generated/google/apis/pubsub_v1/representations.rb +55 -55
  167. data/generated/google/apis/pubsub_v1/service.rb +357 -357
  168. data/generated/google/apis/runtimeconfig_v1.rb +1 -1
  169. data/generated/google/apis/runtimeconfig_v1/classes.rb +20 -20
  170. data/generated/google/apis/runtimeconfig_v1/representations.rb +2 -2
  171. data/generated/google/apis/runtimeconfig_v1/service.rb +12 -7
  172. data/generated/google/apis/script_v1.rb +16 -16
  173. data/generated/google/apis/script_v1/classes.rb +113 -113
  174. data/generated/google/apis/script_v1/representations.rb +28 -28
  175. data/generated/google/apis/script_v1/service.rb +4 -4
  176. data/generated/google/apis/searchconsole_v1.rb +1 -1
  177. data/generated/google/apis/searchconsole_v1/classes.rb +84 -84
  178. data/generated/google/apis/searchconsole_v1/representations.rb +32 -32
  179. data/generated/google/apis/searchconsole_v1/service.rb +6 -6
  180. data/generated/google/apis/servicecontrol_v1.rb +4 -4
  181. data/generated/google/apis/servicecontrol_v1/classes.rb +1146 -1145
  182. data/generated/google/apis/servicecontrol_v1/representations.rb +203 -203
  183. data/generated/google/apis/servicecontrol_v1/service.rb +57 -57
  184. data/generated/google/apis/servicemanagement_v1.rb +4 -4
  185. data/generated/google/apis/servicemanagement_v1/classes.rb +3486 -3360
  186. data/generated/google/apis/servicemanagement_v1/representations.rb +342 -329
  187. data/generated/google/apis/servicemanagement_v1/service.rb +260 -250
  188. data/generated/google/apis/serviceuser_v1.rb +1 -1
  189. data/generated/google/apis/serviceuser_v1/classes.rb +2716 -2596
  190. data/generated/google/apis/serviceuser_v1/representations.rb +391 -379
  191. data/generated/google/apis/serviceuser_v1/service.rb +16 -16
  192. data/generated/google/apis/sheets_v4.rb +1 -1
  193. data/generated/google/apis/sheets_v4/classes.rb +4255 -4252
  194. data/generated/google/apis/sheets_v4/representations.rb +548 -548
  195. data/generated/google/apis/sheets_v4/service.rb +170 -170
  196. data/generated/google/apis/slides_v1.rb +4 -4
  197. data/generated/google/apis/slides_v1/classes.rb +2945 -2916
  198. data/generated/google/apis/slides_v1/representations.rb +700 -697
  199. data/generated/google/apis/slides_v1/service.rb +44 -44
  200. data/generated/google/apis/sourcerepo_v1.rb +2 -2
  201. data/generated/google/apis/sourcerepo_v1/classes.rb +419 -410
  202. data/generated/google/apis/sourcerepo_v1/representations.rb +88 -87
  203. data/generated/google/apis/sourcerepo_v1/service.rb +67 -58
  204. data/generated/google/apis/spanner_v1/classes.rb +2187 -2187
  205. data/generated/google/apis/spanner_v1/representations.rb +323 -323
  206. data/generated/google/apis/spanner_v1/service.rb +383 -383
  207. data/generated/google/apis/speech_v1beta1.rb +1 -1
  208. data/generated/google/apis/speech_v1beta1/classes.rb +226 -226
  209. data/generated/google/apis/speech_v1beta1/representations.rb +44 -44
  210. data/generated/google/apis/speech_v1beta1/service.rb +37 -32
  211. data/generated/google/apis/sqladmin_v1beta4.rb +1 -1
  212. data/generated/google/apis/sqladmin_v1beta4/classes.rb +10 -28
  213. data/generated/google/apis/sqladmin_v1beta4/representations.rb +2 -16
  214. data/generated/google/apis/sqladmin_v1beta4/service.rb +1 -1
  215. data/generated/google/apis/storage_v1.rb +1 -1
  216. data/generated/google/apis/storage_v1/classes.rb +26 -0
  217. data/generated/google/apis/storage_v1/representations.rb +15 -0
  218. data/generated/google/apis/storage_v1/service.rb +168 -42
  219. data/generated/google/apis/storagetransfer_v1.rb +1 -1
  220. data/generated/google/apis/storagetransfer_v1/classes.rb +218 -218
  221. data/generated/google/apis/storagetransfer_v1/representations.rb +47 -47
  222. data/generated/google/apis/storagetransfer_v1/service.rb +68 -68
  223. data/generated/google/apis/toolresults_v1beta3.rb +1 -1
  224. data/generated/google/apis/toolresults_v1beta3/classes.rb +7 -4
  225. data/generated/google/apis/toolresults_v1beta3/service.rb +9 -8
  226. data/generated/google/apis/translate_v2.rb +11 -4
  227. data/generated/google/apis/translate_v2/classes.rb +140 -37
  228. data/generated/google/apis/translate_v2/representations.rb +62 -15
  229. data/generated/google/apis/translate_v2/service.rb +119 -66
  230. data/generated/google/apis/vision_v1.rb +1 -1
  231. data/generated/google/apis/vision_v1/classes.rb +1265 -1273
  232. data/generated/google/apis/vision_v1/representations.rb +202 -202
  233. data/generated/google/apis/vision_v1/service.rb +4 -4
  234. data/generated/google/apis/webmasters_v3.rb +1 -1
  235. data/generated/google/apis/youtube_analytics_v1.rb +1 -1
  236. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  237. data/generated/google/apis/youtube_partner_v1/classes.rb +2 -1
  238. data/generated/google/apis/youtubereporting_v1.rb +1 -1
  239. data/generated/google/apis/youtubereporting_v1/classes.rb +91 -91
  240. data/generated/google/apis/youtubereporting_v1/representations.rb +25 -25
  241. data/generated/google/apis/youtubereporting_v1/service.rb +94 -94
  242. data/lib/google/apis/core/api_command.rb +43 -10
  243. data/lib/google/apis/core/json_representation.rb +1 -1
  244. data/lib/google/apis/options.rb +6 -2
  245. data/lib/google/apis/version.rb +1 -1
  246. metadata +3 -3
@@ -20,9 +20,10 @@ require 'google/apis/errors'
20
20
  module Google
21
21
  module Apis
22
22
  module TranslateV2
23
- # Translate API
23
+ # Google Cloud Translation API
24
24
  #
25
- # Translates text from one language to another.
25
+ # The Google Cloud Translation API lets websites and programs integrate with
26
+ # Google Translate programmatically.
26
27
  #
27
28
  # @example
28
29
  # require 'google/apis/translate_v2'
@@ -30,7 +31,7 @@ module Google
30
31
  # Translate = Google::Apis::TranslateV2 # Alias the module
31
32
  # service = Translate::TranslateService.new
32
33
  #
33
- # @see https://developers.google.com/translate/v2/using_rest
34
+ # @see https://code.google.com/apis/language/translate/v2/getting_started.html
34
35
  class TranslateService < Google::Apis::Core::BaseService
35
36
  # @return [String]
36
37
  # API key. Your API key identifies your project and provides you with API access,
@@ -43,106 +44,100 @@ module Google
43
44
  # Overrides userIp if both are provided.
44
45
  attr_accessor :quota_user
45
46
 
46
- # @return [String]
47
- # IP address of the site where the request originates. Use this if you want to
48
- # enforce per-user limits.
49
- attr_accessor :user_ip
50
-
51
47
  def initialize
52
- super('https://www.googleapis.com/', 'language/translate/')
53
- @batch_path = 'batch'
48
+ super('https://translation.googleapis.com/', 'language/translate/')
49
+ @batch_path = 'batch/translate'
54
50
  end
55
51
 
56
- # Detect the language of text.
57
- # @param [Array<String>, String] q
58
- # The text to detect
59
- # @param [String] fields
60
- # Selector specifying which fields to include in a partial response.
52
+ # Returns a list of supported languages for translation.
53
+ # @param [String] target
54
+ # The language to use to return localized, human readable names of supported
55
+ # languages.
61
56
  # @param [String] quota_user
62
57
  # Available to use for quota purposes for server-side applications. Can be any
63
58
  # arbitrary string assigned to a user, but should not exceed 40 characters.
64
59
  # Overrides userIp if both are provided.
65
- # @param [String] user_ip
66
- # IP address of the site where the request originates. Use this if you want to
67
- # enforce per-user limits.
60
+ # @param [String] fields
61
+ # Selector specifying which fields to include in a partial response.
68
62
  # @param [Google::Apis::RequestOptions] options
69
63
  # Request-specific options
70
64
  #
71
65
  # @yield [result, err] Result & error if block supplied
72
- # @yieldparam result [Google::Apis::TranslateV2::ListDetectionsResponse] parsed result object
66
+ # @yieldparam result [Google::Apis::TranslateV2::ListLanguagesResponse] parsed result object
73
67
  # @yieldparam err [StandardError] error object if request failed
74
68
  #
75
- # @return [Google::Apis::TranslateV2::ListDetectionsResponse]
69
+ # @return [Google::Apis::TranslateV2::ListLanguagesResponse]
76
70
  #
77
71
  # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
78
72
  # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
79
73
  # @raise [Google::Apis::AuthorizationError] Authorization is required
80
- def list_detections(q, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block)
81
- command = make_simple_command(:get, 'v2/detect', options)
82
- command.response_representation = Google::Apis::TranslateV2::ListDetectionsResponse::Representation
83
- command.response_class = Google::Apis::TranslateV2::ListDetectionsResponse
84
- command.query['q'] = q unless q.nil?
85
- command.query['fields'] = fields unless fields.nil?
74
+ def list_languages(target: nil, quota_user: nil, fields: nil, options: nil, &block)
75
+ command = make_simple_command(:get, 'v2/languages', options)
76
+ command.response_representation = Google::Apis::TranslateV2::ListLanguagesResponse::Representation
77
+ command.response_class = Google::Apis::TranslateV2::ListLanguagesResponse
78
+ command.query['target'] = target unless target.nil?
86
79
  command.query['quotaUser'] = quota_user unless quota_user.nil?
87
- command.query['userIp'] = user_ip unless user_ip.nil?
80
+ command.query['fields'] = fields unless fields.nil?
88
81
  execute_or_queue_command(command, &block)
89
82
  end
90
83
 
91
- # List the source/target languages supported by the API
84
+ # Translates input text, returning translated text.
85
+ # @param [Array<String>, String] q
86
+ # The input text to translate. Repeat this parameter to perform translation
87
+ # operations on multiple text inputs.
92
88
  # @param [String] target
93
- # the language and collation in which the localized results should be returned
94
- # @param [String] fields
95
- # Selector specifying which fields to include in a partial response.
89
+ # The language to use for translation of the input text, set to one of the
90
+ # language codes listed in Language Support.
91
+ # @param [String] format
92
+ # The format of the source text, in either HTML (default) or plain-text. A
93
+ # value of "html" indicates HTML and a value of "text" indicates plain-text.
94
+ # @param [String] source
95
+ # The language of the source text, set to one of the language codes listed in
96
+ # Language Support. If the source language is not specified, the API will
97
+ # attempt to identify the source language automatically and return it within
98
+ # the response.
99
+ # @param [Array<String>, String] cid
100
+ # The customization id for translate
96
101
  # @param [String] quota_user
97
102
  # Available to use for quota purposes for server-side applications. Can be any
98
103
  # arbitrary string assigned to a user, but should not exceed 40 characters.
99
104
  # Overrides userIp if both are provided.
100
- # @param [String] user_ip
101
- # IP address of the site where the request originates. Use this if you want to
102
- # enforce per-user limits.
105
+ # @param [String] fields
106
+ # Selector specifying which fields to include in a partial response.
103
107
  # @param [Google::Apis::RequestOptions] options
104
108
  # Request-specific options
105
109
  #
106
110
  # @yield [result, err] Result & error if block supplied
107
- # @yieldparam result [Google::Apis::TranslateV2::ListLanguagesResponse] parsed result object
111
+ # @yieldparam result [Google::Apis::TranslateV2::ListTranslationsResponse] parsed result object
108
112
  # @yieldparam err [StandardError] error object if request failed
109
113
  #
110
- # @return [Google::Apis::TranslateV2::ListLanguagesResponse]
114
+ # @return [Google::Apis::TranslateV2::ListTranslationsResponse]
111
115
  #
112
116
  # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
113
117
  # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
114
118
  # @raise [Google::Apis::AuthorizationError] Authorization is required
115
- def list_languages(target: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block)
116
- command = make_simple_command(:get, 'v2/languages', options)
117
- command.response_representation = Google::Apis::TranslateV2::ListLanguagesResponse::Representation
118
- command.response_class = Google::Apis::TranslateV2::ListLanguagesResponse
119
+ def list_translations(q, target, format: nil, source: nil, cid: nil, quota_user: nil, fields: nil, options: nil, &block)
120
+ command = make_simple_command(:get, 'v2', options)
121
+ command.response_representation = Google::Apis::TranslateV2::ListTranslationsResponse::Representation
122
+ command.response_class = Google::Apis::TranslateV2::ListTranslationsResponse
123
+ command.query['format'] = format unless format.nil?
124
+ command.query['q'] = q unless q.nil?
125
+ command.query['source'] = source unless source.nil?
126
+ command.query['cid'] = cid unless cid.nil?
119
127
  command.query['target'] = target unless target.nil?
120
- command.query['fields'] = fields unless fields.nil?
121
128
  command.query['quotaUser'] = quota_user unless quota_user.nil?
122
- command.query['userIp'] = user_ip unless user_ip.nil?
129
+ command.query['fields'] = fields unless fields.nil?
123
130
  execute_or_queue_command(command, &block)
124
131
  end
125
132
 
126
- # Returns text translations from one language to another.
127
- # @param [Array<String>, String] q
128
- # The text to translate
129
- # @param [String] target
130
- # The target language into which the text should be translated
131
- # @param [Array<String>, String] cid
132
- # The customization id for translate
133
- # @param [String] format
134
- # The format of the text
135
- # @param [String] source
136
- # The source language of the text
137
- # @param [String] fields
138
- # Selector specifying which fields to include in a partial response.
133
+ # Translates input text, returning translated text.
134
+ # @param [Google::Apis::TranslateV2::TranslateTextRequest] translate_text_request_object
139
135
  # @param [String] quota_user
140
136
  # Available to use for quota purposes for server-side applications. Can be any
141
137
  # arbitrary string assigned to a user, but should not exceed 40 characters.
142
138
  # Overrides userIp if both are provided.
143
- # @param [String] user_ip
144
- # IP address of the site where the request originates. Use this if you want to
145
- # enforce per-user limits.
139
+ # @param [String] fields
140
+ # Selector specifying which fields to include in a partial response.
146
141
  # @param [Google::Apis::RequestOptions] options
147
142
  # Request-specific options
148
143
  #
@@ -155,18 +150,77 @@ module Google
155
150
  # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
156
151
  # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
157
152
  # @raise [Google::Apis::AuthorizationError] Authorization is required
158
- def list_translations(q, target, cid: nil, format: nil, source: nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block)
159
- command = make_simple_command(:get, 'v2', options)
153
+ def translate_translation_text(translate_text_request_object = nil, quota_user: nil, fields: nil, options: nil, &block)
154
+ command = make_simple_command(:post, 'v2', options)
155
+ command.request_representation = Google::Apis::TranslateV2::TranslateTextRequest::Representation
156
+ command.request_object = translate_text_request_object
160
157
  command.response_representation = Google::Apis::TranslateV2::ListTranslationsResponse::Representation
161
158
  command.response_class = Google::Apis::TranslateV2::ListTranslationsResponse
162
- command.query['cid'] = cid unless cid.nil?
163
- command.query['format'] = format unless format.nil?
159
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
160
+ command.query['fields'] = fields unless fields.nil?
161
+ execute_or_queue_command(command, &block)
162
+ end
163
+
164
+ # Detects the language of text within a request.
165
+ # @param [Array<String>, String] q
166
+ # The input text upon which to perform language detection. Repeat this
167
+ # parameter to perform language detection on multiple text inputs.
168
+ # @param [String] quota_user
169
+ # Available to use for quota purposes for server-side applications. Can be any
170
+ # arbitrary string assigned to a user, but should not exceed 40 characters.
171
+ # Overrides userIp if both are provided.
172
+ # @param [String] fields
173
+ # Selector specifying which fields to include in a partial response.
174
+ # @param [Google::Apis::RequestOptions] options
175
+ # Request-specific options
176
+ #
177
+ # @yield [result, err] Result & error if block supplied
178
+ # @yieldparam result [Google::Apis::TranslateV2::ListDetectionsResponse] parsed result object
179
+ # @yieldparam err [StandardError] error object if request failed
180
+ #
181
+ # @return [Google::Apis::TranslateV2::ListDetectionsResponse]
182
+ #
183
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
184
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
185
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
186
+ def list_detections(q, quota_user: nil, fields: nil, options: nil, &block)
187
+ command = make_simple_command(:get, 'v2/detect', options)
188
+ command.response_representation = Google::Apis::TranslateV2::ListDetectionsResponse::Representation
189
+ command.response_class = Google::Apis::TranslateV2::ListDetectionsResponse
164
190
  command.query['q'] = q unless q.nil?
165
- command.query['source'] = source unless source.nil?
166
- command.query['target'] = target unless target.nil?
191
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
167
192
  command.query['fields'] = fields unless fields.nil?
193
+ execute_or_queue_command(command, &block)
194
+ end
195
+
196
+ # Detects the language of text within a request.
197
+ # @param [Google::Apis::TranslateV2::DetectLanguageRequest] detect_language_request_object
198
+ # @param [String] quota_user
199
+ # Available to use for quota purposes for server-side applications. Can be any
200
+ # arbitrary string assigned to a user, but should not exceed 40 characters.
201
+ # Overrides userIp if both are provided.
202
+ # @param [String] fields
203
+ # Selector specifying which fields to include in a partial response.
204
+ # @param [Google::Apis::RequestOptions] options
205
+ # Request-specific options
206
+ #
207
+ # @yield [result, err] Result & error if block supplied
208
+ # @yieldparam result [Google::Apis::TranslateV2::ListDetectionsResponse] parsed result object
209
+ # @yieldparam err [StandardError] error object if request failed
210
+ #
211
+ # @return [Google::Apis::TranslateV2::ListDetectionsResponse]
212
+ #
213
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
214
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
215
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
216
+ def detect_detection_language(detect_language_request_object = nil, quota_user: nil, fields: nil, options: nil, &block)
217
+ command = make_simple_command(:post, 'v2/detect', options)
218
+ command.request_representation = Google::Apis::TranslateV2::DetectLanguageRequest::Representation
219
+ command.request_object = detect_language_request_object
220
+ command.response_representation = Google::Apis::TranslateV2::ListDetectionsResponse::Representation
221
+ command.response_class = Google::Apis::TranslateV2::ListDetectionsResponse
168
222
  command.query['quotaUser'] = quota_user unless quota_user.nil?
169
- command.query['userIp'] = user_ip unless user_ip.nil?
223
+ command.query['fields'] = fields unless fields.nil?
170
224
  execute_or_queue_command(command, &block)
171
225
  end
172
226
 
@@ -175,7 +229,6 @@ module Google
175
229
  def apply_command_defaults(command)
176
230
  command.query['key'] = key unless key.nil?
177
231
  command.query['quotaUser'] = quota_user unless quota_user.nil?
178
- command.query['userIp'] = user_ip unless user_ip.nil?
179
232
  end
180
233
  end
181
234
  end
@@ -27,7 +27,7 @@ module Google
27
27
  # @see https://cloud.google.com/vision/
28
28
  module VisionV1
29
29
  VERSION = 'V1'
30
- REVISION = '20170501'
30
+ REVISION = '20170523'
31
31
 
32
32
  # View and manage your data across Google Cloud Platform services
33
33
  AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
@@ -22,19 +22,25 @@ module Google
22
22
  module Apis
23
23
  module VisionV1
24
24
 
25
- # Parameters for crop hints annotation request.
26
- class CropHintsParams
25
+ # Single crop hint that is used to generate a new crop when serving an image.
26
+ class CropHint
27
27
  include Google::Apis::Core::Hashable
28
28
 
29
- # Aspect ratios in floats, representing the ratio of the width to the height
30
- # of the image. For example, if the desired aspect ratio is 4/3, the
31
- # corresponding float value should be 1.33333. If not specified, the
32
- # best possible crop is returned. The number of provided aspect ratios is
33
- # limited to a maximum of 16; any aspect ratios provided after the 16th are
34
- # ignored.
35
- # Corresponds to the JSON property `aspectRatios`
36
- # @return [Array<Float>]
37
- attr_accessor :aspect_ratios
29
+ # Confidence of this being a salient region. Range [0, 1].
30
+ # Corresponds to the JSON property `confidence`
31
+ # @return [Float]
32
+ attr_accessor :confidence
33
+
34
+ # Fraction of importance of this salient region with respect to the original
35
+ # image.
36
+ # Corresponds to the JSON property `importanceFraction`
37
+ # @return [Float]
38
+ attr_accessor :importance_fraction
39
+
40
+ # A bounding polygon for the detected image annotation.
41
+ # Corresponds to the JSON property `boundingPoly`
42
+ # @return [Google::Apis::VisionV1::BoundingPoly]
43
+ attr_accessor :bounding_poly
38
44
 
39
45
  def initialize(**args)
40
46
  update!(**args)
@@ -42,33 +48,31 @@ module Google
42
48
 
43
49
  # Update properties of this object
44
50
  def update!(**args)
45
- @aspect_ratios = args[:aspect_ratios] if args.key?(:aspect_ratios)
51
+ @confidence = args[:confidence] if args.key?(:confidence)
52
+ @importance_fraction = args[:importance_fraction] if args.key?(:importance_fraction)
53
+ @bounding_poly = args[:bounding_poly] if args.key?(:bounding_poly)
46
54
  end
47
55
  end
48
56
 
49
- # Logical element on the page.
50
- class Block
57
+ # A face-specific landmark (for example, a face feature).
58
+ # Landmark positions may fall outside the bounds of the image
59
+ # if the face is near one or more edges of the image.
60
+ # Therefore it is NOT guaranteed that `0 <= x < width` or
61
+ # `0 <= y < height`.
62
+ class Landmark
51
63
  include Google::Apis::Core::Hashable
52
64
 
53
- # Additional information detected on the structural component.
54
- # Corresponds to the JSON property `property`
55
- # @return [Google::Apis::VisionV1::TextProperty]
56
- attr_accessor :property
65
+ # A 3D position in the image, used primarily for Face detection landmarks.
66
+ # A valid Position must have both x and y coordinates.
67
+ # The position coordinates are in the same scale as the original image.
68
+ # Corresponds to the JSON property `position`
69
+ # @return [Google::Apis::VisionV1::Position]
70
+ attr_accessor :position
57
71
 
58
- # Detected block type (text, image etc) for this block.
59
- # Corresponds to the JSON property `blockType`
72
+ # Face landmark type.
73
+ # Corresponds to the JSON property `type`
60
74
  # @return [String]
61
- attr_accessor :block_type
62
-
63
- # A bounding polygon for the detected image annotation.
64
- # Corresponds to the JSON property `boundingBox`
65
- # @return [Google::Apis::VisionV1::BoundingPoly]
66
- attr_accessor :bounding_box
67
-
68
- # List of paragraphs in this block (if this blocks is of type text).
69
- # Corresponds to the JSON property `paragraphs`
70
- # @return [Array<Google::Apis::VisionV1::Paragraph>]
71
- attr_accessor :paragraphs
75
+ attr_accessor :type
72
76
 
73
77
  def initialize(**args)
74
78
  update!(**args)
@@ -76,44 +80,25 @@ module Google
76
80
 
77
81
  # Update properties of this object
78
82
  def update!(**args)
79
- @property = args[:property] if args.key?(:property)
80
- @block_type = args[:block_type] if args.key?(:block_type)
81
- @bounding_box = args[:bounding_box] if args.key?(:bounding_box)
82
- @paragraphs = args[:paragraphs] if args.key?(:paragraphs)
83
+ @position = args[:position] if args.key?(:position)
84
+ @type = args[:type] if args.key?(:type)
83
85
  end
84
86
  end
85
87
 
86
- # Relevant information for the image from the Internet.
87
- class WebDetection
88
+ # Metadata for online images.
89
+ class WebImage
88
90
  include Google::Apis::Core::Hashable
89
91
 
90
- # Fully matching images from the Internet.
91
- # Can include resized copies of the query image.
92
- # Corresponds to the JSON property `fullMatchingImages`
93
- # @return [Array<Google::Apis::VisionV1::WebImage>]
94
- attr_accessor :full_matching_images
95
-
96
- # Deduced entities from similar images on the Internet.
97
- # Corresponds to the JSON property `webEntities`
98
- # @return [Array<Google::Apis::VisionV1::WebEntity>]
99
- attr_accessor :web_entities
100
-
101
- # Web pages containing the matching images from the Internet.
102
- # Corresponds to the JSON property `pagesWithMatchingImages`
103
- # @return [Array<Google::Apis::VisionV1::WebPage>]
104
- attr_accessor :pages_with_matching_images
105
-
106
- # Partial matching images from the Internet.
107
- # Those images are similar enough to share some key-point features. For
108
- # example an original image will likely have partial matching for its crops.
109
- # Corresponds to the JSON property `partialMatchingImages`
110
- # @return [Array<Google::Apis::VisionV1::WebImage>]
111
- attr_accessor :partial_matching_images
92
+ # Overall relevancy score for the image.
93
+ # Not normalized and not comparable across different image queries.
94
+ # Corresponds to the JSON property `score`
95
+ # @return [Float]
96
+ attr_accessor :score
112
97
 
113
- # The visually similar image results.
114
- # Corresponds to the JSON property `visuallySimilarImages`
115
- # @return [Array<Google::Apis::VisionV1::WebImage>]
116
- attr_accessor :visually_similar_images
98
+ # The result image URL.
99
+ # Corresponds to the JSON property `url`
100
+ # @return [String]
101
+ attr_accessor :url
117
102
 
118
103
  def initialize(**args)
119
104
  update!(**args)
@@ -121,22 +106,30 @@ module Google
121
106
 
122
107
  # Update properties of this object
123
108
  def update!(**args)
124
- @full_matching_images = args[:full_matching_images] if args.key?(:full_matching_images)
125
- @web_entities = args[:web_entities] if args.key?(:web_entities)
126
- @pages_with_matching_images = args[:pages_with_matching_images] if args.key?(:pages_with_matching_images)
127
- @partial_matching_images = args[:partial_matching_images] if args.key?(:partial_matching_images)
128
- @visually_similar_images = args[:visually_similar_images] if args.key?(:visually_similar_images)
109
+ @score = args[:score] if args.key?(:score)
110
+ @url = args[:url] if args.key?(:url)
129
111
  end
130
112
  end
131
113
 
132
- # Response to a batch image annotation request.
133
- class BatchAnnotateImagesResponse
114
+ # A word representation.
115
+ class Word
134
116
  include Google::Apis::Core::Hashable
135
117
 
136
- # Individual responses to image annotation requests within the batch.
137
- # Corresponds to the JSON property `responses`
138
- # @return [Array<Google::Apis::VisionV1::AnnotateImageResponse>]
139
- attr_accessor :responses
118
+ # A bounding polygon for the detected image annotation.
119
+ # Corresponds to the JSON property `boundingBox`
120
+ # @return [Google::Apis::VisionV1::BoundingPoly]
121
+ attr_accessor :bounding_box
122
+
123
+ # List of symbols in the word.
124
+ # The order of the symbols follows the natural reading order.
125
+ # Corresponds to the JSON property `symbols`
126
+ # @return [Array<Google::Apis::VisionV1::Symbol>]
127
+ attr_accessor :symbols
128
+
129
+ # Additional information detected on the structural component.
130
+ # Corresponds to the JSON property `property`
131
+ # @return [Google::Apis::VisionV1::TextProperty]
132
+ attr_accessor :property
140
133
 
141
134
  def initialize(**args)
142
135
  update!(**args)
@@ -144,28 +137,30 @@ module Google
144
137
 
145
138
  # Update properties of this object
146
139
  def update!(**args)
147
- @responses = args[:responses] if args.key?(:responses)
140
+ @bounding_box = args[:bounding_box] if args.key?(:bounding_box)
141
+ @symbols = args[:symbols] if args.key?(:symbols)
142
+ @property = args[:property] if args.key?(:property)
148
143
  end
149
144
  end
150
145
 
151
- # A `Property` consists of a user-supplied name/value pair.
152
- class Property
146
+ # Structural unit of text representing a number of words in certain order.
147
+ class Paragraph
153
148
  include Google::Apis::Core::Hashable
154
149
 
155
- # Value of numeric properties.
156
- # Corresponds to the JSON property `uint64Value`
157
- # @return [Fixnum]
158
- attr_accessor :uint64_value
150
+ # A bounding polygon for the detected image annotation.
151
+ # Corresponds to the JSON property `boundingBox`
152
+ # @return [Google::Apis::VisionV1::BoundingPoly]
153
+ attr_accessor :bounding_box
159
154
 
160
- # Name of the property.
161
- # Corresponds to the JSON property `name`
162
- # @return [String]
163
- attr_accessor :name
155
+ # List of words in this paragraph.
156
+ # Corresponds to the JSON property `words`
157
+ # @return [Array<Google::Apis::VisionV1::Word>]
158
+ attr_accessor :words
164
159
 
165
- # Value of the property.
166
- # Corresponds to the JSON property `value`
167
- # @return [String]
168
- attr_accessor :value
160
+ # Additional information detected on the structural component.
161
+ # Corresponds to the JSON property `property`
162
+ # @return [Google::Apis::VisionV1::TextProperty]
163
+ attr_accessor :property
169
164
 
170
165
  def initialize(**args)
171
166
  update!(**args)
@@ -173,56 +168,28 @@ module Google
173
168
 
174
169
  # Update properties of this object
175
170
  def update!(**args)
176
- @uint64_value = args[:uint64_value] if args.key?(:uint64_value)
177
- @name = args[:name] if args.key?(:name)
178
- @value = args[:value] if args.key?(:value)
171
+ @bounding_box = args[:bounding_box] if args.key?(:bounding_box)
172
+ @words = args[:words] if args.key?(:words)
173
+ @property = args[:property] if args.key?(:property)
179
174
  end
180
175
  end
181
176
 
182
- # Detected entity location information.
183
- class LocationInfo
177
+ # Client image to perform Google Cloud Vision API tasks over.
178
+ class Image
184
179
  include Google::Apis::Core::Hashable
185
180
 
186
- # An object representing a latitude/longitude pair. This is expressed as a pair
187
- # of doubles representing degrees latitude and degrees longitude. Unless
188
- # specified otherwise, this must conform to the
189
- # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
190
- # standard</a>. Values must be within normalized ranges.
191
- # Example of normalization code in Python:
192
- # def NormalizeLongitude(longitude):
193
- # """Wraps decimal degrees longitude to [-180.0, 180.0]."""
194
- # q, r = divmod(longitude, 360.0)
195
- # if r > 180.0 or (r == 180.0 and q <= -1.0):
196
- # return r - 360.0
197
- # return r
198
- # def NormalizeLatLng(latitude, longitude):
199
- # """Wraps decimal degrees latitude and longitude to
200
- # [-90.0, 90.0] and [-180.0, 180.0], respectively."""
201
- # r = latitude % 360.0
202
- # if r <= 90.0:
203
- # return r, NormalizeLongitude(longitude)
204
- # elif r >= 270.0:
205
- # return r - 360, NormalizeLongitude(longitude)
206
- # else:
207
- # return 180 - r, NormalizeLongitude(longitude + 180.0)
208
- # assert 180.0 == NormalizeLongitude(180.0)
209
- # assert -180.0 == NormalizeLongitude(-180.0)
210
- # assert -179.0 == NormalizeLongitude(181.0)
211
- # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
212
- # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
213
- # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
214
- # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
215
- # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
216
- # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
217
- # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
218
- # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
219
- # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
220
- # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
221
- # The code in logs/storage/validator/logs_validator_traits.cc treats this type
222
- # as if it were annotated as ST_LOCATION.
223
- # Corresponds to the JSON property `latLng`
224
- # @return [Google::Apis::VisionV1::LatLng]
225
- attr_accessor :lat_lng
181
+ # Image content, represented as a stream of bytes.
182
+ # Note: as with all `bytes` fields, protobuffers use a pure binary
183
+ # representation, whereas JSON representations use base64.
184
+ # Corresponds to the JSON property `content`
185
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
186
+ # @return [String]
187
+ attr_accessor :content
188
+
189
+ # External image source (Google Cloud Storage image location).
190
+ # Corresponds to the JSON property `source`
191
+ # @return [Google::Apis::VisionV1::ImageSource]
192
+ attr_accessor :source
226
193
 
227
194
  def initialize(**args)
228
195
  update!(**args)
@@ -230,37 +197,94 @@ module Google
230
197
 
231
198
  # Update properties of this object
232
199
  def update!(**args)
233
- @lat_lng = args[:lat_lng] if args.key?(:lat_lng)
200
+ @content = args[:content] if args.key?(:content)
201
+ @source = args[:source] if args.key?(:source)
234
202
  end
235
203
  end
236
204
 
237
- # External image source (Google Cloud Storage image location).
238
- class ImageSource
205
+ # A face annotation object contains the results of face detection.
206
+ class FaceAnnotation
239
207
  include Google::Apis::Core::Hashable
240
208
 
241
- # NOTE: For new code `image_uri` below is preferred.
242
- # Google Cloud Storage image URI, which must be in the following form:
243
- # `gs://bucket_name/object_name` (for details, see
244
- # [Google Cloud Storage Request
245
- # URIs](https://cloud.google.com/storage/docs/reference-uris)).
246
- # NOTE: Cloud Storage object versioning is not supported.
247
- # Corresponds to the JSON property `gcsImageUri`
209
+ # Sorrow likelihood.
210
+ # Corresponds to the JSON property `sorrowLikelihood`
248
211
  # @return [String]
249
- attr_accessor :gcs_image_uri
212
+ attr_accessor :sorrow_likelihood
250
213
 
251
- # Image URI which supports:
252
- # 1) Google Cloud Storage image URI, which must be in the following form:
253
- # `gs://bucket_name/object_name` (for details, see
254
- # [Google Cloud Storage Request
255
- # URIs](https://cloud.google.com/storage/docs/reference-uris)).
256
- # NOTE: Cloud Storage object versioning is not supported.
257
- # 2) Publicly accessible image HTTP/HTTPS URL.
258
- # This is preferred over the legacy `gcs_image_uri` above. When both
259
- # `gcs_image_uri` and `image_uri` are specified, `image_uri` takes
260
- # precedence.
261
- # Corresponds to the JSON property `imageUri`
214
+ # Pitch angle, which indicates the upwards/downwards angle that the face is
215
+ # pointing relative to the image's horizontal plane. Range [-180,180].
216
+ # Corresponds to the JSON property `tiltAngle`
217
+ # @return [Float]
218
+ attr_accessor :tilt_angle
219
+
220
+ # A bounding polygon for the detected image annotation.
221
+ # Corresponds to the JSON property `fdBoundingPoly`
222
+ # @return [Google::Apis::VisionV1::BoundingPoly]
223
+ attr_accessor :fd_bounding_poly
224
+
225
+ # Surprise likelihood.
226
+ # Corresponds to the JSON property `surpriseLikelihood`
262
227
  # @return [String]
263
- attr_accessor :image_uri
228
+ attr_accessor :surprise_likelihood
229
+
230
+ # Detected face landmarks.
231
+ # Corresponds to the JSON property `landmarks`
232
+ # @return [Array<Google::Apis::VisionV1::Landmark>]
233
+ attr_accessor :landmarks
234
+
235
+ # Anger likelihood.
236
+ # Corresponds to the JSON property `angerLikelihood`
237
+ # @return [String]
238
+ attr_accessor :anger_likelihood
239
+
240
+ # Joy likelihood.
241
+ # Corresponds to the JSON property `joyLikelihood`
242
+ # @return [String]
243
+ attr_accessor :joy_likelihood
244
+
245
+ # Face landmarking confidence. Range [0, 1].
246
+ # Corresponds to the JSON property `landmarkingConfidence`
247
+ # @return [Float]
248
+ attr_accessor :landmarking_confidence
249
+
250
+ # Detection confidence. Range [0, 1].
251
+ # Corresponds to the JSON property `detectionConfidence`
252
+ # @return [Float]
253
+ attr_accessor :detection_confidence
254
+
255
+ # Yaw angle, which indicates the leftward/rightward angle that the face is
256
+ # pointing relative to the vertical plane perpendicular to the image. Range
257
+ # [-180,180].
258
+ # Corresponds to the JSON property `panAngle`
259
+ # @return [Float]
260
+ attr_accessor :pan_angle
261
+
262
+ # Under-exposed likelihood.
263
+ # Corresponds to the JSON property `underExposedLikelihood`
264
+ # @return [String]
265
+ attr_accessor :under_exposed_likelihood
266
+
267
+ # Blurred likelihood.
268
+ # Corresponds to the JSON property `blurredLikelihood`
269
+ # @return [String]
270
+ attr_accessor :blurred_likelihood
271
+
272
+ # Headwear likelihood.
273
+ # Corresponds to the JSON property `headwearLikelihood`
274
+ # @return [String]
275
+ attr_accessor :headwear_likelihood
276
+
277
+ # A bounding polygon for the detected image annotation.
278
+ # Corresponds to the JSON property `boundingPoly`
279
+ # @return [Google::Apis::VisionV1::BoundingPoly]
280
+ attr_accessor :bounding_poly
281
+
282
+ # Roll angle, which indicates the amount of clockwise/anti-clockwise rotation
283
+ # of the face relative to the image vertical about the axis perpendicular to
284
+ # the face. Range [-180,180].
285
+ # Corresponds to the JSON property `rollAngle`
286
+ # @return [Float]
287
+ attr_accessor :roll_angle
264
288
 
265
289
  def initialize(**args)
266
290
  update!(**args)
@@ -268,31 +292,57 @@ module Google
268
292
 
269
293
  # Update properties of this object
270
294
  def update!(**args)
271
- @gcs_image_uri = args[:gcs_image_uri] if args.key?(:gcs_image_uri)
272
- @image_uri = args[:image_uri] if args.key?(:image_uri)
295
+ @sorrow_likelihood = args[:sorrow_likelihood] if args.key?(:sorrow_likelihood)
296
+ @tilt_angle = args[:tilt_angle] if args.key?(:tilt_angle)
297
+ @fd_bounding_poly = args[:fd_bounding_poly] if args.key?(:fd_bounding_poly)
298
+ @surprise_likelihood = args[:surprise_likelihood] if args.key?(:surprise_likelihood)
299
+ @landmarks = args[:landmarks] if args.key?(:landmarks)
300
+ @anger_likelihood = args[:anger_likelihood] if args.key?(:anger_likelihood)
301
+ @joy_likelihood = args[:joy_likelihood] if args.key?(:joy_likelihood)
302
+ @landmarking_confidence = args[:landmarking_confidence] if args.key?(:landmarking_confidence)
303
+ @detection_confidence = args[:detection_confidence] if args.key?(:detection_confidence)
304
+ @pan_angle = args[:pan_angle] if args.key?(:pan_angle)
305
+ @under_exposed_likelihood = args[:under_exposed_likelihood] if args.key?(:under_exposed_likelihood)
306
+ @blurred_likelihood = args[:blurred_likelihood] if args.key?(:blurred_likelihood)
307
+ @headwear_likelihood = args[:headwear_likelihood] if args.key?(:headwear_likelihood)
308
+ @bounding_poly = args[:bounding_poly] if args.key?(:bounding_poly)
309
+ @roll_angle = args[:roll_angle] if args.key?(:roll_angle)
273
310
  end
274
311
  end
275
312
 
276
- # A 3D position in the image, used primarily for Face detection landmarks.
277
- # A valid Position must have both x and y coordinates.
278
- # The position coordinates are in the same scale as the original image.
279
- class Position
313
+ # Multiple image annotation requests are batched into a single service call.
314
+ class BatchAnnotateImagesRequest
280
315
  include Google::Apis::Core::Hashable
281
316
 
282
- # Y coordinate.
283
- # Corresponds to the JSON property `y`
284
- # @return [Float]
285
- attr_accessor :y
317
+ # Individual image annotation requests for this batch.
318
+ # Corresponds to the JSON property `requests`
319
+ # @return [Array<Google::Apis::VisionV1::AnnotateImageRequest>]
320
+ attr_accessor :requests
286
321
 
287
- # X coordinate.
288
- # Corresponds to the JSON property `x`
289
- # @return [Float]
290
- attr_accessor :x
322
+ def initialize(**args)
323
+ update!(**args)
324
+ end
291
325
 
292
- # Z coordinate (or depth).
293
- # Corresponds to the JSON property `z`
294
- # @return [Float]
295
- attr_accessor :z
326
+ # Update properties of this object
327
+ def update!(**args)
328
+ @requests = args[:requests] if args.key?(:requests)
329
+ end
330
+ end
331
+
332
+ # Detected start or end of a structural component.
333
+ class DetectedBreak
334
+ include Google::Apis::Core::Hashable
335
+
336
+ # True if break prepends the element.
337
+ # Corresponds to the JSON property `isPrefix`
338
+ # @return [Boolean]
339
+ attr_accessor :is_prefix
340
+ alias_method :is_prefix?, :is_prefix
341
+
342
+ # Detected break type.
343
+ # Corresponds to the JSON property `type`
344
+ # @return [String]
345
+ attr_accessor :type
296
346
 
297
347
  def initialize(**args)
298
348
  update!(**args)
@@ -300,26 +350,36 @@ module Google
300
350
 
301
351
  # Update properties of this object
302
352
  def update!(**args)
303
- @y = args[:y] if args.key?(:y)
304
- @x = args[:x] if args.key?(:x)
305
- @z = args[:z] if args.key?(:z)
353
+ @is_prefix = args[:is_prefix] if args.key?(:is_prefix)
354
+ @type = args[:type] if args.key?(:type)
306
355
  end
307
356
  end
308
357
 
309
- # Metadata for web pages.
310
- class WebPage
358
+ # Image context and/or feature-specific parameters.
359
+ class ImageContext
311
360
  include Google::Apis::Core::Hashable
312
361
 
313
- # Overall relevancy score for the web page.
314
- # Not normalized and not comparable across different image queries.
315
- # Corresponds to the JSON property `score`
316
- # @return [Float]
317
- attr_accessor :score
362
+ # Rectangle determined by min and max `LatLng` pairs.
363
+ # Corresponds to the JSON property `latLongRect`
364
+ # @return [Google::Apis::VisionV1::LatLongRect]
365
+ attr_accessor :lat_long_rect
318
366
 
319
- # The result web page URL.
320
- # Corresponds to the JSON property `url`
321
- # @return [String]
322
- attr_accessor :url
367
+ # Parameters for crop hints annotation request.
368
+ # Corresponds to the JSON property `cropHintsParams`
369
+ # @return [Google::Apis::VisionV1::CropHintsParams]
370
+ attr_accessor :crop_hints_params
371
+
372
+ # List of languages to use for TEXT_DETECTION. In most cases, an empty value
373
+ # yields the best results since it enables automatic language detection. For
374
+ # languages based on the Latin alphabet, setting `language_hints` is not
375
+ # needed. In rare cases, when the language of the text in the image is known,
376
+ # setting a hint will help get better results (although it will be a
377
+ # significant hindrance if the hint is wrong). Text detection returns an
378
+ # error if one or more of the specified languages is not one of the
379
+ # [supported languages](/vision/docs/languages).
380
+ # Corresponds to the JSON property `languageHints`
381
+ # @return [Array<String>]
382
+ attr_accessor :language_hints
323
383
 
324
384
  def initialize(**args)
325
385
  update!(**args)
@@ -327,129 +387,35 @@ module Google
327
387
 
328
388
  # Update properties of this object
329
389
  def update!(**args)
330
- @score = args[:score] if args.key?(:score)
331
- @url = args[:url] if args.key?(:url)
390
+ @lat_long_rect = args[:lat_long_rect] if args.key?(:lat_long_rect)
391
+ @crop_hints_params = args[:crop_hints_params] if args.key?(:crop_hints_params)
392
+ @language_hints = args[:language_hints] if args.key?(:language_hints)
332
393
  end
333
394
  end
334
395
 
335
- # Color information consists of RGB channels, score, and the fraction of
336
- # the image that the color occupies in the image.
337
- class ColorInfo
396
+ # Detected page from OCR.
397
+ class Page
338
398
  include Google::Apis::Core::Hashable
339
399
 
340
- # Image-specific score for this color. Value in range [0, 1].
341
- # Corresponds to the JSON property `score`
342
- # @return [Float]
343
- attr_accessor :score
400
+ # Page width in pixels.
401
+ # Corresponds to the JSON property `width`
402
+ # @return [Fixnum]
403
+ attr_accessor :width
344
404
 
345
- # The fraction of pixels the color occupies in the image.
346
- # Value in range [0, 1].
347
- # Corresponds to the JSON property `pixelFraction`
348
- # @return [Float]
349
- attr_accessor :pixel_fraction
405
+ # List of blocks of text, images etc on this page.
406
+ # Corresponds to the JSON property `blocks`
407
+ # @return [Array<Google::Apis::VisionV1::Block>]
408
+ attr_accessor :blocks
350
409
 
351
- # Represents a color in the RGBA color space. This representation is designed
352
- # for simplicity of conversion to/from color representations in various
353
- # languages over compactness; for example, the fields of this representation
354
- # can be trivially provided to the constructor of "java.awt.Color" in Java; it
355
- # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
356
- # method in iOS; and, with just a little work, it can be easily formatted into
357
- # a CSS "rgba()" string in JavaScript, as well. Here are some examples:
358
- # Example (Java):
359
- # import com.google.type.Color;
360
- # // ...
361
- # public static java.awt.Color fromProto(Color protocolor) `
362
- # float alpha = protocolor.hasAlpha()
363
- # ? protocolor.getAlpha().getValue()
364
- # : 1.0;
365
- # return new java.awt.Color(
366
- # protocolor.getRed(),
367
- # protocolor.getGreen(),
368
- # protocolor.getBlue(),
369
- # alpha);
370
- # `
371
- # public static Color toProto(java.awt.Color color) `
372
- # float red = (float) color.getRed();
373
- # float green = (float) color.getGreen();
374
- # float blue = (float) color.getBlue();
375
- # float denominator = 255.0;
376
- # Color.Builder resultBuilder =
377
- # Color
378
- # .newBuilder()
379
- # .setRed(red / denominator)
380
- # .setGreen(green / denominator)
381
- # .setBlue(blue / denominator);
382
- # int alpha = color.getAlpha();
383
- # if (alpha != 255) `
384
- # result.setAlpha(
385
- # FloatValue
386
- # .newBuilder()
387
- # .setValue(((float) alpha) / denominator)
388
- # .build());
389
- # `
390
- # return resultBuilder.build();
391
- # `
392
- # // ...
393
- # Example (iOS / Obj-C):
394
- # // ...
395
- # static UIColor* fromProto(Color* protocolor) `
396
- # float red = [protocolor red];
397
- # float green = [protocolor green];
398
- # float blue = [protocolor blue];
399
- # FloatValue* alpha_wrapper = [protocolor alpha];
400
- # float alpha = 1.0;
401
- # if (alpha_wrapper != nil) `
402
- # alpha = [alpha_wrapper value];
403
- # `
404
- # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
405
- # `
406
- # static Color* toProto(UIColor* color) `
407
- # CGFloat red, green, blue, alpha;
408
- # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) `
409
- # return nil;
410
- # `
411
- # Color* result = [Color alloc] init];
412
- # [result setRed:red];
413
- # [result setGreen:green];
414
- # [result setBlue:blue];
415
- # if (alpha <= 0.9999) `
416
- # [result setAlpha:floatWrapperWithValue(alpha)];
417
- # `
418
- # [result autorelease];
419
- # return result;
420
- # `
421
- # // ...
422
- # Example (JavaScript):
423
- # // ...
424
- # var protoToCssColor = function(rgb_color) `
425
- # var redFrac = rgb_color.red || 0.0;
426
- # var greenFrac = rgb_color.green || 0.0;
427
- # var blueFrac = rgb_color.blue || 0.0;
428
- # var red = Math.floor(redFrac * 255);
429
- # var green = Math.floor(greenFrac * 255);
430
- # var blue = Math.floor(blueFrac * 255);
431
- # if (!('alpha' in rgb_color)) `
432
- # return rgbToCssColor_(red, green, blue);
433
- # `
434
- # var alphaFrac = rgb_color.alpha.value || 0.0;
435
- # var rgbParams = [red, green, blue].join(',');
436
- # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
437
- # `;
438
- # var rgbToCssColor_ = function(red, green, blue) `
439
- # var rgbNumber = new Number((red << 16) | (green << 8) | blue);
440
- # var hexString = rgbNumber.toString(16);
441
- # var missingZeros = 6 - hexString.length;
442
- # var resultBuilder = ['#'];
443
- # for (var i = 0; i < missingZeros; i++) `
444
- # resultBuilder.push('0');
445
- # `
446
- # resultBuilder.push(hexString);
447
- # return resultBuilder.join('');
448
- # `;
449
- # // ...
450
- # Corresponds to the JSON property `color`
451
- # @return [Google::Apis::VisionV1::Color]
452
- attr_accessor :color
410
+ # Additional information detected on the structural component.
411
+ # Corresponds to the JSON property `property`
412
+ # @return [Google::Apis::VisionV1::TextProperty]
413
+ attr_accessor :property
414
+
415
+ # Page height in pixels.
416
+ # Corresponds to the JSON property `height`
417
+ # @return [Fixnum]
418
+ attr_accessor :height
453
419
 
454
420
  def initialize(**args)
455
421
  update!(**args)
@@ -457,75 +423,104 @@ module Google
457
423
 
458
424
  # Update properties of this object
459
425
  def update!(**args)
460
- @score = args[:score] if args.key?(:score)
461
- @pixel_fraction = args[:pixel_fraction] if args.key?(:pixel_fraction)
462
- @color = args[:color] if args.key?(:color)
426
+ @width = args[:width] if args.key?(:width)
427
+ @blocks = args[:blocks] if args.key?(:blocks)
428
+ @property = args[:property] if args.key?(:property)
429
+ @height = args[:height] if args.key?(:height)
463
430
  end
464
431
  end
465
432
 
466
- # Set of detected entity features.
467
- class EntityAnnotation
433
+ # Request for performing Google Cloud Vision API tasks over a user-provided
434
+ # image, with user-requested features.
435
+ class AnnotateImageRequest
468
436
  include Google::Apis::Core::Hashable
469
437
 
470
- # Overall score of the result. Range [0, 1].
471
- # Corresponds to the JSON property `score`
472
- # @return [Float]
473
- attr_accessor :score
438
+ # Client image to perform Google Cloud Vision API tasks over.
439
+ # Corresponds to the JSON property `image`
440
+ # @return [Google::Apis::VisionV1::Image]
441
+ attr_accessor :image
474
442
 
475
- # The location information for the detected entity. Multiple
476
- # `LocationInfo` elements can be present because one location may
477
- # indicate the location of the scene in the image, and another location
478
- # may indicate the location of the place where the image was taken.
479
- # Location information is usually present for landmarks.
480
- # Corresponds to the JSON property `locations`
481
- # @return [Array<Google::Apis::VisionV1::LocationInfo>]
482
- attr_accessor :locations
443
+ # Requested features.
444
+ # Corresponds to the JSON property `features`
445
+ # @return [Array<Google::Apis::VisionV1::Feature>]
446
+ attr_accessor :features
483
447
 
484
- # Opaque entity ID. Some IDs may be available in
485
- # [Google Knowledge Graph Search API](https://developers.google.com/knowledge-
486
- # graph/).
487
- # Corresponds to the JSON property `mid`
488
- # @return [String]
489
- attr_accessor :mid
448
+ # Image context and/or feature-specific parameters.
449
+ # Corresponds to the JSON property `imageContext`
450
+ # @return [Google::Apis::VisionV1::ImageContext]
451
+ attr_accessor :image_context
490
452
 
491
- # The accuracy of the entity detection in an image.
492
- # For example, for an image in which the "Eiffel Tower" entity is detected,
493
- # this field represents the confidence that there is a tower in the query
494
- # image. Range [0, 1].
495
- # Corresponds to the JSON property `confidence`
496
- # @return [Float]
497
- attr_accessor :confidence
453
+ def initialize(**args)
454
+ update!(**args)
455
+ end
498
456
 
499
- # The language code for the locale in which the entity textual
500
- # `description` is expressed.
501
- # Corresponds to the JSON property `locale`
502
- # @return [String]
503
- attr_accessor :locale
457
+ # Update properties of this object
458
+ def update!(**args)
459
+ @image = args[:image] if args.key?(:image)
460
+ @features = args[:features] if args.key?(:features)
461
+ @image_context = args[:image_context] if args.key?(:image_context)
462
+ end
463
+ end
504
464
 
505
- # A bounding polygon for the detected image annotation.
506
- # Corresponds to the JSON property `boundingPoly`
507
- # @return [Google::Apis::VisionV1::BoundingPoly]
508
- attr_accessor :bounding_poly
465
+ # The `Status` type defines a logical error model that is suitable for different
466
+ # programming environments, including REST APIs and RPC APIs. It is used by
467
+ # [gRPC](https://github.com/grpc). The error model is designed to be:
468
+ # - Simple to use and understand for most users
469
+ # - Flexible enough to meet unexpected needs
470
+ # # Overview
471
+ # The `Status` message contains three pieces of data: error code, error message,
472
+ # and error details. The error code should be an enum value of
473
+ # google.rpc.Code, but it may accept additional error codes if needed. The
474
+ # error message should be a developer-facing English message that helps
475
+ # developers *understand* and *resolve* the error. If a localized user-facing
476
+ # error message is needed, put the localized message in the error details or
477
+ # localize it in the client. The optional error details may contain arbitrary
478
+ # information about the error. There is a predefined set of error detail types
479
+ # in the package `google.rpc` that can be used for common error conditions.
480
+ # # Language mapping
481
+ # The `Status` message is the logical representation of the error model, but it
482
+ # is not necessarily the actual wire format. When the `Status` message is
483
+ # exposed in different client libraries and different wire protocols, it can be
484
+ # mapped differently. For example, it will likely be mapped to some exceptions
485
+ # in Java, but more likely mapped to some error codes in C.
486
+ # # Other uses
487
+ # The error model and the `Status` message can be used in a variety of
488
+ # environments, either with or without APIs, to provide a
489
+ # consistent developer experience across different environments.
490
+ # Example uses of this error model include:
491
+ # - Partial errors. If a service needs to return partial errors to the client,
492
+ # it may embed the `Status` in the normal response to indicate the partial
493
+ # errors.
494
+ # - Workflow errors. A typical workflow has multiple steps. Each step may
495
+ # have a `Status` message for error reporting.
496
+ # - Batch operations. If a client uses batch request and batch response, the
497
+ # `Status` message should be used directly inside batch response, one for
498
+ # each error sub-response.
499
+ # - Asynchronous operations. If an API call embeds asynchronous operation
500
+ # results in its response, the status of those operations should be
501
+ # represented directly using the `Status` message.
502
+ # - Logging. If some API errors are stored in logs, the message `Status` could
503
+ # be used directly after any stripping needed for security/privacy reasons.
504
+ class Status
505
+ include Google::Apis::Core::Hashable
509
506
 
510
- # The relevancy of the ICA (Image Content Annotation) label to the
511
- # image. For example, the relevancy of "tower" is likely higher to an image
512
- # containing the detected "Eiffel Tower" than to an image containing a
513
- # detected distant towering building, even though the confidence that
514
- # there is a tower in each image may be the same. Range [0, 1].
515
- # Corresponds to the JSON property `topicality`
516
- # @return [Float]
517
- attr_accessor :topicality
507
+ # A list of messages that carry the error details. There will be a
508
+ # common set of message types for APIs to use.
509
+ # Corresponds to the JSON property `details`
510
+ # @return [Array<Hash<String,Object>>]
511
+ attr_accessor :details
518
512
 
519
- # Entity textual description, expressed in its `locale` language.
520
- # Corresponds to the JSON property `description`
521
- # @return [String]
522
- attr_accessor :description
513
+ # The status code, which should be an enum value of google.rpc.Code.
514
+ # Corresponds to the JSON property `code`
515
+ # @return [Fixnum]
516
+ attr_accessor :code
523
517
 
524
- # Some entities may have optional user-supplied `Property` (name/value)
525
- # fields, such a score or string that qualifies the entity.
526
- # Corresponds to the JSON property `properties`
527
- # @return [Array<Google::Apis::VisionV1::Property>]
528
- attr_accessor :properties
518
+ # A developer-facing error message, which should be in English. Any
519
+ # user-facing error message should be localized and sent in the
520
+ # google.rpc.Status.details field, or localized by the client.
521
+ # Corresponds to the JSON property `message`
522
+ # @return [String]
523
+ attr_accessor :message
529
524
 
530
525
  def initialize(**args)
531
526
  update!(**args)
@@ -533,37 +528,30 @@ module Google
533
528
 
534
529
  # Update properties of this object
535
530
  def update!(**args)
536
- @score = args[:score] if args.key?(:score)
537
- @locations = args[:locations] if args.key?(:locations)
538
- @mid = args[:mid] if args.key?(:mid)
539
- @confidence = args[:confidence] if args.key?(:confidence)
540
- @locale = args[:locale] if args.key?(:locale)
541
- @bounding_poly = args[:bounding_poly] if args.key?(:bounding_poly)
542
- @topicality = args[:topicality] if args.key?(:topicality)
543
- @description = args[:description] if args.key?(:description)
544
- @properties = args[:properties] if args.key?(:properties)
531
+ @details = args[:details] if args.key?(:details)
532
+ @code = args[:code] if args.key?(:code)
533
+ @message = args[:message] if args.key?(:message)
545
534
  end
546
535
  end
547
536
 
548
- # Single crop hint that is used to generate a new crop when serving an image.
549
- class CropHint
537
+ # A single symbol representation.
538
+ class Symbol
550
539
  include Google::Apis::Core::Hashable
551
540
 
552
- # Confidence of this being a salient region. Range [0, 1].
553
- # Corresponds to the JSON property `confidence`
554
- # @return [Float]
555
- attr_accessor :confidence
556
-
557
- # Fraction of importance of this salient region with respect to the original
558
- # image.
559
- # Corresponds to the JSON property `importanceFraction`
560
- # @return [Float]
561
- attr_accessor :importance_fraction
562
-
563
541
  # A bounding polygon for the detected image annotation.
564
- # Corresponds to the JSON property `boundingPoly`
542
+ # Corresponds to the JSON property `boundingBox`
565
543
  # @return [Google::Apis::VisionV1::BoundingPoly]
566
- attr_accessor :bounding_poly
544
+ attr_accessor :bounding_box
545
+
546
+ # The actual UTF-8 representation of the symbol.
547
+ # Corresponds to the JSON property `text`
548
+ # @return [String]
549
+ attr_accessor :text
550
+
551
+ # Additional information detected on the structural component.
552
+ # Corresponds to the JSON property `property`
553
+ # @return [Google::Apis::VisionV1::TextProperty]
554
+ attr_accessor :property
567
555
 
568
556
  def initialize(**args)
569
557
  update!(**args)
@@ -571,88 +559,93 @@ module Google
571
559
 
572
560
  # Update properties of this object
573
561
  def update!(**args)
574
- @confidence = args[:confidence] if args.key?(:confidence)
575
- @importance_fraction = args[:importance_fraction] if args.key?(:importance_fraction)
576
- @bounding_poly = args[:bounding_poly] if args.key?(:bounding_poly)
562
+ @bounding_box = args[:bounding_box] if args.key?(:bounding_box)
563
+ @text = args[:text] if args.key?(:text)
564
+ @property = args[:property] if args.key?(:property)
577
565
  end
578
566
  end
579
567
 
580
- # A face-specific landmark (for example, a face feature).
581
- # Landmark positions may fall outside the bounds of the image
582
- # if the face is near one or more edges of the image.
583
- # Therefore it is NOT guaranteed that `0 <= x < width` or
584
- # `0 <= y < height`.
585
- class Landmark
568
+ # Rectangle determined by min and max `LatLng` pairs.
569
+ class LatLongRect
586
570
  include Google::Apis::Core::Hashable
587
571
 
588
- # Face landmark type.
589
- # Corresponds to the JSON property `type`
590
- # @return [String]
591
- attr_accessor :type
592
-
593
- # A 3D position in the image, used primarily for Face detection landmarks.
594
- # A valid Position must have both x and y coordinates.
595
- # The position coordinates are in the same scale as the original image.
596
- # Corresponds to the JSON property `position`
597
- # @return [Google::Apis::VisionV1::Position]
598
- attr_accessor :position
599
-
600
- def initialize(**args)
601
- update!(**args)
602
- end
603
-
604
- # Update properties of this object
605
- def update!(**args)
606
- @type = args[:type] if args.key?(:type)
607
- @position = args[:position] if args.key?(:position)
608
- end
609
- end
610
-
611
- # Metadata for online images.
612
- class WebImage
613
- include Google::Apis::Core::Hashable
614
-
615
- # Overall relevancy score for the image.
616
- # Not normalized and not comparable across different image queries.
617
- # Corresponds to the JSON property `score`
618
- # @return [Float]
619
- attr_accessor :score
620
-
621
- # The result image URL.
622
- # Corresponds to the JSON property `url`
623
- # @return [String]
624
- attr_accessor :url
625
-
626
- def initialize(**args)
627
- update!(**args)
628
- end
629
-
630
- # Update properties of this object
631
- def update!(**args)
632
- @score = args[:score] if args.key?(:score)
633
- @url = args[:url] if args.key?(:url)
634
- end
635
- end
636
-
637
- # A word representation.
638
- class Word
639
- include Google::Apis::Core::Hashable
640
-
641
- # List of symbols in the word.
642
- # The order of the symbols follows the natural reading order.
643
- # Corresponds to the JSON property `symbols`
644
- # @return [Array<Google::Apis::VisionV1::Symbol>]
645
- attr_accessor :symbols
646
-
647
- # Additional information detected on the structural component.
648
- # Corresponds to the JSON property `property`
649
- # @return [Google::Apis::VisionV1::TextProperty]
650
- attr_accessor :property
572
+ # An object representing a latitude/longitude pair. This is expressed as a pair
573
+ # of doubles representing degrees latitude and degrees longitude. Unless
574
+ # specified otherwise, this must conform to the
575
+ # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
576
+ # standard</a>. Values must be within normalized ranges.
577
+ # Example of normalization code in Python:
578
+ # def NormalizeLongitude(longitude):
579
+ # """Wraps decimal degrees longitude to [-180.0, 180.0]."""
580
+ # q, r = divmod(longitude, 360.0)
581
+ # if r > 180.0 or (r == 180.0 and q <= -1.0):
582
+ # return r - 360.0
583
+ # return r
584
+ # def NormalizeLatLng(latitude, longitude):
585
+ # """Wraps decimal degrees latitude and longitude to
586
+ # [-90.0, 90.0] and [-180.0, 180.0], respectively."""
587
+ # r = latitude % 360.0
588
+ # if r <= 90.0:
589
+ # return r, NormalizeLongitude(longitude)
590
+ # elif r >= 270.0:
591
+ # return r - 360, NormalizeLongitude(longitude)
592
+ # else:
593
+ # return 180 - r, NormalizeLongitude(longitude + 180.0)
594
+ # assert 180.0 == NormalizeLongitude(180.0)
595
+ # assert -180.0 == NormalizeLongitude(-180.0)
596
+ # assert -179.0 == NormalizeLongitude(181.0)
597
+ # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
598
+ # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
599
+ # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
600
+ # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
601
+ # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
602
+ # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
603
+ # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
604
+ # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
605
+ # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
606
+ # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
607
+ # Corresponds to the JSON property `minLatLng`
608
+ # @return [Google::Apis::VisionV1::LatLng]
609
+ attr_accessor :min_lat_lng
651
610
 
652
- # A bounding polygon for the detected image annotation.
653
- # Corresponds to the JSON property `boundingBox`
654
- # @return [Google::Apis::VisionV1::BoundingPoly]
655
- attr_accessor :bounding_box
611
+ # An object representing a latitude/longitude pair. This is expressed as a pair
612
+ # of doubles representing degrees latitude and degrees longitude. Unless
613
+ # specified otherwise, this must conform to the
614
+ # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
615
+ # standard</a>. Values must be within normalized ranges.
616
+ # Example of normalization code in Python:
617
+ # def NormalizeLongitude(longitude):
618
+ # """Wraps decimal degrees longitude to [-180.0, 180.0]."""
619
+ # q, r = divmod(longitude, 360.0)
620
+ # if r > 180.0 or (r == 180.0 and q <= -1.0):
621
+ # return r - 360.0
622
+ # return r
623
+ # def NormalizeLatLng(latitude, longitude):
624
+ # """Wraps decimal degrees latitude and longitude to
625
+ # [-90.0, 90.0] and [-180.0, 180.0], respectively."""
626
+ # r = latitude % 360.0
627
+ # if r <= 90.0:
628
+ # return r, NormalizeLongitude(longitude)
629
+ # elif r >= 270.0:
630
+ # return r - 360, NormalizeLongitude(longitude)
631
+ # else:
632
+ # return 180 - r, NormalizeLongitude(longitude + 180.0)
633
+ # assert 180.0 == NormalizeLongitude(180.0)
634
+ # assert -180.0 == NormalizeLongitude(-180.0)
635
+ # assert -179.0 == NormalizeLongitude(181.0)
636
+ # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
637
+ # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
638
+ # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
639
+ # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
640
+ # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
641
+ # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
642
+ # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
643
+ # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
644
+ # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
645
+ # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
646
+ # Corresponds to the JSON property `maxLatLng`
647
+ # @return [Google::Apis::VisionV1::LatLng]
648
+ attr_accessor :max_lat_lng
656
649
 
657
650
  def initialize(**args)
658
651
  update!(**args)
@@ -660,28 +653,19 @@ module Google
660
653
 
661
654
  # Update properties of this object
662
655
  def update!(**args)
663
- @symbols = args[:symbols] if args.key?(:symbols)
664
- @property = args[:property] if args.key?(:property)
665
- @bounding_box = args[:bounding_box] if args.key?(:bounding_box)
656
+ @min_lat_lng = args[:min_lat_lng] if args.key?(:min_lat_lng)
657
+ @max_lat_lng = args[:max_lat_lng] if args.key?(:max_lat_lng)
666
658
  end
667
659
  end
668
660
 
669
- # Client image to perform Google Cloud Vision API tasks over.
670
- class Image
661
+ # Set of crop hints that are used to generate new crops when serving images.
662
+ class CropHintsAnnotation
671
663
  include Google::Apis::Core::Hashable
672
664
 
673
- # Image content, represented as a stream of bytes.
674
- # Note: as with all `bytes` fields, protobuffers use a pure binary
675
- # representation, whereas JSON representations use base64.
676
- # Corresponds to the JSON property `content`
677
- # NOTE: Values are automatically base64 encoded/decoded in the client library.
678
- # @return [String]
679
- attr_accessor :content
680
-
681
- # External image source (Google Cloud Storage image location).
682
- # Corresponds to the JSON property `source`
683
- # @return [Google::Apis::VisionV1::ImageSource]
684
- attr_accessor :source
665
+ # Crop hint results.
666
+ # Corresponds to the JSON property `cropHints`
667
+ # @return [Array<Google::Apis::VisionV1::CropHint>]
668
+ attr_accessor :crop_hints
685
669
 
686
670
  def initialize(**args)
687
671
  update!(**args)
@@ -689,29 +673,57 @@ module Google
689
673
 
690
674
  # Update properties of this object
691
675
  def update!(**args)
692
- @content = args[:content] if args.key?(:content)
693
- @source = args[:source] if args.key?(:source)
676
+ @crop_hints = args[:crop_hints] if args.key?(:crop_hints)
694
677
  end
695
678
  end
696
679
 
697
- # Structural unit of text representing a number of words in certain order.
698
- class Paragraph
680
+ # An object representing a latitude/longitude pair. This is expressed as a pair
681
+ # of doubles representing degrees latitude and degrees longitude. Unless
682
+ # specified otherwise, this must conform to the
683
+ # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
684
+ # standard</a>. Values must be within normalized ranges.
685
+ # Example of normalization code in Python:
686
+ # def NormalizeLongitude(longitude):
687
+ # """Wraps decimal degrees longitude to [-180.0, 180.0]."""
688
+ # q, r = divmod(longitude, 360.0)
689
+ # if r > 180.0 or (r == 180.0 and q <= -1.0):
690
+ # return r - 360.0
691
+ # return r
692
+ # def NormalizeLatLng(latitude, longitude):
693
+ # """Wraps decimal degrees latitude and longitude to
694
+ # [-90.0, 90.0] and [-180.0, 180.0], respectively."""
695
+ # r = latitude % 360.0
696
+ # if r <= 90.0:
697
+ # return r, NormalizeLongitude(longitude)
698
+ # elif r >= 270.0:
699
+ # return r - 360, NormalizeLongitude(longitude)
700
+ # else:
701
+ # return 180 - r, NormalizeLongitude(longitude + 180.0)
702
+ # assert 180.0 == NormalizeLongitude(180.0)
703
+ # assert -180.0 == NormalizeLongitude(-180.0)
704
+ # assert -179.0 == NormalizeLongitude(181.0)
705
+ # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
706
+ # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
707
+ # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
708
+ # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
709
+ # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
710
+ # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
711
+ # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
712
+ # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
713
+ # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
714
+ # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
715
+ class LatLng
699
716
  include Google::Apis::Core::Hashable
700
717
 
701
- # Additional information detected on the structural component.
702
- # Corresponds to the JSON property `property`
703
- # @return [Google::Apis::VisionV1::TextProperty]
704
- attr_accessor :property
705
-
706
- # A bounding polygon for the detected image annotation.
707
- # Corresponds to the JSON property `boundingBox`
708
- # @return [Google::Apis::VisionV1::BoundingPoly]
709
- attr_accessor :bounding_box
718
+ # The longitude in degrees. It must be in the range [-180.0, +180.0].
719
+ # Corresponds to the JSON property `longitude`
720
+ # @return [Float]
721
+ attr_accessor :longitude
710
722
 
711
- # List of words in this paragraph.
712
- # Corresponds to the JSON property `words`
713
- # @return [Array<Google::Apis::VisionV1::Word>]
714
- attr_accessor :words
723
+ # The latitude in degrees. It must be in the range [-90.0, +90.0].
724
+ # Corresponds to the JSON property `latitude`
725
+ # @return [Float]
726
+ attr_accessor :latitude
715
727
 
716
728
  def initialize(**args)
717
729
  update!(**args)
@@ -719,95 +731,140 @@ module Google
719
731
 
720
732
  # Update properties of this object
721
733
  def update!(**args)
722
- @property = args[:property] if args.key?(:property)
723
- @bounding_box = args[:bounding_box] if args.key?(:bounding_box)
724
- @words = args[:words] if args.key?(:words)
734
+ @longitude = args[:longitude] if args.key?(:longitude)
735
+ @latitude = args[:latitude] if args.key?(:latitude)
725
736
  end
726
737
  end
727
738
 
728
- # A face annotation object contains the results of face detection.
729
- class FaceAnnotation
730
- include Google::Apis::Core::Hashable
731
-
732
- # Pitch angle, which indicates the upwards/downwards angle that the face is
733
- # pointing relative to the image's horizontal plane. Range [-180,180].
734
- # Corresponds to the JSON property `tiltAngle`
735
- # @return [Float]
736
- attr_accessor :tilt_angle
737
-
738
- # A bounding polygon for the detected image annotation.
739
- # Corresponds to the JSON property `fdBoundingPoly`
740
- # @return [Google::Apis::VisionV1::BoundingPoly]
741
- attr_accessor :fd_bounding_poly
742
-
743
- # Anger likelihood.
744
- # Corresponds to the JSON property `angerLikelihood`
745
- # @return [String]
746
- attr_accessor :anger_likelihood
747
-
748
- # Detected face landmarks.
749
- # Corresponds to the JSON property `landmarks`
750
- # @return [Array<Google::Apis::VisionV1::Landmark>]
751
- attr_accessor :landmarks
752
-
753
- # Surprise likelihood.
754
- # Corresponds to the JSON property `surpriseLikelihood`
755
- # @return [String]
756
- attr_accessor :surprise_likelihood
757
-
758
- # Joy likelihood.
759
- # Corresponds to the JSON property `joyLikelihood`
760
- # @return [String]
761
- attr_accessor :joy_likelihood
739
+ # Represents a color in the RGBA color space. This representation is designed
740
+ # for simplicity of conversion to/from color representations in various
741
+ # languages over compactness; for example, the fields of this representation
742
+ # can be trivially provided to the constructor of "java.awt.Color" in Java; it
743
+ # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
744
+ # method in iOS; and, with just a little work, it can be easily formatted into
745
+ # a CSS "rgba()" string in JavaScript, as well. Here are some examples:
746
+ # Example (Java):
747
+ # import com.google.type.Color;
748
+ # // ...
749
+ # public static java.awt.Color fromProto(Color protocolor) `
750
+ # float alpha = protocolor.hasAlpha()
751
+ # ? protocolor.getAlpha().getValue()
752
+ # : 1.0;
753
+ # return new java.awt.Color(
754
+ # protocolor.getRed(),
755
+ # protocolor.getGreen(),
756
+ # protocolor.getBlue(),
757
+ # alpha);
758
+ # `
759
+ # public static Color toProto(java.awt.Color color) `
760
+ # float red = (float) color.getRed();
761
+ # float green = (float) color.getGreen();
762
+ # float blue = (float) color.getBlue();
763
+ # float denominator = 255.0;
764
+ # Color.Builder resultBuilder =
765
+ # Color
766
+ # .newBuilder()
767
+ # .setRed(red / denominator)
768
+ # .setGreen(green / denominator)
769
+ # .setBlue(blue / denominator);
770
+ # int alpha = color.getAlpha();
771
+ # if (alpha != 255) `
772
+ # result.setAlpha(
773
+ # FloatValue
774
+ # .newBuilder()
775
+ # .setValue(((float) alpha) / denominator)
776
+ # .build());
777
+ # `
778
+ # return resultBuilder.build();
779
+ # `
780
+ # // ...
781
+ # Example (iOS / Obj-C):
782
+ # // ...
783
+ # static UIColor* fromProto(Color* protocolor) `
784
+ # float red = [protocolor red];
785
+ # float green = [protocolor green];
786
+ # float blue = [protocolor blue];
787
+ # FloatValue* alpha_wrapper = [protocolor alpha];
788
+ # float alpha = 1.0;
789
+ # if (alpha_wrapper != nil) `
790
+ # alpha = [alpha_wrapper value];
791
+ # `
792
+ # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
793
+ # `
794
+ # static Color* toProto(UIColor* color) `
795
+ # CGFloat red, green, blue, alpha;
796
+ # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) `
797
+ # return nil;
798
+ # `
799
+ # Color* result = [Color alloc] init];
800
+ # [result setRed:red];
801
+ # [result setGreen:green];
802
+ # [result setBlue:blue];
803
+ # if (alpha <= 0.9999) `
804
+ # [result setAlpha:floatWrapperWithValue(alpha)];
805
+ # `
806
+ # [result autorelease];
807
+ # return result;
808
+ # `
809
+ # // ...
810
+ # Example (JavaScript):
811
+ # // ...
812
+ # var protoToCssColor = function(rgb_color) `
813
+ # var redFrac = rgb_color.red || 0.0;
814
+ # var greenFrac = rgb_color.green || 0.0;
815
+ # var blueFrac = rgb_color.blue || 0.0;
816
+ # var red = Math.floor(redFrac * 255);
817
+ # var green = Math.floor(greenFrac * 255);
818
+ # var blue = Math.floor(blueFrac * 255);
819
+ # if (!('alpha' in rgb_color)) `
820
+ # return rgbToCssColor_(red, green, blue);
821
+ # `
822
+ # var alphaFrac = rgb_color.alpha.value || 0.0;
823
+ # var rgbParams = [red, green, blue].join(',');
824
+ # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
825
+ # `;
826
+ # var rgbToCssColor_ = function(red, green, blue) `
827
+ # var rgbNumber = new Number((red << 16) | (green << 8) | blue);
828
+ # var hexString = rgbNumber.toString(16);
829
+ # var missingZeros = 6 - hexString.length;
830
+ # var resultBuilder = ['#'];
831
+ # for (var i = 0; i < missingZeros; i++) `
832
+ # resultBuilder.push('0');
833
+ # `
834
+ # resultBuilder.push(hexString);
835
+ # return resultBuilder.join('');
836
+ # `;
837
+ # // ...
838
+ class Color
839
+ include Google::Apis::Core::Hashable
762
840
 
763
- # Face landmarking confidence. Range [0, 1].
764
- # Corresponds to the JSON property `landmarkingConfidence`
841
+ # The amount of red in the color as a value in the interval [0, 1].
842
+ # Corresponds to the JSON property `red`
765
843
  # @return [Float]
766
- attr_accessor :landmarking_confidence
767
-
768
- # Under-exposed likelihood.
769
- # Corresponds to the JSON property `underExposedLikelihood`
770
- # @return [String]
771
- attr_accessor :under_exposed_likelihood
844
+ attr_accessor :red
772
845
 
773
- # Yaw angle, which indicates the leftward/rightward angle that the face is
774
- # pointing relative to the vertical plane perpendicular to the image. Range
775
- # [-180,180].
776
- # Corresponds to the JSON property `panAngle`
846
+ # The amount of green in the color as a value in the interval [0, 1].
847
+ # Corresponds to the JSON property `green`
777
848
  # @return [Float]
778
- attr_accessor :pan_angle
849
+ attr_accessor :green
779
850
 
780
- # Detection confidence. Range [0, 1].
781
- # Corresponds to the JSON property `detectionConfidence`
851
+ # The amount of blue in the color as a value in the interval [0, 1].
852
+ # Corresponds to the JSON property `blue`
782
853
  # @return [Float]
783
- attr_accessor :detection_confidence
784
-
785
- # Blurred likelihood.
786
- # Corresponds to the JSON property `blurredLikelihood`
787
- # @return [String]
788
- attr_accessor :blurred_likelihood
789
-
790
- # Headwear likelihood.
791
- # Corresponds to the JSON property `headwearLikelihood`
792
- # @return [String]
793
- attr_accessor :headwear_likelihood
794
-
795
- # A bounding polygon for the detected image annotation.
796
- # Corresponds to the JSON property `boundingPoly`
797
- # @return [Google::Apis::VisionV1::BoundingPoly]
798
- attr_accessor :bounding_poly
854
+ attr_accessor :blue
799
855
 
800
- # Roll angle, which indicates the amount of clockwise/anti-clockwise rotation
801
- # of the face relative to the image vertical about the axis perpendicular to
802
- # the face. Range [-180,180].
803
- # Corresponds to the JSON property `rollAngle`
856
+ # The fraction of this color that should be applied to the pixel. That is,
857
+ # the final pixel color is defined by the equation:
858
+ # pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
859
+ # This means that a value of 1.0 corresponds to a solid color, whereas
860
+ # a value of 0.0 corresponds to a completely transparent color. This
861
+ # uses a wrapper message rather than a simple float scalar so that it is
862
+ # possible to distinguish between a default value and the value being unset.
863
+ # If omitted, this color object is to be rendered as a solid color
864
+ # (as if the alpha value had been explicitly given with a value of 1.0).
865
+ # Corresponds to the JSON property `alpha`
804
866
  # @return [Float]
805
- attr_accessor :roll_angle
806
-
807
- # Sorrow likelihood.
808
- # Corresponds to the JSON property `sorrowLikelihood`
809
- # @return [String]
810
- attr_accessor :sorrow_likelihood
867
+ attr_accessor :alpha
811
868
 
812
869
  def initialize(**args)
813
870
  update!(**args)
@@ -815,32 +872,29 @@ module Google
815
872
 
816
873
  # Update properties of this object
817
874
  def update!(**args)
818
- @tilt_angle = args[:tilt_angle] if args.key?(:tilt_angle)
819
- @fd_bounding_poly = args[:fd_bounding_poly] if args.key?(:fd_bounding_poly)
820
- @anger_likelihood = args[:anger_likelihood] if args.key?(:anger_likelihood)
821
- @landmarks = args[:landmarks] if args.key?(:landmarks)
822
- @surprise_likelihood = args[:surprise_likelihood] if args.key?(:surprise_likelihood)
823
- @joy_likelihood = args[:joy_likelihood] if args.key?(:joy_likelihood)
824
- @landmarking_confidence = args[:landmarking_confidence] if args.key?(:landmarking_confidence)
825
- @under_exposed_likelihood = args[:under_exposed_likelihood] if args.key?(:under_exposed_likelihood)
826
- @pan_angle = args[:pan_angle] if args.key?(:pan_angle)
827
- @detection_confidence = args[:detection_confidence] if args.key?(:detection_confidence)
828
- @blurred_likelihood = args[:blurred_likelihood] if args.key?(:blurred_likelihood)
829
- @headwear_likelihood = args[:headwear_likelihood] if args.key?(:headwear_likelihood)
830
- @bounding_poly = args[:bounding_poly] if args.key?(:bounding_poly)
831
- @roll_angle = args[:roll_angle] if args.key?(:roll_angle)
832
- @sorrow_likelihood = args[:sorrow_likelihood] if args.key?(:sorrow_likelihood)
875
+ @red = args[:red] if args.key?(:red)
876
+ @green = args[:green] if args.key?(:green)
877
+ @blue = args[:blue] if args.key?(:blue)
878
+ @alpha = args[:alpha] if args.key?(:alpha)
833
879
  end
834
880
  end
835
881
 
836
- # Multiple image annotation requests are batched into a single service call.
837
- class BatchAnnotateImagesRequest
882
+ # Users describe the type of Google Cloud Vision API tasks to perform over
883
+ # images by using *Feature*s. Each Feature indicates a type of image
884
+ # detection task to perform. Features encode the Cloud Vision API
885
+ # vertical to operate on and the number of top-scoring results to return.
886
+ class Feature
838
887
  include Google::Apis::Core::Hashable
839
888
 
840
- # Individual image annotation requests for this batch.
841
- # Corresponds to the JSON property `requests`
842
- # @return [Array<Google::Apis::VisionV1::AnnotateImageRequest>]
843
- attr_accessor :requests
889
+ # The feature type.
890
+ # Corresponds to the JSON property `type`
891
+ # @return [String]
892
+ attr_accessor :type
893
+
894
+ # Maximum number of results of this type.
895
+ # Corresponds to the JSON property `maxResults`
896
+ # @return [Fixnum]
897
+ attr_accessor :max_results
844
898
 
845
899
  def initialize(**args)
846
900
  update!(**args)
@@ -848,24 +902,19 @@ module Google
848
902
 
849
903
  # Update properties of this object
850
904
  def update!(**args)
851
- @requests = args[:requests] if args.key?(:requests)
905
+ @type = args[:type] if args.key?(:type)
906
+ @max_results = args[:max_results] if args.key?(:max_results)
852
907
  end
853
908
  end
854
909
 
855
- # Detected start or end of a structural component.
856
- class DetectedBreak
910
+ # Stores image properties, such as dominant colors.
911
+ class ImageProperties
857
912
  include Google::Apis::Core::Hashable
858
913
 
859
- # Detected break type.
860
- # Corresponds to the JSON property `type`
861
- # @return [String]
862
- attr_accessor :type
863
-
864
- # True if break prepends the element.
865
- # Corresponds to the JSON property `isPrefix`
866
- # @return [Boolean]
867
- attr_accessor :is_prefix
868
- alias_method :is_prefix?, :is_prefix
914
+ # Set of dominant colors and their corresponding scores.
915
+ # Corresponds to the JSON property `dominantColors`
916
+ # @return [Google::Apis::VisionV1::DominantColorsAnnotation]
917
+ attr_accessor :dominant_colors
869
918
 
870
919
  def initialize(**args)
871
920
  update!(**args)
@@ -873,36 +922,37 @@ module Google
873
922
 
874
923
  # Update properties of this object
875
924
  def update!(**args)
876
- @type = args[:type] if args.key?(:type)
877
- @is_prefix = args[:is_prefix] if args.key?(:is_prefix)
925
+ @dominant_colors = args[:dominant_colors] if args.key?(:dominant_colors)
878
926
  end
879
927
  end
880
928
 
881
- # Image context and/or feature-specific parameters.
882
- class ImageContext
929
+ # Set of features pertaining to the image, computed by computer vision
930
+ # methods over safe-search verticals (for example, adult, spoof, medical,
931
+ # violence).
932
+ class SafeSearchAnnotation
883
933
  include Google::Apis::Core::Hashable
884
934
 
885
- # Parameters for crop hints annotation request.
886
- # Corresponds to the JSON property `cropHintsParams`
887
- # @return [Google::Apis::VisionV1::CropHintsParams]
888
- attr_accessor :crop_hints_params
935
+ # Spoof likelihood. The likelihood that an modification
936
+ # was made to the image's canonical version to make it appear
937
+ # funny or offensive.
938
+ # Corresponds to the JSON property `spoof`
939
+ # @return [String]
940
+ attr_accessor :spoof
889
941
 
890
- # List of languages to use for TEXT_DETECTION. In most cases, an empty value
891
- # yields the best results since it enables automatic language detection. For
892
- # languages based on the Latin alphabet, setting `language_hints` is not
893
- # needed. In rare cases, when the language of the text in the image is known,
894
- # setting a hint will help get better results (although it will be a
895
- # significant hindrance if the hint is wrong). Text detection returns an
896
- # error if one or more of the specified languages is not one of the
897
- # [supported languages](/vision/docs/languages).
898
- # Corresponds to the JSON property `languageHints`
899
- # @return [Array<String>]
900
- attr_accessor :language_hints
942
+ # Likelihood that this is a medical image.
943
+ # Corresponds to the JSON property `medical`
944
+ # @return [String]
945
+ attr_accessor :medical
901
946
 
902
- # Rectangle determined by min and max `LatLng` pairs.
903
- # Corresponds to the JSON property `latLongRect`
904
- # @return [Google::Apis::VisionV1::LatLongRect]
905
- attr_accessor :lat_long_rect
947
+ # Violence likelihood.
948
+ # Corresponds to the JSON property `violence`
949
+ # @return [String]
950
+ attr_accessor :violence
951
+
952
+ # Represents the adult content likelihood for the image.
953
+ # Corresponds to the JSON property `adult`
954
+ # @return [String]
955
+ attr_accessor :adult
906
956
 
907
957
  def initialize(**args)
908
958
  update!(**args)
@@ -910,35 +960,51 @@ module Google
910
960
 
911
961
  # Update properties of this object
912
962
  def update!(**args)
913
- @crop_hints_params = args[:crop_hints_params] if args.key?(:crop_hints_params)
914
- @language_hints = args[:language_hints] if args.key?(:language_hints)
915
- @lat_long_rect = args[:lat_long_rect] if args.key?(:lat_long_rect)
963
+ @spoof = args[:spoof] if args.key?(:spoof)
964
+ @medical = args[:medical] if args.key?(:medical)
965
+ @violence = args[:violence] if args.key?(:violence)
966
+ @adult = args[:adult] if args.key?(:adult)
916
967
  end
917
968
  end
918
969
 
919
- # Detected page from OCR.
920
- class Page
970
+ # Set of dominant colors and their corresponding scores.
971
+ class DominantColorsAnnotation
921
972
  include Google::Apis::Core::Hashable
922
973
 
923
- # Page width in pixels.
924
- # Corresponds to the JSON property `width`
925
- # @return [Fixnum]
926
- attr_accessor :width
974
+ # RGB color values with their score and pixel fraction.
975
+ # Corresponds to the JSON property `colors`
976
+ # @return [Array<Google::Apis::VisionV1::ColorInfo>]
977
+ attr_accessor :colors
927
978
 
928
- # List of blocks of text, images etc on this page.
929
- # Corresponds to the JSON property `blocks`
930
- # @return [Array<Google::Apis::VisionV1::Block>]
931
- attr_accessor :blocks
979
+ def initialize(**args)
980
+ update!(**args)
981
+ end
932
982
 
933
- # Additional information detected on the structural component.
934
- # Corresponds to the JSON property `property`
935
- # @return [Google::Apis::VisionV1::TextProperty]
936
- attr_accessor :property
983
+ # Update properties of this object
984
+ def update!(**args)
985
+ @colors = args[:colors] if args.key?(:colors)
986
+ end
987
+ end
937
988
 
938
- # Page height in pixels.
939
- # Corresponds to the JSON property `height`
940
- # @return [Fixnum]
941
- attr_accessor :height
989
+ # TextAnnotation contains a structured representation of OCR extracted text.
990
+ # The hierarchy of an OCR extracted text structure is like this:
991
+ # TextAnnotation -> Page -> Block -> Paragraph -> Word -> Symbol
992
+ # Each structural component, starting from Page, may further have their own
993
+ # properties. Properties describe detected languages, breaks etc.. Please
994
+ # refer to the google.cloud.vision.v1.TextAnnotation.TextProperty message
995
+ # definition below for more detail.
996
+ class TextAnnotation
997
+ include Google::Apis::Core::Hashable
998
+
999
+ # List of pages detected by OCR.
1000
+ # Corresponds to the JSON property `pages`
1001
+ # @return [Array<Google::Apis::VisionV1::Page>]
1002
+ attr_accessor :pages
1003
+
1004
+ # UTF-8 text detected on the pages.
1005
+ # Corresponds to the JSON property `text`
1006
+ # @return [String]
1007
+ attr_accessor :text
942
1008
 
943
1009
  def initialize(**args)
944
1010
  update!(**args)
@@ -946,32 +1012,26 @@ module Google
946
1012
 
947
1013
  # Update properties of this object
948
1014
  def update!(**args)
949
- @width = args[:width] if args.key?(:width)
950
- @blocks = args[:blocks] if args.key?(:blocks)
951
- @property = args[:property] if args.key?(:property)
952
- @height = args[:height] if args.key?(:height)
1015
+ @pages = args[:pages] if args.key?(:pages)
1016
+ @text = args[:text] if args.key?(:text)
953
1017
  end
954
1018
  end
955
1019
 
956
- # Request for performing Google Cloud Vision API tasks over a user-provided
957
- # image, with user-requested features.
958
- class AnnotateImageRequest
1020
+ # Detected language for a structural component.
1021
+ class DetectedLanguage
959
1022
  include Google::Apis::Core::Hashable
960
1023
 
961
- # Client image to perform Google Cloud Vision API tasks over.
962
- # Corresponds to the JSON property `image`
963
- # @return [Google::Apis::VisionV1::Image]
964
- attr_accessor :image
965
-
966
- # Requested features.
967
- # Corresponds to the JSON property `features`
968
- # @return [Array<Google::Apis::VisionV1::Feature>]
969
- attr_accessor :features
1024
+ # The BCP-47 language code, such as "en-US" or "sr-Latn". For more
1025
+ # information, see
1026
+ # http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
1027
+ # Corresponds to the JSON property `languageCode`
1028
+ # @return [String]
1029
+ attr_accessor :language_code
970
1030
 
971
- # Image context and/or feature-specific parameters.
972
- # Corresponds to the JSON property `imageContext`
973
- # @return [Google::Apis::VisionV1::ImageContext]
974
- attr_accessor :image_context
1031
+ # Confidence of detected language. Range [0, 1].
1032
+ # Corresponds to the JSON property `confidence`
1033
+ # @return [Float]
1034
+ attr_accessor :confidence
975
1035
 
976
1036
  def initialize(**args)
977
1037
  update!(**args)
@@ -979,71 +1039,25 @@ module Google
979
1039
 
980
1040
  # Update properties of this object
981
1041
  def update!(**args)
982
- @image = args[:image] if args.key?(:image)
983
- @features = args[:features] if args.key?(:features)
984
- @image_context = args[:image_context] if args.key?(:image_context)
1042
+ @language_code = args[:language_code] if args.key?(:language_code)
1043
+ @confidence = args[:confidence] if args.key?(:confidence)
985
1044
  end
986
1045
  end
987
1046
 
988
- # The `Status` type defines a logical error model that is suitable for different
989
- # programming environments, including REST APIs and RPC APIs. It is used by
990
- # [gRPC](https://github.com/grpc). The error model is designed to be:
991
- # - Simple to use and understand for most users
992
- # - Flexible enough to meet unexpected needs
993
- # # Overview
994
- # The `Status` message contains three pieces of data: error code, error message,
995
- # and error details. The error code should be an enum value of
996
- # google.rpc.Code, but it may accept additional error codes if needed. The
997
- # error message should be a developer-facing English message that helps
998
- # developers *understand* and *resolve* the error. If a localized user-facing
999
- # error message is needed, put the localized message in the error details or
1000
- # localize it in the client. The optional error details may contain arbitrary
1001
- # information about the error. There is a predefined set of error detail types
1002
- # in the package `google.rpc` which can be used for common error conditions.
1003
- # # Language mapping
1004
- # The `Status` message is the logical representation of the error model, but it
1005
- # is not necessarily the actual wire format. When the `Status` message is
1006
- # exposed in different client libraries and different wire protocols, it can be
1007
- # mapped differently. For example, it will likely be mapped to some exceptions
1008
- # in Java, but more likely mapped to some error codes in C.
1009
- # # Other uses
1010
- # The error model and the `Status` message can be used in a variety of
1011
- # environments, either with or without APIs, to provide a
1012
- # consistent developer experience across different environments.
1013
- # Example uses of this error model include:
1014
- # - Partial errors. If a service needs to return partial errors to the client,
1015
- # it may embed the `Status` in the normal response to indicate the partial
1016
- # errors.
1017
- # - Workflow errors. A typical workflow has multiple steps. Each step may
1018
- # have a `Status` message for error reporting purpose.
1019
- # - Batch operations. If a client uses batch request and batch response, the
1020
- # `Status` message should be used directly inside batch response, one for
1021
- # each error sub-response.
1022
- # - Asynchronous operations. If an API call embeds asynchronous operation
1023
- # results in its response, the status of those operations should be
1024
- # represented directly using the `Status` message.
1025
- # - Logging. If some API errors are stored in logs, the message `Status` could
1026
- # be used directly after any stripping needed for security/privacy reasons.
1027
- class Status
1047
+ # A vertex represents a 2D point in the image.
1048
+ # NOTE: the vertex coordinates are in the same scale as the original image.
1049
+ class Vertex
1028
1050
  include Google::Apis::Core::Hashable
1029
1051
 
1030
- # A list of messages that carry the error details. There will be a
1031
- # common set of message types for APIs to use.
1032
- # Corresponds to the JSON property `details`
1033
- # @return [Array<Hash<String,Object>>]
1034
- attr_accessor :details
1035
-
1036
- # The status code, which should be an enum value of google.rpc.Code.
1037
- # Corresponds to the JSON property `code`
1052
+ # Y coordinate.
1053
+ # Corresponds to the JSON property `y`
1038
1054
  # @return [Fixnum]
1039
- attr_accessor :code
1055
+ attr_accessor :y
1040
1056
 
1041
- # A developer-facing error message, which should be in English. Any
1042
- # user-facing error message should be localized and sent in the
1043
- # google.rpc.Status.details field, or localized by the client.
1044
- # Corresponds to the JSON property `message`
1045
- # @return [String]
1046
- attr_accessor :message
1057
+ # X coordinate.
1058
+ # Corresponds to the JSON property `x`
1059
+ # @return [Fixnum]
1060
+ attr_accessor :x
1047
1061
 
1048
1062
  def initialize(**args)
1049
1063
  update!(**args)
@@ -1051,97 +1065,24 @@ module Google
1051
1065
 
1052
1066
  # Update properties of this object
1053
1067
  def update!(**args)
1054
- @details = args[:details] if args.key?(:details)
1055
- @code = args[:code] if args.key?(:code)
1056
- @message = args[:message] if args.key?(:message)
1068
+ @y = args[:y] if args.key?(:y)
1069
+ @x = args[:x] if args.key?(:x)
1057
1070
  end
1058
1071
  end
1059
1072
 
1060
- # Rectangle determined by min and max `LatLng` pairs.
1061
- class LatLongRect
1073
+ # Additional information detected on the structural component.
1074
+ class TextProperty
1062
1075
  include Google::Apis::Core::Hashable
1063
1076
 
1064
- # An object representing a latitude/longitude pair. This is expressed as a pair
1065
- # of doubles representing degrees latitude and degrees longitude. Unless
1066
- # specified otherwise, this must conform to the
1067
- # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
1068
- # standard</a>. Values must be within normalized ranges.
1069
- # Example of normalization code in Python:
1070
- # def NormalizeLongitude(longitude):
1071
- # """Wraps decimal degrees longitude to [-180.0, 180.0]."""
1072
- # q, r = divmod(longitude, 360.0)
1073
- # if r > 180.0 or (r == 180.0 and q <= -1.0):
1074
- # return r - 360.0
1075
- # return r
1076
- # def NormalizeLatLng(latitude, longitude):
1077
- # """Wraps decimal degrees latitude and longitude to
1078
- # [-90.0, 90.0] and [-180.0, 180.0], respectively."""
1079
- # r = latitude % 360.0
1080
- # if r <= 90.0:
1081
- # return r, NormalizeLongitude(longitude)
1082
- # elif r >= 270.0:
1083
- # return r - 360, NormalizeLongitude(longitude)
1084
- # else:
1085
- # return 180 - r, NormalizeLongitude(longitude + 180.0)
1086
- # assert 180.0 == NormalizeLongitude(180.0)
1087
- # assert -180.0 == NormalizeLongitude(-180.0)
1088
- # assert -179.0 == NormalizeLongitude(181.0)
1089
- # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
1090
- # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
1091
- # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
1092
- # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
1093
- # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
1094
- # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
1095
- # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
1096
- # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
1097
- # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
1098
- # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
1099
- # The code in logs/storage/validator/logs_validator_traits.cc treats this type
1100
- # as if it were annotated as ST_LOCATION.
1101
- # Corresponds to the JSON property `minLatLng`
1102
- # @return [Google::Apis::VisionV1::LatLng]
1103
- attr_accessor :min_lat_lng
1077
+ # Detected start or end of a structural component.
1078
+ # Corresponds to the JSON property `detectedBreak`
1079
+ # @return [Google::Apis::VisionV1::DetectedBreak]
1080
+ attr_accessor :detected_break
1104
1081
 
1105
- # An object representing a latitude/longitude pair. This is expressed as a pair
1106
- # of doubles representing degrees latitude and degrees longitude. Unless
1107
- # specified otherwise, this must conform to the
1108
- # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
1109
- # standard</a>. Values must be within normalized ranges.
1110
- # Example of normalization code in Python:
1111
- # def NormalizeLongitude(longitude):
1112
- # """Wraps decimal degrees longitude to [-180.0, 180.0]."""
1113
- # q, r = divmod(longitude, 360.0)
1114
- # if r > 180.0 or (r == 180.0 and q <= -1.0):
1115
- # return r - 360.0
1116
- # return r
1117
- # def NormalizeLatLng(latitude, longitude):
1118
- # """Wraps decimal degrees latitude and longitude to
1119
- # [-90.0, 90.0] and [-180.0, 180.0], respectively."""
1120
- # r = latitude % 360.0
1121
- # if r <= 90.0:
1122
- # return r, NormalizeLongitude(longitude)
1123
- # elif r >= 270.0:
1124
- # return r - 360, NormalizeLongitude(longitude)
1125
- # else:
1126
- # return 180 - r, NormalizeLongitude(longitude + 180.0)
1127
- # assert 180.0 == NormalizeLongitude(180.0)
1128
- # assert -180.0 == NormalizeLongitude(-180.0)
1129
- # assert -179.0 == NormalizeLongitude(181.0)
1130
- # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
1131
- # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
1132
- # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
1133
- # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
1134
- # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
1135
- # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
1136
- # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
1137
- # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
1138
- # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
1139
- # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
1140
- # The code in logs/storage/validator/logs_validator_traits.cc treats this type
1141
- # as if it were annotated as ST_LOCATION.
1142
- # Corresponds to the JSON property `maxLatLng`
1143
- # @return [Google::Apis::VisionV1::LatLng]
1144
- attr_accessor :max_lat_lng
1082
+ # A list of detected languages together with confidence.
1083
+ # Corresponds to the JSON property `detectedLanguages`
1084
+ # @return [Array<Google::Apis::VisionV1::DetectedLanguage>]
1085
+ attr_accessor :detected_languages
1145
1086
 
1146
1087
  def initialize(**args)
1147
1088
  update!(**args)
@@ -1149,29 +1090,49 @@ module Google
1149
1090
 
1150
1091
  # Update properties of this object
1151
1092
  def update!(**args)
1152
- @min_lat_lng = args[:min_lat_lng] if args.key?(:min_lat_lng)
1153
- @max_lat_lng = args[:max_lat_lng] if args.key?(:max_lat_lng)
1093
+ @detected_break = args[:detected_break] if args.key?(:detected_break)
1094
+ @detected_languages = args[:detected_languages] if args.key?(:detected_languages)
1154
1095
  end
1155
1096
  end
1156
1097
 
1157
- # A single symbol representation.
1158
- class Symbol
1098
+ # A bounding polygon for the detected image annotation.
1099
+ class BoundingPoly
1159
1100
  include Google::Apis::Core::Hashable
1160
1101
 
1161
- # Additional information detected on the structural component.
1162
- # Corresponds to the JSON property `property`
1163
- # @return [Google::Apis::VisionV1::TextProperty]
1164
- attr_accessor :property
1102
+ # The bounding polygon vertices.
1103
+ # Corresponds to the JSON property `vertices`
1104
+ # @return [Array<Google::Apis::VisionV1::Vertex>]
1105
+ attr_accessor :vertices
1165
1106
 
1166
- # A bounding polygon for the detected image annotation.
1167
- # Corresponds to the JSON property `boundingBox`
1168
- # @return [Google::Apis::VisionV1::BoundingPoly]
1169
- attr_accessor :bounding_box
1107
+ def initialize(**args)
1108
+ update!(**args)
1109
+ end
1170
1110
 
1171
- # The actual UTF-8 representation of the symbol.
1172
- # Corresponds to the JSON property `text`
1111
+ # Update properties of this object
1112
+ def update!(**args)
1113
+ @vertices = args[:vertices] if args.key?(:vertices)
1114
+ end
1115
+ end
1116
+
1117
+ # Entity deduced from similar images on the Internet.
1118
+ class WebEntity
1119
+ include Google::Apis::Core::Hashable
1120
+
1121
+ # Opaque entity ID.
1122
+ # Corresponds to the JSON property `entityId`
1173
1123
  # @return [String]
1174
- attr_accessor :text
1124
+ attr_accessor :entity_id
1125
+
1126
+ # Canonical description of the entity, in English.
1127
+ # Corresponds to the JSON property `description`
1128
+ # @return [String]
1129
+ attr_accessor :description
1130
+
1131
+ # Overall relevancy score for the entity.
1132
+ # Not normalized and not comparable across different image queries.
1133
+ # Corresponds to the JSON property `score`
1134
+ # @return [Float]
1135
+ attr_accessor :score
1175
1136
 
1176
1137
  def initialize(**args)
1177
1138
  update!(**args)
@@ -1179,20 +1140,116 @@ module Google
1179
1140
 
1180
1141
  # Update properties of this object
1181
1142
  def update!(**args)
1182
- @property = args[:property] if args.key?(:property)
1183
- @bounding_box = args[:bounding_box] if args.key?(:bounding_box)
1184
- @text = args[:text] if args.key?(:text)
1143
+ @entity_id = args[:entity_id] if args.key?(:entity_id)
1144
+ @description = args[:description] if args.key?(:description)
1145
+ @score = args[:score] if args.key?(:score)
1185
1146
  end
1186
1147
  end
1187
1148
 
1188
- # Set of crop hints that are used to generate new crops when serving images.
1189
- class CropHintsAnnotation
1149
+ # Response to an image annotation request.
1150
+ class AnnotateImageResponse
1190
1151
  include Google::Apis::Core::Hashable
1191
1152
 
1192
- # Crop hint results.
1193
- # Corresponds to the JSON property `cropHints`
1194
- # @return [Array<Google::Apis::VisionV1::CropHint>]
1195
- attr_accessor :crop_hints
1153
+ # If present, logo detection has completed successfully.
1154
+ # Corresponds to the JSON property `logoAnnotations`
1155
+ # @return [Array<Google::Apis::VisionV1::EntityAnnotation>]
1156
+ attr_accessor :logo_annotations
1157
+
1158
+ # Set of crop hints that are used to generate new crops when serving images.
1159
+ # Corresponds to the JSON property `cropHintsAnnotation`
1160
+ # @return [Google::Apis::VisionV1::CropHintsAnnotation]
1161
+ attr_accessor :crop_hints_annotation
1162
+
1163
+ # Relevant information for the image from the Internet.
1164
+ # Corresponds to the JSON property `webDetection`
1165
+ # @return [Google::Apis::VisionV1::WebDetection]
1166
+ attr_accessor :web_detection
1167
+
1168
+ # If present, label detection has completed successfully.
1169
+ # Corresponds to the JSON property `labelAnnotations`
1170
+ # @return [Array<Google::Apis::VisionV1::EntityAnnotation>]
1171
+ attr_accessor :label_annotations
1172
+
1173
+ # Set of features pertaining to the image, computed by computer vision
1174
+ # methods over safe-search verticals (for example, adult, spoof, medical,
1175
+ # violence).
1176
+ # Corresponds to the JSON property `safeSearchAnnotation`
1177
+ # @return [Google::Apis::VisionV1::SafeSearchAnnotation]
1178
+ attr_accessor :safe_search_annotation
1179
+
1180
+ # The `Status` type defines a logical error model that is suitable for different
1181
+ # programming environments, including REST APIs and RPC APIs. It is used by
1182
+ # [gRPC](https://github.com/grpc). The error model is designed to be:
1183
+ # - Simple to use and understand for most users
1184
+ # - Flexible enough to meet unexpected needs
1185
+ # # Overview
1186
+ # The `Status` message contains three pieces of data: error code, error message,
1187
+ # and error details. The error code should be an enum value of
1188
+ # google.rpc.Code, but it may accept additional error codes if needed. The
1189
+ # error message should be a developer-facing English message that helps
1190
+ # developers *understand* and *resolve* the error. If a localized user-facing
1191
+ # error message is needed, put the localized message in the error details or
1192
+ # localize it in the client. The optional error details may contain arbitrary
1193
+ # information about the error. There is a predefined set of error detail types
1194
+ # in the package `google.rpc` that can be used for common error conditions.
1195
+ # # Language mapping
1196
+ # The `Status` message is the logical representation of the error model, but it
1197
+ # is not necessarily the actual wire format. When the `Status` message is
1198
+ # exposed in different client libraries and different wire protocols, it can be
1199
+ # mapped differently. For example, it will likely be mapped to some exceptions
1200
+ # in Java, but more likely mapped to some error codes in C.
1201
+ # # Other uses
1202
+ # The error model and the `Status` message can be used in a variety of
1203
+ # environments, either with or without APIs, to provide a
1204
+ # consistent developer experience across different environments.
1205
+ # Example uses of this error model include:
1206
+ # - Partial errors. If a service needs to return partial errors to the client,
1207
+ # it may embed the `Status` in the normal response to indicate the partial
1208
+ # errors.
1209
+ # - Workflow errors. A typical workflow has multiple steps. Each step may
1210
+ # have a `Status` message for error reporting.
1211
+ # - Batch operations. If a client uses batch request and batch response, the
1212
+ # `Status` message should be used directly inside batch response, one for
1213
+ # each error sub-response.
1214
+ # - Asynchronous operations. If an API call embeds asynchronous operation
1215
+ # results in its response, the status of those operations should be
1216
+ # represented directly using the `Status` message.
1217
+ # - Logging. If some API errors are stored in logs, the message `Status` could
1218
+ # be used directly after any stripping needed for security/privacy reasons.
1219
+ # Corresponds to the JSON property `error`
1220
+ # @return [Google::Apis::VisionV1::Status]
1221
+ attr_accessor :error
1222
+
1223
+ # TextAnnotation contains a structured representation of OCR extracted text.
1224
+ # The hierarchy of an OCR extracted text structure is like this:
1225
+ # TextAnnotation -> Page -> Block -> Paragraph -> Word -> Symbol
1226
+ # Each structural component, starting from Page, may further have their own
1227
+ # properties. Properties describe detected languages, breaks etc.. Please
1228
+ # refer to the google.cloud.vision.v1.TextAnnotation.TextProperty message
1229
+ # definition below for more detail.
1230
+ # Corresponds to the JSON property `fullTextAnnotation`
1231
+ # @return [Google::Apis::VisionV1::TextAnnotation]
1232
+ attr_accessor :full_text_annotation
1233
+
1234
+ # If present, landmark detection has completed successfully.
1235
+ # Corresponds to the JSON property `landmarkAnnotations`
1236
+ # @return [Array<Google::Apis::VisionV1::EntityAnnotation>]
1237
+ attr_accessor :landmark_annotations
1238
+
1239
+ # If present, text (OCR) detection has completed successfully.
1240
+ # Corresponds to the JSON property `textAnnotations`
1241
+ # @return [Array<Google::Apis::VisionV1::EntityAnnotation>]
1242
+ attr_accessor :text_annotations
1243
+
1244
+ # If present, face detection has completed successfully.
1245
+ # Corresponds to the JSON property `faceAnnotations`
1246
+ # @return [Array<Google::Apis::VisionV1::FaceAnnotation>]
1247
+ attr_accessor :face_annotations
1248
+
1249
+ # Stores image properties, such as dominant colors.
1250
+ # Corresponds to the JSON property `imagePropertiesAnnotation`
1251
+ # @return [Google::Apis::VisionV1::ImageProperties]
1252
+ attr_accessor :image_properties_annotation
1196
1253
 
1197
1254
  def initialize(**args)
1198
1255
  update!(**args)
@@ -1200,59 +1257,33 @@ module Google
1200
1257
 
1201
1258
  # Update properties of this object
1202
1259
  def update!(**args)
1203
- @crop_hints = args[:crop_hints] if args.key?(:crop_hints)
1260
+ @logo_annotations = args[:logo_annotations] if args.key?(:logo_annotations)
1261
+ @crop_hints_annotation = args[:crop_hints_annotation] if args.key?(:crop_hints_annotation)
1262
+ @web_detection = args[:web_detection] if args.key?(:web_detection)
1263
+ @label_annotations = args[:label_annotations] if args.key?(:label_annotations)
1264
+ @safe_search_annotation = args[:safe_search_annotation] if args.key?(:safe_search_annotation)
1265
+ @error = args[:error] if args.key?(:error)
1266
+ @full_text_annotation = args[:full_text_annotation] if args.key?(:full_text_annotation)
1267
+ @landmark_annotations = args[:landmark_annotations] if args.key?(:landmark_annotations)
1268
+ @text_annotations = args[:text_annotations] if args.key?(:text_annotations)
1269
+ @face_annotations = args[:face_annotations] if args.key?(:face_annotations)
1270
+ @image_properties_annotation = args[:image_properties_annotation] if args.key?(:image_properties_annotation)
1204
1271
  end
1205
1272
  end
1206
1273
 
1207
- # An object representing a latitude/longitude pair. This is expressed as a pair
1208
- # of doubles representing degrees latitude and degrees longitude. Unless
1209
- # specified otherwise, this must conform to the
1210
- # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
1211
- # standard</a>. Values must be within normalized ranges.
1212
- # Example of normalization code in Python:
1213
- # def NormalizeLongitude(longitude):
1214
- # """Wraps decimal degrees longitude to [-180.0, 180.0]."""
1215
- # q, r = divmod(longitude, 360.0)
1216
- # if r > 180.0 or (r == 180.0 and q <= -1.0):
1217
- # return r - 360.0
1218
- # return r
1219
- # def NormalizeLatLng(latitude, longitude):
1220
- # """Wraps decimal degrees latitude and longitude to
1221
- # [-90.0, 90.0] and [-180.0, 180.0], respectively."""
1222
- # r = latitude % 360.0
1223
- # if r <= 90.0:
1224
- # return r, NormalizeLongitude(longitude)
1225
- # elif r >= 270.0:
1226
- # return r - 360, NormalizeLongitude(longitude)
1227
- # else:
1228
- # return 180 - r, NormalizeLongitude(longitude + 180.0)
1229
- # assert 180.0 == NormalizeLongitude(180.0)
1230
- # assert -180.0 == NormalizeLongitude(-180.0)
1231
- # assert -179.0 == NormalizeLongitude(181.0)
1232
- # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
1233
- # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
1234
- # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
1235
- # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
1236
- # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
1237
- # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
1238
- # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
1239
- # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
1240
- # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
1241
- # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
1242
- # The code in logs/storage/validator/logs_validator_traits.cc treats this type
1243
- # as if it were annotated as ST_LOCATION.
1244
- class LatLng
1274
+ # Parameters for crop hints annotation request.
1275
+ class CropHintsParams
1245
1276
  include Google::Apis::Core::Hashable
1246
1277
 
1247
- # The latitude in degrees. It must be in the range [-90.0, +90.0].
1248
- # Corresponds to the JSON property `latitude`
1249
- # @return [Float]
1250
- attr_accessor :latitude
1251
-
1252
- # The longitude in degrees. It must be in the range [-180.0, +180.0].
1253
- # Corresponds to the JSON property `longitude`
1254
- # @return [Float]
1255
- attr_accessor :longitude
1278
+ # Aspect ratios in floats, representing the ratio of the width to the height
1279
+ # of the image. For example, if the desired aspect ratio is 4/3, the
1280
+ # corresponding float value should be 1.33333. If not specified, the
1281
+ # best possible crop is returned. The number of provided aspect ratios is
1282
+ # limited to a maximum of 16; any aspect ratios provided after the 16th are
1283
+ # ignored.
1284
+ # Corresponds to the JSON property `aspectRatios`
1285
+ # @return [Array<Float>]
1286
+ attr_accessor :aspect_ratios
1256
1287
 
1257
1288
  def initialize(**args)
1258
1289
  update!(**args)
@@ -1260,140 +1291,33 @@ module Google
1260
1291
 
1261
1292
  # Update properties of this object
1262
1293
  def update!(**args)
1263
- @latitude = args[:latitude] if args.key?(:latitude)
1264
- @longitude = args[:longitude] if args.key?(:longitude)
1294
+ @aspect_ratios = args[:aspect_ratios] if args.key?(:aspect_ratios)
1265
1295
  end
1266
1296
  end
1267
1297
 
1268
- # Represents a color in the RGBA color space. This representation is designed
1269
- # for simplicity of conversion to/from color representations in various
1270
- # languages over compactness; for example, the fields of this representation
1271
- # can be trivially provided to the constructor of "java.awt.Color" in Java; it
1272
- # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
1273
- # method in iOS; and, with just a little work, it can be easily formatted into
1274
- # a CSS "rgba()" string in JavaScript, as well. Here are some examples:
1275
- # Example (Java):
1276
- # import com.google.type.Color;
1277
- # // ...
1278
- # public static java.awt.Color fromProto(Color protocolor) `
1279
- # float alpha = protocolor.hasAlpha()
1280
- # ? protocolor.getAlpha().getValue()
1281
- # : 1.0;
1282
- # return new java.awt.Color(
1283
- # protocolor.getRed(),
1284
- # protocolor.getGreen(),
1285
- # protocolor.getBlue(),
1286
- # alpha);
1287
- # `
1288
- # public static Color toProto(java.awt.Color color) `
1289
- # float red = (float) color.getRed();
1290
- # float green = (float) color.getGreen();
1291
- # float blue = (float) color.getBlue();
1292
- # float denominator = 255.0;
1293
- # Color.Builder resultBuilder =
1294
- # Color
1295
- # .newBuilder()
1296
- # .setRed(red / denominator)
1297
- # .setGreen(green / denominator)
1298
- # .setBlue(blue / denominator);
1299
- # int alpha = color.getAlpha();
1300
- # if (alpha != 255) `
1301
- # result.setAlpha(
1302
- # FloatValue
1303
- # .newBuilder()
1304
- # .setValue(((float) alpha) / denominator)
1305
- # .build());
1306
- # `
1307
- # return resultBuilder.build();
1308
- # `
1309
- # // ...
1310
- # Example (iOS / Obj-C):
1311
- # // ...
1312
- # static UIColor* fromProto(Color* protocolor) `
1313
- # float red = [protocolor red];
1314
- # float green = [protocolor green];
1315
- # float blue = [protocolor blue];
1316
- # FloatValue* alpha_wrapper = [protocolor alpha];
1317
- # float alpha = 1.0;
1318
- # if (alpha_wrapper != nil) `
1319
- # alpha = [alpha_wrapper value];
1320
- # `
1321
- # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
1322
- # `
1323
- # static Color* toProto(UIColor* color) `
1324
- # CGFloat red, green, blue, alpha;
1325
- # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) `
1326
- # return nil;
1327
- # `
1328
- # Color* result = [Color alloc] init];
1329
- # [result setRed:red];
1330
- # [result setGreen:green];
1331
- # [result setBlue:blue];
1332
- # if (alpha <= 0.9999) `
1333
- # [result setAlpha:floatWrapperWithValue(alpha)];
1334
- # `
1335
- # [result autorelease];
1336
- # return result;
1337
- # `
1338
- # // ...
1339
- # Example (JavaScript):
1340
- # // ...
1341
- # var protoToCssColor = function(rgb_color) `
1342
- # var redFrac = rgb_color.red || 0.0;
1343
- # var greenFrac = rgb_color.green || 0.0;
1344
- # var blueFrac = rgb_color.blue || 0.0;
1345
- # var red = Math.floor(redFrac * 255);
1346
- # var green = Math.floor(greenFrac * 255);
1347
- # var blue = Math.floor(blueFrac * 255);
1348
- # if (!('alpha' in rgb_color)) `
1349
- # return rgbToCssColor_(red, green, blue);
1350
- # `
1351
- # var alphaFrac = rgb_color.alpha.value || 0.0;
1352
- # var rgbParams = [red, green, blue].join(',');
1353
- # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
1354
- # `;
1355
- # var rgbToCssColor_ = function(red, green, blue) `
1356
- # var rgbNumber = new Number((red << 16) | (green << 8) | blue);
1357
- # var hexString = rgbNumber.toString(16);
1358
- # var missingZeros = 6 - hexString.length;
1359
- # var resultBuilder = ['#'];
1360
- # for (var i = 0; i < missingZeros; i++) `
1361
- # resultBuilder.push('0');
1362
- # `
1363
- # resultBuilder.push(hexString);
1364
- # return resultBuilder.join('');
1365
- # `;
1366
- # // ...
1367
- class Color
1298
+ # Logical element on the page.
1299
+ class Block
1368
1300
  include Google::Apis::Core::Hashable
1369
1301
 
1370
- # The amount of red in the color as a value in the interval [0, 1].
1371
- # Corresponds to the JSON property `red`
1372
- # @return [Float]
1373
- attr_accessor :red
1302
+ # Additional information detected on the structural component.
1303
+ # Corresponds to the JSON property `property`
1304
+ # @return [Google::Apis::VisionV1::TextProperty]
1305
+ attr_accessor :property
1374
1306
 
1375
- # The amount of green in the color as a value in the interval [0, 1].
1376
- # Corresponds to the JSON property `green`
1377
- # @return [Float]
1378
- attr_accessor :green
1307
+ # Detected block type (text, image etc) for this block.
1308
+ # Corresponds to the JSON property `blockType`
1309
+ # @return [String]
1310
+ attr_accessor :block_type
1379
1311
 
1380
- # The amount of blue in the color as a value in the interval [0, 1].
1381
- # Corresponds to the JSON property `blue`
1382
- # @return [Float]
1383
- attr_accessor :blue
1312
+ # A bounding polygon for the detected image annotation.
1313
+ # Corresponds to the JSON property `boundingBox`
1314
+ # @return [Google::Apis::VisionV1::BoundingPoly]
1315
+ attr_accessor :bounding_box
1384
1316
 
1385
- # The fraction of this color that should be applied to the pixel. That is,
1386
- # the final pixel color is defined by the equation:
1387
- # pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
1388
- # This means that a value of 1.0 corresponds to a solid color, whereas
1389
- # a value of 0.0 corresponds to a completely transparent color. This
1390
- # uses a wrapper message rather than a simple float scalar so that it is
1391
- # possible to distinguish between a default value and the value being unset.
1392
- # If omitted, this color object is to be rendered as a solid color
1393
- # (as if the alpha value had been explicitly given with a value of 1.0).
1394
- # Corresponds to the JSON property `alpha`
1395
- # @return [Float]
1396
- attr_accessor :alpha
1317
+ # List of paragraphs in this block (if this blocks is of type text).
1318
+ # Corresponds to the JSON property `paragraphs`
1319
+ # @return [Array<Google::Apis::VisionV1::Paragraph>]
1320
+ attr_accessor :paragraphs
1397
1321
 
1398
1322
  def initialize(**args)
1399
1323
  update!(**args)
@@ -1401,21 +1325,31 @@ module Google
1401
1325
 
1402
1326
  # Update properties of this object
1403
1327
  def update!(**args)
1404
- @red = args[:red] if args.key?(:red)
1405
- @green = args[:green] if args.key?(:green)
1406
- @blue = args[:blue] if args.key?(:blue)
1407
- @alpha = args[:alpha] if args.key?(:alpha)
1328
+ @property = args[:property] if args.key?(:property)
1329
+ @block_type = args[:block_type] if args.key?(:block_type)
1330
+ @bounding_box = args[:bounding_box] if args.key?(:bounding_box)
1331
+ @paragraphs = args[:paragraphs] if args.key?(:paragraphs)
1408
1332
  end
1409
1333
  end
1410
1334
 
1411
- # Stores image properties, such as dominant colors.
1412
- class ImageProperties
1335
+ # A `Property` consists of a user-supplied name/value pair.
1336
+ class Property
1413
1337
  include Google::Apis::Core::Hashable
1414
1338
 
1415
- # Set of dominant colors and their corresponding scores.
1416
- # Corresponds to the JSON property `dominantColors`
1417
- # @return [Google::Apis::VisionV1::DominantColorsAnnotation]
1418
- attr_accessor :dominant_colors
1339
+ # Value of numeric properties.
1340
+ # Corresponds to the JSON property `uint64Value`
1341
+ # @return [Fixnum]
1342
+ attr_accessor :uint64_value
1343
+
1344
+ # Name of the property.
1345
+ # Corresponds to the JSON property `name`
1346
+ # @return [String]
1347
+ attr_accessor :name
1348
+
1349
+ # Value of the property.
1350
+ # Corresponds to the JSON property `value`
1351
+ # @return [String]
1352
+ attr_accessor :value
1419
1353
 
1420
1354
  def initialize(**args)
1421
1355
  update!(**args)
@@ -1423,26 +1357,54 @@ module Google
1423
1357
 
1424
1358
  # Update properties of this object
1425
1359
  def update!(**args)
1426
- @dominant_colors = args[:dominant_colors] if args.key?(:dominant_colors)
1360
+ @uint64_value = args[:uint64_value] if args.key?(:uint64_value)
1361
+ @name = args[:name] if args.key?(:name)
1362
+ @value = args[:value] if args.key?(:value)
1427
1363
  end
1428
1364
  end
1429
1365
 
1430
- # Users describe the type of Google Cloud Vision API tasks to perform over
1431
- # images by using *Feature*s. Each Feature indicates a type of image
1432
- # detection task to perform. Features encode the Cloud Vision API
1433
- # vertical to operate on and the number of top-scoring results to return.
1434
- class Feature
1366
+ # Detected entity location information.
1367
+ class LocationInfo
1435
1368
  include Google::Apis::Core::Hashable
1436
1369
 
1437
- # The feature type.
1438
- # Corresponds to the JSON property `type`
1439
- # @return [String]
1440
- attr_accessor :type
1441
-
1442
- # Maximum number of results of this type.
1443
- # Corresponds to the JSON property `maxResults`
1444
- # @return [Fixnum]
1445
- attr_accessor :max_results
1370
+ # An object representing a latitude/longitude pair. This is expressed as a pair
1371
+ # of doubles representing degrees latitude and degrees longitude. Unless
1372
+ # specified otherwise, this must conform to the
1373
+ # <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
1374
+ # standard</a>. Values must be within normalized ranges.
1375
+ # Example of normalization code in Python:
1376
+ # def NormalizeLongitude(longitude):
1377
+ # """Wraps decimal degrees longitude to [-180.0, 180.0]."""
1378
+ # q, r = divmod(longitude, 360.0)
1379
+ # if r > 180.0 or (r == 180.0 and q <= -1.0):
1380
+ # return r - 360.0
1381
+ # return r
1382
+ # def NormalizeLatLng(latitude, longitude):
1383
+ # """Wraps decimal degrees latitude and longitude to
1384
+ # [-90.0, 90.0] and [-180.0, 180.0], respectively."""
1385
+ # r = latitude % 360.0
1386
+ # if r <= 90.0:
1387
+ # return r, NormalizeLongitude(longitude)
1388
+ # elif r >= 270.0:
1389
+ # return r - 360, NormalizeLongitude(longitude)
1390
+ # else:
1391
+ # return 180 - r, NormalizeLongitude(longitude + 180.0)
1392
+ # assert 180.0 == NormalizeLongitude(180.0)
1393
+ # assert -180.0 == NormalizeLongitude(-180.0)
1394
+ # assert -179.0 == NormalizeLongitude(181.0)
1395
+ # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
1396
+ # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
1397
+ # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
1398
+ # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
1399
+ # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
1400
+ # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
1401
+ # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
1402
+ # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
1403
+ # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
1404
+ # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
1405
+ # Corresponds to the JSON property `latLng`
1406
+ # @return [Google::Apis::VisionV1::LatLng]
1407
+ attr_accessor :lat_lng
1446
1408
 
1447
1409
  def initialize(**args)
1448
1410
  update!(**args)
@@ -1450,38 +1412,37 @@ module Google
1450
1412
 
1451
1413
  # Update properties of this object
1452
1414
  def update!(**args)
1453
- @type = args[:type] if args.key?(:type)
1454
- @max_results = args[:max_results] if args.key?(:max_results)
1415
+ @lat_lng = args[:lat_lng] if args.key?(:lat_lng)
1455
1416
  end
1456
1417
  end
1457
1418
 
1458
- # Set of features pertaining to the image, computed by computer vision
1459
- # methods over safe-search verticals (for example, adult, spoof, medical,
1460
- # violence).
1461
- class SafeSearchAnnotation
1419
+ # External image source (Google Cloud Storage image location).
1420
+ class ImageSource
1462
1421
  include Google::Apis::Core::Hashable
1463
1422
 
1464
- # Likelihood that this is a medical image.
1465
- # Corresponds to the JSON property `medical`
1466
- # @return [String]
1467
- attr_accessor :medical
1468
-
1469
- # Violence likelihood.
1470
- # Corresponds to the JSON property `violence`
1423
+ # NOTE: For new code `image_uri` below is preferred.
1424
+ # Google Cloud Storage image URI, which must be in the following form:
1425
+ # `gs://bucket_name/object_name` (for details, see
1426
+ # [Google Cloud Storage Request
1427
+ # URIs](https://cloud.google.com/storage/docs/reference-uris)).
1428
+ # NOTE: Cloud Storage object versioning is not supported.
1429
+ # Corresponds to the JSON property `gcsImageUri`
1471
1430
  # @return [String]
1472
- attr_accessor :violence
1431
+ attr_accessor :gcs_image_uri
1473
1432
 
1474
- # Represents the adult content likelihood for the image.
1475
- # Corresponds to the JSON property `adult`
1476
- # @return [String]
1477
- attr_accessor :adult
1478
-
1479
- # Spoof likelihood. The likelihood that an modification
1480
- # was made to the image's canonical version to make it appear
1481
- # funny or offensive.
1482
- # Corresponds to the JSON property `spoof`
1433
+ # Image URI which supports:
1434
+ # 1) Google Cloud Storage image URI, which must be in the following form:
1435
+ # `gs://bucket_name/object_name` (for details, see
1436
+ # [Google Cloud Storage Request
1437
+ # URIs](https://cloud.google.com/storage/docs/reference-uris)).
1438
+ # NOTE: Cloud Storage object versioning is not supported.
1439
+ # 2) Publicly accessible image HTTP/HTTPS URL.
1440
+ # This is preferred over the legacy `gcs_image_uri` above. When both
1441
+ # `gcs_image_uri` and `image_uri` are specified, `image_uri` takes
1442
+ # precedence.
1443
+ # Corresponds to the JSON property `imageUri`
1483
1444
  # @return [String]
1484
- attr_accessor :spoof
1445
+ attr_accessor :image_uri
1485
1446
 
1486
1447
  def initialize(**args)
1487
1448
  update!(**args)
@@ -1489,21 +1450,19 @@ module Google
1489
1450
 
1490
1451
  # Update properties of this object
1491
1452
  def update!(**args)
1492
- @medical = args[:medical] if args.key?(:medical)
1493
- @violence = args[:violence] if args.key?(:violence)
1494
- @adult = args[:adult] if args.key?(:adult)
1495
- @spoof = args[:spoof] if args.key?(:spoof)
1453
+ @gcs_image_uri = args[:gcs_image_uri] if args.key?(:gcs_image_uri)
1454
+ @image_uri = args[:image_uri] if args.key?(:image_uri)
1496
1455
  end
1497
1456
  end
1498
1457
 
1499
- # Set of dominant colors and their corresponding scores.
1500
- class DominantColorsAnnotation
1458
+ # Response to a batch image annotation request.
1459
+ class BatchAnnotateImagesResponse
1501
1460
  include Google::Apis::Core::Hashable
1502
1461
 
1503
- # RGB color values with their score and pixel fraction.
1504
- # Corresponds to the JSON property `colors`
1505
- # @return [Array<Google::Apis::VisionV1::ColorInfo>]
1506
- attr_accessor :colors
1462
+ # Individual responses to image annotation requests within the batch.
1463
+ # Corresponds to the JSON property `responses`
1464
+ # @return [Array<Google::Apis::VisionV1::AnnotateImageResponse>]
1465
+ attr_accessor :responses
1507
1466
 
1508
1467
  def initialize(**args)
1509
1468
  update!(**args)
@@ -1511,56 +1470,41 @@ module Google
1511
1470
 
1512
1471
  # Update properties of this object
1513
1472
  def update!(**args)
1514
- @colors = args[:colors] if args.key?(:colors)
1473
+ @responses = args[:responses] if args.key?(:responses)
1515
1474
  end
1516
1475
  end
1517
1476
 
1518
- # TextAnnotation contains a structured representation of OCR extracted text.
1519
- # The hierarchy of an OCR extracted text structure is like this:
1520
- # TextAnnotation -> Page -> Block -> Paragraph -> Word -> Symbol
1521
- # Each structural component, starting from Page, may further have their own
1522
- # properties. Properties describe detected languages, breaks etc.. Please
1523
- # refer to the google.cloud.vision.v1.TextAnnotation.TextProperty message
1524
- # definition below for more detail.
1525
- class TextAnnotation
1477
+ # Relevant information for the image from the Internet.
1478
+ class WebDetection
1526
1479
  include Google::Apis::Core::Hashable
1527
1480
 
1528
- # List of pages detected by OCR.
1529
- # Corresponds to the JSON property `pages`
1530
- # @return [Array<Google::Apis::VisionV1::Page>]
1531
- attr_accessor :pages
1532
-
1533
- # UTF-8 text detected on the pages.
1534
- # Corresponds to the JSON property `text`
1535
- # @return [String]
1536
- attr_accessor :text
1537
-
1538
- def initialize(**args)
1539
- update!(**args)
1540
- end
1481
+ # Partial matching images from the Internet.
1482
+ # Those images are similar enough to share some key-point features. For
1483
+ # example an original image will likely have partial matching for its crops.
1484
+ # Corresponds to the JSON property `partialMatchingImages`
1485
+ # @return [Array<Google::Apis::VisionV1::WebImage>]
1486
+ attr_accessor :partial_matching_images
1541
1487
 
1542
- # Update properties of this object
1543
- def update!(**args)
1544
- @pages = args[:pages] if args.key?(:pages)
1545
- @text = args[:text] if args.key?(:text)
1546
- end
1547
- end
1488
+ # The visually similar image results.
1489
+ # Corresponds to the JSON property `visuallySimilarImages`
1490
+ # @return [Array<Google::Apis::VisionV1::WebImage>]
1491
+ attr_accessor :visually_similar_images
1548
1492
 
1549
- # Detected language for a structural component.
1550
- class DetectedLanguage
1551
- include Google::Apis::Core::Hashable
1493
+ # Fully matching images from the Internet.
1494
+ # Can include resized copies of the query image.
1495
+ # Corresponds to the JSON property `fullMatchingImages`
1496
+ # @return [Array<Google::Apis::VisionV1::WebImage>]
1497
+ attr_accessor :full_matching_images
1552
1498
 
1553
- # The BCP-47 language code, such as "en-US" or "sr-Latn". For more
1554
- # information, see
1555
- # http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
1556
- # Corresponds to the JSON property `languageCode`
1557
- # @return [String]
1558
- attr_accessor :language_code
1499
+ # Deduced entities from similar images on the Internet.
1500
+ # Corresponds to the JSON property `webEntities`
1501
+ # @return [Array<Google::Apis::VisionV1::WebEntity>]
1502
+ attr_accessor :web_entities
1559
1503
 
1560
- # Confidence of detected language. Range [0, 1].
1561
- # Corresponds to the JSON property `confidence`
1562
- # @return [Float]
1563
- attr_accessor :confidence
1504
+ # Web pages containing the matching images from the Internet.
1505
+ # Corresponds to the JSON property `pagesWithMatchingImages`
1506
+ # @return [Array<Google::Apis::VisionV1::WebPage>]
1507
+ attr_accessor :pages_with_matching_images
1564
1508
 
1565
1509
  def initialize(**args)
1566
1510
  update!(**args)
@@ -1568,25 +1512,34 @@ module Google
1568
1512
 
1569
1513
  # Update properties of this object
1570
1514
  def update!(**args)
1571
- @language_code = args[:language_code] if args.key?(:language_code)
1572
- @confidence = args[:confidence] if args.key?(:confidence)
1515
+ @partial_matching_images = args[:partial_matching_images] if args.key?(:partial_matching_images)
1516
+ @visually_similar_images = args[:visually_similar_images] if args.key?(:visually_similar_images)
1517
+ @full_matching_images = args[:full_matching_images] if args.key?(:full_matching_images)
1518
+ @web_entities = args[:web_entities] if args.key?(:web_entities)
1519
+ @pages_with_matching_images = args[:pages_with_matching_images] if args.key?(:pages_with_matching_images)
1573
1520
  end
1574
1521
  end
1575
1522
 
1576
- # A vertex represents a 2D point in the image.
1577
- # NOTE: the vertex coordinates are in the same scale as the original image.
1578
- class Vertex
1523
+ # A 3D position in the image, used primarily for Face detection landmarks.
1524
+ # A valid Position must have both x and y coordinates.
1525
+ # The position coordinates are in the same scale as the original image.
1526
+ class Position
1579
1527
  include Google::Apis::Core::Hashable
1580
1528
 
1529
+ # Y coordinate.
1530
+ # Corresponds to the JSON property `y`
1531
+ # @return [Float]
1532
+ attr_accessor :y
1533
+
1581
1534
  # X coordinate.
1582
1535
  # Corresponds to the JSON property `x`
1583
- # @return [Fixnum]
1536
+ # @return [Float]
1584
1537
  attr_accessor :x
1585
1538
 
1586
- # Y coordinate.
1587
- # Corresponds to the JSON property `y`
1588
- # @return [Fixnum]
1589
- attr_accessor :y
1539
+ # Z coordinate (or depth).
1540
+ # Corresponds to the JSON property `z`
1541
+ # @return [Float]
1542
+ attr_accessor :z
1590
1543
 
1591
1544
  def initialize(**args)
1592
1545
  update!(**args)
@@ -1594,24 +1547,26 @@ module Google
1594
1547
 
1595
1548
  # Update properties of this object
1596
1549
  def update!(**args)
1597
- @x = args[:x] if args.key?(:x)
1598
1550
  @y = args[:y] if args.key?(:y)
1551
+ @x = args[:x] if args.key?(:x)
1552
+ @z = args[:z] if args.key?(:z)
1599
1553
  end
1600
1554
  end
1601
1555
 
1602
- # Additional information detected on the structural component.
1603
- class TextProperty
1556
+ # Metadata for web pages.
1557
+ class WebPage
1604
1558
  include Google::Apis::Core::Hashable
1605
1559
 
1606
- # A list of detected languages together with confidence.
1607
- # Corresponds to the JSON property `detectedLanguages`
1608
- # @return [Array<Google::Apis::VisionV1::DetectedLanguage>]
1609
- attr_accessor :detected_languages
1560
+ # Overall relevancy score for the web page.
1561
+ # Not normalized and not comparable across different image queries.
1562
+ # Corresponds to the JSON property `score`
1563
+ # @return [Float]
1564
+ attr_accessor :score
1610
1565
 
1611
- # Detected start or end of a structural component.
1612
- # Corresponds to the JSON property `detectedBreak`
1613
- # @return [Google::Apis::VisionV1::DetectedBreak]
1614
- attr_accessor :detected_break
1566
+ # The result web page URL.
1567
+ # Corresponds to the JSON property `url`
1568
+ # @return [String]
1569
+ attr_accessor :url
1615
1570
 
1616
1571
  def initialize(**args)
1617
1572
  update!(**args)
@@ -1619,27 +1574,126 @@ module Google
1619
1574
 
1620
1575
  # Update properties of this object
1621
1576
  def update!(**args)
1622
- @detected_languages = args[:detected_languages] if args.key?(:detected_languages)
1623
- @detected_break = args[:detected_break] if args.key?(:detected_break)
1577
+ @score = args[:score] if args.key?(:score)
1578
+ @url = args[:url] if args.key?(:url)
1624
1579
  end
1625
1580
  end
1626
1581
 
1627
- # Entity deduced from similar images on the Internet.
1628
- class WebEntity
1582
+ # Color information consists of RGB channels, score, and the fraction of
1583
+ # the image that the color occupies in the image.
1584
+ class ColorInfo
1629
1585
  include Google::Apis::Core::Hashable
1630
1586
 
1631
- # Opaque entity ID.
1632
- # Corresponds to the JSON property `entityId`
1633
- # @return [String]
1634
- attr_accessor :entity_id
1587
+ # The fraction of pixels the color occupies in the image.
1588
+ # Value in range [0, 1].
1589
+ # Corresponds to the JSON property `pixelFraction`
1590
+ # @return [Float]
1591
+ attr_accessor :pixel_fraction
1635
1592
 
1636
- # Canonical description of the entity, in English.
1637
- # Corresponds to the JSON property `description`
1638
- # @return [String]
1639
- attr_accessor :description
1593
+ # Represents a color in the RGBA color space. This representation is designed
1594
+ # for simplicity of conversion to/from color representations in various
1595
+ # languages over compactness; for example, the fields of this representation
1596
+ # can be trivially provided to the constructor of "java.awt.Color" in Java; it
1597
+ # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
1598
+ # method in iOS; and, with just a little work, it can be easily formatted into
1599
+ # a CSS "rgba()" string in JavaScript, as well. Here are some examples:
1600
+ # Example (Java):
1601
+ # import com.google.type.Color;
1602
+ # // ...
1603
+ # public static java.awt.Color fromProto(Color protocolor) `
1604
+ # float alpha = protocolor.hasAlpha()
1605
+ # ? protocolor.getAlpha().getValue()
1606
+ # : 1.0;
1607
+ # return new java.awt.Color(
1608
+ # protocolor.getRed(),
1609
+ # protocolor.getGreen(),
1610
+ # protocolor.getBlue(),
1611
+ # alpha);
1612
+ # `
1613
+ # public static Color toProto(java.awt.Color color) `
1614
+ # float red = (float) color.getRed();
1615
+ # float green = (float) color.getGreen();
1616
+ # float blue = (float) color.getBlue();
1617
+ # float denominator = 255.0;
1618
+ # Color.Builder resultBuilder =
1619
+ # Color
1620
+ # .newBuilder()
1621
+ # .setRed(red / denominator)
1622
+ # .setGreen(green / denominator)
1623
+ # .setBlue(blue / denominator);
1624
+ # int alpha = color.getAlpha();
1625
+ # if (alpha != 255) `
1626
+ # result.setAlpha(
1627
+ # FloatValue
1628
+ # .newBuilder()
1629
+ # .setValue(((float) alpha) / denominator)
1630
+ # .build());
1631
+ # `
1632
+ # return resultBuilder.build();
1633
+ # `
1634
+ # // ...
1635
+ # Example (iOS / Obj-C):
1636
+ # // ...
1637
+ # static UIColor* fromProto(Color* protocolor) `
1638
+ # float red = [protocolor red];
1639
+ # float green = [protocolor green];
1640
+ # float blue = [protocolor blue];
1641
+ # FloatValue* alpha_wrapper = [protocolor alpha];
1642
+ # float alpha = 1.0;
1643
+ # if (alpha_wrapper != nil) `
1644
+ # alpha = [alpha_wrapper value];
1645
+ # `
1646
+ # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
1647
+ # `
1648
+ # static Color* toProto(UIColor* color) `
1649
+ # CGFloat red, green, blue, alpha;
1650
+ # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) `
1651
+ # return nil;
1652
+ # `
1653
+ # Color* result = [Color alloc] init];
1654
+ # [result setRed:red];
1655
+ # [result setGreen:green];
1656
+ # [result setBlue:blue];
1657
+ # if (alpha <= 0.9999) `
1658
+ # [result setAlpha:floatWrapperWithValue(alpha)];
1659
+ # `
1660
+ # [result autorelease];
1661
+ # return result;
1662
+ # `
1663
+ # // ...
1664
+ # Example (JavaScript):
1665
+ # // ...
1666
+ # var protoToCssColor = function(rgb_color) `
1667
+ # var redFrac = rgb_color.red || 0.0;
1668
+ # var greenFrac = rgb_color.green || 0.0;
1669
+ # var blueFrac = rgb_color.blue || 0.0;
1670
+ # var red = Math.floor(redFrac * 255);
1671
+ # var green = Math.floor(greenFrac * 255);
1672
+ # var blue = Math.floor(blueFrac * 255);
1673
+ # if (!('alpha' in rgb_color)) `
1674
+ # return rgbToCssColor_(red, green, blue);
1675
+ # `
1676
+ # var alphaFrac = rgb_color.alpha.value || 0.0;
1677
+ # var rgbParams = [red, green, blue].join(',');
1678
+ # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
1679
+ # `;
1680
+ # var rgbToCssColor_ = function(red, green, blue) `
1681
+ # var rgbNumber = new Number((red << 16) | (green << 8) | blue);
1682
+ # var hexString = rgbNumber.toString(16);
1683
+ # var missingZeros = 6 - hexString.length;
1684
+ # var resultBuilder = ['#'];
1685
+ # for (var i = 0; i < missingZeros; i++) `
1686
+ # resultBuilder.push('0');
1687
+ # `
1688
+ # resultBuilder.push(hexString);
1689
+ # return resultBuilder.join('');
1690
+ # `;
1691
+ # // ...
1692
+ # Corresponds to the JSON property `color`
1693
+ # @return [Google::Apis::VisionV1::Color]
1694
+ attr_accessor :color
1640
1695
 
1641
- # Overall relevancy score for the entity.
1642
- # Not normalized and not comparable across different image queries.
1696
+ # Image-specific score for this color. Value in range [0, 1].
1643
1697
  # Corresponds to the JSON property `score`
1644
1698
  # @return [Float]
1645
1699
  attr_accessor :score
@@ -1650,135 +1704,75 @@ module Google
1650
1704
 
1651
1705
  # Update properties of this object
1652
1706
  def update!(**args)
1653
- @entity_id = args[:entity_id] if args.key?(:entity_id)
1654
- @description = args[:description] if args.key?(:description)
1707
+ @pixel_fraction = args[:pixel_fraction] if args.key?(:pixel_fraction)
1708
+ @color = args[:color] if args.key?(:color)
1655
1709
  @score = args[:score] if args.key?(:score)
1656
1710
  end
1657
1711
  end
1658
1712
 
1659
- # A bounding polygon for the detected image annotation.
1660
- class BoundingPoly
1661
- include Google::Apis::Core::Hashable
1662
-
1663
- # The bounding polygon vertices.
1664
- # Corresponds to the JSON property `vertices`
1665
- # @return [Array<Google::Apis::VisionV1::Vertex>]
1666
- attr_accessor :vertices
1667
-
1668
- def initialize(**args)
1669
- update!(**args)
1670
- end
1671
-
1672
- # Update properties of this object
1673
- def update!(**args)
1674
- @vertices = args[:vertices] if args.key?(:vertices)
1675
- end
1676
- end
1677
-
1678
- # Response to an image annotation request.
1679
- class AnnotateImageResponse
1713
+ # Set of detected entity features.
1714
+ class EntityAnnotation
1680
1715
  include Google::Apis::Core::Hashable
1681
1716
 
1682
- # The `Status` type defines a logical error model that is suitable for different
1683
- # programming environments, including REST APIs and RPC APIs. It is used by
1684
- # [gRPC](https://github.com/grpc). The error model is designed to be:
1685
- # - Simple to use and understand for most users
1686
- # - Flexible enough to meet unexpected needs
1687
- # # Overview
1688
- # The `Status` message contains three pieces of data: error code, error message,
1689
- # and error details. The error code should be an enum value of
1690
- # google.rpc.Code, but it may accept additional error codes if needed. The
1691
- # error message should be a developer-facing English message that helps
1692
- # developers *understand* and *resolve* the error. If a localized user-facing
1693
- # error message is needed, put the localized message in the error details or
1694
- # localize it in the client. The optional error details may contain arbitrary
1695
- # information about the error. There is a predefined set of error detail types
1696
- # in the package `google.rpc` which can be used for common error conditions.
1697
- # # Language mapping
1698
- # The `Status` message is the logical representation of the error model, but it
1699
- # is not necessarily the actual wire format. When the `Status` message is
1700
- # exposed in different client libraries and different wire protocols, it can be
1701
- # mapped differently. For example, it will likely be mapped to some exceptions
1702
- # in Java, but more likely mapped to some error codes in C.
1703
- # # Other uses
1704
- # The error model and the `Status` message can be used in a variety of
1705
- # environments, either with or without APIs, to provide a
1706
- # consistent developer experience across different environments.
1707
- # Example uses of this error model include:
1708
- # - Partial errors. If a service needs to return partial errors to the client,
1709
- # it may embed the `Status` in the normal response to indicate the partial
1710
- # errors.
1711
- # - Workflow errors. A typical workflow has multiple steps. Each step may
1712
- # have a `Status` message for error reporting purpose.
1713
- # - Batch operations. If a client uses batch request and batch response, the
1714
- # `Status` message should be used directly inside batch response, one for
1715
- # each error sub-response.
1716
- # - Asynchronous operations. If an API call embeds asynchronous operation
1717
- # results in its response, the status of those operations should be
1718
- # represented directly using the `Status` message.
1719
- # - Logging. If some API errors are stored in logs, the message `Status` could
1720
- # be used directly after any stripping needed for security/privacy reasons.
1721
- # Corresponds to the JSON property `error`
1722
- # @return [Google::Apis::VisionV1::Status]
1723
- attr_accessor :error
1724
-
1725
- # TextAnnotation contains a structured representation of OCR extracted text.
1726
- # The hierarchy of an OCR extracted text structure is like this:
1727
- # TextAnnotation -> Page -> Block -> Paragraph -> Word -> Symbol
1728
- # Each structural component, starting from Page, may further have their own
1729
- # properties. Properties describe detected languages, breaks etc.. Please
1730
- # refer to the google.cloud.vision.v1.TextAnnotation.TextProperty message
1731
- # definition below for more detail.
1732
- # Corresponds to the JSON property `fullTextAnnotation`
1733
- # @return [Google::Apis::VisionV1::TextAnnotation]
1734
- attr_accessor :full_text_annotation
1735
-
1736
- # If present, landmark detection has completed successfully.
1737
- # Corresponds to the JSON property `landmarkAnnotations`
1738
- # @return [Array<Google::Apis::VisionV1::EntityAnnotation>]
1739
- attr_accessor :landmark_annotations
1717
+ # Some entities may have optional user-supplied `Property` (name/value)
1718
+ # fields, such a score or string that qualifies the entity.
1719
+ # Corresponds to the JSON property `properties`
1720
+ # @return [Array<Google::Apis::VisionV1::Property>]
1721
+ attr_accessor :properties
1740
1722
 
1741
- # If present, text (OCR) detection has completed successfully.
1742
- # Corresponds to the JSON property `textAnnotations`
1743
- # @return [Array<Google::Apis::VisionV1::EntityAnnotation>]
1744
- attr_accessor :text_annotations
1723
+ # Overall score of the result. Range [0, 1].
1724
+ # Corresponds to the JSON property `score`
1725
+ # @return [Float]
1726
+ attr_accessor :score
1745
1727
 
1746
- # If present, face detection has completed successfully.
1747
- # Corresponds to the JSON property `faceAnnotations`
1748
- # @return [Array<Google::Apis::VisionV1::FaceAnnotation>]
1749
- attr_accessor :face_annotations
1728
+ # The location information for the detected entity. Multiple
1729
+ # `LocationInfo` elements can be present because one location may
1730
+ # indicate the location of the scene in the image, and another location
1731
+ # may indicate the location of the place where the image was taken.
1732
+ # Location information is usually present for landmarks.
1733
+ # Corresponds to the JSON property `locations`
1734
+ # @return [Array<Google::Apis::VisionV1::LocationInfo>]
1735
+ attr_accessor :locations
1750
1736
 
1751
- # Stores image properties, such as dominant colors.
1752
- # Corresponds to the JSON property `imagePropertiesAnnotation`
1753
- # @return [Google::Apis::VisionV1::ImageProperties]
1754
- attr_accessor :image_properties_annotation
1737
+ # Opaque entity ID. Some IDs may be available in
1738
+ # [Google Knowledge Graph Search API](https://developers.google.com/knowledge-
1739
+ # graph/).
1740
+ # Corresponds to the JSON property `mid`
1741
+ # @return [String]
1742
+ attr_accessor :mid
1755
1743
 
1756
- # If present, logo detection has completed successfully.
1757
- # Corresponds to the JSON property `logoAnnotations`
1758
- # @return [Array<Google::Apis::VisionV1::EntityAnnotation>]
1759
- attr_accessor :logo_annotations
1744
+ # The accuracy of the entity detection in an image.
1745
+ # For example, for an image in which the "Eiffel Tower" entity is detected,
1746
+ # this field represents the confidence that there is a tower in the query
1747
+ # image. Range [0, 1].
1748
+ # Corresponds to the JSON property `confidence`
1749
+ # @return [Float]
1750
+ attr_accessor :confidence
1760
1751
 
1761
- # Set of crop hints that are used to generate new crops when serving images.
1762
- # Corresponds to the JSON property `cropHintsAnnotation`
1763
- # @return [Google::Apis::VisionV1::CropHintsAnnotation]
1764
- attr_accessor :crop_hints_annotation
1752
+ # The language code for the locale in which the entity textual
1753
+ # `description` is expressed.
1754
+ # Corresponds to the JSON property `locale`
1755
+ # @return [String]
1756
+ attr_accessor :locale
1765
1757
 
1766
- # Relevant information for the image from the Internet.
1767
- # Corresponds to the JSON property `webDetection`
1768
- # @return [Google::Apis::VisionV1::WebDetection]
1769
- attr_accessor :web_detection
1758
+ # A bounding polygon for the detected image annotation.
1759
+ # Corresponds to the JSON property `boundingPoly`
1760
+ # @return [Google::Apis::VisionV1::BoundingPoly]
1761
+ attr_accessor :bounding_poly
1770
1762
 
1771
- # Set of features pertaining to the image, computed by computer vision
1772
- # methods over safe-search verticals (for example, adult, spoof, medical,
1773
- # violence).
1774
- # Corresponds to the JSON property `safeSearchAnnotation`
1775
- # @return [Google::Apis::VisionV1::SafeSearchAnnotation]
1776
- attr_accessor :safe_search_annotation
1763
+ # Entity textual description, expressed in its `locale` language.
1764
+ # Corresponds to the JSON property `description`
1765
+ # @return [String]
1766
+ attr_accessor :description
1777
1767
 
1778
- # If present, label detection has completed successfully.
1779
- # Corresponds to the JSON property `labelAnnotations`
1780
- # @return [Array<Google::Apis::VisionV1::EntityAnnotation>]
1781
- attr_accessor :label_annotations
1768
+ # The relevancy of the ICA (Image Content Annotation) label to the
1769
+ # image. For example, the relevancy of "tower" is likely higher to an image
1770
+ # containing the detected "Eiffel Tower" than to an image containing a
1771
+ # detected distant towering building, even though the confidence that
1772
+ # there is a tower in each image may be the same. Range [0, 1].
1773
+ # Corresponds to the JSON property `topicality`
1774
+ # @return [Float]
1775
+ attr_accessor :topicality
1782
1776
 
1783
1777
  def initialize(**args)
1784
1778
  update!(**args)
@@ -1786,17 +1780,15 @@ module Google
1786
1780
 
1787
1781
  # Update properties of this object
1788
1782
  def update!(**args)
1789
- @error = args[:error] if args.key?(:error)
1790
- @full_text_annotation = args[:full_text_annotation] if args.key?(:full_text_annotation)
1791
- @landmark_annotations = args[:landmark_annotations] if args.key?(:landmark_annotations)
1792
- @text_annotations = args[:text_annotations] if args.key?(:text_annotations)
1793
- @face_annotations = args[:face_annotations] if args.key?(:face_annotations)
1794
- @image_properties_annotation = args[:image_properties_annotation] if args.key?(:image_properties_annotation)
1795
- @logo_annotations = args[:logo_annotations] if args.key?(:logo_annotations)
1796
- @crop_hints_annotation = args[:crop_hints_annotation] if args.key?(:crop_hints_annotation)
1797
- @web_detection = args[:web_detection] if args.key?(:web_detection)
1798
- @safe_search_annotation = args[:safe_search_annotation] if args.key?(:safe_search_annotation)
1799
- @label_annotations = args[:label_annotations] if args.key?(:label_annotations)
1783
+ @properties = args[:properties] if args.key?(:properties)
1784
+ @score = args[:score] if args.key?(:score)
1785
+ @locations = args[:locations] if args.key?(:locations)
1786
+ @mid = args[:mid] if args.key?(:mid)
1787
+ @confidence = args[:confidence] if args.key?(:confidence)
1788
+ @locale = args[:locale] if args.key?(:locale)
1789
+ @bounding_poly = args[:bounding_poly] if args.key?(:bounding_poly)
1790
+ @description = args[:description] if args.key?(:description)
1791
+ @topicality = args[:topicality] if args.key?(:topicality)
1800
1792
  end
1801
1793
  end
1802
1794
  end