google-apis-transcoder_v1beta1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 4d81817a155fba5a30ef539bfaabf38fbe7464e08d03c3b9ceec1cbbd83282d4
4
+ data.tar.gz: 8688232dc5d0bdf91caf0051367568fb18037ca7eb9912a984de7c7c17a277ff
5
+ SHA512:
6
+ metadata.gz: 6c2572db3dfe258204239ec3160893562f9ba4ba5385ea9b198b13a3a73283a61a5a754f83eaa73e2177ad2a196b4f08745aad6ba58a33d4108fc526737ce2bc
7
+ data.tar.gz: b6ccb985c86388f333ba4d384d639a2592e8bc1362ff923543e124b976ce855070847e73c01f4904033b616be81ba63859fb60b874e8da2b7fbd1741abc8d4ae
@@ -0,0 +1,13 @@
1
+ --hide-void-return
2
+ --no-private
3
+ --verbose
4
+ --title=google-apis-transcoder_v1beta1
5
+ --markup-provider=redcarpet
6
+ --markup=markdown
7
+ --main OVERVIEW.md
8
+ lib/google/apis/transcoder_v1beta1/*.rb
9
+ lib/google/apis/transcoder_v1beta1.rb
10
+ -
11
+ OVERVIEW.md
12
+ CHANGELOG.md
13
+ LICENSE.md
@@ -0,0 +1,7 @@
1
+ # Release history for google-apis-transcoder_v1beta1
2
+
3
+ ### v0.1.0 (2021-01-07)
4
+
5
+ * Regenerated using generator version 0.1.1
6
+ * Regenerated from discovery document revision 20201209
7
+
@@ -0,0 +1,202 @@
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright [yyyy] [name of copyright owner]
191
+
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
195
+
196
+ http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.
@@ -0,0 +1,96 @@
1
+ # Simple REST client for version V1beta1 of the Transcoder API
2
+
3
+ This is a simple client library for version V1beta1 of the Transcoder API. It provides:
4
+
5
+ * A client object that connects to the HTTP/JSON REST endpoint for the service.
6
+ * Ruby objects for data structures related to the service.
7
+ * Integration with the googleauth gem for authentication using OAuth, API keys, and service accounts.
8
+ * Control of retry, pagination, and timeouts.
9
+
10
+ Note that although this client library is supported and will continue to be updated to track changes to the service, it is otherwise considered complete and not under active development. Many Google services, especially Google Cloud Platform services, may provide a more modern client that is under more active development and improvement. See the section below titled *Which client should I use?* for more information.
11
+
12
+ ## Getting started
13
+
14
+ ### Before you begin
15
+
16
+ There are a few setup steps you need to complete before you can use this library:
17
+
18
+ 1. If you don't already have a Google account, [sign up](https://www.google.com/accounts).
19
+ 2. If you have never created a Google APIs Console project, read about [Managing Projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects) and create a project in the [Google API Console](https://console.cloud.google.com/).
20
+ 3. Most APIs need to be enabled for your project. [Enable it](https://console.cloud.google.com/apis/library/transcoder.googleapis.com) in the console.
21
+
22
+ ### Installation
23
+
24
+ Add this line to your application's Gemfile:
25
+
26
+ ```ruby
27
+ gem 'google-apis-transcoder_v1beta1', '~> 0.1'
28
+ ```
29
+
30
+ And then execute:
31
+
32
+ ```
33
+ $ bundle
34
+ ```
35
+
36
+ Or install it yourself as:
37
+
38
+ ```
39
+ $ gem install google-apis-transcoder_v1beta1
40
+ ```
41
+
42
+ ### Creating a client object
43
+
44
+ Once the gem is installed, you can load the client code and instantiate a client.
45
+
46
+ ```ruby
47
+ # Load the client
48
+ require "google/apis/transcoder_v1beta1"
49
+
50
+ # Create a client object
51
+ client = Google::Apis::TranscoderV1beta1::TranscoderService.new
52
+
53
+ # Authenticate calls
54
+ client.authentication = # ... use the googleauth gem to create credentials
55
+ ```
56
+
57
+ See the class reference docs for information on the methods you can call from a client.
58
+
59
+ ## Documentation
60
+
61
+ More detailed descriptions of the Google simple REST clients are available in two documents.
62
+
63
+ * The [Usage Guide](https://github.com/googleapis/google-api-ruby-client/blob/master/docs/usage-guide.md) discusses how to make API calls, how to use the provided data structures, and how to work the various features of the client library, including media upload and download, error handling, retries, pagination, and logging.
64
+ * The [Auth Guide](https://github.com/googleapis/google-api-ruby-client/blob/master/docs/auth-guide.md) discusses authentication in the client libraries, including API keys, OAuth 2.0, service accounts, and environment variables.
65
+
66
+ (Note: the above documents are written for the simple REST clients in general, and their examples may not reflect the Transcoder service in particular.)
67
+
68
+ For reference information on specific calls in the Transcoder API, see the {Google::Apis::TranscoderV1beta1::TranscoderService class reference docs}.
69
+
70
+ ## Which client should I use?
71
+
72
+ Google provides two types of Ruby API client libraries: **simple REST clients** and **modern clients**.
73
+
74
+ This library, `google-apis-transcoder_v1beta1`, is a simple REST client. You can identify these clients by their gem names, which are always in the form `google-apis-<servicename>_<serviceversion>`. The simple REST clients connect to HTTP/JSON REST endpoints and are automatically generated from service discovery documents. They support most API functionality, but their class interfaces are sometimes awkward.
75
+
76
+ Modern clients are produced by a modern code generator, sometimes combined with hand-crafted functionality. Most modern clients connect to high-performance gRPC endpoints, although a few are backed by REST services. Modern clients are available for many Google services, especially Google Cloud Platform services, but do not yet support all the services covered by the simple clients.
77
+
78
+ Gem names for modern clients are often of the form `google-cloud-<service_name>`. (For example, [google-cloud-pubsub](https://rubygems.org/gems/google-cloud-pubsub).) Note that most modern clients also have corresponding "versioned" gems with names like `google-cloud-<service_name>-<version>`. (For example, [google-cloud-pubsub-v1](https://rubygems.org/gems/google-cloud-pubsub-v1).) The "versioned" gems can be used directly, but often provide lower-level interfaces. In most cases, the main gem is recommended.
79
+
80
+ **For most users, we recommend the modern client, if one is available.** Compared with simple clients, modern clients are generally much easier to use and more Ruby-like, support more advanced features such as streaming and long-running operations, and often provide much better performance. You may consider using a simple client instead, if a modern client is not yet available for the service you want to use, or if you are not able to use gRPC on your infrastructure.
81
+
82
+ The [product documentation](https://cloud.google.com/transcoder/docs/) may provide guidance regarding the preferred client library to use.
83
+
84
+ ## Supported Ruby versions
85
+
86
+ This library is supported on Ruby 2.5+.
87
+
88
+ Google provides official support for Ruby versions that are actively supported by Ruby Core -- that is, Ruby versions that are either in normal maintenance or in security maintenance, and not end of life. Currently, this means Ruby 2.5 and later. Older versions of Ruby _may_ still work, but are unsupported and not recommended. See https://www.ruby-lang.org/en/downloads/branches/ for details about the Ruby support schedule.
89
+
90
+ ## License
91
+
92
+ This library is licensed under Apache 2.0. Full license text is available in the {file:LICENSE.md LICENSE}.
93
+
94
+ ## Support
95
+
96
+ Please [report bugs at the project on Github](https://github.com/google/google-api-ruby-client/issues). Don't hesitate to [ask questions](http://stackoverflow.com/questions/tagged/google-api-ruby-client) about the client or APIs on [StackOverflow](http://stackoverflow.com).
@@ -0,0 +1,15 @@
1
+ # Copyright 2020 Google LLC
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/apis/transcoder_v1beta1"
@@ -0,0 +1,36 @@
1
+ # Copyright 2020 Google LLC
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/apis/transcoder_v1beta1/service.rb'
16
+ require 'google/apis/transcoder_v1beta1/classes.rb'
17
+ require 'google/apis/transcoder_v1beta1/representations.rb'
18
+ require 'google/apis/transcoder_v1beta1/gem_version.rb'
19
+
20
+ module Google
21
+ module Apis
22
+ # Transcoder API
23
+ #
24
+ # This API converts video files into formats suitable for consumer distribution.
25
+ #
26
+ # @see https://cloud.google.com/transcoder/docs/
27
+ module TranscoderV1beta1
28
+ # Version of the Transcoder API this client connects to.
29
+ # This is NOT the gem version.
30
+ VERSION = 'V1beta1'
31
+
32
+ # View and manage your data across Google Cloud Platform services
33
+ AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,1694 @@
1
+ # Copyright 2020 Google LLC
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 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module TranscoderV1beta1
24
+
25
+ # Ad break.
26
+ class AdBreak
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Start time in seconds for the ad break, relative to the output file timeline.
30
+ # The default is `0s`.
31
+ # Corresponds to the JSON property `startTimeOffset`
32
+ # @return [String]
33
+ attr_accessor :start_time_offset
34
+
35
+ def initialize(**args)
36
+ update!(**args)
37
+ end
38
+
39
+ # Update properties of this object
40
+ def update!(**args)
41
+ @start_time_offset = args[:start_time_offset] if args.key?(:start_time_offset)
42
+ end
43
+ end
44
+
45
+ # Configuration for AES-128 encryption.
46
+ class Aes128Encryption
47
+ include Google::Apis::Core::Hashable
48
+
49
+ # Required. URI of the key delivery service. This URI is inserted into the M3U8
50
+ # header.
51
+ # Corresponds to the JSON property `keyUri`
52
+ # @return [String]
53
+ attr_accessor :key_uri
54
+
55
+ def initialize(**args)
56
+ update!(**args)
57
+ end
58
+
59
+ # Update properties of this object
60
+ def update!(**args)
61
+ @key_uri = args[:key_uri] if args.key?(:key_uri)
62
+ end
63
+ end
64
+
65
+ # Animation types.
66
+ class Animation
67
+ include Google::Apis::Core::Hashable
68
+
69
+ # End previous overlay animation from the video. Without AnimationEnd, the
70
+ # overlay object will keep the state of previous animation until the end of the
71
+ # video.
72
+ # Corresponds to the JSON property `animationEnd`
73
+ # @return [Google::Apis::TranscoderV1beta1::AnimationEnd]
74
+ attr_accessor :animation_end
75
+
76
+ # Display overlay object with fade animation.
77
+ # Corresponds to the JSON property `animationFade`
78
+ # @return [Google::Apis::TranscoderV1beta1::AnimationFade]
79
+ attr_accessor :animation_fade
80
+
81
+ # Display static overlay object.
82
+ # Corresponds to the JSON property `animationStatic`
83
+ # @return [Google::Apis::TranscoderV1beta1::AnimationStatic]
84
+ attr_accessor :animation_static
85
+
86
+ def initialize(**args)
87
+ update!(**args)
88
+ end
89
+
90
+ # Update properties of this object
91
+ def update!(**args)
92
+ @animation_end = args[:animation_end] if args.key?(:animation_end)
93
+ @animation_fade = args[:animation_fade] if args.key?(:animation_fade)
94
+ @animation_static = args[:animation_static] if args.key?(:animation_static)
95
+ end
96
+ end
97
+
98
+ # End previous overlay animation from the video. Without AnimationEnd, the
99
+ # overlay object will keep the state of previous animation until the end of the
100
+ # video.
101
+ class AnimationEnd
102
+ include Google::Apis::Core::Hashable
103
+
104
+ # The time to end overlay object, in seconds. Default: 0
105
+ # Corresponds to the JSON property `startTimeOffset`
106
+ # @return [String]
107
+ attr_accessor :start_time_offset
108
+
109
+ def initialize(**args)
110
+ update!(**args)
111
+ end
112
+
113
+ # Update properties of this object
114
+ def update!(**args)
115
+ @start_time_offset = args[:start_time_offset] if args.key?(:start_time_offset)
116
+ end
117
+ end
118
+
119
+ # Display overlay object with fade animation.
120
+ class AnimationFade
121
+ include Google::Apis::Core::Hashable
122
+
123
+ # The time to end the fade animation, in seconds. Default: `start_time_offset` +
124
+ # 1s
125
+ # Corresponds to the JSON property `endTimeOffset`
126
+ # @return [String]
127
+ attr_accessor :end_time_offset
128
+
129
+ # Required. Type of fade animation: `FADE_IN` or `FADE_OUT`.
130
+ # Corresponds to the JSON property `fadeType`
131
+ # @return [String]
132
+ attr_accessor :fade_type
133
+
134
+ # The time to start the fade animation, in seconds. Default: 0
135
+ # Corresponds to the JSON property `startTimeOffset`
136
+ # @return [String]
137
+ attr_accessor :start_time_offset
138
+
139
+ # 2D normalized coordinates. Default: ``0.0, 0.0``
140
+ # Corresponds to the JSON property `xy`
141
+ # @return [Google::Apis::TranscoderV1beta1::NormalizedCoordinate]
142
+ attr_accessor :xy
143
+
144
+ def initialize(**args)
145
+ update!(**args)
146
+ end
147
+
148
+ # Update properties of this object
149
+ def update!(**args)
150
+ @end_time_offset = args[:end_time_offset] if args.key?(:end_time_offset)
151
+ @fade_type = args[:fade_type] if args.key?(:fade_type)
152
+ @start_time_offset = args[:start_time_offset] if args.key?(:start_time_offset)
153
+ @xy = args[:xy] if args.key?(:xy)
154
+ end
155
+ end
156
+
157
+ # Display static overlay object.
158
+ class AnimationStatic
159
+ include Google::Apis::Core::Hashable
160
+
161
+ # The time to start displaying the overlay object, in seconds. Default: 0
162
+ # Corresponds to the JSON property `startTimeOffset`
163
+ # @return [String]
164
+ attr_accessor :start_time_offset
165
+
166
+ # 2D normalized coordinates. Default: ``0.0, 0.0``
167
+ # Corresponds to the JSON property `xy`
168
+ # @return [Google::Apis::TranscoderV1beta1::NormalizedCoordinate]
169
+ attr_accessor :xy
170
+
171
+ def initialize(**args)
172
+ update!(**args)
173
+ end
174
+
175
+ # Update properties of this object
176
+ def update!(**args)
177
+ @start_time_offset = args[:start_time_offset] if args.key?(:start_time_offset)
178
+ @xy = args[:xy] if args.key?(:xy)
179
+ end
180
+ end
181
+
182
+ # Audio preprocessing configuration.
183
+ class Audio
184
+ include Google::Apis::Core::Hashable
185
+
186
+ # Enable boosting high frequency components. The default is `false`.
187
+ # Corresponds to the JSON property `highBoost`
188
+ # @return [Boolean]
189
+ attr_accessor :high_boost
190
+ alias_method :high_boost?, :high_boost
191
+
192
+ # Enable boosting low frequency components. The default is `false`.
193
+ # Corresponds to the JSON property `lowBoost`
194
+ # @return [Boolean]
195
+ attr_accessor :low_boost
196
+ alias_method :low_boost?, :low_boost
197
+
198
+ # Specify audio loudness normalization in loudness units relative to full scale (
199
+ # LUFS). Enter a value between -24 and 0, where -24 is the Advanced Television
200
+ # Systems Committee (ATSC A/85), -23 is the EU R128 broadcast standard, -19 is
201
+ # the prior standard for online mono audio, -18 is the ReplayGain standard, -16
202
+ # is the prior standard for stereo audio, -14 is the new online audio standard
203
+ # recommended by Spotify, as well as Amazon Echo, and 0 disables normalization.
204
+ # The default is 0.
205
+ # Corresponds to the JSON property `lufs`
206
+ # @return [Float]
207
+ attr_accessor :lufs
208
+
209
+ def initialize(**args)
210
+ update!(**args)
211
+ end
212
+
213
+ # Update properties of this object
214
+ def update!(**args)
215
+ @high_boost = args[:high_boost] if args.key?(:high_boost)
216
+ @low_boost = args[:low_boost] if args.key?(:low_boost)
217
+ @lufs = args[:lufs] if args.key?(:lufs)
218
+ end
219
+ end
220
+
221
+ # The mapping for the `Job.edit_list` atoms with audio `EditAtom.inputs`.
222
+ class AudioAtom
223
+ include Google::Apis::Core::Hashable
224
+
225
+ # List of `Channel`s for this audio stream. for in-depth explanation.
226
+ # Corresponds to the JSON property `channels`
227
+ # @return [Array<Google::Apis::TranscoderV1beta1::AudioChannel>]
228
+ attr_accessor :channels
229
+
230
+ # Required. The `EditAtom.key` that references the atom with audio inputs in the
231
+ # `Job.edit_list`.
232
+ # Corresponds to the JSON property `key`
233
+ # @return [String]
234
+ attr_accessor :key
235
+
236
+ def initialize(**args)
237
+ update!(**args)
238
+ end
239
+
240
+ # Update properties of this object
241
+ def update!(**args)
242
+ @channels = args[:channels] if args.key?(:channels)
243
+ @key = args[:key] if args.key?(:key)
244
+ end
245
+ end
246
+
247
+ # The audio channel.
248
+ class AudioChannel
249
+ include Google::Apis::Core::Hashable
250
+
251
+ # List of `Job.inputs` for this audio channel.
252
+ # Corresponds to the JSON property `inputs`
253
+ # @return [Array<Google::Apis::TranscoderV1beta1::AudioChannelInput>]
254
+ attr_accessor :inputs
255
+
256
+ def initialize(**args)
257
+ update!(**args)
258
+ end
259
+
260
+ # Update properties of this object
261
+ def update!(**args)
262
+ @inputs = args[:inputs] if args.key?(:inputs)
263
+ end
264
+ end
265
+
266
+ # Identifies which input file, track, and channel should be used.
267
+ class AudioChannelInput
268
+ include Google::Apis::Core::Hashable
269
+
270
+ # Required. The zero-based index of the channel in the input file.
271
+ # Corresponds to the JSON property `channel`
272
+ # @return [Fixnum]
273
+ attr_accessor :channel
274
+
275
+ # Audio volume control in dB. Negative values decrease volume, positive values
276
+ # increase. The default is 0.
277
+ # Corresponds to the JSON property `gainDb`
278
+ # @return [Float]
279
+ attr_accessor :gain_db
280
+
281
+ # Required. The `Input.key` that identifies the input file.
282
+ # Corresponds to the JSON property `key`
283
+ # @return [String]
284
+ attr_accessor :key
285
+
286
+ # Required. The zero-based index of the track in the input file.
287
+ # Corresponds to the JSON property `track`
288
+ # @return [Fixnum]
289
+ attr_accessor :track
290
+
291
+ def initialize(**args)
292
+ update!(**args)
293
+ end
294
+
295
+ # Update properties of this object
296
+ def update!(**args)
297
+ @channel = args[:channel] if args.key?(:channel)
298
+ @gain_db = args[:gain_db] if args.key?(:gain_db)
299
+ @key = args[:key] if args.key?(:key)
300
+ @track = args[:track] if args.key?(:track)
301
+ end
302
+ end
303
+
304
+ # Audio stream resource.
305
+ class AudioStream
306
+ include Google::Apis::Core::Hashable
307
+
308
+ # Required. Audio bitrate in bits per second. Must be between 1 and 10,000,000.
309
+ # Corresponds to the JSON property `bitrateBps`
310
+ # @return [Fixnum]
311
+ attr_accessor :bitrate_bps
312
+
313
+ # Number of audio channels. Must be between 1 and 6. The default is 2.
314
+ # Corresponds to the JSON property `channelCount`
315
+ # @return [Fixnum]
316
+ attr_accessor :channel_count
317
+
318
+ # A list of channel names specifying layout of the audio channels. This only
319
+ # affects the metadata embedded in the container headers, if supported by the
320
+ # specified format. The default is `["fl", "fr"]`. Supported channel names: - '
321
+ # fl' - Front left channel - 'fr' - Front right channel - 'sl' - Side left
322
+ # channel - 'sr' - Side right channel - 'fc' - Front center channel - 'lfe' -
323
+ # Low frequency
324
+ # Corresponds to the JSON property `channelLayout`
325
+ # @return [Array<String>]
326
+ attr_accessor :channel_layout
327
+
328
+ # The codec for this audio stream. The default is `"aac"`. Supported audio
329
+ # codecs: - 'aac' - 'aac-he' - 'aac-he-v2' - 'mp3' - 'ac3' - 'eac3'
330
+ # Corresponds to the JSON property `codec`
331
+ # @return [String]
332
+ attr_accessor :codec
333
+
334
+ # The mapping for the `Job.edit_list` atoms with audio `EditAtom.inputs`.
335
+ # Corresponds to the JSON property `mapping`
336
+ # @return [Array<Google::Apis::TranscoderV1beta1::AudioAtom>]
337
+ attr_accessor :mapping
338
+
339
+ # The audio sample rate in Hertz. The default is 48000 Hertz.
340
+ # Corresponds to the JSON property `sampleRateHertz`
341
+ # @return [Fixnum]
342
+ attr_accessor :sample_rate_hertz
343
+
344
+ def initialize(**args)
345
+ update!(**args)
346
+ end
347
+
348
+ # Update properties of this object
349
+ def update!(**args)
350
+ @bitrate_bps = args[:bitrate_bps] if args.key?(:bitrate_bps)
351
+ @channel_count = args[:channel_count] if args.key?(:channel_count)
352
+ @channel_layout = args[:channel_layout] if args.key?(:channel_layout)
353
+ @codec = args[:codec] if args.key?(:codec)
354
+ @mapping = args[:mapping] if args.key?(:mapping)
355
+ @sample_rate_hertz = args[:sample_rate_hertz] if args.key?(:sample_rate_hertz)
356
+ end
357
+ end
358
+
359
+ # Color preprocessing configuration.
360
+ class Color
361
+ include Google::Apis::Core::Hashable
362
+
363
+ # Control brightness of the video. Enter a value between -1 and 1, where -1 is
364
+ # minimum brightness and 1 is maximum brightness. 0 is no change. The default is
365
+ # 0.
366
+ # Corresponds to the JSON property `brightness`
367
+ # @return [Float]
368
+ attr_accessor :brightness
369
+
370
+ # Control black and white contrast of the video. Enter a value between -1 and 1,
371
+ # where -1 is minimum contrast and 1 is maximum contrast. 0 is no change. The
372
+ # default is 0.
373
+ # Corresponds to the JSON property `contrast`
374
+ # @return [Float]
375
+ attr_accessor :contrast
376
+
377
+ # Control color saturation of the video. Enter a value between -1 and 1, where -
378
+ # 1 is fully desaturated and 1 is maximum saturation. 0 is no change. The
379
+ # default is 0.
380
+ # Corresponds to the JSON property `saturation`
381
+ # @return [Float]
382
+ attr_accessor :saturation
383
+
384
+ def initialize(**args)
385
+ update!(**args)
386
+ end
387
+
388
+ # Update properties of this object
389
+ def update!(**args)
390
+ @brightness = args[:brightness] if args.key?(:brightness)
391
+ @contrast = args[:contrast] if args.key?(:contrast)
392
+ @saturation = args[:saturation] if args.key?(:saturation)
393
+ end
394
+ end
395
+
396
+ # Video cropping configuration for the input video. The cropped input video is
397
+ # scaled to match the output resolution.
398
+ class Crop
399
+ include Google::Apis::Core::Hashable
400
+
401
+ # The number of pixels to crop from the bottom. The default is 0.
402
+ # Corresponds to the JSON property `bottomPixels`
403
+ # @return [Fixnum]
404
+ attr_accessor :bottom_pixels
405
+
406
+ # The number of pixels to crop from the left. The default is 0.
407
+ # Corresponds to the JSON property `leftPixels`
408
+ # @return [Fixnum]
409
+ attr_accessor :left_pixels
410
+
411
+ # The number of pixels to crop from the right. The default is 0.
412
+ # Corresponds to the JSON property `rightPixels`
413
+ # @return [Fixnum]
414
+ attr_accessor :right_pixels
415
+
416
+ # The number of pixels to crop from the top. The default is 0.
417
+ # Corresponds to the JSON property `topPixels`
418
+ # @return [Fixnum]
419
+ attr_accessor :top_pixels
420
+
421
+ def initialize(**args)
422
+ update!(**args)
423
+ end
424
+
425
+ # Update properties of this object
426
+ def update!(**args)
427
+ @bottom_pixels = args[:bottom_pixels] if args.key?(:bottom_pixels)
428
+ @left_pixels = args[:left_pixels] if args.key?(:left_pixels)
429
+ @right_pixels = args[:right_pixels] if args.key?(:right_pixels)
430
+ @top_pixels = args[:top_pixels] if args.key?(:top_pixels)
431
+ end
432
+ end
433
+
434
+ # Deblock preprocessing configuration.
435
+ class Deblock
436
+ include Google::Apis::Core::Hashable
437
+
438
+ # Enable deblocker. The default is `false`.
439
+ # Corresponds to the JSON property `enabled`
440
+ # @return [Boolean]
441
+ attr_accessor :enabled
442
+ alias_method :enabled?, :enabled
443
+
444
+ # Set strength of the deblocker. Enter a value between 0 and 1. The higher the
445
+ # value, the stronger the block removal. 0 is no deblocking. The default is 0.
446
+ # Corresponds to the JSON property `strength`
447
+ # @return [Float]
448
+ attr_accessor :strength
449
+
450
+ def initialize(**args)
451
+ update!(**args)
452
+ end
453
+
454
+ # Update properties of this object
455
+ def update!(**args)
456
+ @enabled = args[:enabled] if args.key?(:enabled)
457
+ @strength = args[:strength] if args.key?(:strength)
458
+ end
459
+ end
460
+
461
+ # Denoise preprocessing configuration.
462
+ class Denoise
463
+ include Google::Apis::Core::Hashable
464
+
465
+ # Set strength of the denoise. Enter a value between 0 and 1. The higher the
466
+ # value, the smoother the image. 0 is no denoising. The default is 0.
467
+ # Corresponds to the JSON property `strength`
468
+ # @return [Float]
469
+ attr_accessor :strength
470
+
471
+ # Set the denoiser mode. The default is `"standard"`. Supported denoiser modes: -
472
+ # 'standard' - 'grain'
473
+ # Corresponds to the JSON property `tune`
474
+ # @return [String]
475
+ attr_accessor :tune
476
+
477
+ def initialize(**args)
478
+ update!(**args)
479
+ end
480
+
481
+ # Update properties of this object
482
+ def update!(**args)
483
+ @strength = args[:strength] if args.key?(:strength)
484
+ @tune = args[:tune] if args.key?(:tune)
485
+ end
486
+ end
487
+
488
+ # Edit atom.
489
+ class EditAtom
490
+ include Google::Apis::Core::Hashable
491
+
492
+ # End time in seconds for the atom, relative to the input file timeline. When `
493
+ # end_time_offset` is not specified, the `inputs` are used until the end of the
494
+ # atom.
495
+ # Corresponds to the JSON property `endTimeOffset`
496
+ # @return [String]
497
+ attr_accessor :end_time_offset
498
+
499
+ # List of `Input.key`s identifying files that should be used in this atom. The
500
+ # listed `inputs` must have the same timeline.
501
+ # Corresponds to the JSON property `inputs`
502
+ # @return [Array<String>]
503
+ attr_accessor :inputs
504
+
505
+ # A unique key for this atom. Must be specified when using advanced mapping.
506
+ # Corresponds to the JSON property `key`
507
+ # @return [String]
508
+ attr_accessor :key
509
+
510
+ # Start time in seconds for the atom, relative to the input file timeline. The
511
+ # default is `0s`.
512
+ # Corresponds to the JSON property `startTimeOffset`
513
+ # @return [String]
514
+ attr_accessor :start_time_offset
515
+
516
+ def initialize(**args)
517
+ update!(**args)
518
+ end
519
+
520
+ # Update properties of this object
521
+ def update!(**args)
522
+ @end_time_offset = args[:end_time_offset] if args.key?(:end_time_offset)
523
+ @inputs = args[:inputs] if args.key?(:inputs)
524
+ @key = args[:key] if args.key?(:key)
525
+ @start_time_offset = args[:start_time_offset] if args.key?(:start_time_offset)
526
+ end
527
+ end
528
+
529
+ # Encoding of an input file such as an audio, video, or text track. Elementary
530
+ # streams must be packaged before mapping and sharing between different output
531
+ # formats.
532
+ class ElementaryStream
533
+ include Google::Apis::Core::Hashable
534
+
535
+ # Audio stream resource.
536
+ # Corresponds to the JSON property `audioStream`
537
+ # @return [Google::Apis::TranscoderV1beta1::AudioStream]
538
+ attr_accessor :audio_stream
539
+
540
+ # A unique key for this elementary stream.
541
+ # Corresponds to the JSON property `key`
542
+ # @return [String]
543
+ attr_accessor :key
544
+
545
+ # Encoding of a text stream. For example, closed captions or subtitles.
546
+ # Corresponds to the JSON property `textStream`
547
+ # @return [Google::Apis::TranscoderV1beta1::TextStream]
548
+ attr_accessor :text_stream
549
+
550
+ # Video stream resource.
551
+ # Corresponds to the JSON property `videoStream`
552
+ # @return [Google::Apis::TranscoderV1beta1::VideoStream]
553
+ attr_accessor :video_stream
554
+
555
+ def initialize(**args)
556
+ update!(**args)
557
+ end
558
+
559
+ # Update properties of this object
560
+ def update!(**args)
561
+ @audio_stream = args[:audio_stream] if args.key?(:audio_stream)
562
+ @key = args[:key] if args.key?(:key)
563
+ @text_stream = args[:text_stream] if args.key?(:text_stream)
564
+ @video_stream = args[:video_stream] if args.key?(:video_stream)
565
+ end
566
+ end
567
+
568
+ # A generic empty message that you can re-use to avoid defining duplicated empty
569
+ # messages in your APIs. A typical example is to use it as the request or the
570
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
571
+ # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
572
+ # `Empty` is empty JSON object ````.
573
+ class Empty
574
+ include Google::Apis::Core::Hashable
575
+
576
+ def initialize(**args)
577
+ update!(**args)
578
+ end
579
+
580
+ # Update properties of this object
581
+ def update!(**args)
582
+ end
583
+ end
584
+
585
+ # Encryption settings.
586
+ class Encryption
587
+ include Google::Apis::Core::Hashable
588
+
589
+ # Configuration for AES-128 encryption.
590
+ # Corresponds to the JSON property `aes128`
591
+ # @return [Google::Apis::TranscoderV1beta1::Aes128Encryption]
592
+ attr_accessor :aes128
593
+
594
+ # Required. 128 bit Initialization Vector (IV) represented as lowercase
595
+ # hexadecimal digits.
596
+ # Corresponds to the JSON property `iv`
597
+ # @return [String]
598
+ attr_accessor :iv
599
+
600
+ # Required. 128 bit encryption key represented as lowercase hexadecimal digits.
601
+ # Corresponds to the JSON property `key`
602
+ # @return [String]
603
+ attr_accessor :key
604
+
605
+ # Configuration for MPEG Common Encryption (MPEG-CENC).
606
+ # Corresponds to the JSON property `mpegCenc`
607
+ # @return [Google::Apis::TranscoderV1beta1::MpegCommonEncryption]
608
+ attr_accessor :mpeg_cenc
609
+
610
+ # Configuration for SAMPLE-AES encryption.
611
+ # Corresponds to the JSON property `sampleAes`
612
+ # @return [Google::Apis::TranscoderV1beta1::SampleAesEncryption]
613
+ attr_accessor :sample_aes
614
+
615
+ def initialize(**args)
616
+ update!(**args)
617
+ end
618
+
619
+ # Update properties of this object
620
+ def update!(**args)
621
+ @aes128 = args[:aes128] if args.key?(:aes128)
622
+ @iv = args[:iv] if args.key?(:iv)
623
+ @key = args[:key] if args.key?(:key)
624
+ @mpeg_cenc = args[:mpeg_cenc] if args.key?(:mpeg_cenc)
625
+ @sample_aes = args[:sample_aes] if args.key?(:sample_aes)
626
+ end
627
+ end
628
+
629
+ # Additional information about the reasons for the failure.
630
+ class FailureDetail
631
+ include Google::Apis::Core::Hashable
632
+
633
+ # A description of the failure.
634
+ # Corresponds to the JSON property `description`
635
+ # @return [String]
636
+ attr_accessor :description
637
+
638
+ def initialize(**args)
639
+ update!(**args)
640
+ end
641
+
642
+ # Update properties of this object
643
+ def update!(**args)
644
+ @description = args[:description] if args.key?(:description)
645
+ end
646
+ end
647
+
648
+ # Overlaid jpeg image.
649
+ class Image
650
+ include Google::Apis::Core::Hashable
651
+
652
+ # Target image opacity. Valid values: `1` (solid, default), `0` (transparent).
653
+ # Corresponds to the JSON property `alpha`
654
+ # @return [Float]
655
+ attr_accessor :alpha
656
+
657
+ # 2D normalized coordinates. Default: ``0.0, 0.0``
658
+ # Corresponds to the JSON property `resolution`
659
+ # @return [Google::Apis::TranscoderV1beta1::NormalizedCoordinate]
660
+ attr_accessor :resolution
661
+
662
+ # Required. URI of the image in Cloud Storage. For example, `gs://bucket/inputs/
663
+ # image.jpeg`.
664
+ # Corresponds to the JSON property `uri`
665
+ # @return [String]
666
+ attr_accessor :uri
667
+
668
+ def initialize(**args)
669
+ update!(**args)
670
+ end
671
+
672
+ # Update properties of this object
673
+ def update!(**args)
674
+ @alpha = args[:alpha] if args.key?(:alpha)
675
+ @resolution = args[:resolution] if args.key?(:resolution)
676
+ @uri = args[:uri] if args.key?(:uri)
677
+ end
678
+ end
679
+
680
+ # Input asset.
681
+ class Input
682
+ include Google::Apis::Core::Hashable
683
+
684
+ # A unique key for this input. Must be specified when using advanced mapping and
685
+ # edit lists.
686
+ # Corresponds to the JSON property `key`
687
+ # @return [String]
688
+ attr_accessor :key
689
+
690
+ # Preprocessing configurations.
691
+ # Corresponds to the JSON property `preprocessingConfig`
692
+ # @return [Google::Apis::TranscoderV1beta1::PreprocessingConfig]
693
+ attr_accessor :preprocessing_config
694
+
695
+ # URI of the media. It must be stored in Cloud Storage. Example `gs://bucket/
696
+ # inputs/file.mp4`. If empty the value will be populated from `Job.input_uri`.
697
+ # Corresponds to the JSON property `uri`
698
+ # @return [String]
699
+ attr_accessor :uri
700
+
701
+ def initialize(**args)
702
+ update!(**args)
703
+ end
704
+
705
+ # Update properties of this object
706
+ def update!(**args)
707
+ @key = args[:key] if args.key?(:key)
708
+ @preprocessing_config = args[:preprocessing_config] if args.key?(:preprocessing_config)
709
+ @uri = args[:uri] if args.key?(:uri)
710
+ end
711
+ end
712
+
713
+ # Transcoding job resource.
714
+ class Job
715
+ include Google::Apis::Core::Hashable
716
+
717
+ # Job configuration
718
+ # Corresponds to the JSON property `config`
719
+ # @return [Google::Apis::TranscoderV1beta1::JobConfig]
720
+ attr_accessor :config
721
+
722
+ # Output only. The time the job was created.
723
+ # Corresponds to the JSON property `createTime`
724
+ # @return [String]
725
+ attr_accessor :create_time
726
+
727
+ # Output only. The time the transcoding finished.
728
+ # Corresponds to the JSON property `endTime`
729
+ # @return [String]
730
+ attr_accessor :end_time
731
+
732
+ # Output only. List of failure details. This property may contain additional
733
+ # information about the failure when `failure_reason` is present. *Note*: This
734
+ # feature is not yet available.
735
+ # Corresponds to the JSON property `failureDetails`
736
+ # @return [Array<Google::Apis::TranscoderV1beta1::FailureDetail>]
737
+ attr_accessor :failure_details
738
+
739
+ # Output only. A description of the reason for the failure. This property is
740
+ # always present when `state` is `FAILED`.
741
+ # Corresponds to the JSON property `failureReason`
742
+ # @return [String]
743
+ attr_accessor :failure_reason
744
+
745
+ # Input only. Specify the `input_uri` to populate empty `uri` fields in each
746
+ # element of `Job.config.inputs` or `JobTemplate.config.inputs` when using
747
+ # template. URI of the media. It must be stored in Cloud Storage. For example, `
748
+ # gs://bucket/inputs/file.mp4`.
749
+ # Corresponds to the JSON property `inputUri`
750
+ # @return [String]
751
+ attr_accessor :input_uri
752
+
753
+ # The resource name of the job. Format: `projects/`project`/locations/`location`/
754
+ # jobs/`job``
755
+ # Corresponds to the JSON property `name`
756
+ # @return [String]
757
+ attr_accessor :name
758
+
759
+ # The origin URI.
760
+ # Corresponds to the JSON property `originUri`
761
+ # @return [Google::Apis::TranscoderV1beta1::OriginUri]
762
+ attr_accessor :origin_uri
763
+
764
+ # Input only. Specify the `output_uri` to populate an empty `Job.config.output.
765
+ # uri` or `JobTemplate.config.output.uri` when using template. URI for the
766
+ # output file(s). For example, `gs://my-bucket/outputs/`.
767
+ # Corresponds to the JSON property `outputUri`
768
+ # @return [String]
769
+ attr_accessor :output_uri
770
+
771
+ # Specify the priority of the job. Enter a value between 0 and 100, where 0 is
772
+ # the lowest priority and 100 is the highest priority. The default is 0.
773
+ # Corresponds to the JSON property `priority`
774
+ # @return [Fixnum]
775
+ attr_accessor :priority
776
+
777
+ # Estimated fractional progress for each step, from `0` to `1`.
778
+ # Corresponds to the JSON property `progress`
779
+ # @return [Google::Apis::TranscoderV1beta1::Progress]
780
+ attr_accessor :progress
781
+
782
+ # Output only. The time the transcoding started.
783
+ # Corresponds to the JSON property `startTime`
784
+ # @return [String]
785
+ attr_accessor :start_time
786
+
787
+ # Output only. The current state of the job.
788
+ # Corresponds to the JSON property `state`
789
+ # @return [String]
790
+ attr_accessor :state
791
+
792
+ # Input only. Specify the `template_id` to use for populating `Job.config`. The
793
+ # default is `preset/web-hd`. Preset Transcoder templates: - `preset/`preset_id``
794
+ # - User defined JobTemplate: ``job_template_id``
795
+ # Corresponds to the JSON property `templateId`
796
+ # @return [String]
797
+ attr_accessor :template_id
798
+
799
+ # Job time to live value in days, which will be effective after job completion.
800
+ # Job should be deleted automatically after the given TTL. Enter a value between
801
+ # 1 and 90. The default is 30.
802
+ # Corresponds to the JSON property `ttlAfterCompletionDays`
803
+ # @return [Fixnum]
804
+ attr_accessor :ttl_after_completion_days
805
+
806
+ def initialize(**args)
807
+ update!(**args)
808
+ end
809
+
810
+ # Update properties of this object
811
+ def update!(**args)
812
+ @config = args[:config] if args.key?(:config)
813
+ @create_time = args[:create_time] if args.key?(:create_time)
814
+ @end_time = args[:end_time] if args.key?(:end_time)
815
+ @failure_details = args[:failure_details] if args.key?(:failure_details)
816
+ @failure_reason = args[:failure_reason] if args.key?(:failure_reason)
817
+ @input_uri = args[:input_uri] if args.key?(:input_uri)
818
+ @name = args[:name] if args.key?(:name)
819
+ @origin_uri = args[:origin_uri] if args.key?(:origin_uri)
820
+ @output_uri = args[:output_uri] if args.key?(:output_uri)
821
+ @priority = args[:priority] if args.key?(:priority)
822
+ @progress = args[:progress] if args.key?(:progress)
823
+ @start_time = args[:start_time] if args.key?(:start_time)
824
+ @state = args[:state] if args.key?(:state)
825
+ @template_id = args[:template_id] if args.key?(:template_id)
826
+ @ttl_after_completion_days = args[:ttl_after_completion_days] if args.key?(:ttl_after_completion_days)
827
+ end
828
+ end
829
+
830
+ # Job configuration
831
+ class JobConfig
832
+ include Google::Apis::Core::Hashable
833
+
834
+ # List of ad breaks. Specifies where to insert ad break tags in the output
835
+ # manifests.
836
+ # Corresponds to the JSON property `adBreaks`
837
+ # @return [Array<Google::Apis::TranscoderV1beta1::AdBreak>]
838
+ attr_accessor :ad_breaks
839
+
840
+ # List of `Edit atom`s. Defines the ultimate timeline of the resulting file or
841
+ # manifest.
842
+ # Corresponds to the JSON property `editList`
843
+ # @return [Array<Google::Apis::TranscoderV1beta1::EditAtom>]
844
+ attr_accessor :edit_list
845
+
846
+ # List of elementary streams.
847
+ # Corresponds to the JSON property `elementaryStreams`
848
+ # @return [Array<Google::Apis::TranscoderV1beta1::ElementaryStream>]
849
+ attr_accessor :elementary_streams
850
+
851
+ # List of input assets stored in Cloud Storage.
852
+ # Corresponds to the JSON property `inputs`
853
+ # @return [Array<Google::Apis::TranscoderV1beta1::Input>]
854
+ attr_accessor :inputs
855
+
856
+ # List of output manifests.
857
+ # Corresponds to the JSON property `manifests`
858
+ # @return [Array<Google::Apis::TranscoderV1beta1::Manifest>]
859
+ attr_accessor :manifests
860
+
861
+ # List of multiplexing settings for output streams.
862
+ # Corresponds to the JSON property `muxStreams`
863
+ # @return [Array<Google::Apis::TranscoderV1beta1::MuxStream>]
864
+ attr_accessor :mux_streams
865
+
866
+ # Location of output file(s) in a Cloud Storage bucket.
867
+ # Corresponds to the JSON property `output`
868
+ # @return [Google::Apis::TranscoderV1beta1::Output]
869
+ attr_accessor :output
870
+
871
+ # List of overlays on the output video, in descending Z-order.
872
+ # Corresponds to the JSON property `overlays`
873
+ # @return [Array<Google::Apis::TranscoderV1beta1::Overlay>]
874
+ attr_accessor :overlays
875
+
876
+ # A Pub/Sub destination.
877
+ # Corresponds to the JSON property `pubsubDestination`
878
+ # @return [Google::Apis::TranscoderV1beta1::PubsubDestination]
879
+ attr_accessor :pubsub_destination
880
+
881
+ # List of output sprite sheets.
882
+ # Corresponds to the JSON property `spriteSheets`
883
+ # @return [Array<Google::Apis::TranscoderV1beta1::SpriteSheet>]
884
+ attr_accessor :sprite_sheets
885
+
886
+ def initialize(**args)
887
+ update!(**args)
888
+ end
889
+
890
+ # Update properties of this object
891
+ def update!(**args)
892
+ @ad_breaks = args[:ad_breaks] if args.key?(:ad_breaks)
893
+ @edit_list = args[:edit_list] if args.key?(:edit_list)
894
+ @elementary_streams = args[:elementary_streams] if args.key?(:elementary_streams)
895
+ @inputs = args[:inputs] if args.key?(:inputs)
896
+ @manifests = args[:manifests] if args.key?(:manifests)
897
+ @mux_streams = args[:mux_streams] if args.key?(:mux_streams)
898
+ @output = args[:output] if args.key?(:output)
899
+ @overlays = args[:overlays] if args.key?(:overlays)
900
+ @pubsub_destination = args[:pubsub_destination] if args.key?(:pubsub_destination)
901
+ @sprite_sheets = args[:sprite_sheets] if args.key?(:sprite_sheets)
902
+ end
903
+ end
904
+
905
+ # Transcoding job template resource.
906
+ class JobTemplate
907
+ include Google::Apis::Core::Hashable
908
+
909
+ # Job configuration
910
+ # Corresponds to the JSON property `config`
911
+ # @return [Google::Apis::TranscoderV1beta1::JobConfig]
912
+ attr_accessor :config
913
+
914
+ # The resource name of the job template. Format: `projects/`project`/locations/`
915
+ # location`/jobTemplates/`job_template``
916
+ # Corresponds to the JSON property `name`
917
+ # @return [String]
918
+ attr_accessor :name
919
+
920
+ def initialize(**args)
921
+ update!(**args)
922
+ end
923
+
924
+ # Update properties of this object
925
+ def update!(**args)
926
+ @config = args[:config] if args.key?(:config)
927
+ @name = args[:name] if args.key?(:name)
928
+ end
929
+ end
930
+
931
+ # Response message for `TranscoderService.ListJobTemplates`.
932
+ class ListJobTemplatesResponse
933
+ include Google::Apis::Core::Hashable
934
+
935
+ # List of job templates in the specified region.
936
+ # Corresponds to the JSON property `jobTemplates`
937
+ # @return [Array<Google::Apis::TranscoderV1beta1::JobTemplate>]
938
+ attr_accessor :job_templates
939
+
940
+ # The pagination token.
941
+ # Corresponds to the JSON property `nextPageToken`
942
+ # @return [String]
943
+ attr_accessor :next_page_token
944
+
945
+ def initialize(**args)
946
+ update!(**args)
947
+ end
948
+
949
+ # Update properties of this object
950
+ def update!(**args)
951
+ @job_templates = args[:job_templates] if args.key?(:job_templates)
952
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
953
+ end
954
+ end
955
+
956
+ # Response message for `TranscoderService.ListJobs`.
957
+ class ListJobsResponse
958
+ include Google::Apis::Core::Hashable
959
+
960
+ # List of jobs in the specified region.
961
+ # Corresponds to the JSON property `jobs`
962
+ # @return [Array<Google::Apis::TranscoderV1beta1::Job>]
963
+ attr_accessor :jobs
964
+
965
+ # The pagination token.
966
+ # Corresponds to the JSON property `nextPageToken`
967
+ # @return [String]
968
+ attr_accessor :next_page_token
969
+
970
+ def initialize(**args)
971
+ update!(**args)
972
+ end
973
+
974
+ # Update properties of this object
975
+ def update!(**args)
976
+ @jobs = args[:jobs] if args.key?(:jobs)
977
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
978
+ end
979
+ end
980
+
981
+ # Manifest configuration.
982
+ class Manifest
983
+ include Google::Apis::Core::Hashable
984
+
985
+ # The name of the generated file. The default is `"manifest"` with the extension
986
+ # suffix corresponding to the `Manifest.type`.
987
+ # Corresponds to the JSON property `fileName`
988
+ # @return [String]
989
+ attr_accessor :file_name
990
+
991
+ # Required. List of user given `MuxStream.key`s that should appear in this
992
+ # manifest. When `Manifest.type` is `HLS`, a media manifest with name `MuxStream.
993
+ # key` and `.m3u8` extension is generated for each element of the `Manifest.
994
+ # mux_streams`.
995
+ # Corresponds to the JSON property `muxStreams`
996
+ # @return [Array<String>]
997
+ attr_accessor :mux_streams
998
+
999
+ # Required. Type of the manifest, can be "HLS" or "DASH".
1000
+ # Corresponds to the JSON property `type`
1001
+ # @return [String]
1002
+ attr_accessor :type
1003
+
1004
+ def initialize(**args)
1005
+ update!(**args)
1006
+ end
1007
+
1008
+ # Update properties of this object
1009
+ def update!(**args)
1010
+ @file_name = args[:file_name] if args.key?(:file_name)
1011
+ @mux_streams = args[:mux_streams] if args.key?(:mux_streams)
1012
+ @type = args[:type] if args.key?(:type)
1013
+ end
1014
+ end
1015
+
1016
+ # Configuration for MPEG Common Encryption (MPEG-CENC).
1017
+ class MpegCommonEncryption
1018
+ include Google::Apis::Core::Hashable
1019
+
1020
+ # Required. 128 bit Key ID represented as lowercase hexadecimal digits for use
1021
+ # with common encryption.
1022
+ # Corresponds to the JSON property `keyId`
1023
+ # @return [String]
1024
+ attr_accessor :key_id
1025
+
1026
+ # Required. Specify the encryption scheme. Supported encryption schemes: - 'cenc'
1027
+ # - 'cbcs'
1028
+ # Corresponds to the JSON property `scheme`
1029
+ # @return [String]
1030
+ attr_accessor :scheme
1031
+
1032
+ def initialize(**args)
1033
+ update!(**args)
1034
+ end
1035
+
1036
+ # Update properties of this object
1037
+ def update!(**args)
1038
+ @key_id = args[:key_id] if args.key?(:key_id)
1039
+ @scheme = args[:scheme] if args.key?(:scheme)
1040
+ end
1041
+ end
1042
+
1043
+ # Multiplexing settings for output stream.
1044
+ class MuxStream
1045
+ include Google::Apis::Core::Hashable
1046
+
1047
+ # The container format. The default is `"mp4"` Supported container formats: - '
1048
+ # ts' - 'fmp4'- the corresponding file extension is `".m4s"` - 'mp4' - 'vtt'
1049
+ # Corresponds to the JSON property `container`
1050
+ # @return [String]
1051
+ attr_accessor :container
1052
+
1053
+ # List of `ElementaryStream.key`s multiplexed in this stream.
1054
+ # Corresponds to the JSON property `elementaryStreams`
1055
+ # @return [Array<String>]
1056
+ attr_accessor :elementary_streams
1057
+
1058
+ # Encryption settings.
1059
+ # Corresponds to the JSON property `encryption`
1060
+ # @return [Google::Apis::TranscoderV1beta1::Encryption]
1061
+ attr_accessor :encryption
1062
+
1063
+ # The name of the generated file. The default is `MuxStream.key` with the
1064
+ # extension suffix corresponding to the `MuxStream.container`. Individual
1065
+ # segments also have an incremental 10-digit zero-padded suffix starting from 0
1066
+ # before the extension, such as `"mux_stream0000000123.ts"`.
1067
+ # Corresponds to the JSON property `fileName`
1068
+ # @return [String]
1069
+ attr_accessor :file_name
1070
+
1071
+ # A unique key for this multiplexed stream. HLS media manifests will be named `
1072
+ # MuxStream.key` with the `".m3u8"` extension suffix.
1073
+ # Corresponds to the JSON property `key`
1074
+ # @return [String]
1075
+ attr_accessor :key
1076
+
1077
+ # Segment settings for `"ts"`, `"fmp4"` and `"vtt"`.
1078
+ # Corresponds to the JSON property `segmentSettings`
1079
+ # @return [Google::Apis::TranscoderV1beta1::SegmentSettings]
1080
+ attr_accessor :segment_settings
1081
+
1082
+ def initialize(**args)
1083
+ update!(**args)
1084
+ end
1085
+
1086
+ # Update properties of this object
1087
+ def update!(**args)
1088
+ @container = args[:container] if args.key?(:container)
1089
+ @elementary_streams = args[:elementary_streams] if args.key?(:elementary_streams)
1090
+ @encryption = args[:encryption] if args.key?(:encryption)
1091
+ @file_name = args[:file_name] if args.key?(:file_name)
1092
+ @key = args[:key] if args.key?(:key)
1093
+ @segment_settings = args[:segment_settings] if args.key?(:segment_settings)
1094
+ end
1095
+ end
1096
+
1097
+ # 2D normalized coordinates. Default: ``0.0, 0.0``
1098
+ class NormalizedCoordinate
1099
+ include Google::Apis::Core::Hashable
1100
+
1101
+ # Normalized x coordinate.
1102
+ # Corresponds to the JSON property `x`
1103
+ # @return [Float]
1104
+ attr_accessor :x
1105
+
1106
+ # Normalized y coordinate.
1107
+ # Corresponds to the JSON property `y`
1108
+ # @return [Float]
1109
+ attr_accessor :y
1110
+
1111
+ def initialize(**args)
1112
+ update!(**args)
1113
+ end
1114
+
1115
+ # Update properties of this object
1116
+ def update!(**args)
1117
+ @x = args[:x] if args.key?(:x)
1118
+ @y = args[:y] if args.key?(:y)
1119
+ end
1120
+ end
1121
+
1122
+ # The origin URI.
1123
+ class OriginUri
1124
+ include Google::Apis::Core::Hashable
1125
+
1126
+ # Dash manifest URI. If multiple Dash manifests are created, only the first one
1127
+ # is listed.
1128
+ # Corresponds to the JSON property `dash`
1129
+ # @return [String]
1130
+ attr_accessor :dash
1131
+
1132
+ # HLS manifest URI per https://tools.ietf.org/html/rfc8216#section-4.3.4. If
1133
+ # multiple HLS manifests are created, only the first one is listed.
1134
+ # Corresponds to the JSON property `hls`
1135
+ # @return [String]
1136
+ attr_accessor :hls
1137
+
1138
+ def initialize(**args)
1139
+ update!(**args)
1140
+ end
1141
+
1142
+ # Update properties of this object
1143
+ def update!(**args)
1144
+ @dash = args[:dash] if args.key?(:dash)
1145
+ @hls = args[:hls] if args.key?(:hls)
1146
+ end
1147
+ end
1148
+
1149
+ # Location of output file(s) in a Cloud Storage bucket.
1150
+ class Output
1151
+ include Google::Apis::Core::Hashable
1152
+
1153
+ # URI for the output file(s). For example, `gs://my-bucket/outputs/`. If empty
1154
+ # the value is populated from `Job.output_uri`.
1155
+ # Corresponds to the JSON property `uri`
1156
+ # @return [String]
1157
+ attr_accessor :uri
1158
+
1159
+ def initialize(**args)
1160
+ update!(**args)
1161
+ end
1162
+
1163
+ # Update properties of this object
1164
+ def update!(**args)
1165
+ @uri = args[:uri] if args.key?(:uri)
1166
+ end
1167
+ end
1168
+
1169
+ # Overlay configuration.
1170
+ class Overlay
1171
+ include Google::Apis::Core::Hashable
1172
+
1173
+ # List of Animations. The list should be chronological, without any time overlap.
1174
+ # Corresponds to the JSON property `animations`
1175
+ # @return [Array<Google::Apis::TranscoderV1beta1::Animation>]
1176
+ attr_accessor :animations
1177
+
1178
+ # Overlaid jpeg image.
1179
+ # Corresponds to the JSON property `image`
1180
+ # @return [Google::Apis::TranscoderV1beta1::Image]
1181
+ attr_accessor :image
1182
+
1183
+ def initialize(**args)
1184
+ update!(**args)
1185
+ end
1186
+
1187
+ # Update properties of this object
1188
+ def update!(**args)
1189
+ @animations = args[:animations] if args.key?(:animations)
1190
+ @image = args[:image] if args.key?(:image)
1191
+ end
1192
+ end
1193
+
1194
+ # Preprocessing configurations.
1195
+ class PreprocessingConfig
1196
+ include Google::Apis::Core::Hashable
1197
+
1198
+ # Audio preprocessing configuration.
1199
+ # Corresponds to the JSON property `audio`
1200
+ # @return [Google::Apis::TranscoderV1beta1::Audio]
1201
+ attr_accessor :audio
1202
+
1203
+ # Color preprocessing configuration.
1204
+ # Corresponds to the JSON property `color`
1205
+ # @return [Google::Apis::TranscoderV1beta1::Color]
1206
+ attr_accessor :color
1207
+
1208
+ # Video cropping configuration for the input video. The cropped input video is
1209
+ # scaled to match the output resolution.
1210
+ # Corresponds to the JSON property `crop`
1211
+ # @return [Google::Apis::TranscoderV1beta1::Crop]
1212
+ attr_accessor :crop
1213
+
1214
+ # Deblock preprocessing configuration.
1215
+ # Corresponds to the JSON property `deblock`
1216
+ # @return [Google::Apis::TranscoderV1beta1::Deblock]
1217
+ attr_accessor :deblock
1218
+
1219
+ # Denoise preprocessing configuration.
1220
+ # Corresponds to the JSON property `denoise`
1221
+ # @return [Google::Apis::TranscoderV1beta1::Denoise]
1222
+ attr_accessor :denoise
1223
+
1224
+ def initialize(**args)
1225
+ update!(**args)
1226
+ end
1227
+
1228
+ # Update properties of this object
1229
+ def update!(**args)
1230
+ @audio = args[:audio] if args.key?(:audio)
1231
+ @color = args[:color] if args.key?(:color)
1232
+ @crop = args[:crop] if args.key?(:crop)
1233
+ @deblock = args[:deblock] if args.key?(:deblock)
1234
+ @denoise = args[:denoise] if args.key?(:denoise)
1235
+ end
1236
+ end
1237
+
1238
+ # Estimated fractional progress for each step, from `0` to `1`.
1239
+ class Progress
1240
+ include Google::Apis::Core::Hashable
1241
+
1242
+ # Estimated fractional progress for `analyzing` step.
1243
+ # Corresponds to the JSON property `analyzed`
1244
+ # @return [Float]
1245
+ attr_accessor :analyzed
1246
+
1247
+ # Estimated fractional progress for `encoding` step.
1248
+ # Corresponds to the JSON property `encoded`
1249
+ # @return [Float]
1250
+ attr_accessor :encoded
1251
+
1252
+ # Estimated fractional progress for `notifying` step.
1253
+ # Corresponds to the JSON property `notified`
1254
+ # @return [Float]
1255
+ attr_accessor :notified
1256
+
1257
+ # Estimated fractional progress for `uploading` step.
1258
+ # Corresponds to the JSON property `uploaded`
1259
+ # @return [Float]
1260
+ attr_accessor :uploaded
1261
+
1262
+ def initialize(**args)
1263
+ update!(**args)
1264
+ end
1265
+
1266
+ # Update properties of this object
1267
+ def update!(**args)
1268
+ @analyzed = args[:analyzed] if args.key?(:analyzed)
1269
+ @encoded = args[:encoded] if args.key?(:encoded)
1270
+ @notified = args[:notified] if args.key?(:notified)
1271
+ @uploaded = args[:uploaded] if args.key?(:uploaded)
1272
+ end
1273
+ end
1274
+
1275
+ # A Pub/Sub destination.
1276
+ class PubsubDestination
1277
+ include Google::Apis::Core::Hashable
1278
+
1279
+ # The name of the Pub/Sub topic to publish job completion notification to. For
1280
+ # example: `projects/`project`/topics/`topic``.
1281
+ # Corresponds to the JSON property `topic`
1282
+ # @return [String]
1283
+ attr_accessor :topic
1284
+
1285
+ def initialize(**args)
1286
+ update!(**args)
1287
+ end
1288
+
1289
+ # Update properties of this object
1290
+ def update!(**args)
1291
+ @topic = args[:topic] if args.key?(:topic)
1292
+ end
1293
+ end
1294
+
1295
+ # Configuration for SAMPLE-AES encryption.
1296
+ class SampleAesEncryption
1297
+ include Google::Apis::Core::Hashable
1298
+
1299
+ # Required. URI of the key delivery service. This URI is inserted into the M3U8
1300
+ # header.
1301
+ # Corresponds to the JSON property `keyUri`
1302
+ # @return [String]
1303
+ attr_accessor :key_uri
1304
+
1305
+ def initialize(**args)
1306
+ update!(**args)
1307
+ end
1308
+
1309
+ # Update properties of this object
1310
+ def update!(**args)
1311
+ @key_uri = args[:key_uri] if args.key?(:key_uri)
1312
+ end
1313
+ end
1314
+
1315
+ # Segment settings for `"ts"`, `"fmp4"` and `"vtt"`.
1316
+ class SegmentSettings
1317
+ include Google::Apis::Core::Hashable
1318
+
1319
+ # Required. Create an individual segment file. The default is `false`.
1320
+ # Corresponds to the JSON property `individualSegments`
1321
+ # @return [Boolean]
1322
+ attr_accessor :individual_segments
1323
+ alias_method :individual_segments?, :individual_segments
1324
+
1325
+ # Duration of the segments in seconds. The default is `"6.0s"`.
1326
+ # Corresponds to the JSON property `segmentDuration`
1327
+ # @return [String]
1328
+ attr_accessor :segment_duration
1329
+
1330
+ def initialize(**args)
1331
+ update!(**args)
1332
+ end
1333
+
1334
+ # Update properties of this object
1335
+ def update!(**args)
1336
+ @individual_segments = args[:individual_segments] if args.key?(:individual_segments)
1337
+ @segment_duration = args[:segment_duration] if args.key?(:segment_duration)
1338
+ end
1339
+ end
1340
+
1341
+ # Sprite sheet configuration.
1342
+ class SpriteSheet
1343
+ include Google::Apis::Core::Hashable
1344
+
1345
+ # The maximum number of sprites per row in a sprite sheet. The default is 0,
1346
+ # which indicates no maximum limit.
1347
+ # Corresponds to the JSON property `columnCount`
1348
+ # @return [Fixnum]
1349
+ attr_accessor :column_count
1350
+
1351
+ # End time in seconds, relative to the output file timeline. When `
1352
+ # end_time_offset` is not specified, the sprites are generated until the end of
1353
+ # the output file.
1354
+ # Corresponds to the JSON property `endTimeOffset`
1355
+ # @return [String]
1356
+ attr_accessor :end_time_offset
1357
+
1358
+ # Required. File name prefix for the generated sprite sheets. Each sprite sheet
1359
+ # has an incremental 10-digit zero-padded suffix starting from 0 before the
1360
+ # extension, such as `"sprite_sheet0000000123.jpeg"`.
1361
+ # Corresponds to the JSON property `filePrefix`
1362
+ # @return [String]
1363
+ attr_accessor :file_prefix
1364
+
1365
+ # Format type. The default is `"jpeg"`. Supported formats: - 'jpeg'
1366
+ # Corresponds to the JSON property `format`
1367
+ # @return [String]
1368
+ attr_accessor :format
1369
+
1370
+ # Starting from `0s`, create sprites at regular intervals. Specify the interval
1371
+ # value in seconds.
1372
+ # Corresponds to the JSON property `interval`
1373
+ # @return [String]
1374
+ attr_accessor :interval
1375
+
1376
+ # The maximum number of rows per sprite sheet. When the sprite sheet is full, a
1377
+ # new sprite sheet is created. The default is 0, which indicates no maximum
1378
+ # limit.
1379
+ # Corresponds to the JSON property `rowCount`
1380
+ # @return [Fixnum]
1381
+ attr_accessor :row_count
1382
+
1383
+ # Required. The height of sprite in pixels. Must be an even integer.
1384
+ # Corresponds to the JSON property `spriteHeightPixels`
1385
+ # @return [Fixnum]
1386
+ attr_accessor :sprite_height_pixels
1387
+
1388
+ # Required. The width of sprite in pixels. Must be an even integer.
1389
+ # Corresponds to the JSON property `spriteWidthPixels`
1390
+ # @return [Fixnum]
1391
+ attr_accessor :sprite_width_pixels
1392
+
1393
+ # Start time in seconds, relative to the output file timeline. Determines the
1394
+ # first sprite to pick. The default is `0s`.
1395
+ # Corresponds to the JSON property `startTimeOffset`
1396
+ # @return [String]
1397
+ attr_accessor :start_time_offset
1398
+
1399
+ # Total number of sprites. Create the specified number of sprites distributed
1400
+ # evenly across the timeline of the output media. The default is 100.
1401
+ # Corresponds to the JSON property `totalCount`
1402
+ # @return [Fixnum]
1403
+ attr_accessor :total_count
1404
+
1405
+ def initialize(**args)
1406
+ update!(**args)
1407
+ end
1408
+
1409
+ # Update properties of this object
1410
+ def update!(**args)
1411
+ @column_count = args[:column_count] if args.key?(:column_count)
1412
+ @end_time_offset = args[:end_time_offset] if args.key?(:end_time_offset)
1413
+ @file_prefix = args[:file_prefix] if args.key?(:file_prefix)
1414
+ @format = args[:format] if args.key?(:format)
1415
+ @interval = args[:interval] if args.key?(:interval)
1416
+ @row_count = args[:row_count] if args.key?(:row_count)
1417
+ @sprite_height_pixels = args[:sprite_height_pixels] if args.key?(:sprite_height_pixels)
1418
+ @sprite_width_pixels = args[:sprite_width_pixels] if args.key?(:sprite_width_pixels)
1419
+ @start_time_offset = args[:start_time_offset] if args.key?(:start_time_offset)
1420
+ @total_count = args[:total_count] if args.key?(:total_count)
1421
+ end
1422
+ end
1423
+
1424
+ # The mapping for the `Job.edit_list` atoms with text `EditAtom.inputs`.
1425
+ class TextAtom
1426
+ include Google::Apis::Core::Hashable
1427
+
1428
+ # List of `Job.inputs` that should be embedded in this atom. Only one input is
1429
+ # supported.
1430
+ # Corresponds to the JSON property `inputs`
1431
+ # @return [Array<Google::Apis::TranscoderV1beta1::TextInput>]
1432
+ attr_accessor :inputs
1433
+
1434
+ # Required. The `EditAtom.key` that references atom with text inputs in the `Job.
1435
+ # edit_list`.
1436
+ # Corresponds to the JSON property `key`
1437
+ # @return [String]
1438
+ attr_accessor :key
1439
+
1440
+ def initialize(**args)
1441
+ update!(**args)
1442
+ end
1443
+
1444
+ # Update properties of this object
1445
+ def update!(**args)
1446
+ @inputs = args[:inputs] if args.key?(:inputs)
1447
+ @key = args[:key] if args.key?(:key)
1448
+ end
1449
+ end
1450
+
1451
+ # Identifies which input file and track should be used.
1452
+ class TextInput
1453
+ include Google::Apis::Core::Hashable
1454
+
1455
+ # Required. The `Input.key` that identifies the input file.
1456
+ # Corresponds to the JSON property `key`
1457
+ # @return [String]
1458
+ attr_accessor :key
1459
+
1460
+ # Required. The zero-based index of the track in the input file.
1461
+ # Corresponds to the JSON property `track`
1462
+ # @return [Fixnum]
1463
+ attr_accessor :track
1464
+
1465
+ def initialize(**args)
1466
+ update!(**args)
1467
+ end
1468
+
1469
+ # Update properties of this object
1470
+ def update!(**args)
1471
+ @key = args[:key] if args.key?(:key)
1472
+ @track = args[:track] if args.key?(:track)
1473
+ end
1474
+ end
1475
+
1476
+ # Encoding of a text stream. For example, closed captions or subtitles.
1477
+ class TextStream
1478
+ include Google::Apis::Core::Hashable
1479
+
1480
+ # The codec for this text stream. The default is `"webvtt"`. Supported text
1481
+ # codecs: - 'srt' - 'ttml' - 'cea608' - 'cea708' - 'webvtt'
1482
+ # Corresponds to the JSON property `codec`
1483
+ # @return [String]
1484
+ attr_accessor :codec
1485
+
1486
+ # Required. The BCP-47 language code, such as `"en-US"` or `"sr-Latn"`. For more
1487
+ # information, see https://www.unicode.org/reports/tr35/#
1488
+ # Unicode_locale_identifier.
1489
+ # Corresponds to the JSON property `languageCode`
1490
+ # @return [String]
1491
+ attr_accessor :language_code
1492
+
1493
+ # The mapping for the `Job.edit_list` atoms with text `EditAtom.inputs`.
1494
+ # Corresponds to the JSON property `mapping`
1495
+ # @return [Array<Google::Apis::TranscoderV1beta1::TextAtom>]
1496
+ attr_accessor :mapping
1497
+
1498
+ def initialize(**args)
1499
+ update!(**args)
1500
+ end
1501
+
1502
+ # Update properties of this object
1503
+ def update!(**args)
1504
+ @codec = args[:codec] if args.key?(:codec)
1505
+ @language_code = args[:language_code] if args.key?(:language_code)
1506
+ @mapping = args[:mapping] if args.key?(:mapping)
1507
+ end
1508
+ end
1509
+
1510
+ # Video stream resource.
1511
+ class VideoStream
1512
+ include Google::Apis::Core::Hashable
1513
+
1514
+ # Specifies whether an open Group of Pictures (GOP) structure should be allowed
1515
+ # or not. The default is `false`.
1516
+ # Corresponds to the JSON property `allowOpenGop`
1517
+ # @return [Boolean]
1518
+ attr_accessor :allow_open_gop
1519
+ alias_method :allow_open_gop?, :allow_open_gop
1520
+
1521
+ # Specify the intensity of the adaptive quantizer (AQ). Must be between 0 and 1,
1522
+ # where 0 disables the quantizer and 1 maximizes the quantizer. A higher value
1523
+ # equals a lower bitrate but smoother image. The default is 0.
1524
+ # Corresponds to the JSON property `aqStrength`
1525
+ # @return [Float]
1526
+ attr_accessor :aq_strength
1527
+
1528
+ # The number of consecutive B-frames. Must be greater than or equal to zero.
1529
+ # Must be less than `VideoStream.gop_frame_count` if set. The default is 0.
1530
+ # Corresponds to the JSON property `bFrameCount`
1531
+ # @return [Fixnum]
1532
+ attr_accessor :b_frame_count
1533
+
1534
+ # Allow B-pyramid for reference frame selection. This may not be supported on
1535
+ # all decoders. The default is `false`.
1536
+ # Corresponds to the JSON property `bPyramid`
1537
+ # @return [Boolean]
1538
+ attr_accessor :b_pyramid
1539
+ alias_method :b_pyramid?, :b_pyramid
1540
+
1541
+ # Required. The video bitrate in bits per second. Must be between 1 and 1,000,
1542
+ # 000,000.
1543
+ # Corresponds to the JSON property `bitrateBps`
1544
+ # @return [Fixnum]
1545
+ attr_accessor :bitrate_bps
1546
+
1547
+ # Codec type. The following codecs are supported: * `h264` (default) * `h265` * `
1548
+ # vp9`
1549
+ # Corresponds to the JSON property `codec`
1550
+ # @return [String]
1551
+ attr_accessor :codec
1552
+
1553
+ # Target CRF level. Must be between 10 and 36, where 10 is the highest quality
1554
+ # and 36 is the most efficient compression. The default is 21.
1555
+ # Corresponds to the JSON property `crfLevel`
1556
+ # @return [Fixnum]
1557
+ attr_accessor :crf_level
1558
+
1559
+ # Use two-pass encoding strategy to achieve better video quality. `VideoStream.
1560
+ # rate_control_mode` must be `"vbr"`. The default is `false`.
1561
+ # Corresponds to the JSON property `enableTwoPass`
1562
+ # @return [Boolean]
1563
+ attr_accessor :enable_two_pass
1564
+ alias_method :enable_two_pass?, :enable_two_pass
1565
+
1566
+ # The entropy coder to use. The default is `"cabac"`. Supported entropy coders: -
1567
+ # 'cavlc' - 'cabac'
1568
+ # Corresponds to the JSON property `entropyCoder`
1569
+ # @return [String]
1570
+ attr_accessor :entropy_coder
1571
+
1572
+ # Required. The target video frame rate in frames per second (FPS). Must be less
1573
+ # than or equal to 120. Will default to the input frame rate if larger than the
1574
+ # input frame rate. The API will generate an output FPS that is divisible by the
1575
+ # input FPS, and smaller or equal to the target FPS. The following table shows
1576
+ # the computed video FPS given the target FPS (in parenthesis) and input FPS (in
1577
+ # the first column): | | (30) | (60) | (25) | (50) | |--------|--------|--------|
1578
+ # ------|------| | 240 | Fail | Fail | Fail | Fail | | 120 | 30 | 60 | 20 | 30 |
1579
+ # | 100 | 25 | 50 | 20 | 30 | | 50 | 25 | 50 | 20 | 30 | | 60 | 30 | 60 | 20 |
1580
+ # 30 | | 59.94 | 29.97 | 59.94 | 20 | 30 | | 48 | 24 | 48 | 20 | 30 | | 30 | 30 |
1581
+ # 30 | 20 | 30 | | 25 | 25 | 25 | 20 | 30 | | 24 | 24 | 24 | 20 | 30 | | 23.976
1582
+ # | 23.976 | 23.976 | 20 | 30 | | 15 | 15 | 15 | 20 | 30 | | 12 | 12 | 12 | 20 |
1583
+ # 30 | | 10 | 10 | 10 | 20 | 30 |
1584
+ # Corresponds to the JSON property `frameRate`
1585
+ # @return [Float]
1586
+ attr_accessor :frame_rate
1587
+
1588
+ # Select the GOP size based on the specified duration. The default is `"3s"`.
1589
+ # Corresponds to the JSON property `gopDuration`
1590
+ # @return [String]
1591
+ attr_accessor :gop_duration
1592
+
1593
+ # Select the GOP size based on the specified frame count. Must be greater than
1594
+ # zero.
1595
+ # Corresponds to the JSON property `gopFrameCount`
1596
+ # @return [Fixnum]
1597
+ attr_accessor :gop_frame_count
1598
+
1599
+ # The height of the video in pixels. Must be an even integer. When not specified,
1600
+ # the height is adjusted to match the specified width and input aspect ratio.
1601
+ # If both are omitted, the input height is used.
1602
+ # Corresponds to the JSON property `heightPixels`
1603
+ # @return [Fixnum]
1604
+ attr_accessor :height_pixels
1605
+
1606
+ # Pixel format to use. The default is `"yuv420p"`. Supported pixel formats: - '
1607
+ # yuv420p' pixel format. - 'yuv422p' pixel format. - 'yuv444p' pixel format. - '
1608
+ # yuv420p10' 10-bit HDR pixel format. - 'yuv422p10' 10-bit HDR pixel format. - '
1609
+ # yuv444p10' 10-bit HDR pixel format. - 'yuv420p12' 12-bit HDR pixel format. - '
1610
+ # yuv422p12' 12-bit HDR pixel format. - 'yuv444p12' 12-bit HDR pixel format.
1611
+ # Corresponds to the JSON property `pixelFormat`
1612
+ # @return [String]
1613
+ attr_accessor :pixel_format
1614
+
1615
+ # Enforces the specified codec preset. The default is `veryfast`. The available
1616
+ # options are FFmpeg-compatible. Note that certain values for this field may
1617
+ # cause the transcoder to override other fields you set in the `VideoStream`
1618
+ # message.
1619
+ # Corresponds to the JSON property `preset`
1620
+ # @return [String]
1621
+ attr_accessor :preset
1622
+
1623
+ # Enforces the specified codec profile. The following profiles are supported: * `
1624
+ # baseline` * `main` * `high` (default) The available options are FFmpeg-
1625
+ # compatible. Note that certain values for this field may cause the transcoder
1626
+ # to override other fields you set in the `VideoStream` message.
1627
+ # Corresponds to the JSON property `profile`
1628
+ # @return [String]
1629
+ attr_accessor :profile
1630
+
1631
+ # Specify the `rate_control_mode`. The default is `"vbr"`. Supported rate
1632
+ # control modes: - 'vbr' - variable bitrate - 'crf' - constant rate factor
1633
+ # Corresponds to the JSON property `rateControlMode`
1634
+ # @return [String]
1635
+ attr_accessor :rate_control_mode
1636
+
1637
+ # Enforces the specified codec tune. The available options are FFmpeg-compatible.
1638
+ # Note that certain values for this field may cause the transcoder to override
1639
+ # other fields you set in the `VideoStream` message.
1640
+ # Corresponds to the JSON property `tune`
1641
+ # @return [String]
1642
+ attr_accessor :tune
1643
+
1644
+ # Initial fullness of the Video Buffering Verifier (VBV) buffer in bits. Must be
1645
+ # greater than zero. The default is equal to 90% of `VideoStream.vbv_size_bits`.
1646
+ # Corresponds to the JSON property `vbvFullnessBits`
1647
+ # @return [Fixnum]
1648
+ attr_accessor :vbv_fullness_bits
1649
+
1650
+ # Size of the Video Buffering Verifier (VBV) buffer in bits. Must be greater
1651
+ # than zero. The default is equal to `VideoStream.bitrate_bps`.
1652
+ # Corresponds to the JSON property `vbvSizeBits`
1653
+ # @return [Fixnum]
1654
+ attr_accessor :vbv_size_bits
1655
+
1656
+ # The width of the video in pixels. Must be an even integer. When not specified,
1657
+ # the width is adjusted to match the specified height and input aspect ratio. If
1658
+ # both are omitted, the input width is used.
1659
+ # Corresponds to the JSON property `widthPixels`
1660
+ # @return [Fixnum]
1661
+ attr_accessor :width_pixels
1662
+
1663
+ def initialize(**args)
1664
+ update!(**args)
1665
+ end
1666
+
1667
+ # Update properties of this object
1668
+ def update!(**args)
1669
+ @allow_open_gop = args[:allow_open_gop] if args.key?(:allow_open_gop)
1670
+ @aq_strength = args[:aq_strength] if args.key?(:aq_strength)
1671
+ @b_frame_count = args[:b_frame_count] if args.key?(:b_frame_count)
1672
+ @b_pyramid = args[:b_pyramid] if args.key?(:b_pyramid)
1673
+ @bitrate_bps = args[:bitrate_bps] if args.key?(:bitrate_bps)
1674
+ @codec = args[:codec] if args.key?(:codec)
1675
+ @crf_level = args[:crf_level] if args.key?(:crf_level)
1676
+ @enable_two_pass = args[:enable_two_pass] if args.key?(:enable_two_pass)
1677
+ @entropy_coder = args[:entropy_coder] if args.key?(:entropy_coder)
1678
+ @frame_rate = args[:frame_rate] if args.key?(:frame_rate)
1679
+ @gop_duration = args[:gop_duration] if args.key?(:gop_duration)
1680
+ @gop_frame_count = args[:gop_frame_count] if args.key?(:gop_frame_count)
1681
+ @height_pixels = args[:height_pixels] if args.key?(:height_pixels)
1682
+ @pixel_format = args[:pixel_format] if args.key?(:pixel_format)
1683
+ @preset = args[:preset] if args.key?(:preset)
1684
+ @profile = args[:profile] if args.key?(:profile)
1685
+ @rate_control_mode = args[:rate_control_mode] if args.key?(:rate_control_mode)
1686
+ @tune = args[:tune] if args.key?(:tune)
1687
+ @vbv_fullness_bits = args[:vbv_fullness_bits] if args.key?(:vbv_fullness_bits)
1688
+ @vbv_size_bits = args[:vbv_size_bits] if args.key?(:vbv_size_bits)
1689
+ @width_pixels = args[:width_pixels] if args.key?(:width_pixels)
1690
+ end
1691
+ end
1692
+ end
1693
+ end
1694
+ end