google-cloud-video-live_stream-v1 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -56,8 +56,9 @@ module Google
56
56
  # - `ts` - the corresponding file extension is `.ts`
57
57
  # @!attribute [rw] elementary_streams
58
58
  # @return [::Array<::String>]
59
- # List of `ElementaryStream` {::Google::Cloud::Video::LiveStream::V1::ElementaryStream#key key}s multiplexed in this
60
- # stream.
59
+ # List of `ElementaryStream`
60
+ # {::Google::Cloud::Video::LiveStream::V1::ElementaryStream#key key}s multiplexed
61
+ # in this stream.
61
62
  #
62
63
  # - For `fmp4` container, must contain either one video or one audio stream.
63
64
  # - For `ts` container, must contain exactly one audio stream and up to one
@@ -65,6 +66,10 @@ module Google
65
66
  # @!attribute [rw] segment_settings
66
67
  # @return [::Google::Cloud::Video::LiveStream::V1::SegmentSettings]
67
68
  # Segment settings for `fmp4` and `ts`.
69
+ # @!attribute [rw] encryption_id
70
+ # @return [::String]
71
+ # Identifier of the encryption configuration to use. If omitted, output
72
+ # will be unencrypted.
68
73
  class MuxStream
69
74
  include ::Google::Protobuf::MessageExts
70
75
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -74,15 +79,17 @@ module Google
74
79
  # @!attribute [rw] file_name
75
80
  # @return [::String]
76
81
  # The name of the generated file. The default is `manifest` with the
77
- # extension suffix corresponding to the `Manifest` {::Google::Cloud::Video::LiveStream::V1::Manifest#type type}. If multiple
82
+ # extension suffix corresponding to the `Manifest`
83
+ # {::Google::Cloud::Video::LiveStream::V1::Manifest#type type}. If multiple
78
84
  # manifests are added to the channel, each must have a unique file name.
79
85
  # @!attribute [rw] type
80
86
  # @return [::Google::Cloud::Video::LiveStream::V1::Manifest::ManifestType]
81
87
  # Required. Type of the manifest, can be `HLS` or `DASH`.
82
88
  # @!attribute [rw] mux_streams
83
89
  # @return [::Array<::String>]
84
- # Required. List of `MuxStream` {::Google::Cloud::Video::LiveStream::V1::MuxStream#key key}s that should appear in this
85
- # manifest.
90
+ # Required. List of `MuxStream`
91
+ # {::Google::Cloud::Video::LiveStream::V1::MuxStream#key key}s that should appear
92
+ # in this manifest.
86
93
  #
87
94
  # - For HLS, either `fmp4` or `ts` mux streams can be specified but not
88
95
  # mixed.
@@ -101,6 +108,15 @@ module Google
101
108
  # errors while accessing segments which are listed in the manifest that the
102
109
  # player has, but were already deleted from the output Google Cloud Storage
103
110
  # bucket. Default value is `60s`.
111
+ # @!attribute [rw] use_timecode_as_timeline
112
+ # @return [::Boolean]
113
+ # Whether to use the timecode, as specified in timecode config, when setting:
114
+ #
115
+ # - `availabilityStartTime` attribute in DASH manifests.
116
+ # - `#EXT-X-PROGRAM-DATE-TIME` tag in HLS manifests.
117
+ #
118
+ # If false, ignore the input timecode and use the time from system clock
119
+ # when the manifest is first generated. This is the default behavior.
104
120
  class Manifest
105
121
  include ::Google::Protobuf::MessageExts
106
122
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -164,6 +180,9 @@ module Google
164
180
  end
165
181
 
166
182
  # Preprocessing configurations.
183
+ # @!attribute [rw] audio
184
+ # @return [::Google::Cloud::Video::LiveStream::V1::PreprocessingConfig::Audio]
185
+ # Audio preprocessing configuration.
167
186
  # @!attribute [rw] crop
168
187
  # @return [::Google::Cloud::Video::LiveStream::V1::PreprocessingConfig::Crop]
169
188
  # Specify the video cropping configuration.
@@ -174,6 +193,25 @@ module Google
174
193
  include ::Google::Protobuf::MessageExts
175
194
  extend ::Google::Protobuf::MessageExts::ClassMethods
176
195
 
