# -*- coding: utf-8 -*-
# Generated by https://github.com/verloop/twirpy/protoc-gen-twirpy.  DO NOT EDIT!
# source: video/sfu/remote_control_rpc/remote_control_v1.proto

from google.protobuf import symbol_database as _symbol_database

from twirp.base import Endpoint
from twirp.server import TwirpServer
from twirp.client import TwirpClient

_sym_db = _symbol_database.Default()

class RemoteControlRPCServer(TwirpServer):

	def __init__(self, *args, service, server_path_prefix="/twirp"):
		super().__init__(service=service)
		self._prefix = F"{server_path_prefix}/stream.video.sfu.remote_control.RemoteControlRPC"
		self._endpoints = {
			"KickUser": Endpoint(
				service_name="RemoteControlRPC",
				name="KickUser",
				function=getattr(service, "KickUser"),
				input=_sym_db.GetSymbol("stream.video.sfu.remote_control.KickUserRequest"),
				output=_sym_db.GetSymbol("stream.video.sfu.remote_control.KickUserResponse"),
			),
			"MuteParticipants": Endpoint(
				service_name="RemoteControlRPC",
				name="MuteParticipants",
				function=getattr(service, "MuteParticipants"),
				input=_sym_db.GetSymbol("stream.video.sfu.remote_control.MuteParticipantsRequest"),
				output=_sym_db.GetSymbol("stream.video.sfu.remote_control.MuteParticipantsResponse"),
			),
			"GetCall": Endpoint(
				service_name="RemoteControlRPC",
				name="GetCall",
				function=getattr(service, "GetCall"),
				input=_sym_db.GetSymbol("stream.video.sfu.remote_control.GetCallRequest"),
				output=_sym_db.GetSymbol("stream.video.sfu.remote_control.GetCallResponse"),
			),
			"CreateCall": Endpoint(
				service_name="RemoteControlRPC",
				name="CreateCall",
				function=getattr(service, "CreateCall"),
				input=_sym_db.GetSymbol("stream.video.sfu.remote_control.CreateCallRequest"),
				output=_sym_db.GetSymbol("stream.video.sfu.remote_control.CreateCallResponse"),
			),
			"EndCall": Endpoint(
				service_name="RemoteControlRPC",
				name="EndCall",
				function=getattr(service, "EndCall"),
				input=_sym_db.GetSymbol("stream.video.sfu.remote_control.EndCallRequest"),
				output=_sym_db.GetSymbol("stream.video.sfu.remote_control.EndCallResponse"),
			),
		}

class RemoteControlRPCClient(TwirpClient):

	def KickUser(self, *args, ctx, request, server_path_prefix="/twirp", **kwargs):
		return self._make_request(
			url=F"{server_path_prefix}/stream.video.sfu.remote_control.RemoteControlRPC/KickUser",
			ctx=ctx,
			request=request,
			response_obj=_sym_db.GetSymbol("stream.video.sfu.remote_control.KickUserResponse"),
			**kwargs,
		)

	def MuteParticipants(self, *args, ctx, request, server_path_prefix="/twirp", **kwargs):
		return self._make_request(
			url=F"{server_path_prefix}/stream.video.sfu.remote_control.RemoteControlRPC/MuteParticipants",
			ctx=ctx,
			request=request,
			response_obj=_sym_db.GetSymbol("stream.video.sfu.remote_control.MuteParticipantsResponse"),
			**kwargs,
		)

	def GetCall(self, *args, ctx, request, server_path_prefix="/twirp", **kwargs):
		return self._make_request(
			url=F"{server_path_prefix}/stream.video.sfu.remote_control.RemoteControlRPC/GetCall",
			ctx=ctx,
			request=request,
			response_obj=_sym_db.GetSymbol("stream.video.sfu.remote_control.GetCallResponse"),
			**kwargs,
		)

	def CreateCall(self, *args, ctx, request, server_path_prefix="/twirp", **kwargs):
		return self._make_request(
			url=F"{server_path_prefix}/stream.video.sfu.remote_control.RemoteControlRPC/CreateCall",
			ctx=ctx,
			request=request,
			response_obj=_sym_db.GetSymbol("stream.video.sfu.remote_control.CreateCallResponse"),
			**kwargs,
		)

	def EndCall(self, *args, ctx, request, server_path_prefix="/twirp", **kwargs):
		return self._make_request(
			url=F"{server_path_prefix}/stream.video.sfu.remote_control.RemoteControlRPC/EndCall",
			ctx=ctx,
			request=request,
			response_obj=_sym_db.GetSymbol("stream.video.sfu.remote_control.EndCallResponse"),
			**kwargs,
		)
