google-api-client 0.9.25 → 0.9.26

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