196
+ # Audio preprocessing configuration.
197
+ # @!attribute [rw] lufs
198
+ # @return [::Float]
199
+ # Specify audio loudness normalization in loudness units relative to full
200
+ # scale (LUFS). Enter a value between -24 and 0 according to the following:
201
+ #
202
+ # - -24 is the Advanced Television Systems Committee (ATSC A/85)
203
+ # - -23 is the EU R128 broadcast standard
204
+ # - -19 is the prior standard for online mono audio
205
+ # - -18 is the ReplayGain standard
206
+ # - -16 is the prior standard for stereo audio
207
+ # - -14 is the new online audio standard recommended by Spotify, as well as
208
+ # Amazon Echo
209
+ # - 0 disables normalization. The default is 0.
210
+ class Audio
211
+ include ::Google::Protobuf::MessageExts
212
+ extend ::Google::Protobuf::MessageExts::ClassMethods
213
+ end
214
+
177
215
  # Video cropping configuration for the input video. The cropped input video
178
216
  # is scaled to match the output resolution.
179
217
  # @!attribute [rw] top_pixels
@@ -232,8 +270,8 @@ module Google
232
270
  # Valid range is [180, 1080].
233
271
  # @!attribute [rw] frame_rate
234
272
  # @return [::Float]
235
- # Required. The target video frame rate in frames per second (FPS). Must be less
236
- # than or equal to 60. Will default to the input frame rate if larger
273
+ # Required. The target video frame rate in frames per second (FPS). Must be
274
+ # less than or equal to 60. Will default to the input frame rate if larger
237
275
  # than the input frame rate. The API will generate an output FPS that is
238
276
  # divisible by the input FPS, and smaller or equal to the target FPS. See
239
277
  # [Calculating frame
@@ -260,15 +298,17 @@ module Google
260
298
  # @return [::Google::Protobuf::Duration]
261
299
  # Select the GOP size based on the specified duration. The default is
262
300
  # `2s`. Note that `gopDuration` must be less than or equal to
263
- # {::Google::Cloud::Video::LiveStream::V1::SegmentSettings#segment_duration segment_duration}, and
264
- # {::Google::Cloud::Video::LiveStream::V1::SegmentSettings#segment_duration segment_duration} must be divisible
265
- # by `gopDuration`. Valid range is [2s, 20s].
301
+ # {::Google::Cloud::Video::LiveStream::V1::SegmentSettings#segment_duration segment_duration},
302
+ # and
303
+ # {::Google::Cloud::Video::LiveStream::V1::SegmentSettings#segment_duration segment_duration}
304
+ # must be divisible by `gopDuration`. Valid range is [2s, 20s].
266
305
  #
267
306
  # All video streams in the same channel must have the same GOP size.
268
307
  # @!attribute [rw] vbv_size_bits
269
308
  # @return [::Integer]
270
309
  # Size of the Video Buffering Verifier (VBV) buffer in bits. Must be
271
- # greater than zero. The default is equal to {::Google::Cloud::Video::LiveStream::V1::VideoStream::H264CodecSettings#bitrate_bps bitrate_bps}.
310
+ # greater than zero. The default is equal to
311
+ # {::Google::Cloud::Video::LiveStream::V1::VideoStream::H264CodecSettings#bitrate_bps bitrate_bps}.
272
312
  # @!attribute [rw] vbv_fullness_bits
273
313
  # @return [::Integer]
274
314
  # Initial fullness of the Video Buffering Verifier (VBV) buffer in bits.
@@ -289,8 +329,9 @@ module Google
289
329
  # @!attribute [rw] b_frame_count
290
330
  # @return [::Integer]
291
331
  # The number of consecutive B-frames. Must be greater than or equal to
292
- # zero. Must be less than {::Google::Cloud::Video::LiveStream::V1::VideoStream::H264CodecSettings#gop_frame_count gop_frame_count} if set. The default
293
- # is 0.
332
+ # zero. Must be less than
333
+ # {::Google::Cloud::Video::LiveStream::V1::VideoStream::H264CodecSettings#gop_frame_count gop_frame_count}
334
+ # if set. The default is 0.
294
335
  # @!attribute [rw] aq_strength
295
336
  # @return [::Float]
296
337
  # Specify the intensity of the adaptive quantizer (AQ). Must be between 0
@@ -308,7 +349,8 @@ module Google
308
349
  # The available options are [FFmpeg-compatible Profile
309
350
  # Options](https://trac.ffmpeg.org/wiki/Encode/H.264#Profile).
310
351
  # Note that certain values for this field may cause the
311
- # transcoder to override other fields you set in the {::Google::Cloud::Video::LiveStream::V1::VideoStream::H264CodecSettings H264CodecSettings}
352
+ # transcoder to override other fields you set in the
353
+ # {::Google::Cloud::Video::LiveStream::V1::VideoStream::H264CodecSettings H264CodecSettings}
312
354
  # message.
313
355
  # @!attribute [rw] tune
314
356
  # @return [::String]
@@ -316,7 +358,9 @@ module Google
316
358
  # [FFmpeg-compatible Encode
317
359
  # Options](https://trac.ffmpeg.org/wiki/Encode/H.264#Tune)
