# Code generated by lark_sdk_gen. DO NOT EDIT.

import typing
from pylark.lark_request import Response

from pylark.api_service_helpdesk_start_service import (
    StartHelpdeskServiceReq,
    StartHelpdeskServiceResp,
    _gen_start_helpdesk_service_req,
)
from pylark.api_service_helpdesk_ticket_get import (
    GetHelpdeskTicketReq,
    GetHelpdeskTicketResp,
    _gen_get_helpdesk_ticket_req,
)
from pylark.api_service_helpdesk_ticket_update import (
    UpdateHelpdeskTicketReq,
    UpdateHelpdeskTicketResp,
    _gen_update_helpdesk_ticket_req,
)
from pylark.api_service_helpdesk_ticket_get_list import (
    GetHelpdeskTicketListReq,
    GetHelpdeskTicketListResp,
    _gen_get_helpdesk_ticket_list_req,
)
from pylark.api_service_helpdesk_ticket_image_download import (
    DownloadHelpdeskTicketImageReq,
    DownloadHelpdeskTicketImageResp,
    _gen_download_helpdesk_ticket_image_req,
)
from pylark.api_service_helpdesk_ticket_answer_user_query import (
    AnswerHelpdeskTicketUserQueryReq,
    AnswerHelpdeskTicketUserQueryResp,
    _gen_answer_helpdesk_ticket_user_query_req,
)
from pylark.api_service_helpdesk_ticket_message_get_list import (
    GetHelpdeskTicketMessageListReq,
    GetHelpdeskTicketMessageListResp,
    _gen_get_helpdesk_ticket_message_list_req,
)
from pylark.api_service_helpdesk_ticket_message_send import (
    SendHelpdeskTicketMessageReq,
    SendHelpdeskTicketMessageResp,
    _gen_send_helpdesk_ticket_message_req,
)
from pylark.api_service_helpdesk_ticket_customized_field_get_list import (
    GetHelpdeskTicketCustomizedFieldListReq,
    GetHelpdeskTicketCustomizedFieldListResp,
    _gen_get_helpdesk_ticket_customized_field_list_req,
)
from pylark.api_service_helpdesk_ticket_customized_field_delete import (
    DeleteHelpdeskTicketCustomizedFieldReq,
    DeleteHelpdeskTicketCustomizedFieldResp,
    _gen_delete_helpdesk_ticket_customized_field_req,
)
from pylark.api_service_helpdesk_ticket_customized_field_update import (
    UpdateHelpdeskTicketCustomizedFieldReq,
    UpdateHelpdeskTicketCustomizedFieldResp,
    _gen_update_helpdesk_ticket_customized_field_req,
)
from pylark.api_service_helpdesk_ticket_customized_field_create import (
    CreateHelpdeskTicketCustomizedFieldReq,
    CreateHelpdeskTicketCustomizedFieldResp,
    _gen_create_helpdesk_ticket_customized_field_req,
)
from pylark.api_service_helpdesk_ticket_customized_field_get import (
    GetHelpdeskTicketCustomizedFieldReq,
    GetHelpdeskTicketCustomizedFieldResp,
    _gen_get_helpdesk_ticket_customized_field_req,
)
from pylark.api_service_helpdesk_category_create import (
    CreateHelpdeskCategoryReq,
    CreateHelpdeskCategoryResp,
    _gen_create_helpdesk_category_req,
)
from pylark.api_service_helpdesk_category_get import (
    GetHelpdeskCategoryReq,
    GetHelpdeskCategoryResp,
    _gen_get_helpdesk_category_req,
)
from pylark.api_service_helpdesk_category_update import (
    UpdateHelpdeskCategoryReq,
    UpdateHelpdeskCategoryResp,
    _gen_update_helpdesk_category_req,
)
from pylark.api_service_helpdesk_category_delete import (
    DeleteHelpdeskCategoryReq,
    DeleteHelpdeskCategoryResp,
    _gen_delete_helpdesk_category_req,
)
from pylark.api_service_helpdesk_category_get_list import (
    GetHelpdeskCategoryListReq,
    GetHelpdeskCategoryListResp,
    _gen_get_helpdesk_category_list_req,
)
from pylark.api_service_helpdesk_faq_create import (
    CreateHelpdeskFAQReq,
    CreateHelpdeskFAQResp,
    _gen_create_helpdesk_faq_req,
)
from pylark.api_service_helpdesk_faq_get import (
    GetHelpdeskFAQReq,
    GetHelpdeskFAQResp,
    _gen_get_helpdesk_faq_req,
)
from pylark.api_service_helpdesk_faq_update import (
    UpdateHelpdeskFAQReq,
    UpdateHelpdeskFAQResp,
    _gen_update_helpdesk_faq_req,
)
from pylark.api_service_helpdesk_faq_delete import (
    DeleteHelpdeskFAQReq,
    DeleteHelpdeskFAQResp,
    _gen_delete_helpdesk_faq_req,
)
from pylark.api_service_helpdesk_faq_get_list import (
    GetHelpdeskFAQListReq,
    GetHelpdeskFAQListResp,
    _gen_get_helpdesk_faq_list_req,
)
from pylark.api_service_helpdesk_faq_get_image import (
    GetHelpdeskFAQImageReq,
    GetHelpdeskFAQImageResp,
    _gen_get_helpdesk_faq_image_req,
)
from pylark.api_service_helpdesk_faq_search import (
    SearchHelpdeskFAQReq,
    SearchHelpdeskFAQResp,
    _gen_search_helpdesk_faq_req,
)
from pylark.api_service_helpdesk_agent_patch import (
    UpdateHelpdeskAgentReq,
    UpdateHelpdeskAgentResp,
    _gen_update_helpdesk_agent_req,
)
from pylark.api_service_helpdesk_agent_email_get import (
    GetHelpdeskAgentEmailReq,
    GetHelpdeskAgentEmailResp,
    _gen_get_helpdesk_agent_email_req,
)
from pylark.api_service_helpdesk_agent_schedule_create import (
    CreateHelpdeskAgentScheduleReq,
    CreateHelpdeskAgentScheduleResp,
    _gen_create_helpdesk_agent_schedule_req,
)
from pylark.api_service_helpdesk_agent_schedule_delete import (
    DeleteHelpdeskAgentScheduleReq,
    DeleteHelpdeskAgentScheduleResp,
    _gen_delete_helpdesk_agent_schedule_req,
)
from pylark.api_service_helpdesk_agent_schedule_update import (
    UpdateHelpdeskAgentScheduleReq,
    UpdateHelpdeskAgentScheduleResp,
    _gen_update_helpdesk_agent_schedule_req,
)
from pylark.api_service_helpdesk_agent_schedule_get import (
    GetHelpdeskAgentScheduleReq,
    GetHelpdeskAgentScheduleResp,
    _gen_get_helpdesk_agent_schedule_req,
)
from pylark.api_service_helpdesk_agent_schedule_get_list import (
    GetHelpdeskAgentScheduleListReq,
    GetHelpdeskAgentScheduleListResp,
    _gen_get_helpdesk_agent_schedule_list_req,
)
from pylark.api_service_helpdesk_agent_skill_create import (
    CreateHelpdeskAgentSkillReq,
    CreateHelpdeskAgentSkillResp,
    _gen_create_helpdesk_agent_skill_req,
)
from pylark.api_service_helpdesk_agent_skill_get import (
    GetHelpdeskAgentSkillReq,
    GetHelpdeskAgentSkillResp,
    _gen_get_helpdesk_agent_skill_req,
)
from pylark.api_service_helpdesk_agent_skill_update import (
    UpdateHelpdeskAgentSkillReq,
    UpdateHelpdeskAgentSkillResp,
    _gen_update_helpdesk_agent_skill_req,
)
from pylark.api_service_helpdesk_agent_skill_delete import (
    DeleteHelpdeskAgentSkillReq,
    DeleteHelpdeskAgentSkillResp,
    _gen_delete_helpdesk_agent_skill_req,
)
from pylark.api_service_helpdesk_agent_skill_get_list import (
    GetHelpdeskAgentSkillListReq,
    GetHelpdeskAgentSkillListResp,
    _gen_get_helpdesk_agent_skill_list_req,
)
from pylark.api_service_helpdesk_agent_skill_rule_get_list import (
    GetHelpdeskAgentSkillRuleListReq,
    GetHelpdeskAgentSkillRuleListResp,
    _gen_get_helpdesk_agent_skill_rule_list_req,
)
from pylark.api_service_helpdesk_event_subscribe import (
    SubscribeHelpdeskEventReq,
    SubscribeHelpdeskEventResp,
    _gen_subscribe_helpdesk_event_req,
)
from pylark.api_service_helpdesk_event_unsubscribe import (
    UnsubscribeHelpdeskEventReq,
    UnsubscribeHelpdeskEventResp,
    _gen_unsubscribe_helpdesk_event_req,
)


