google-api-client 0.9.28 → 0.10.0

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