318
360
  # Note that certain values for this field may cause the transcoder to
319
- # override other fields you set in the {::Google::Cloud::Video::LiveStream::V1::VideoStream::H264CodecSettings H264CodecSettings} message.
361
+ # override other fields you set in the
362
+ # {::Google::Cloud::Video::LiveStream::V1::VideoStream::H264CodecSettings H264CodecSettings}
363
+ # message.
320
364
  class H264CodecSettings
321
365
  include ::Google::Protobuf::MessageExts
322
366
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -338,7 +382,8 @@ module Google
338
382
  # - `aac`
339
383
  # @!attribute [rw] bitrate_bps
340
384
  # @return [::Integer]
341
- # Required. Audio bitrate in bits per second. Must be between 1 and 10,000,000.
385
+ # Required. Audio bitrate in bits per second. Must be between 1 and
386
+ # 10,000,000.
342
387
  # @!attribute [rw] channel_count
343
388
  # @return [::Integer]
344
389
  # Number of audio channels. Must be between 1 and 6. The default is 2.
@@ -369,21 +414,29 @@ module Google
369
414
  # The mapping for the input streams and audio channels.
370
415
  # @!attribute [rw] input_key
371
416
  # @return [::String]
372
- # Required. The `Channel` {::Google::Cloud::Video::LiveStream::V1::InputAttachment#key InputAttachment.key} that identifies the input that this
373
- # audio mapping applies to. If an active input doesn't have an audio
374
- # mapping, the primary audio track in the input stream will be selected.
417
+ # Required. The `Channel`
418
+ # {::Google::Cloud::Video::LiveStream::V1::InputAttachment#key InputAttachment.key}
419
+ # that identifies the input that this audio mapping applies to. If an
420
+ # active input doesn't have an audio mapping, the primary audio track in
421
+ # the input stream will be selected.
375
422
  # @!attribute [rw] input_track
376
423
  # @return [::Integer]
377
424
  # Required. The zero-based index of the track in the input stream.
378
- # All {::Google::Cloud::Video::LiveStream::V1::AudioStream#mapping mapping}s in the same {::Google::Cloud::Video::LiveStream::V1::AudioStream AudioStream}
379
- # must have the same input track.
425
+ # All {::Google::Cloud::Video::LiveStream::V1::AudioStream#mapping mapping}s in
426
+ # the same {::Google::Cloud::Video::LiveStream::V1::AudioStream AudioStream} must
427
+ # have the same input track.
380
428
  # @!attribute [rw] input_channel
381
429
  # @return [::Integer]
382
430
  # Required. The zero-based index of the channel in the input stream.
383
431
  # @!attribute [rw] output_channel
384
432
  # @return [::Integer]
385
433
  # Required. The zero-based index of the channel in the output audio stream.
386
- # Must be consistent with the {::Google::Cloud::Video::LiveStream::V1::AudioStream::AudioMapping#input_channel input_channel}.
434
+ # Must be consistent with the
435
+ # {::Google::Cloud::Video::LiveStream::V1::AudioStream::AudioMapping#input_channel input_channel}.
436
+ # @!attribute [rw] gain_db
437
+ # @return [::Float]
438
+ # Audio volume control in dB. Negative values decrease volume,
439
+ # positive values increase. The default is 0.
387
440
  class AudioMapping
388
441
  include ::Google::Protobuf::MessageExts
389
442
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -409,17 +462,46 @@ module Google
409
462
  # @return [::Google::Protobuf::Duration]
410
463
  # Duration of the segments in seconds. The default is `6s`. Note that
411
464
  # `segmentDuration` must be greater than or equal to
412
- # {::Google::Cloud::Video::LiveStream::V1::VideoStream::H264CodecSettings#gop_duration gop_duration}, and
413
- # `segmentDuration` must be divisible by
465
+ # {::Google::Cloud::Video::LiveStream::V1::VideoStream::H264CodecSettings#gop_duration gop_duration},
466
+ # and `segmentDuration` must be divisible by
414
467
  # {::Google::Cloud::Video::LiveStream::V1::VideoStream::H264CodecSettings#gop_duration gop_duration}.
415
468
  # Valid range is [2s, 20s].
416
469
  #
417
- # All {::Google::Cloud::Video::LiveStream::V1::Manifest#mux_streams mux_streams} in the same manifest must have the
418
- # same segment duration.
470
+ # All {::Google::Cloud::Video::LiveStream::V1::Manifest#mux_streams mux_streams} in
471
+ # the same manifest must have the same segment duration.
419
472
  class SegmentSettings
420
473
  include ::Google::Protobuf::MessageExts
421
474
  extend ::Google::Protobuf::MessageExts::ClassMethods
422
475
  end
