# Code generated by lark_sdk_gen. DO NOT EDIT.

import typing
from pylark.lark_request import Response

from pylark.api_service_vc_reserve_apply import (
    ApplyVCReserveReq,
    ApplyVCReserveResp,
    _gen_apply_vc_reserve_req,
)
from pylark.api_service_vc_reserve_update import (
    UpdateVCReserveReq,
    UpdateVCReserveResp,
    _gen_update_vc_reserve_req,
)
from pylark.api_service_vc_reserve_delete import (
    DeleteVCReserveReq,
    DeleteVCReserveResp,
    _gen_delete_vc_reserve_req,
)
from pylark.api_service_vc_reserve_get import (
    GetVCReserveReq,
    GetVCReserveResp,
    _gen_get_vc_reserve_req,
)
from pylark.api_service_vc_reserve_get_active_meeting import (
    GetVCReserveActiveMeetingReq,
    GetVCReserveActiveMeetingResp,
    _gen_get_vc_reserve_active_meeting_req,
)
from pylark.api_service_vc_meeting_get import (
    GetVCMeetingReq,
    GetVCMeetingResp,
    _gen_get_vc_meeting_req,
)
from pylark.api_service_vc_meeting_invite import (
    InviteVCMeetingReq,
    InviteVCMeetingResp,
    _gen_invite_vc_meeting_req,
)
from pylark.api_service_vc_meeting_set_host import (
    SetVCHostMeetingReq,
    SetVCHostMeetingResp,
    _gen_set_vc_host_meeting_req,
)
from pylark.api_service_vc_meeting_end import (
    EndVCMeetingReq,
    EndVCMeetingResp,
    _gen_end_vc_meeting_req,
)
from pylark.api_service_vc_meeting_recording_start import (
    StartVCMeetingRecordingReq,
    StartVCMeetingRecordingResp,
    _gen_start_vc_meeting_recording_req,
)
from pylark.api_service_vc_meeting_recording_stop import (
    StopVCMeetingRecordingReq,
    StopVCMeetingRecordingResp,
    _gen_stop_vc_meeting_recording_req,
)
from pylark.api_service_vc_meeting_recording_get import (
    GetVCMeetingRecordingReq,
    GetVCMeetingRecordingResp,
    _gen_get_vc_meeting_recording_req,
)
from pylark.api_service_vc_meeting_recording_set_permission import (
    SetVCPermissionMeetingRecordingReq,
    SetVCPermissionMeetingRecordingResp,
    _gen_set_vc_permission_meeting_recording_req,
)
from pylark.api_service_vc_report_get_daily import (
    GetVCDailyReportReq,
    GetVCDailyReportResp,
    _gen_get_vc_daily_report_req,
)
from pylark.api_service_vc_report_get_top_user import (
    GetVCTopUserReportReq,
    GetVCTopUserReportResp,
    _gen_get_vc_top_user_report_req,
)
from pylark.api_service_vc_room_config_get import (
    GetVCRoomConfigReq,
    GetVCRoomConfigResp,
    _gen_get_vc_room_config_req,
)
from pylark.api_service_vc_room_config_set import (
    SetVCRoomConfigReq,
    SetVCRoomConfigResp,
    _gen_set_vc_room_config_req,
)


if typing.TYPE_CHECKING:
    from lark import Lark


class LarkVCService(object):
    cli: "Lark"

    def __init__(self, cli: "Lark"):
        self.cli = cli

    def apply_vc_reserve(
        self, request: ApplyVCReserveReq, options: typing.List[str] = None
    ) -> typing.Tuple[ApplyVCReserveResp, Response]:
        return self.cli.raw_request(_gen_apply_vc_reserve_req(request, options))

    def update_vc_reserve(
        self, request: UpdateVCReserveReq, options: typing.List[str] = None
    ) -> typing.Tuple[UpdateVCReserveResp, Response]:
        return self.cli.raw_request(_gen_update_vc_reserve_req(request, options))

    def delete_vc_reserve(
        self, request: DeleteVCReserveReq, options: typing.List[str] = None
    ) -> typing.Tuple[DeleteVCReserveResp, Response]:
        return self.cli.raw_request(_gen_delete_vc_reserve_req(request, options))

    def get_vc_reserve(
        self, request: GetVCReserveReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetVCReserveResp, Response]:
        return self.cli.raw_request(_gen_get_vc_reserve_req(request, options))

    def get_vc_reserve_active_meeting(
        self, request: GetVCReserveActiveMeetingReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetVCReserveActiveMeetingResp, Response]:
        return self.cli.raw_request(
            _gen_get_vc_reserve_active_meeting_req(request, options)
        )

    def get_vc_meeting(
        self, request: GetVCMeetingReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetVCMeetingResp, Response]:
        return self.cli.raw_request(_gen_get_vc_meeting_req(request, options))

    def invite_vc_meeting(
        self, request: InviteVCMeetingReq, options: typing.List[str] = None
    ) -> typing.Tuple[InviteVCMeetingResp, Response]:
        return self.cli.raw_request(_gen_invite_vc_meeting_req(request, options))

    def set_vc_host_meeting(
        self, request: SetVCHostMeetingReq, options: typing.List[str] = None
    ) -> typing.Tuple[SetVCHostMeetingResp, Response]:
        return self.cli.raw_request(_gen_set_vc_host_meeting_req(request, options))

    def end_vc_meeting(
        self, request: EndVCMeetingReq, options: typing.List[str] = None
    ) -> typing.Tuple[EndVCMeetingResp, Response]:
        return self.cli.raw_request(_gen_end_vc_meeting_req(request, options))

    def start_vc_meeting_recording(
        self, request: StartVCMeetingRecordingReq, options: typing.List[str] = None
    ) -> typing.Tuple[StartVCMeetingRecordingResp, Response]:
        return self.cli.raw_request(
            _gen_start_vc_meeting_recording_req(request, options)
        )

    def stop_vc_meeting_recording(
        self, request: StopVCMeetingRecordingReq, options: typing.List[str] = None
    ) -> typing.Tuple[StopVCMeetingRecordingResp, Response]:
        return self.cli.raw_request(
            _gen_stop_vc_meeting_recording_req(request, options)
        )

    def get_vc_meeting_recording(
        self, request: GetVCMeetingRecordingReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetVCMeetingRecordingResp, Response]:
        return self.cli.raw_request(_gen_get_vc_meeting_recording_req(request, options))

    def set_vc_permission_meeting_recording(
        self,
        request: SetVCPermissionMeetingRecordingReq,
        options: typing.List[str] = None,
    ) -> typing.Tuple[SetVCPermissionMeetingRecordingResp, Response]:
        return self.cli.raw_request(
            _gen_set_vc_permission_meeting_recording_req(request, options)
        )

    def get_vc_daily_report(
        self, request: GetVCDailyReportReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetVCDailyReportResp, Response]:
        return self.cli.raw_request(_gen_get_vc_daily_report_req(request, options))

    def get_vc_top_user_report(
        self, request: GetVCTopUserReportReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetVCTopUserReportResp, Response]:
        return self.cli.raw_request(_gen_get_vc_top_user_report_req(request, options))

    def get_vc_room_config(
        self, request: GetVCRoomConfigReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetVCRoomConfigResp, Response]:
        return self.cli.raw_request(_gen_get_vc_room_config_req(request, options))

    def set_vc_room_config(
        self, request: SetVCRoomConfigReq, options: typing.List[str] = None
    ) -> typing.Tuple[SetVCRoomConfigResp, Response]:
        return self.cli.raw_request(_gen_set_vc_room_config_req(request, options))