if typing.TYPE_CHECKING:
    from lark import Lark


class LarkHelpdeskService(object):
    cli: "Lark"

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

    def start_helpdesk_service(
        self, request: StartHelpdeskServiceReq, options: typing.List[str] = None
    ) -> typing.Tuple[StartHelpdeskServiceResp, Response]:
        return self.cli.raw_request(_gen_start_helpdesk_service_req(request, options))

    def get_helpdesk_ticket(
        self, request: GetHelpdeskTicketReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetHelpdeskTicketResp, Response]:
        return self.cli.raw_request(_gen_get_helpdesk_ticket_req(request, options))

    def update_helpdesk_ticket(
        self, request: UpdateHelpdeskTicketReq, options: typing.List[str] = None
    ) -> typing.Tuple[UpdateHelpdeskTicketResp, Response]:
        return self.cli.raw_request(_gen_update_helpdesk_ticket_req(request, options))

    def get_helpdesk_ticket_list(
        self, request: GetHelpdeskTicketListReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetHelpdeskTicketListResp, Response]:
        return self.cli.raw_request(_gen_get_helpdesk_ticket_list_req(request, options))

    def download_helpdesk_ticket_image(
        self, request: DownloadHelpdeskTicketImageReq, options: typing.List[str] = None
    ) -> typing.Tuple[DownloadHelpdeskTicketImageResp, Response]:
        return self.cli.raw_request(
            _gen_download_helpdesk_ticket_image_req(request, options)
        )

    def answer_helpdesk_ticket_user_query(
        self,
        request: AnswerHelpdeskTicketUserQueryReq,
        options: typing.List[str] = None,
    ) -> typing.Tuple[AnswerHelpdeskTicketUserQueryResp, Response]:
        return self.cli.raw_request(
            _gen_answer_helpdesk_ticket_user_query_req(request, options)
        )

    def get_helpdesk_ticket_message_list(
        self, request: GetHelpdeskTicketMessageListReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetHelpdeskTicketMessageListResp, Response]:
        return self.cli.raw_request(
            _gen_get_helpdesk_ticket_message_list_req(request, options)
        )

    def send_helpdesk_ticket_message(
        self, request: SendHelpdeskTicketMessageReq, options: typing.List[str] = None
    ) -> typing.Tuple[SendHelpdeskTicketMessageResp, Response]:
        return self.cli.raw_request(
            _gen_send_helpdesk_ticket_message_req(request, options)
        )

    def get_helpdesk_ticket_customized_field_list(
        self,
        request: GetHelpdeskTicketCustomizedFieldListReq,
        options: typing.List[str] = None,
    ) -> typing.Tuple[GetHelpdeskTicketCustomizedFieldListResp, Response]:
        return self.cli.raw_request(
            _gen_get_helpdesk_ticket_customized_field_list_req(request, options)
        )

    def delete_helpdesk_ticket_customized_field(
        self,
        request: DeleteHelpdeskTicketCustomizedFieldReq,
        options: typing.List[str] = None,
    ) -> typing.Tuple[DeleteHelpdeskTicketCustomizedFieldResp, Response]:
        return self.cli.raw_request(
            _gen_delete_helpdesk_ticket_customized_field_req(request, options)
        )

    def update_helpdesk_ticket_customized_field(
        self,
        request: UpdateHelpdeskTicketCustomizedFieldReq,
        options: typing.List[str] = None,
    ) -> typing.Tuple[UpdateHelpdeskTicketCustomizedFieldResp, Response]:
        return self.cli.raw_request(
            _gen_update_helpdesk_ticket_customized_field_req(request, options)
        )

    def create_helpdesk_ticket_customized_field(
        self,
        request: CreateHelpdeskTicketCustomizedFieldReq,
        options: typing.List[str] = None,
    ) -> typing.Tuple[CreateHelpdeskTicketCustomizedFieldResp, Response]:
        return self.cli.raw_request(
            _gen_create_helpdesk_ticket_customized_field_req(request, options)
        )

    def get_helpdesk_ticket_customized_field(
        self,
        request: GetHelpdeskTicketCustomizedFieldReq,
        options: typing.List[str] = None,
    ) -> typing.Tuple[GetHelpdeskTicketCustomizedFieldResp, Response]:
        return self.cli.raw_request(
            _gen_get_helpdesk_ticket_customized_field_req(request, options)
        )

    def create_helpdesk_category(
        self, request: CreateHelpdeskCategoryReq, options: typing.List[str] = None
    ) -> typing.Tuple[CreateHelpdeskCategoryResp, Response]:
        return self.cli.raw_request(_gen_create_helpdesk_category_req(request, options))

    def get_helpdesk_category(
        self, request: GetHelpdeskCategoryReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetHelpdeskCategoryResp, Response]:
        return self.cli.raw_request(_gen_get_helpdesk_category_req(request, options))

    def update_helpdesk_category(
        self, request: UpdateHelpdeskCategoryReq, options: typing.List[str] = None
    ) -> typing.Tuple[UpdateHelpdeskCategoryResp, Response]:
        return self.cli.raw_request(_gen_update_helpdesk_category_req(request, options))

    def delete_helpdesk_category(
        self, request: DeleteHelpdeskCategoryReq, options: typing.List[str] = None
    ) -> typing.Tuple[DeleteHelpdeskCategoryResp, Response]:
        return self.cli.raw_request(_gen_delete_helpdesk_category_req(request, options))

    def get_helpdesk_category_list(
        self, request: GetHelpdeskCategoryListReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetHelpdeskCategoryListResp, Response]:
        return self.cli.raw_request(
            _gen_get_helpdesk_category_list_req(request, options)
        )

    def create_helpdesk_faq(
        self, request: CreateHelpdeskFAQReq, options: typing.List[str] = None
    ) -> typing.Tuple[CreateHelpdeskFAQResp, Response]:
        return self.cli.raw_request(_gen_create_helpdesk_faq_req(request, options))

    def get_helpdesk_faq(
        self, request: GetHelpdeskFAQReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetHelpdeskFAQResp, Response]:
        return self.cli.raw_request(_gen_get_helpdesk_faq_req(request, options))

    def update_helpdesk_faq(
        self, request: UpdateHelpdeskFAQReq, options: typing.List[str] = None
    ) -> typing.Tuple[UpdateHelpdeskFAQResp, Response]:
        return self.cli.raw_request(_gen_update_helpdesk_faq_req(request, options))

    def delete_helpdesk_faq(
        self, request: DeleteHelpdeskFAQReq, options: typing.List[str] = None
    ) -> typing.Tuple[DeleteHelpdeskFAQResp, Response]:
        return self.cli.raw_request(_gen_delete_helpdesk_faq_req(request, options))

    def get_helpdesk_faq_list(
        self, request: GetHelpdeskFAQListReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetHelpdeskFAQListResp, Response]:
        return self.cli.raw_request(_gen_get_helpdesk_faq_list_req(request, options))

    def get_helpdesk_faq_image(
        self, request: GetHelpdeskFAQImageReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetHelpdeskFAQImageResp, Response]:
        return self.cli.raw_request(_gen_get_helpdesk_faq_image_req(request, options))

    def search_helpdesk_faq(
        self, request: SearchHelpdeskFAQReq, options: typing.List[str] = None
    ) -> typing.Tuple[SearchHelpdeskFAQResp, Response]:
        return self.cli.raw_request(_gen_search_helpdesk_faq_req(request, options))

    def update_helpdesk_agent(
        self, request: UpdateHelpdeskAgentReq, options: typing.List[str] = None
    ) -> typing.Tuple[UpdateHelpdeskAgentResp, Response]:
        return self.cli.raw_request(_gen_update_helpdesk_agent_req(request, options))

    def get_helpdesk_agent_email(
        self, request: GetHelpdeskAgentEmailReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetHelpdeskAgentEmailResp, Response]:
        return self.cli.raw_request(_gen_get_helpdesk_agent_email_req(request, options))

    def create_helpdesk_agent_schedule(
        self, request: CreateHelpdeskAgentScheduleReq, options: typing.List[str] = None
    ) -> typing.Tuple[CreateHelpdeskAgentScheduleResp, Response]:
        return self.cli.raw_request(
            _gen_create_helpdesk_agent_schedule_req(request, options)
        )

    def delete_helpdesk_agent_schedule(
        self, request: DeleteHelpdeskAgentScheduleReq, options: typing.List[str] = None
    ) -> typing.Tuple[DeleteHelpdeskAgentScheduleResp, Response]:
        return self.cli.raw_request(
            _gen_delete_helpdesk_agent_schedule_req(request, options)
        )

    def update_helpdesk_agent_schedule(
        self, request: UpdateHelpdeskAgentScheduleReq, options: typing.List[str] = None
    ) -> typing.Tuple[UpdateHelpdeskAgentScheduleResp, Response]:
        return self.cli.raw_request(
            _gen_update_helpdesk_agent_schedule_req(request, options)
        )

    def get_helpdesk_agent_schedule(
        self, request: GetHelpdeskAgentScheduleReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetHelpdeskAgentScheduleResp, Response]:
        return self.cli.raw_request(
            _gen_get_helpdesk_agent_schedule_req(request, options)
        )

    def get_helpdesk_agent_schedule_list(
        self, request: GetHelpdeskAgentScheduleListReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetHelpdeskAgentScheduleListResp, Response]:
        return self.cli.raw_request(
            _gen_get_helpdesk_agent_schedule_list_req(request, options)
        )

    def create_helpdesk_agent_skill(
        self, request: CreateHelpdeskAgentSkillReq, options: typing.List[str] = None
    ) -> typing.Tuple[CreateHelpdeskAgentSkillResp, Response]:
        return self.cli.raw_request(
            _gen_create_helpdesk_agent_skill_req(request, options)
        )

    def get_helpdesk_agent_skill(
        self, request: GetHelpdeskAgentSkillReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetHelpdeskAgentSkillResp, Response]:
        return self.cli.raw_request(_gen_get_helpdesk_agent_skill_req(request, options))

    def update_helpdesk_agent_skill(
        self, request: UpdateHelpdeskAgentSkillReq, options: typing.List[str] = None
    ) -> typing.Tuple[UpdateHelpdeskAgentSkillResp, Response]:
        return self.cli.raw_request(
            _gen_update_helpdesk_agent_skill_req(request, options)
        )

    def delete_helpdesk_agent_skill(
        self, request: DeleteHelpdeskAgentSkillReq, options: typing.List[str] = None
    ) -> typing.Tuple[DeleteHelpdeskAgentSkillResp, Response]:
        return self.cli.raw_request(
            _gen_delete_helpdesk_agent_skill_req(request, options)
        )

    def get_helpdesk_agent_skill_list(
        self, request: GetHelpdeskAgentSkillListReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetHelpdeskAgentSkillListResp, Response]:
        return self.cli.raw_request(
            _gen_get_helpdesk_agent_skill_list_req(request, options)
        )

    def get_helpdesk_agent_skill_rule_list(
        self,
        request: GetHelpdeskAgentSkillRuleListReq,
        options: typing.List[str] = None,
    ) -> typing.Tuple[GetHelpdeskAgentSkillRuleListResp, Response]:
        return self.cli.raw_request(
            _gen_get_helpdesk_agent_skill_rule_list_req(request, options)
        )

    def subscribe_helpdesk_event(
        self, request: SubscribeHelpdeskEventReq, options: typing.List[str] = None
    ) -> typing.Tuple[SubscribeHelpdeskEventResp, Response]:
        return self.cli.raw_request(_gen_subscribe_helpdesk_event_req(request, options))

    def unsubscribe_helpdesk_event(
        self, request: UnsubscribeHelpdeskEventReq, options: typing.List[str] = None
    ) -> typing.Tuple[UnsubscribeHelpdeskEventResp, Response]:
        return self.cli.raw_request(
            _gen_unsubscribe_helpdesk_event_req(request, options)
        )