476
+
477
+ # Timecode configuration.
478
+ # @!attribute [rw] source
479
+ # @return [::Google::Cloud::Video::LiveStream::V1::TimecodeConfig::TimecodeSource]
480
+ # The source of the timecode that will later be used in outputs/manifests.
481
+ # It determines the initial timecode/timestamp (first frame) of output
482
+ # streams.
483
+ # @!attribute [rw] utc_offset
484
+ # @return [::Google::Protobuf::Duration]
485
+ # UTC offset. Must be whole seconds, between -18 hours and +18 hours.
486
+ # @!attribute [rw] time_zone
487
+ # @return [::Google::Type::TimeZone]
488
+ # Time zone e.g. "America/Los_Angeles".
489
+ class TimecodeConfig
490
+ include ::Google::Protobuf::MessageExts
491
+ extend ::Google::Protobuf::MessageExts::ClassMethods
492
+
493
+ # The source of timecode.
494
+ module TimecodeSource
495
+ # The timecode source is not specified.
496
+ TIMECODE_SOURCE_UNSPECIFIED = 0
497
+
498
+ # Use input media timestamp.
499
+ MEDIA_TIMESTAMP = 1
500
+
501
+ # Use input embedded timecode e.g. picture timing SEI message.
502
+ EMBEDDED_TIMECODE = 2
503
+ end
504
+ end
423
505
  end
424
506
  end
425
507
  end
@@ -49,7 +49,8 @@ module Google
49
49
  # @!attribute [r] uri
50
50
  # @return [::String]
51
51
  # Output only. URI to push the input stream to.
52
- # Its format depends on the input {::Google::Cloud::Video::LiveStream::V1::Input#type type}, for example:
52
+ # Its format depends on the input
53
+ # {::Google::Cloud::Video::LiveStream::V1::Input#type type}, for example:
53
54
  #
54
55
  # * `RTMP_PUSH`: `rtmp://1.2.3.4/live/{STREAM-ID}`
55
56
  # * `SRT_PUSH`: `srt://1.2.3.4:4201?streamid={STREAM-ID}`
@@ -61,8 +62,8 @@ module Google
61
62
  # Security rule for access control.
62
63
  # @!attribute [r] input_stream_property
63
64
  # @return [::Google::Cloud::Video::LiveStream::V1::InputStreamProperty]
64
- # Output only. The information for the input stream. This field will be present only when
65
- # this input receives the input stream.
65
+ # Output only. The information for the input stream. This field will be
66
+ # present only when this input receives the input stream.
66
67
  class Input
67
68
  include ::Google::Protobuf::MessageExts
68
69
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -142,12 +143,15 @@ module Google
142
143
  # input can be selected as the input source at one time.
143
144
  # @!attribute [r] active_input
144
145
  # @return [::String]
145
- # Output only. The {::Google::Cloud::Video::LiveStream::V1::InputAttachment#key InputAttachment.key} that serves as the current input source. The
146
- # first input in the {::Google::Cloud::Video::LiveStream::V1::Channel#input_attachments input_attachments} is the initial input source.
146
+ # Output only. The
147
+ # {::Google::Cloud::Video::LiveStream::V1::InputAttachment#key InputAttachment.key}
148
+ # that serves as the current input source. The first input in the
149
+ # {::Google::Cloud::Video::LiveStream::V1::Channel#input_attachments input_attachments}
150
+ # is the initial input source.
147
151
  # @!attribute [rw] output
148
152
  # @return [::Google::Cloud::Video::LiveStream::V1::Channel::Output]
149
- # Required. Information about the output (that is, the Cloud Storage bucket to store
150
- # the generated live stream).
153
+ # Required. Information about the output (that is, the Cloud Storage bucket
154
+ # to store the generated live stream).
151
155
  # @!attribute [rw] elementary_streams
152
156
  # @return [::Array<::Google::Cloud::Video::LiveStream::V1::ElementaryStream>]
153
157
  # List of elementary streams.
@@ -165,12 +169,26 @@ module Google
165
169
  # Output only. State of the streaming operation.
166
170
  # @!attribute [r] streaming_error
167
171
  # @return [::Google::Rpc::Status]
168
- # Output only. A description of the reason for the streaming error. This property is
169
- # always present when {::Google::Cloud::Video::LiveStream::V1::Channel#streaming_state streaming_state} is
172
+ # Output only. A description of the reason for the streaming error. This
173
+ # property is always present when
174
+ # {::Google::Cloud::Video::LiveStream::V1::Channel#streaming_state streaming_state}
175
+ # is
170
176
  # {::Google::Cloud::Video::LiveStream::V1::Channel::StreamingState::STREAMING_ERROR STREAMING_ERROR}.
171
177
  # @!attribute [rw] log_config
