google-api-client 0.11.2 → 0.11.3

Sign up to get free protection for your applications and to get access to all the features.
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