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

Sign up to get free protection for your applications and to get access to all the features.
@@ -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.