172
178
  # @return [::Google::Cloud::Video::LiveStream::V1::LogConfig]
173
179
  # Configuration of platform logs for this channel.
180
+ # @!attribute [rw] timecode_config
181
+ # @return [::Google::Cloud::Video::LiveStream::V1::TimecodeConfig]
182
+ # Configuration of timecode for this channel.
183
+ # @!attribute [rw] encryptions
184
+ # @return [::Array<::Google::Cloud::Video::LiveStream::V1::Encryption>]
185
+ # Encryption configurations for this channel. Each configuration has an ID
186
+ # which is referred to by each MuxStream to indicate which configuration is
187
+ # used for that output.
188
+ # @!attribute [rw] input_config
189
+ # @return [::Google::Cloud::Video::LiveStream::V1::InputConfig]
190
+ # The configuration for input sources defined in
191
+ # {::Google::Cloud::Video::LiveStream::V1::Channel#input_attachments input_attachments}.
174
192
  class Channel
175
193
  include ::Google::Protobuf::MessageExts
176
194
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -226,6 +244,35 @@ module Google
226
244
  end
227
245
  end
228
246
 
247
+ # Configuration for the input sources of a channel.
248
+ # @!attribute [rw] input_switch_mode
249
+ # @return [::Google::Cloud::Video::LiveStream::V1::InputConfig::InputSwitchMode]
250
+ # Input switch mode. Default mode is `FAILOVER_PREFER_PRIMARY`.
251
+ class InputConfig
252
+ include ::Google::Protobuf::MessageExts
253
+ extend ::Google::Protobuf::MessageExts::ClassMethods
254
+
255
+ # Input switch mode.
256
+ module InputSwitchMode
257
+ # The input switch mode is not specified.
258
+ INPUT_SWITCH_MODE_UNSPECIFIED = 0
259
+
260
+ # Automatic failover is enabled. The primary input stream is always
261
+ # preferred over its backup input streams configured using the
262
+ # {::Google::Cloud::Video::LiveStream::V1::InputAttachment::AutomaticFailover AutomaticFailover}
263
+ # field.
264
+ FAILOVER_PREFER_PRIMARY = 1
265
+
266
+ # Automatic failover is disabled. You must use the
267
+ # {::Google::Cloud::Video::LiveStream::V1::Event#input_switch inputSwitch} event
268
+ # to switch the active input source for the channel to stream from. When
269
+ # this mode is chosen, the
270
+ # {::Google::Cloud::Video::LiveStream::V1::InputAttachment::AutomaticFailover AutomaticFailover}
271
+ # field is ignored.
272
+ MANUAL = 3
273
+ end
274
+ end
275
+
229
276
  # Configuration of platform logs.
230
277
  # See [Using and managing platform
231
278
  # logs](https://cloud.google.com/logging/docs/api/platform-logs#managing-logs)
@@ -357,8 +404,10 @@ module Google
357
404
  # Configurations to follow when automatic failover happens.
358
405
  # @!attribute [rw] input_keys
359
406
  # @return [::Array<::String>]
360
- # The {::Google::Cloud::Video::LiveStream::V1::InputAttachment#key InputAttachment.key}s of inputs to failover to when this input is
361
- # disconnected. Currently, only up to one backup input is supported.
407
+ # The
408
+ # {::Google::Cloud::Video::LiveStream::V1::InputAttachment#key InputAttachment.key}s
409
+ # of inputs to failover to when this input is disconnected. Currently, only
410
+ # up to one backup input is supported.
362
411
  class AutomaticFailover
363
412
  include ::Google::Protobuf::MessageExts
364
413
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -380,19 +429,37 @@ module Google
380
429
  # @!attribute [rw] labels
381
430
  # @return [::Google::Protobuf::Map{::String => ::String}]
382
431
  # User-defined key/value metadata.
432
+ # @!attribute [rw] input_switch
433
+ # @return [::Google::Cloud::Video::LiveStream::V1::Event::InputSwitchTask]
434
+ # Required. Switches to another input stream.
383
435
  # @!attribute [rw] ad_break
384
436
  # @return [::Google::Cloud::Video::LiveStream::V1::Event::AdBreakTask]
385
437
  # Required. Inserts a new ad opportunity.
438
+ # @!attribute [rw] return_to_program
439
+ # @return [::Google::Cloud::Video::LiveStream::V1::Event::ReturnToProgramTask]
440
+ # Required. Stops any running ad break.
441
+ # @!attribute [rw] mute
442
+ # @return [::Google::Cloud::Video::LiveStream::V1::Event::MuteTask]
443
+ # Required. Mutes the stream.
444
+ # @!attribute [rw] unmute
445
+ # @return [::Google::Cloud::Video::LiveStream::V1::Event::UnmuteTask]
446
+ # Required. Unmutes the stream.
386
447
  # @!attribute [rw] execute_now
