google-cloud-video_intelligence 0.21.0 → 0.22.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3cb8f7067c0c97df613e80476a1a3f90f05aef34
4
- data.tar.gz: 56865e9a4467fa144a457709b97183cd0f4eba41
3
+ metadata.gz: '0528c58f3c19e758c482d7b308194497a8a2d271'
4
+ data.tar.gz: 50ae9c0cbed07324df3fe5cfa3de8421022b469c
5
5
  SHA512:
6
- metadata.gz: ef2acf30b8003ec86ec2809613f59d90dbe65538d83a061d6837ecdd1db5d656dadfea7fd9b1c95ff51ea9adb93133a4018d19e9e6aee44d1070cd16b1672a7f
7
- data.tar.gz: f57a0ba99d289368059f7387672c67f547569c45e0d97a59f5e540925df48457e249b5fb8d75b05e617516ee251ce74f3adefa7539e826e46955bc0b60d9126c
6
+ metadata.gz: 98aa437537080fd57492fcf4161167d357d9e34227f33dd482db23b9e1a1d1f5522510faa22bc0d422c89867a9e04f1a260e7c43cd6c451fa31bc1b3c2a815d9
7
+ data.tar.gz: 1c705eca2f8940bf5c9653d40a62e8f055807cb59b40a11d0f39cf1e9cea848e3ed563d3d1561a11922bf082d84a17e5ef66aab289b7dee70584aecc904da107
data/README.md CHANGED
@@ -1,14 +1,16 @@
1
1
  # Ruby Client for Google Cloud Video Intelligence API ([Alpha](https://github.com/GoogleCloudPlatform/google-cloud-ruby#versioning))
2
2
 
3
- Idiomatic Ruby client for [Google Cloud Video Intelligence API][Product Documentation]
3
+ [Google Cloud Video Intelligence API][Product Documentation]:
4
+ Google Cloud Video Intelligence API.
4
5
  - [Client Library Documentation][]
5
6
  - [Product Documentation][]
6
7
 
7
8
  ## Quick Start
8
- In order to use this library, you first need to go through the following steps:
9
+ In order to use this library, you first need to go through the following
10
+ steps:
9
11
 
