# frozen_string_literal: true # Copyright 2022 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Auto-generated by gapic-generator-ruby. DO NOT EDIT! module Google module Cloud module Video module LiveStream module V1 # Input resource represents the endpoint from which the channel ingests # the input stream. # @!attribute [rw] name # @return [::String] # The resource name of the input, in the form of: # `projects/{project}/locations/{location}/inputs/{inputId}`. # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] # Output only. The creation time. # @!attribute [r] update_time # @return [::Google::Protobuf::Timestamp] # Output only. The update time. # @!attribute [rw] labels # @return [::Google::Protobuf::Map{::String => ::String}] # User-defined key/value metadata. # @!attribute [rw] type # @return [::Google::Cloud::Video::LiveStream::V1::Input::Type] # Source type. # @!attribute [rw] tier # @return [::Google::Cloud::Video::LiveStream::V1::Input::Tier] # Tier defines the maximum input specification that is accepted by the # video pipeline. The billing is charged based on the tier specified here. # See [Pricing](https://cloud.google.com/livestream/pricing) for more detail. # The default is `HD`. # @!attribute [r] uri # @return [::String] # Output only. URI to push the input stream to. # Its format depends on the input # {::Google::Cloud::Video::LiveStream::V1::Input#type type}, for example: # # * `RTMP_PUSH`: `rtmp://1.2.3.4/live/{STREAM-ID}` # * `SRT_PUSH`: `srt://1.2.3.4:4201?streamid={STREAM-ID}` # @!attribute [rw] preprocessing_config # @return [::Google::Cloud::Video::LiveStream::V1::PreprocessingConfig] # Preprocessing configurations. # @!attribute [rw] security_rules # @return [::Google::Cloud::Video::LiveStream::V1::Input::SecurityRule] # Security rule for access control. # @!attribute [r] input_stream_property # @return [::Google::Cloud::Video::LiveStream::V1::InputStreamProperty] # Output only. The information for the input stream. This field will be # present only when this input receives the input stream. class Input include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Security rules for access control. Each field represents one security rule. # Only when the source of the input stream satisfies all the fields, this # input stream can be accepted. # @!attribute [rw] ip_ranges # @return [::Array<::String>] # At least one ip range must match unless none specified. The IP range is # defined by CIDR block: for example, `192.0.1.0/24` for a range and # `192.0.1.0/32` for a single IP address. class SecurityRule include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # The type of the input. module Type # Input type is not specified. TYPE_UNSPECIFIED = 0 # Input will take an rtmp input stream. RTMP_PUSH = 1 # Input will take an srt (Secure Reliable Transport) input stream. SRT_PUSH = 2 end # Tier of the input specification. module Tier # Tier is not specified. TIER_UNSPECIFIED = 0 # Resolution < 1280x720. Bitrate <= 6 Mbps. FPS <= 60. SD = 1 # Resolution <= 1920x1080. Bitrate <= 25 Mbps. FPS <= 60. HD = 2 # Resolution <= 4096x2160. Not supported yet. UHD = 3 end end # Channel resource represents the processor that does a user-defined # "streaming" operation, which includes getting an input stream through an # input, transcoding it to multiple renditions, and publishing output live # streams in certain formats (for example, HLS or DASH) to the specified # location. # @!attribute [rw] name # @return [::String] # The resource name of the channel, in the form of: # `projects/{project}/locations/{location}/channels/{channelId}`. # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] # Output only. The creation time. # @!attribute [r] update_time # @return [::Google::Protobuf::Timestamp] # Output only. The update time. # @!attribute [rw] labels # @return [::Google::Protobuf::Map{::String => ::String}] # User-defined key/value metadata. # @!attribute [rw] input_attachments # @return [::Array<::Google::Cloud::Video::LiveStream::V1::InputAttachment>] # A list of input attachments that this channel uses. # One channel can have multiple inputs as the input sources. Only one # input can be selected as the input source at one time. # @!attribute [r] active_input # @return [::String] # Output only. The # {::Google::Cloud::Video::LiveStream::V1::InputAttachment#key InputAttachment.key} # that serves as the current input source. The first input in the # {::Google::Cloud::Video::LiveStream::V1::Channel#input_attachments input_attachments} # is the initial input source. # @!attribute [rw] output # @return [::Google::Cloud::Video::LiveStream::V1::Channel::Output] # Required. Information about the output (that is, the Cloud Storage bucket # to store the generated live stream). # @!attribute [rw] elementary_streams # @return [::Array<::Google::Cloud::Video::LiveStream::V1::ElementaryStream>] # List of elementary streams. # @!attribute [rw] mux_streams # @return [::Array<::Google::Cloud::Video::LiveStream::V1::MuxStream>] # List of multiplexing settings for output streams. # @!attribute [rw] manifests # @return [::Array<::Google::Cloud::Video::LiveStream::V1::Manifest>] # List of output manifests. # @!attribute [rw] sprite_sheets # @return [::Array<::Google::Cloud::Video::LiveStream::V1::SpriteSheet>] # List of output sprite sheets. # @!attribute [r] streaming_state # @return [::Google::Cloud::Video::LiveStream::V1::Channel::StreamingState] # Output only. State of the streaming operation. # @!attribute [r] streaming_error # @return [::Google::Rpc::Status] # Output only. A description of the reason for the streaming error. This # property is always present when # {::Google::Cloud::Video::LiveStream::V1::Channel#streaming_state streaming_state} # is # {::Google::Cloud::Video::LiveStream::V1::Channel::StreamingState::STREAMING_ERROR STREAMING_ERROR}. # @!attribute [rw] log_config # @return [::Google::Cloud::Video::LiveStream::V1::LogConfig] # Configuration of platform logs for this channel. # @!attribute [rw] timecode_config # @return [::Google::Cloud::Video::LiveStream::V1::TimecodeConfig] # Configuration of timecode for this channel. # @!attribute [rw] encryptions # @return [::Array<::Google::Cloud::Video::LiveStream::V1::Encryption>] # Encryption configurations for this channel. Each configuration has an ID # which is referred to by each MuxStream to indicate which configuration is # used for that output. # @!attribute [rw] input_config # @return [::Google::Cloud::Video::LiveStream::V1::InputConfig] # The configuration for input sources defined in # {::Google::Cloud::Video::LiveStream::V1::Channel#input_attachments input_attachments}. class Channel include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Location of output file(s) in a Google Cloud Storage bucket. # @!attribute [rw] uri # @return [::String] # URI for the output file(s). For example, `gs://my-bucket/outputs/`. class Output include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # State of streaming operation that the channel is running. module StreamingState # Streaming state is not specified. STREAMING_STATE_UNSPECIFIED = 0 # Channel is getting the input stream, generating the live streams to the # specified output location. STREAMING = 1 # Channel is waiting for the input stream through the input. AWAITING_INPUT = 2 # Channel is running, but has trouble publishing the live streams onto the # specified output location (for example, the specified Cloud Storage # bucket is not writable). STREAMING_ERROR = 4 # Channel is generating live streams with no input stream. Live streams are # filled out with black screen, while input stream is missing. # Not supported yet. STREAMING_NO_INPUT = 5 # Channel is stopped, finishing live streams. STOPPED = 6 # Channel is starting. STARTING = 7 # Channel is stopping. STOPPING = 8 end end # Configuration for the input sources of a channel. # @!attribute [rw] input_switch_mode # @return [::Google::Cloud::Video::LiveStream::V1::InputConfig::InputSwitchMode] # Input switch mode. Default mode is `FAILOVER_PREFER_PRIMARY`. class InputConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Input switch mode. module InputSwitchMode # The input switch mode is not specified. INPUT_SWITCH_MODE_UNSPECIFIED = 0 # Automatic failover is enabled. The primary input stream is always # preferred over its backup input streams configured using the # {::Google::Cloud::Video::LiveStream::V1::InputAttachment::AutomaticFailover AutomaticFailover} # field. FAILOVER_PREFER_PRIMARY = 1 # Automatic failover is disabled. You must use the # {::Google::Cloud::Video::LiveStream::V1::Event#input_switch inputSwitch} event # to switch the active input source for the channel to stream from. When # this mode is chosen, the # {::Google::Cloud::Video::LiveStream::V1::InputAttachment::AutomaticFailover AutomaticFailover} # field is ignored. MANUAL = 3 end end # Configuration of platform logs. # See [Using and managing platform # logs](https://cloud.google.com/logging/docs/api/platform-logs#managing-logs) # for more information about how to view platform logs through Cloud Logging. # @!attribute [rw] log_severity # @return [::Google::Cloud::Video::LiveStream::V1::LogConfig::LogSeverity] # The severity level of platform logging for this resource. class LogConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # The severity level of platform logging for this channel. Logs with a # severity level higher than or equal to the chosen severity level will be # logged and can be viewed through Cloud Logging. # The severity level of a log is ranked as followed from low to high: DEBUG < # INFO < NOTICE < WARNING < ERROR < CRITICAL < ALERT < EMERGENCY. # See # [LogSeverity](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#logseverity) # for more information. module LogSeverity # Log severity is not specified. This is the same as log severity is OFF. LOG_SEVERITY_UNSPECIFIED = 0 # Log is turned off. OFF = 1 # Log with severity higher than or equal to DEBUG are logged. DEBUG = 100 # Logs with severity higher than or equal to INFO are logged. INFO = 200 # Logs with severity higher than or equal to WARNING are logged. WARNING = 400 # Logs with severity higher than or equal to ERROR are logged. ERROR = 500 end end # Properties of the input stream. # @!attribute [rw] last_establish_time # @return [::Google::Protobuf::Timestamp] # The time that the current input stream is accepted and the connection is # established. # @!attribute [rw] video_streams # @return [::Array<::Google::Cloud::Video::LiveStream::V1::VideoStreamProperty>] # Properties of the video streams. # @!attribute [rw] audio_streams # @return [::Array<::Google::Cloud::Video::LiveStream::V1::AudioStreamProperty>] # Properties of the audio streams. class InputStreamProperty include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Properties of the video stream. # @!attribute [rw] index # @return [::Integer] # Index of this video stream. # @!attribute [rw] video_format # @return [::Google::Cloud::Video::LiveStream::V1::VideoFormat] # Properties of the video format. class VideoStreamProperty include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Properties of the video format. # @!attribute [rw] codec # @return [::String] # Video codec used in this video stream. # @!attribute [rw] width_pixels # @return [::Integer] # The width of the video stream in pixels. # @!attribute [rw] height_pixels # @return [::Integer] # The height of the video stream in pixels. # @!attribute [rw] frame_rate # @return [::Float] # The frame rate of the input video stream. class VideoFormat include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Properties of the audio stream. # @!attribute [rw] index # @return [::Integer] # Index of this audio stream. # @!attribute [rw] audio_format # @return [::Google::Cloud::Video::LiveStream::V1::AudioFormat] # Properties of the audio format. class AudioStreamProperty include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Properties of the audio format. # @!attribute [rw] codec # @return [::String] # Audio codec used in this audio stream. # @!attribute [rw] channel_count # @return [::Integer] # The number of audio channels. # @!attribute [rw] channel_layout # @return [::Array<::String>] # A list of channel names specifying the layout of the audio channels. class AudioFormat include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A group of information for attaching an input resource to this channel. # @!attribute [rw] key # @return [::String] # A unique key for this input attachment. # @!attribute [rw] input # @return [::String] # The resource name of an existing input, in the form of: # `projects/{project}/locations/{location}/inputs/{inputId}`. # @!attribute [rw] automatic_failover # @return [::Google::Cloud::Video::LiveStream::V1::InputAttachment::AutomaticFailover] # Automatic failover configurations. class InputAttachment include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Configurations to follow when automatic failover happens. # @!attribute [rw] input_keys # @return [::Array<::String>] # The # {::Google::Cloud::Video::LiveStream::V1::InputAttachment#key InputAttachment.key}s # of inputs to failover to when this input is disconnected. Currently, only # up to one backup input is supported. class AutomaticFailover include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # Event is a sub-resource of a channel, which can be scheduled by the user to # execute operations on a channel resource without having to stop the channel. # @!attribute [rw] name # @return [::String] # The resource name of the event, in the form of: # `projects/{project}/locations/{location}/channels/{channelId}/events/{eventId}`. # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] # Output only. The creation time. # @!attribute [r] update_time # @return [::Google::Protobuf::Timestamp] # Output only. The update time. # @!attribute [rw] labels # @return [::Google::Protobuf::Map{::String => ::String}] # User-defined key/value metadata. # @!attribute [rw] input_switch # @return [::Google::Cloud::Video::LiveStream::V1::Event::InputSwitchTask] # Required. Switches to another input stream. # @!attribute [rw] ad_break # @return [::Google::Cloud::Video::LiveStream::V1::Event::AdBreakTask] # Required. Inserts a new ad opportunity. # @!attribute [rw] return_to_program # @return [::Google::Cloud::Video::LiveStream::V1::Event::ReturnToProgramTask] # Required. Stops any running ad break. # @!attribute [rw] mute # @return [::Google::Cloud::Video::LiveStream::V1::Event::MuteTask] # Required. Mutes the stream. # @!attribute [rw] unmute # @return [::Google::Cloud::Video::LiveStream::V1::Event::UnmuteTask] # Required. Unmutes the stream. # @!attribute [rw] execute_now # @return [::Boolean] # When this field is set to true, the event will be executed at the earliest # time that the server can schedule the event and # {::Google::Cloud::Video::LiveStream::V1::Event#execution_time execution_time} # will be populated with the time that the server actually schedules the # event. # @!attribute [rw] execution_time # @return [::Google::Protobuf::Timestamp] # The time to execute the event. If you set # {::Google::Cloud::Video::LiveStream::V1::Event#execute_now execute_now} to # `true`, then do not set this field in the `CreateEvent` request. In # this case, the server schedules the event and populates this field. If you # set {::Google::Cloud::Video::LiveStream::V1::Event#execute_now execute_now} to # `false`, then you must set this field to at least 10 seconds in the future # or else the event can't be created. # @!attribute [r] state # @return [::Google::Cloud::Video::LiveStream::V1::Event::State] # Output only. The state of the event. # @!attribute [r] error # @return [::Google::Rpc::Status] # Output only. An error object that describes the reason for the failure. # This property is always present when `state` is `FAILED`. class Event include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Switches to another input stream. Automatic failover is then disabled. # @!attribute [rw] input_key # @return [::String] # The # {::Google::Cloud::Video::LiveStream::V1::InputAttachment#key InputAttachment.key} # of the input to switch to. class InputSwitchTask include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Inserts a new ad opportunity. # @!attribute [rw] duration # @return [::Google::Protobuf::Duration] # Duration of an ad opportunity. Must be greater than 0. class AdBreakTask include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Stops any events which are currently running. This only applies to events # with a duration. class ReturnToProgramTask include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Mutes the stream. # @!attribute [rw] duration # @return [::Google::Protobuf::Duration] # Duration for which the stream should be muted. If omitted, the stream # will be muted until an UnmuteTask event is sent. class MuteTask include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Unmutes the stream. The task will fail if the stream is not # currently muted. class UnmuteTask include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # State of the event module State # Event state is not specified. STATE_UNSPECIFIED = 0 # Event is scheduled but not executed yet. SCHEDULED = 1 # Event is being executed. RUNNING = 2 # Event has been successfully executed. SUCCEEDED = 3 # Event fails to be executed. FAILED = 4 # Event has been created but not scheduled yet. PENDING = 5 # Event was stopped before running for its full duration. STOPPED = 6 end end # Encryption settings. # @!attribute [rw] id # @return [::String] # Required. Identifier for this set of encryption options. # @!attribute [rw] secret_manager_key_source # @return [::Google::Cloud::Video::LiveStream::V1::Encryption::SecretManagerSource] # For keys stored in Google Secret Manager. # @!attribute [rw] drm_systems # @return [::Google::Cloud::Video::LiveStream::V1::Encryption::DrmSystems] # Required. Configuration for DRM systems. # @!attribute [rw] aes128 # @return [::Google::Cloud::Video::LiveStream::V1::Encryption::Aes128Encryption] # Configuration for HLS AES-128 encryption. # @!attribute [rw] sample_aes # @return [::Google::Cloud::Video::LiveStream::V1::Encryption::SampleAesEncryption] # Configuration for HLS SAMPLE-AES encryption. # @!attribute [rw] mpeg_cenc # @return [::Google::Cloud::Video::LiveStream::V1::Encryption::MpegCommonEncryption] # Configuration for MPEG-Dash Common Encryption (MPEG-CENC). class Encryption include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Configuration for secrets stored in Google Secret Manager. # @!attribute [rw] secret_version # @return [::String] # Required. The name of the Secret Version containing the encryption key. # `projects/{project}/secrets/{secret_id}/versions/{version_number}` class SecretManagerSource include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Widevine configuration. class Widevine include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Fairplay configuration. class Fairplay include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Playready configuration. class Playready include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Clearkey configuration. class Clearkey include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Defines configuration for DRM systems in use. If a field is omitted, # that DRM system will be considered to be disabled. # @!attribute [rw] widevine # @return [::Google::Cloud::Video::LiveStream::V1::Encryption::Widevine] # Widevine configuration. # @!attribute [rw] fairplay # @return [::Google::Cloud::Video::LiveStream::V1::Encryption::Fairplay] # Fairplay configuration. # @!attribute [rw] playready # @return [::Google::Cloud::Video::LiveStream::V1::Encryption::Playready] # Playready configuration. # @!attribute [rw] clearkey # @return [::Google::Cloud::Video::LiveStream::V1::Encryption::Clearkey] # Clearkey configuration. class DrmSystems include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration for HLS AES-128 encryption. class Aes128Encryption include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration for HLS SAMPLE-AES encryption. class SampleAesEncryption include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration for MPEG-Dash Common Encryption (MPEG-CENC). # @!attribute [rw] scheme # @return [::String] # Required. Specify the encryption scheme, supported schemes: # - `cenc` - AES-CTR subsample # - `cbcs`- AES-CBC subsample pattern class MpegCommonEncryption include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end end end end end