# Generated by the protocol buffer compiler.  DO NOT EDIT!
# Source: google/cloud/visionai/v1/lva_service.proto for package 'Google.Cloud.VisionAI.V1'
# Original file comments:
# Copyright 2024 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/visionai/v1/lva_service_pb'

module Google
  module Cloud
    module VisionAI
      module V1
        module LiveVideoAnalytics
          # Service describing handlers for resources. The service enables clients to run
          # Live Video Analytics (LVA) on the streaming inputs.
          class Service

            include ::GRPC::GenericService

            self.marshal_class_method = :encode
            self.unmarshal_class_method = :decode
            self.service_name = 'google.cloud.visionai.v1.LiveVideoAnalytics'

            # ListPublicOperators returns all the operators in public registry.
            rpc :ListPublicOperators, ::Google::Cloud::VisionAI::V1::ListPublicOperatorsRequest, ::Google::Cloud::VisionAI::V1::ListPublicOperatorsResponse
            # ResolveOperatorInfo returns the operator information based on the request.
            rpc :ResolveOperatorInfo, ::Google::Cloud::VisionAI::V1::ResolveOperatorInfoRequest, ::Google::Cloud::VisionAI::V1::ResolveOperatorInfoResponse
            # Lists Operators in a given project and location.
            rpc :ListOperators, ::Google::Cloud::VisionAI::V1::ListOperatorsRequest, ::Google::Cloud::VisionAI::V1::ListOperatorsResponse
            # Gets details of a single Operator.
            rpc :GetOperator, ::Google::Cloud::VisionAI::V1::GetOperatorRequest, ::Google::Cloud::VisionAI::V1::Operator
            # Creates a new Operator in a given project and location.
            rpc :CreateOperator, ::Google::Cloud::VisionAI::V1::CreateOperatorRequest, ::Google::Longrunning::Operation
            # Updates the parameters of a single Operator.
            rpc :UpdateOperator, ::Google::Cloud::VisionAI::V1::UpdateOperatorRequest, ::Google::Longrunning::Operation
            # Deletes a single Operator.
            rpc :DeleteOperator, ::Google::Cloud::VisionAI::V1::DeleteOperatorRequest, ::Google::Longrunning::Operation
            # Lists Analyses in a given project and location.
            rpc :ListAnalyses, ::Google::Cloud::VisionAI::V1::ListAnalysesRequest, ::Google::Cloud::VisionAI::V1::ListAnalysesResponse
            # Gets details of a single Analysis.
            rpc :GetAnalysis, ::Google::Cloud::VisionAI::V1::GetAnalysisRequest, ::Google::Cloud::VisionAI::V1::Analysis
            # Creates a new Analysis in a given project and location.
            rpc :CreateAnalysis, ::Google::Cloud::VisionAI::V1::CreateAnalysisRequest, ::Google::Longrunning::Operation
            # Updates the parameters of a single Analysis.
            rpc :UpdateAnalysis, ::Google::Cloud::VisionAI::V1::UpdateAnalysisRequest, ::Google::Longrunning::Operation
            # Deletes a single Analysis.
            rpc :DeleteAnalysis, ::Google::Cloud::VisionAI::V1::DeleteAnalysisRequest, ::Google::Longrunning::Operation
            # Lists Processes in a given project and location.
            rpc :ListProcesses, ::Google::Cloud::VisionAI::V1::ListProcessesRequest, ::Google::Cloud::VisionAI::V1::ListProcessesResponse
            # Gets details of a single Process.
            rpc :GetProcess, ::Google::Cloud::VisionAI::V1::GetProcessRequest, ::Google::Cloud::VisionAI::V1::Process
            # Creates a new Process in a given project and location.
            rpc :CreateProcess, ::Google::Cloud::VisionAI::V1::CreateProcessRequest, ::Google::Longrunning::Operation
            # Updates the parameters of a single Process.
            rpc :UpdateProcess, ::Google::Cloud::VisionAI::V1::UpdateProcessRequest, ::Google::Longrunning::Operation
            # Deletes a single Process.
            rpc :DeleteProcess, ::Google::Cloud::VisionAI::V1::DeleteProcessRequest, ::Google::Longrunning::Operation
            # Run all of the processes to "completion". Max time for each process is
            # the LRO time limit.
            rpc :BatchRunProcess, ::Google::Cloud::VisionAI::V1::BatchRunProcessRequest, ::Google::Longrunning::Operation
          end

          Stub = Service.rpc_stub_class
        end
      end
    end
  end
end