10
12
  1. [Select or create a Cloud Platform project.](https://console.cloud.google.com/project)
11
- 2. [Enable the video-intelligence api.](https://console.cloud.google.com/apis/api/video-intelligence)
13
+ 2. [Enable the Google Cloud Video Intelligence API.](https://console.cloud.google.com/apis/api/video-intelligence)
12
14
  3. [Setup Authentication.](https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud/master/guides/authentication)
13
15
 
14
16
  ### Installation
@@ -17,9 +19,12 @@ $ gem install google-cloud-video_intelligence
17
19
  ```
18
20
 
19
21
  ### Next Steps
20
- - Read the [Client Library Documentation][] for Google Cloud Video Intelligence API to see other available methods on the client.
21
- - Read the [Google Cloud Video Intelligence API Product documentation][Product Documentation] to learn more about the product and see How-to Guides.
22
- - View this [repository's main README](https://github.com/GoogleCloudPlatform/google-cloud-ruby/blob/master/README.md) to see the full list of Cloud APIs that we cover.
22
+ - Read the [Client Library Documentation][] for Google Cloud Video Intelligence API
23
+ to see other available methods on the client.
24
+ - Read the [Google Cloud Video Intelligence API Product documentation][Product Documentation]
25
+ to learn more about the product and see How-to Guides.
26
+ - View this [repository's main README](https://github.com/GoogleCloudPlatform/google-cloud-ruby/blob/master/README.md)
27
+ to see the full list of Cloud APIs that we cover.
23
28
 
24
- [Client Library Documentation]: https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-video_intelligence/latest/google/cloud/videointelligence/v1beta1
29
+ [Client Library Documentation]: https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-video_intelligence/latest/google/cloud/videointelligence/v1beta2
25
30
  [Product Documentation]: https://cloud.google.com/video-intelligence
@@ -0,0 +1,109 @@
1
+ # Copyright 2017, Google Inc. All rights reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require "google/gax"
16
+ require "pathname"
17
+
18
+ module Google
19
+ module Cloud
20
+ # rubocop:disable LineLength
21
+
22
+ ##
23
+ # # Ruby Client for Google Cloud Video Intelligence API ([Alpha](https://github.com/GoogleCloudPlatform/google-cloud-ruby#versioning))
24
+ #
25
+ # [Google Cloud Video Intelligence API][Product Documentation]:
26
+ # Google Cloud Video Intelligence API.
27
+ # - [Product Documentation][]
28
+ #
29
+ # ## Quick Start
30
+ # In order to use this library, you first need to go through the following
31
+ # steps:
32
+ #
33
+ # 1. [Select or create a Cloud Platform project.](https://console.cloud.google.com/project)
34
+ # 2. [Enable the Google Cloud Video Intelligence API.](https://console.cloud.google.com/apis/api/video-intelligence)
35
+ # 3. [Setup Authentication.](https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud/master/guides/authentication)
36
+ #
37
+ # ### Installation
38
+ # ```
39
+ # $ gem install google-cloud-video_intelligence
40
+ # ```
41
+ #
42
+ # ### Next Steps
43
+ # - Read the [Google Cloud Video Intelligence API Product documentation][Product Documentation]
44
+ # to learn more about the product and see How-to Guides.
45
+ # - View this [repository's main README](https://github.com/GoogleCloudPlatform/google-cloud-ruby/blob/master/README.md)
46
+ # to see the full list of Cloud APIs that we cover.
47
+ #
48
+ # [Product Documentation]: https://cloud.google.com/video-intelligence
49
+ #
50
+ #
51
+ module VideoIntelligence
52
+ # rubocop:enable LineLength
53
+
54
+ FILE_DIR = File.realdirpath(Pathname.new(__FILE__).join("..").join("video_intelligence"))
55
+
56
+ AVAILABLE_VERSIONS = Dir["#{FILE_DIR}/*"]
57
+ .select {|file| File.directory?(file)}
58
+ .select {|dir| Google::Gax::VERSION_MATCHER.match(File.basename(dir))}
59
+ .select {|dir| File.exist?(dir + ".rb")}
60
+ .map {|dir| File.basename(dir)}
61
+
62
+ ##
63
+ # Service that implements Google Cloud Video Intelligence API.
64
+ #
65
+ # @overload self.new(version: :v1beta2, credentials: nil, scopes: nil, client_config: nil, timeout: nil)
66
+ # @param version [Symbol, String]
67
+ # The major version of the service to be used. By default :v1beta2
68
+ # is used.
69
+ # @param credentials
70
+ # [Google::Gax::Credentials, String, Hash, GRPC::Core::Channel, GRPC::Core::ChannelCredentials, Proc]
71
+ # Provides the means for authenticating requests made by the client. This parameter can
72
+ # be many types.
73
+ # A `Google::Gax::Credentials` uses a the properties of its represented keyfile for
74
+ # authenticating requests made by this client.
75
+ # A `String` will be treated as the path to the keyfile to be used for the construction of
76
+ # credentials for this client.
77
+ # A `Hash` will be treated as the contents of a keyfile to be used for the construction of
78
+ # credentials for this client.
79
+ # A `GRPC::Core::Channel` will be used to make calls through.
80
+ # A `GRPC::Core::ChannelCredentials` for the setting up the RPC client. The channel credentials
81
+ # should already be composed with a `GRPC::Core::CallCredentials` object.
82
+ # A `Proc` will be used as an updater_proc for the Grpc channel. The proc transforms the
83
+ # metadata for requests, generally, to give OAuth credentials.
84
+ # @param scopes [Array<String>]
85
+ # The OAuth scopes for this service. This parameter is ignored if
86
+ # an updater_proc is supplied.
87
+ # @param client_config [Hash]
88
+ # A Hash for call options for each method. See
89
+ # Google::Gax#construct_settings for the structure of
90
+ # this data. Falls back to the default config if not specified
91
+ # or the specified config is missing data points.
92
+ # @param timeout [Numeric]
93
+ # The default timeout, in seconds, for calls made through this client.
94
+ def self.new(*args, version: :v1beta2, **kwargs)
95
+ unless AVAILABLE_VERSIONS.include?(version.to_s.downcase)
96
+ raise "The version: #{version} is not available. The available versions " \
97
+ "are: [#{AVAILABLE_VERSIONS.join(", ")}]"
98
+ end
99
+
100
+ require "#{FILE_DIR}/#{version.to_s.downcase}"
101
+ version_module = Google::Cloud::VideoIntelligence
102
+ .constants
103
+ .select {|sym| sym.to_s.downcase == version.to_s.downcase}
104
+ .first
105
+ Google::Cloud::VideoIntelligence.const_get(version_module).new(*args, **kwargs)
106
+ end
107
+ end
108
+ end
109
+ end
@@ -0,0 +1,29 @@
1
+ # Copyright 2017, Google Inc. All rights reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require "google/gax"
16
+
17
+ module Google
18
+ module Cloud
19
+ module VideoIntelligence
20
+ class Credentials < Google::Gax::Credentials
21
+ SCOPE = [
22
+ "https://www.googleapis.com/auth/cloud-platform"
23
+ ].freeze
24
+ PATH_ENV_VARS = %w(VIDEO_INTELLIGENCE_KEYFILE, GOOGLE_CLOUD_KEYFILE, GCLOUD_KEYFILE)
25
+ JSON_ENV_VARS = %w(VIDEO_INTELLIGENCE_KEYFILE_JSON, GOOGLE_CLOUD_KEYFILE_JSON, GCLOUD_KEYFILE_JSON)
26
+ end
27
+ end
28
+ end
29
+ end
@@ -70,7 +70,7 @@ module Google
70
70
  # @param scopes [Array<String>]
71
71
  # The OAuth scopes for this service. This parameter is ignored if
72
72
  # an updater_proc is supplied.
73
- # @param client_config[Hash]
73
+ # @param client_config [Hash]
74
74
  # A Hash for call options for each method. See
75
75
  # Google::Gax#construct_settings for the structure of
76
76
  # this data. Falls back to the default config if not specified
@@ -0,0 +1,100 @@
1
+ # Copyright 2017, Google Inc. All rights reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require "google/cloud/video_intelligence/v1beta2/video_intelligence_service_client"
16
+
17
+ module Google
18
+ module Cloud
19
+ # rubocop:disable LineLength
20
+
21
+ ##
22
+ # # Ruby Client for Google Cloud Video Intelligence API ([Alpha](https://github.com/GoogleCloudPlatform/google-cloud-ruby#versioning))
23
+ #
24
+ # [Google Cloud Video Intelligence API][Product Documentation]:
25
+ # Google Cloud Video Intelligence API.
26
+ # - [Product Documentation][]
27
+ #
28
+ # ## Quick Start
29
+ # In order to use this library, you first need to go through the following
30
+ # steps:
31
+ #
32
+ # 1. [Select or create a Cloud Platform project.](https://console.cloud.google.com/project)
33
+ # 2. [Enable the Google Cloud Video Intelligence API.](https://console.cloud.google.com/apis/api/video-intelligence)
34
+ # 3. [Setup Authentication.](https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud/master/guides/authentication)
35
+ #
36
+ # ### Installation
37
+ # ```
38
+ # $ gem install google-cloud-video_intelligence
39
+ # ```
40
+ #
41
+ # ### Next Steps
42
+ # - Read the [Google Cloud Video Intelligence API Product documentation][Product Documentation]
43
+ # to learn more about the product and see How-to Guides.
44
+ # - View this [repository's main README](https://github.com/GoogleCloudPlatform/google-cloud-ruby/blob/master/README.md)
45
+ # to see the full list of Cloud APIs that we cover.
46
+ #
47
+ # [Product Documentation]: https://cloud.google.com/video-intelligence
48
+ #
49
+ #
50
+ module VideoIntelligence
51
+ ##
52
+ # # Google Cloud Video Intelligence API Contents
53
+ #
54
+ # | Class | Description |
55
+ # | ----- | ----------- |
56
+ # | [VideoIntelligenceServiceClient][] | Google Cloud Video Intelligence API. |
57
+ # | [Data Types][] | Data types for Google::Cloud::VideoIntelligence::V1beta2 |
58
+ #
59
+ # [VideoIntelligenceServiceClient]: https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-video_intelligence/latest/google/cloud/videointelligence/v1beta2/v1beta2/videointelligenceserviceclient
60
+ # [Data Types]: https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-video_intelligence/latest/google/cloud/videointelligence/v1beta2/v1beta2/datatypes
61
+ #
62
+ module V1beta2
63
+ # rubocop:enable LineLength
64
+
65
+ ##
66
+ # Service that implements Google Cloud Video Intelligence API.
67
+ #
68
+ # @overload self.new(credentials: nil, scopes: nil, client_config: nil, timeout: nil)
69
+ # @param credentials
70
+ # [Google::Gax::Credentials, String, Hash, GRPC::Core::Channel, GRPC::Core::ChannelCredentials, Proc]
71
+ # Provides the means for authenticating requests made by the client. This parameter can
72
+ # be many types.
73
+ # A `Google::Gax::Credentials` uses a the properties of its represented keyfile for
74
+ # authenticating requests made by this client.
75
+ # A `String` will be treated as the path to the keyfile to be used for the construction of
76
+ # credentials for this client.
77
+ # A `Hash` will be treated as the contents of a keyfile to be used for the construction of
78
+ # credentials for this client.
79
+ # A `GRPC::Core::Channel` will be used to make calls through.
80
+ # A `GRPC::Core::ChannelCredentials` for the setting up the RPC client. The channel credentials
81
+ # should already be composed with a `GRPC::Core::CallCredentials` object.
82
+ # A `Proc` will be used as an updater_proc for the Grpc channel. The proc transforms the
83
+ # metadata for requests, generally, to give OAuth credentials.
84
+ # @param scopes [Array<String>]
85
+ # The OAuth scopes for this service. This parameter is ignored if
86
+ # an updater_proc is supplied.
87
+ # @param client_config [Hash]
88
+ # A Hash for call options for each method. See
89
+ # Google::Gax#construct_settings for the structure of
90
+ # this data. Falls back to the default config if not specified
91
+ # or the specified config is missing data points.
92
+ # @param timeout [Numeric]
93
+ # The default timeout, in seconds, for calls made through this client.
94
+ def self.new(*args, **kwargs)
95
+ Google::Cloud::VideoIntelligence::V1beta2::VideoIntelligenceServiceClient.new(*args, **kwargs)
96
+ end
97
+ end
98
+ end
99
+ end
100
+ end
@@ -0,0 +1,370 @@
1
+ # Copyright 2017, Google Inc. All rights reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ module Google
16
+ module Cloud
17
+ module Videointelligence
18
+ module V1beta2
19
+ # Video annotation request.
20
+ # @!attribute [rw] input_uri
21
+ # @return [String]
22
+ # Input video location. Currently, only
23
+ # [Google Cloud Storage](https://cloud.google.com/storage/) URIs are
24
+ # supported, which must be specified in the following format:
25
+ # +gs://bucket-id/object-id+ (other URI formats return
26
+ # {Google::Rpc::Code::INVALID_ARGUMENT}). For more information, see
27
+ # [Request URIs](https://cloud.google.com/storage/docs/reference-uris).
28
+ # A video URI may include wildcards in +object-id+, and thus identify
29
+ # multiple videos. Supported wildcards: '*' to match 0 or more characters;
30
+ # '?' to match 1 character. If unset, the input video should be embedded
31
+ # in the request as +input_content+. If set, +input_content+ should be unset.
32
+ # @!attribute [rw] input_content
33
+ # @return [String]
34
+ # The video data bytes. Encoding: base64. If unset, the input video(s)
35
+ # should be specified via +input_uri+. If set, +input_uri+ should be unset.
36
+ # @!attribute [rw] features
37
+ # @return [Array<Google::Cloud::Videointelligence::V1beta2::Feature>]
38
+ # Requested video annotation features.
39
+ # @!attribute [rw] video_context
40
+ # @return [Google::Cloud::Videointelligence::V1beta2::VideoContext]
41
+ # Additional video context and/or feature-specific parameters.
42
+ # @!attribute [rw] output_uri
43
+ # @return [String]
44
+ # Optional location where the output (in JSON format) should be stored.
45
+ # Currently, only [Google Cloud Storage](https://cloud.google.com/storage/)
46
+ # URIs are supported, which must be specified in the following format:
47
+ # +gs://bucket-id/object-id+ (other URI formats return
48
+ # {Google::Rpc::Code::INVALID_ARGUMENT}). For more information, see
49
+ # [Request URIs](https://cloud.google.com/storage/docs/reference-uris).
50
+ # @!attribute [rw] location_id
51
+ # @return [String]
52
+ # Optional cloud region where annotation should take place. Supported cloud
53
+ # regions: +us-east1+, +us-west1+, +europe-west1+, +asia-east1+. If no region
54
+ # is specified, a region will be determined based on video file location.
55
+ class AnnotateVideoRequest; end
56
+
57
+ # Video context and/or feature-specific parameters.
58
+ # @!attribute [rw] segments
59
+ # @return [Array<Google::Cloud::Videointelligence::V1beta2::VideoSegment>]
60
+ # Video segments to annotate. The segments may overlap and are not required
61
+ # to be contiguous or span the whole video. If unspecified, each video
62
+ # is treated as a single segment.
63
+ # @!attribute [rw] label_detection_config
64
+ # @return [Google::Cloud::Videointelligence::V1beta2::LabelDetectionConfig]
65
+ # Config for LABEL_DETECTION.
66
+ # @!attribute [rw] shot_change_detection_config
67
+ # @return [Google::Cloud::Videointelligence::V1beta2::ShotChangeDetectionConfig]
68
+ # Config for SHOT_CHANGE_DETECTION.
69
+ # @!attribute [rw] explicit_content_detection_config
70
+ # @return [Google::Cloud::Videointelligence::V1beta2::ExplicitContentDetectionConfig]
71
+ # Config for EXPLICIT_CONTENT_DETECTION.
72
+ # @!attribute [rw] face_detection_config
73
+ # @return [Google::Cloud::Videointelligence::V1beta2::FaceDetectionConfig]
74
+ # Config for FACE_DETECTION.
75
+ class VideoContext; end
76
+
77
+ # Config for LABEL_DETECTION.
78
+ # @!attribute [rw] label_detection_mode
79
+ # @return [Google::Cloud::Videointelligence::V1beta2::LabelDetectionMode]
80
+ # What labels should be detected with LABEL_DETECTION, in addition to
81
+ # video-level labels or segment-level labels.
82
+ # If unspecified, defaults to +SHOT_MODE+.
83
+ # @!attribute [rw] stationary_camera
84
+ # @return [true, false]
85
+ # Whether the video has been shot from a stationary (i.e. non-moving) camera.
86
+ # When set to true, might improve detection accuracy for moving objects.
87
+ # Should be used with +SHOT_AND_FRAME_MODE+ enabled.
88
+ # @!attribute [rw] model
89
+ # @return [String]
90
+ # Model to use for label detection.
91
+ # Supported values: "builtin/stable" (the default if unset) and
92
+ # "builtin/latest".
93
+ class LabelDetectionConfig; end
94
+
95
+ # Config for SHOT_CHANGE_DETECTION.
96
+ # @!attribute [rw] model
97
+ # @return [String]
98
+ # Model to use for shot change detection.
99
+ # Supported values: "builtin/stable" (the default if unset) and
100
+ # "builtin/latest".
101
+ class ShotChangeDetectionConfig; end
102
+
103
+ # Config for EXPLICIT_CONTENT_DETECTION.
104
+ # @!attribute [rw] model
105
+ # @return [String]
106
+ # Model to use for explicit content detection.
107
+ # Supported values: "builtin/stable" (the default if unset) and
108
+ # "builtin/latest".
109
+ class ExplicitContentDetectionConfig; end
110
+
111
+ # Config for FACE_DETECTION.
112
+ # @!attribute [rw] model
113
+ # @return [String]
114
+ # Model to use for face detection.
115
+ # Supported values: "builtin/stable" (the default if unset) and
116
+ # "builtin/latest".
117
+ # @!attribute [rw] include_bounding_boxes
118
+ # @return [true, false]
119
+ # Whether bounding boxes be included in the face annotation output.
120
+ class FaceDetectionConfig; end
121
+
122
+ # Video segment.
123
+ # @!attribute [rw] start_time_offset
124
+ # @return [Google::Protobuf::Duration]
125
+ # Time-offset, relative to the beginning of the video,
126
+ # corresponding to the start of the segment (inclusive).
127
+ # @!attribute [rw] end_time_offset
128
+ # @return [Google::Protobuf::Duration]
129
+ # Time-offset, relative to the beginning of the video,
130
+ # corresponding to the end of the segment (inclusive).
131
+ class VideoSegment; end
132
+
133
+ # Video segment level annotation results for label detection.
134
+ # @!attribute [rw] segment
135
+ # @return [Google::Cloud::Videointelligence::V1beta2::VideoSegment]
136
+ # Video segment where a label was detected.
137
+ # @!attribute [rw] confidence
138
+ # @return [Float]
139
+ # Confidence that the label is accurate. Range: [0, 1].
140
+ class LabelSegment; end
141
+
142
+ # Video frame level annotation results for label detection.
143
+ # @!attribute [rw] time_offset
144
+ # @return [Google::Protobuf::Duration]
145
+ # Time-offset, relative to the beginning of the video, corresponding to the
146
+ # video frame for this location.
147
+ # @!attribute [rw] confidence
148
+ # @return [Float]
149
+ # Confidence that the label is accurate. Range: [0, 1].
150
+ class LabelFrame; end
151
+
152
+ # Detected entity from video analysis.
153
+ # @!attribute [rw] entity_id
154
+ # @return [String]
155
+ # Opaque entity ID. Some IDs may be available in
156
+ # [Google Knowledge Graph Search
157
+ # API](https://developers.google.com/knowledge-graph/).
158
+ # @!attribute [rw] description
159
+ # @return [String]
160
+ # Textual description, e.g. +Fixed-gear bicycle+.
161
+ # @!attribute [rw] language_code
162
+ # @return [String]
163
+ # Language code for +description+ in BCP-47 format.
164
+ class Entity; end
165
+
166
+ # Label annotation.
167
+ # @!attribute [rw] entity
168
+ # @return [Google::Cloud::Videointelligence::V1beta2::Entity]
169
+ # Detected entity.
170
+ # @!attribute [rw] category_entities
171
+ # @return [Array<Google::Cloud::Videointelligence::V1beta2::Entity>]
172
+ # Common categories for the detected entity.
173
+ # E.g. when the label is +Terrier+ the category is likely +dog+. And in some
174
+ # cases there might be more than one categories e.g. +Terrier+ could also be
175
+ # a +pet+.
176
+ # @!attribute [rw] segments
177
+ # @return [Array<Google::Cloud::Videointelligence::V1beta2::LabelSegment>]
178
+ # All video segments where a label was detected.
179
+ # @!attribute [rw] frames
180
+ # @return [Array<Google::Cloud::Videointelligence::V1beta2::LabelFrame>]
181
+ # All video frames where a label was detected.
182
+ class LabelAnnotation; end
183
+
184
+ # Video frame level annotation results for explicit content.
185
+ # @!attribute [rw] time_offset
186
+ # @return [Google::Protobuf::Duration]
187
+ # Time-offset, relative to the beginning of the video, corresponding to the
188
+ # video frame for this location.
189
+ # @!attribute [rw] pornography_likelihood
190
+ # @return [Google::Cloud::Videointelligence::V1beta2::Likelihood]
191
+ # Likelihood of the pornography content..
192
+ class ExplicitContentFrame; end
193
+
194
+ # Explicit content annotation (based on per-frame visual signals only).
195
+ # If no explicit content has been detected in a frame, no annotations are
196
+ # present for that frame.
197
+ # @!attribute [rw] frames
198
+ # @return [Array<Google::Cloud::Videointelligence::V1beta2::ExplicitContentFrame>]
199
+ # All video frames where explicit content was detected.
200
+ class ExplicitContentAnnotation; end
201
+
202
+ # Normalized bounding box.
203
+ # The normalized vertex coordinates are relative to the original image.
204
+ # Range: [0, 1].
205
+ # @!attribute [rw] left
206
+ # @return [Float]
207
+ # Left X coordinate.
208
+ # @!attribute [rw] top
209
+ # @return [Float]
210
+ # Top Y coordinate.
211
+ # @!attribute [rw] right
212
+ # @return [Float]
213
+ # Right X coordinate.
214
+ # @!attribute [rw] bottom
215
+ # @return [Float]
216
+ # Bottom Y coordinate.
217
+ class NormalizedBoundingBox; end
218
+
219
+ # Video segment level annotation results for face detection.
220
+ # @!attribute [rw] segment
221
+ # @return [Google::Cloud::Videointelligence::V1beta2::VideoSegment]
222
+ # Video segment where a face was detected.
223
+ class FaceSegment; end
224
+
225
+ # Video frame level annotation results for face detection.
226
+ # @!attribute [rw] normalized_bounding_boxes
227
+ # @return [Array<Google::Cloud::Videointelligence::V1beta2::NormalizedBoundingBox>]
228
+ # Normalized Bounding boxes in a frame.
229
+ # There can be more than one boxes if the same face is detected in multiple
230
+ # locations within the current frame.
231
+ # @!attribute [rw] time_offset
232
+ # @return [Google::Protobuf::Duration]
233
+ # Time-offset, relative to the beginning of the video,
234
+ # corresponding to the video frame for this location.
235
+ class FaceFrame; end
236
+
237
+ # Face annotation.
238
+ # @!attribute [rw] thumbnail
239
+ # @return [String]
240
+ # Thumbnail of a representative face view (in JPEG format). Encoding: base64.
241
+ # @!attribute [rw] segments
242
+ # @return [Array<Google::Cloud::Videointelligence::V1beta2::FaceSegment>]
243
+ # All video segments where a face was detected.
244
+ # @!attribute [rw] frames
245
+ # @return [Array<Google::Cloud::Videointelligence::V1beta2::FaceFrame>]
246
+ # All video frames where a face was detected.
247
+ class FaceAnnotation; end
248
+
249
+ # Annotation results for a single video.
250
+ # @!attribute [rw] input_uri
251
+ # @return [String]
252
+ # Video file location in
253
+ # [Google Cloud Storage](https://cloud.google.com/storage/).
254
+ # @!attribute [rw] segment_label_annotations
255
+ # @return [Array<Google::Cloud::Videointelligence::V1beta2::LabelAnnotation>]
256
+ # Label annotations on video level or user specified segment level.
257
+ # There is exactly one element for each unique label.
258
+ # @!attribute [rw] shot_label_annotations
259
+ # @return [Array<Google::Cloud::Videointelligence::V1beta2::LabelAnnotation>]
260
+ # Label annotations on shot level.
261
+ # There is exactly one element for each unique label.
262
+ # @!attribute [rw] frame_label_annotations
263
+ # @return [Array<Google::Cloud::Videointelligence::V1beta2::LabelAnnotation>]
264
+ # Label annotations on frame level.
265
+ # There is exactly one element for each unique label.
266
+ # @!attribute [rw] face_annotations
267
+ # @return [Array<Google::Cloud::Videointelligence::V1beta2::FaceAnnotation>]
268
+ # Face annotations. There is exactly one element for each unique face.
269
+ # @!attribute [rw] shot_annotations
270
+ # @return [Array<Google::Cloud::Videointelligence::V1beta2::VideoSegment>]
271
+ # Shot annotations. Each shot is represented as a video segment.
272
+ # @!attribute [rw] explicit_annotation
273
+ # @return [Google::Cloud::Videointelligence::V1beta2::ExplicitContentAnnotation]
274
+ # Explicit content annotation.
275
+ # @!attribute [rw] error
276
+ # @return [Google::Rpc::Status]
277
+ # If set, indicates an error. Note that for a single +AnnotateVideoRequest+
278
+ # some videos may succeed and some may fail.
279
+ class VideoAnnotationResults; end
280
+
281
+ # Video annotation response. Included in the +response+
282
+ # field of the +Operation+ returned by the +GetOperation+
283
+ # call of the +google::longrunning::Operations+ service.
284
+ # @!attribute [rw] annotation_results
285
+ # @return [Array<Google::Cloud::Videointelligence::V1beta2::VideoAnnotationResults>]
286
+ # Annotation results for all videos specified in +AnnotateVideoRequest+.
287
+ class AnnotateVideoResponse; end
288
+
289
+ # Annotation progress for a single video.
290
+ # @!attribute [rw] input_uri
291
+ # @return [String]
292
+ # Video file location in
293
+ # [Google Cloud Storage](https://cloud.google.com/storage/).
294
+ # @!attribute [rw] progress_percent
295
+ # @return [Integer]
296
+ # Approximate percentage processed thus far.
297
+ # Guaranteed to be 100 when fully processed.
298
+ # @!attribute [rw] start_time
299
+ # @return [Google::Protobuf::Timestamp]
300
+ # Time when the request was received.
301
+ # @!attribute [rw] update_time
302
+ # @return [Google::Protobuf::Timestamp]
303
+ # Time of the most recent update.
304
+ class VideoAnnotationProgress; end
305
+
306
+ # Video annotation progress. Included in the +metadata+
307
+ # field of the +Operation+ returned by the +GetOperation+
308
+ # call of the +google::longrunning::Operations+ service.
309
+ # @!attribute [rw] annotation_progress
310
+ # @return [Array<Google::Cloud::Videointelligence::V1beta2::VideoAnnotationProgress>]
311
+ # Progress metadata for all videos specified in +AnnotateVideoRequest+.
312
+ class AnnotateVideoProgress; end
313
+
314
+ # Video annotation feature.
315
+ module Feature
316
+ # Unspecified.
317
+ FEATURE_UNSPECIFIED = 0
318
+
319
+ # Label detection. Detect objects, such as dog or flower.
320
+ LABEL_DETECTION = 1
321
+
322
+ # Shot change detection.
323
+ SHOT_CHANGE_DETECTION = 2
324
+
325
+ # Explicit content detection.
326
+ EXPLICIT_CONTENT_DETECTION = 3
327
+
328
+ # Human face detection and tracking.
329
+ FACE_DETECTION = 4
330
+ end
331
+
332
+ # Label detection mode.
333
+ module LabelDetectionMode
334
+ # Unspecified.
335
+ LABEL_DETECTION_MODE_UNSPECIFIED = 0
336
+
337
+ # Detect shot-level labels.
338
+ SHOT_MODE = 1
339
+
340
+ # Detect frame-level labels.
341
+ FRAME_MODE = 2
342
+
343
+ # Detect both shot-level and frame-level labels.
344
+ SHOT_AND_FRAME_MODE = 3
345
+ end
346
+
347
+ # Bucketized representation of likelihood.
348
+ module Likelihood
349
+ # Unspecified likelihood.
350
+ LIKELIHOOD_UNSPECIFIED = 0
351
+
352
+ # Very unlikely.
353
+ VERY_UNLIKELY = 1
354
+
355
+ # Unlikely.
356
+ UNLIKELY = 2
357
+
358
+ # Possible.
359
+ POSSIBLE = 3
360
+
361
+ # Likely.
362
+ LIKELY = 4
363
+
364
+ # Very likely.
365
+ VERY_LIKELY = 5
366
+ end
367
+ end
368
+ end
369
+ end
370
+ end