# Generated by the protocol buffer compiler.  DO NOT EDIT!
# Source: google/cloud/video/livestream/v1/service.proto for package 'Google.Cloud.Video.LiveStream.V1'
# Original file comments:
# Copyright 2021 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
#
#     http://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.
#

require 'grpc'
require 'google/cloud/video/livestream/v1/service_pb'

module Google
  module Cloud
    module Video
      module LiveStream
        module V1
          module LivestreamService
            # Using Live Stream API, you can generate live streams in the various
            # renditions and streaming formats. The streaming format include HTTP Live
            # Streaming (HLS) and Dynamic Adaptive Streaming over HTTP (DASH). You can send
            # a source stream in the various ways, including Real-Time Messaging
            # Protocol (RTMP) and Secure Reliable Transport (SRT).
            class Service

              include ::GRPC::GenericService

              self.marshal_class_method = :encode
              self.unmarshal_class_method = :decode
              self.service_name = 'google.cloud.video.livestream.v1.LivestreamService'

              # Creates a channel with the provided unique ID in the specified
              # region.
              rpc :CreateChannel, ::Google::Cloud::Video::LiveStream::V1::CreateChannelRequest, ::Google::Longrunning::Operation
              # Returns a list of all channels in the specified region.
              rpc :ListChannels, ::Google::Cloud::Video::LiveStream::V1::ListChannelsRequest, ::Google::Cloud::Video::LiveStream::V1::ListChannelsResponse
              # Returns the specified channel.
              rpc :GetChannel, ::Google::Cloud::Video::LiveStream::V1::GetChannelRequest, ::Google::Cloud::Video::LiveStream::V1::Channel
              # Deletes the specified channel.
              rpc :DeleteChannel, ::Google::Cloud::Video::LiveStream::V1::DeleteChannelRequest, ::Google::Longrunning::Operation
              # Updates the specified channel.
              rpc :UpdateChannel, ::Google::Cloud::Video::LiveStream::V1::UpdateChannelRequest, ::Google::Longrunning::Operation
              # Starts the specified channel. Part of the video pipeline will be created
              # only when the StartChannel request is received by the server.
              rpc :StartChannel, ::Google::Cloud::Video::LiveStream::V1::StartChannelRequest, ::Google::Longrunning::Operation
              # Stops the specified channel. Part of the video pipeline will be released
              # when the StopChannel request is received by the server.
              rpc :StopChannel, ::Google::Cloud::Video::LiveStream::V1::StopChannelRequest, ::Google::Longrunning::Operation
              # Starts distribution which delivers outputs to the destination indicated by
              # the Distribution configuration.
              rpc :StartDistribution, ::Google::Cloud::Video::LiveStream::V1::StartDistributionRequest, ::Google::Longrunning::Operation
              # Stops the specified distribution.
              rpc :StopDistribution, ::Google::Cloud::Video::LiveStream::V1::StopDistributionRequest, ::Google::Longrunning::Operation
              # Creates an input with the provided unique ID in the specified region.
              rpc :CreateInput, ::Google::Cloud::Video::LiveStream::V1::CreateInputRequest, ::Google::Longrunning::Operation
              # Returns a list of all inputs in the specified region.
              rpc :ListInputs, ::Google::Cloud::Video::LiveStream::V1::ListInputsRequest, ::Google::Cloud::Video::LiveStream::V1::ListInputsResponse
              # Returns the specified input.
              rpc :GetInput, ::Google::Cloud::Video::LiveStream::V1::GetInputRequest, ::Google::Cloud::Video::LiveStream::V1::Input
              # Deletes the specified input.
              rpc :DeleteInput, ::Google::Cloud::Video::LiveStream::V1::DeleteInputRequest, ::Google::Longrunning::Operation
              # Updates the specified input.
              rpc :UpdateInput, ::Google::Cloud::Video::LiveStream::V1::UpdateInputRequest, ::Google::Longrunning::Operation
              # Preview the streaming content of the specified input.
              rpc :PreviewInput, ::Google::Cloud::Video::LiveStream::V1::PreviewInputRequest, ::Google::Cloud::Video::LiveStream::V1::PreviewInputResponse
              # Creates an event with the provided unique ID in the specified channel.
              rpc :CreateEvent, ::Google::Cloud::Video::LiveStream::V1::CreateEventRequest, ::Google::Cloud::Video::LiveStream::V1::Event
              # Returns a list of all events in the specified channel.
              rpc :ListEvents, ::Google::Cloud::Video::LiveStream::V1::ListEventsRequest, ::Google::Cloud::Video::LiveStream::V1::ListEventsResponse
              # Returns the specified event.
              rpc :GetEvent, ::Google::Cloud::Video::LiveStream::V1::GetEventRequest, ::Google::Cloud::Video::LiveStream::V1::Event
              # Deletes the specified event.
              rpc :DeleteEvent, ::Google::Cloud::Video::LiveStream::V1::DeleteEventRequest, ::Google::Protobuf::Empty
              # Returns a list of all clips in the specified channel.
              rpc :ListClips, ::Google::Cloud::Video::LiveStream::V1::ListClipsRequest, ::Google::Cloud::Video::LiveStream::V1::ListClipsResponse
              # Returns the specified clip.
              rpc :GetClip, ::Google::Cloud::Video::LiveStream::V1::GetClipRequest, ::Google::Cloud::Video::LiveStream::V1::Clip
              # Creates a clip with the provided clip ID in the specified channel.
              rpc :CreateClip, ::Google::Cloud::Video::LiveStream::V1::CreateClipRequest, ::Google::Longrunning::Operation
              # Deletes the specified clip job resource. This method only deletes the clip
              # job and does not delete the VOD clip stored in Cloud Storage.
              rpc :DeleteClip, ::Google::Cloud::Video::LiveStream::V1::DeleteClipRequest, ::Google::Longrunning::Operation
              # Creates a DVR session with the provided unique ID in the specified channel.
              rpc :CreateDvrSession, ::Google::Cloud::Video::LiveStream::V1::CreateDvrSessionRequest, ::Google::Longrunning::Operation
              # Returns a list of all DVR sessions in the specified channel.
              rpc :ListDvrSessions, ::Google::Cloud::Video::LiveStream::V1::ListDvrSessionsRequest, ::Google::Cloud::Video::LiveStream::V1::ListDvrSessionsResponse
              # Returns the specified DVR session.
              rpc :GetDvrSession, ::Google::Cloud::Video::LiveStream::V1::GetDvrSessionRequest, ::Google::Cloud::Video::LiveStream::V1::DvrSession
              # Deletes the specified DVR session.
              rpc :DeleteDvrSession, ::Google::Cloud::Video::LiveStream::V1::DeleteDvrSessionRequest, ::Google::Longrunning::Operation
              # Updates the specified DVR session.
              rpc :UpdateDvrSession, ::Google::Cloud::Video::LiveStream::V1::UpdateDvrSessionRequest, ::Google::Longrunning::Operation
              # Creates a Asset with the provided unique ID in the specified
              # region.
              rpc :CreateAsset, ::Google::Cloud::Video::LiveStream::V1::CreateAssetRequest, ::Google::Longrunning::Operation
              # Deletes the specified asset if it is not used.
              rpc :DeleteAsset, ::Google::Cloud::Video::LiveStream::V1::DeleteAssetRequest, ::Google::Longrunning::Operation
              # Returns the specified asset.
              rpc :GetAsset, ::Google::Cloud::Video::LiveStream::V1::GetAssetRequest, ::Google::Cloud::Video::LiveStream::V1::Asset
              # Returns a list of all assets in the specified region.
              rpc :ListAssets, ::Google::Cloud::Video::LiveStream::V1::ListAssetsRequest, ::Google::Cloud::Video::LiveStream::V1::ListAssetsResponse
              # Returns the specified pool.
              rpc :GetPool, ::Google::Cloud::Video::LiveStream::V1::GetPoolRequest, ::Google::Cloud::Video::LiveStream::V1::Pool
              # Updates the specified pool.
              rpc :UpdatePool, ::Google::Cloud::Video::LiveStream::V1::UpdatePoolRequest, ::Google::Longrunning::Operation
            end

            Stub = Service.rpc_stub_class
          end
        end
      end
    end
  end
end