387
448
  # @return [::Boolean]
388
449
  # When this field is set to true, the event will be executed at the earliest
389
- # time that the server can schedule the event and {::Google::Cloud::Video::LiveStream::V1::Event#execution_time execution_time} will be
390
- # populated with the time that the server actually schedules the event.
450
+ # time that the server can schedule the event and
451
+ # {::Google::Cloud::Video::LiveStream::V1::Event#execution_time execution_time}
452
+ # will be populated with the time that the server actually schedules the
453
+ # event.
391
454
  # @!attribute [rw] execution_time
392
455
  # @return [::Google::Protobuf::Timestamp]
393
- # The time when the event should be executed. When {::Google::Cloud::Video::LiveStream::V1::Event#execute_now execute_now} is set to
394
- # `true`, this field should not be set in `CreateEvent` request and will be
395
- # populated with the time that the server schedules the event.
456
+ # The time to execute the event. If you set
457
+ # {::Google::Cloud::Video::LiveStream::V1::Event#execute_now execute_now} to
458
+ # `true`, then do not set this field in the `CreateEvent` request. In
459
+ # this case, the server schedules the event and populates this field. If you
460
+ # set {::Google::Cloud::Video::LiveStream::V1::Event#execute_now execute_now} to
461
+ # `false`, then you must set this field to at least 10 seconds in the future
462
+ # or else the event can't be created.
396
463
  # @!attribute [r] state
397
464
  # @return [::Google::Cloud::Video::LiveStream::V1::Event::State]
398
465
  # Output only. The state of the event.
@@ -404,6 +471,17 @@ module Google
404
471
  include ::Google::Protobuf::MessageExts
405
472
  extend ::Google::Protobuf::MessageExts::ClassMethods
406
473
 
474
+ # Switches to another input stream. Automatic failover is then disabled.
475
+ # @!attribute [rw] input_key
476
+ # @return [::String]
477
+ # The
478
+ # {::Google::Cloud::Video::LiveStream::V1::InputAttachment#key InputAttachment.key}
479
+ # of the input to switch to.
480
+ class InputSwitchTask
481
+ include ::Google::Protobuf::MessageExts
482
+ extend ::Google::Protobuf::MessageExts::ClassMethods
483
+ end
484
+
407
485
  # Inserts a new ad opportunity.
408
486
  # @!attribute [rw] duration
409
487
  # @return [::Google::Protobuf::Duration]
@@ -413,6 +491,30 @@ module Google
413
491
  extend ::Google::Protobuf::MessageExts::ClassMethods
414
492
  end
415
493
 
494
+ # Stops any events which are currently running. This only applies to events
495
+ # with a duration.
496
+ class ReturnToProgramTask
497
+ include ::Google::Protobuf::MessageExts
498
+ extend ::Google::Protobuf::MessageExts::ClassMethods
499
+ end
500
+
501
+ # Mutes the stream.
502
+ # @!attribute [rw] duration
503
+ # @return [::Google::Protobuf::Duration]
504
+ # Duration for which the stream should be muted. If omitted, the stream
505
+ # will be muted until an UnmuteTask event is sent.
506
+ class MuteTask
507
+ include ::Google::Protobuf::MessageExts
508
+ extend ::Google::Protobuf::MessageExts::ClassMethods
509
+ end
510
+
511
+ # Unmutes the stream. The task will fail if the stream is not
512
+ # currently muted.
513
+ class UnmuteTask
514
+ include ::Google::Protobuf::MessageExts
515
+ extend ::Google::Protobuf::MessageExts::ClassMethods
516
+ end
517
+
416
518
  # @!attribute [rw] key
417
519
  # @return [::String]
418
520
  # @!attribute [rw] value
@@ -446,6 +548,106 @@ module Google
446
548
  STOPPED = 6
447
549
  end
448
550
  end
