# Code generated by lark_sdk_gen. DO NOT EDIT.

import typing
from pylark.lark_request import Response

from pylark.api_service_acs_access_record_photo_get import (
    GetACSAccessRecordPhotoReq,
    GetACSAccessRecordPhotoResp,
    _gen_get_acs_access_record_photo_req,
)
from pylark.api_service_acs_access_record_list import (
    GetACSAccessRecordListReq,
    GetACSAccessRecordListResp,
    _gen_get_acs_access_record_list_req,
)
from pylark.api_service_acs_device_list import (
    GetACSDeviceListReq,
    GetACSDeviceListResp,
    _gen_get_acs_device_list_req,
)
from pylark.api_service_acs_user_face_get import (
    GetACSUserFaceReq,
    GetACSUserFaceResp,
    _gen_get_acs_user_face_req,
)
from pylark.api_service_acs_user_face_update import (
    UpdateACSUserFaceReq,
    UpdateACSUserFaceResp,
    _gen_update_acs_user_face_req,
)
from pylark.api_service_acs_user_get import (
    GetACSUserReq,
    GetACSUserResp,
    _gen_get_acs_user_req,
)
from pylark.api_service_acs_user_update import (
    UpdateACSUserReq,
    UpdateACSUserResp,
    _gen_update_acs_user_req,
)
from pylark.api_service_acs_user_list import (
    GetACSUserListReq,
    GetACSUserListResp,
    _gen_get_acs_user_list_req,
)


if typing.TYPE_CHECKING:
    from lark import Lark


class LarkACSService(object):
    cli: "Lark"

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

    def get_acs_access_record_photo(
        self, request: GetACSAccessRecordPhotoReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetACSAccessRecordPhotoResp, Response]:
        return self.cli.raw_request(
            _gen_get_acs_access_record_photo_req(request, options)
        )

    def get_acs_access_record_list(
        self, request: GetACSAccessRecordListReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetACSAccessRecordListResp, Response]:
        return self.cli.raw_request(
            _gen_get_acs_access_record_list_req(request, options)
        )

    def get_acs_device_list(
        self, request: GetACSDeviceListReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetACSDeviceListResp, Response]:
        return self.cli.raw_request(_gen_get_acs_device_list_req(request, options))

    def get_acs_user_face(
        self, request: GetACSUserFaceReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetACSUserFaceResp, Response]:
        return self.cli.raw_request(_gen_get_acs_user_face_req(request, options))

    def update_acs_user_face(
        self, request: UpdateACSUserFaceReq, options: typing.List[str] = None
    ) -> typing.Tuple[UpdateACSUserFaceResp, Response]:
        return self.cli.raw_request(_gen_update_acs_user_face_req(request, options))

    def get_acs_user(
        self, request: GetACSUserReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetACSUserResp, Response]:
        return self.cli.raw_request(_gen_get_acs_user_req(request, options))

    def update_acs_user(
        self, request: UpdateACSUserReq, options: typing.List[str] = None
    ) -> typing.Tuple[UpdateACSUserResp, Response]:
        return self.cli.raw_request(_gen_update_acs_user_req(request, options))

    def get_acs_user_list(
        self, request: GetACSUserListReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetACSUserListResp, Response]:
        return self.cli.raw_request(_gen_get_acs_user_list_req(request, options))