551
+
552
+ # Encryption settings.
553
+ # @!attribute [rw] id
554
+ # @return [::String]
555
+ # Required. Identifier for this set of encryption options.
556
+ # @!attribute [rw] secret_manager_key_source
557
+ # @return [::Google::Cloud::Video::LiveStream::V1::Encryption::SecretManagerSource]
558
+ # For keys stored in Google Secret Manager.
559
+ # @!attribute [rw] drm_systems
560
+ # @return [::Google::Cloud::Video::LiveStream::V1::Encryption::DrmSystems]
561
+ # Required. Configuration for DRM systems.
562
+ # @!attribute [rw] aes128
563
+ # @return [::Google::Cloud::Video::LiveStream::V1::Encryption::Aes128Encryption]
564
+ # Configuration for HLS AES-128 encryption.
565
+ # @!attribute [rw] sample_aes
566
+ # @return [::Google::Cloud::Video::LiveStream::V1::Encryption::SampleAesEncryption]
567
+ # Configuration for HLS SAMPLE-AES encryption.
568
+ # @!attribute [rw] mpeg_cenc
569
+ # @return [::Google::Cloud::Video::LiveStream::V1::Encryption::MpegCommonEncryption]
570
+ # Configuration for MPEG-Dash Common Encryption (MPEG-CENC).
571
+ class Encryption
572
+ include ::Google::Protobuf::MessageExts
573
+ extend ::Google::Protobuf::MessageExts::ClassMethods
574
+
575
+ # Configuration for secrets stored in Google Secret Manager.
576
+ # @!attribute [rw] secret_version
577
+ # @return [::String]
578
+ # Required. The name of the Secret Version containing the encryption key.
579
+ # `projects/{project}/secrets/{secret_id}/versions/{version_number}`
580
+ class SecretManagerSource
581
+ include ::Google::Protobuf::MessageExts
582
+ extend ::Google::Protobuf::MessageExts::ClassMethods
583
+ end
584
+
585
+ # Widevine configuration.
586
+ class Widevine
587
+ include ::Google::Protobuf::MessageExts
588
+ extend ::Google::Protobuf::MessageExts::ClassMethods
589
+ end
590
+
591
+ # Fairplay configuration.
592
+ class Fairplay
593
+ include ::Google::Protobuf::MessageExts
594
+ extend ::Google::Protobuf::MessageExts::ClassMethods
595
+ end
596
+
597
+ # Playready configuration.
598
+ class Playready
599
+ include ::Google::Protobuf::MessageExts
600
+ extend ::Google::Protobuf::MessageExts::ClassMethods
601
+ end
602
+
603
+ # Clearkey configuration.
604
+ class Clearkey
605
+ include ::Google::Protobuf::MessageExts
606
+ extend ::Google::Protobuf::MessageExts::ClassMethods
607
+ end
608
+
609
+ # Defines configuration for DRM systems in use. If a field is omitted,
610
+ # that DRM system will be considered to be disabled.
611
+ # @!attribute [rw] widevine
612
+ # @return [::Google::Cloud::Video::LiveStream::V1::Encryption::Widevine]
613
+ # Widevine configuration.
614
+ # @!attribute [rw] fairplay
615
+ # @return [::Google::Cloud::Video::LiveStream::V1::Encryption::Fairplay]
616
+ # Fairplay configuration.
617
+ # @!attribute [rw] playready
618
+ # @return [::Google::Cloud::Video::LiveStream::V1::Encryption::Playready]
619
+ # Playready configuration.
620
+ # @!attribute [rw] clearkey
621
+ # @return [::Google::Cloud::Video::LiveStream::V1::Encryption::Clearkey]
622
+ # Clearkey configuration.
623
+ class DrmSystems
624
+ include ::Google::Protobuf::MessageExts
625
+ extend ::Google::Protobuf::MessageExts::ClassMethods
626
+ end
627
+
628
+ # Configuration for HLS AES-128 encryption.
629
+ class Aes128Encryption
630
+ include ::Google::Protobuf::MessageExts
631
+ extend ::Google::Protobuf::MessageExts::ClassMethods
632
+ end
633
+
634
+ # Configuration for HLS SAMPLE-AES encryption.
635
+ class SampleAesEncryption
636
+ include ::Google::Protobuf::MessageExts
637
+ extend ::Google::Protobuf::MessageExts::ClassMethods
638
+ end
639
+
640
+ # Configuration for MPEG-Dash Common Encryption (MPEG-CENC).
641
+ # @!attribute [rw] scheme
642
+ # @return [::String]
643
+ # Required. Specify the encryption scheme, supported schemes:
644
+ # - `cenc` - AES-CTR subsample
645
+ # - `cbcs`- AES-CBC subsample pattern
646
+ class MpegCommonEncryption
647
+ include ::Google::Protobuf::MessageExts
648
+ extend ::Google::Protobuf::MessageExts::ClassMethods
649
+ end
650
+ end
449
651
  end
450
652
  end
451
653
  end
@@ -65,8 +65,8 @@ module Google
65
65
  # The maximum number of items to return. If unspecified, server
66
66
  # will pick an appropriate default. Server may return fewer items than
67
67
  # requested. A caller should only rely on response's
68
- # {::Google::Cloud::Video::LiveStream::V1::ListChannelsResponse#next_page_token next_page_token} to
69
- # determine if there are more items left to be queried.
68
+ # {::Google::Cloud::Video::LiveStream::V1::ListChannelsResponse#next_page_token next_page_token}
69
+ # to determine if there are more items left to be queried.
70
70
  # @!attribute [rw] page_token
71
71
  # @return [::String]
72
72
  # The next_page_token value returned from a previous List request, if any.
@@ -146,14 +146,22 @@ module Google
146
146
  # resource by the update. You can only update the following fields:
147
147
  #
148
148
  # * [`inputAttachments`](https://cloud.google.com/livestream/docs/reference/rest/v1/projects.locations.channels#inputattachment)
149
+ # * [`inputConfig`](https://cloud.google.com/livestream/docs/reference/rest/v1/projects.locations.channels#inputconfig)
149
150
  # * [`output`](https://cloud.google.com/livestream/docs/reference/rest/v1/projects.locations.channels#output)
150
- # * [`elementaryStreams`](https://cloud.google.com/livestream/docs/reference/rest/v1/projects.locations.channels#ElementaryStream)
151
+ # * [`elementaryStreams`](https://cloud.google.com/livestream/docs/reference/rest/v1/projects.locations.channels#elementarystream)
151
152
  # * [`muxStreams`](https://cloud.google.com/livestream/docs/reference/rest/v1/projects.locations.channels#muxstream)
152
- # * [`manifests`](https://cloud.google.com/livestream/docs/reference/rest/v1/projects.locations.channels#Manifest)
153
- # * [`spritesheets`](https://cloud.google.com/livestream/docs/reference/rest/v1/projects.locations.channels#spritesheet)
153
+ # * [`manifests`](https://cloud.google.com/livestream/docs/reference/rest/v1/projects.locations.channels#manifest)
154
+ # * [`spriteSheets`](https://cloud.google.com/livestream/docs/reference/rest/v1/projects.locations.channels#spritesheet)
155
+ # * [`logConfig`](https://cloud.google.com/livestream/docs/reference/rest/v1/projects.locations.channels#logconfig)
156
+ # * [`timecodeConfig`](https://cloud.google.com/livestream/docs/reference/rest/v1/projects.locations.channels#timecodeconfig)
157
+ # * [`encryptions`](https://cloud.google.com/livestream/docs/reference/rest/v1/projects.locations.channels#encryption)
154
158
  #
155
159
  # The fields specified in the update_mask are relative to the resource, not
156
160
  # the full request. A field will be overwritten if it is in the mask.
161
+ #
162
+ # If the mask is not present, then each field from the list above is updated
163
+ # if the field appears in the request payload. To unset a field, add the
164
+ # field to the update mask and remove it from the request payload.
157
165
  # @!attribute [rw] channel
158
166
  # @return [::Google::Cloud::Video::LiveStream::V1::Channel]
159
167
  # Required. The channel resource to be updated.
@@ -270,8 +278,8 @@ module Google
270
278
  # The maximum number of items to return. If unspecified, server
271
279
  # will pick an appropriate default. Server may return fewer items than
272
280
  # requested. A caller should only rely on response's
273
- # {::Google::Cloud::Video::LiveStream::V1::ListInputsResponse#next_page_token next_page_token} to
274
- # determine if there are more items left to be queried.
281
+ # {::Google::Cloud::Video::LiveStream::V1::ListInputsResponse#next_page_token next_page_token}
282
+ # to determine if there are more items left to be queried.
275
283
  # @!attribute [rw] page_token
276
284
  # @return [::String]
277
285
  # The next_page_token value returned from a previous List request, if any.
@@ -349,6 +357,10 @@ module Google
349
357
  #
350
358
  # The fields specified in the update_mask are relative to the resource, not
351
359
  # the full request. A field will be overwritten if it is in the mask.
360
+ #
361
+ # If the mask is not present, then each field from the list above is updated
362
+ # if the field appears in the request payload. To unset a field, add the
363
+ # field to the update mask and remove it from the request payload.
352
364
  # @!attribute [rw] input
353
365
  # @return [::Google::Cloud::Video::LiveStream::V1::Input]
354
366
  # Required. The input resource to be updated.
@@ -415,8 +427,8 @@ module Google
415
427
  # The maximum number of items to return. If unspecified, server
416
428
  # will pick an appropriate default. Server may return fewer items than
417
429
  # requested. A caller should only rely on response's
418
- # {::Google::Cloud::Video::LiveStream::V1::ListEventsResponse#next_page_token next_page_token} to
419
- # determine if there are more items left to be queried.
430
+ # {::Google::Cloud::Video::LiveStream::V1::ListEventsResponse#next_page_token next_page_token}
431
+ # to determine if there are more items left to be queried.
420
432
  # @!attribute [rw] page_token
421
433
  # @return [::String]
422
434
  # The next_page_token value returned from a previous List request, if any.