# Code generated by lark_sdk_gen. DO NOT EDIT.

import typing
from pylark.lark_request import Response

from pylark.api_service_drive_file_search import (
    SearchDriveFileReq,
    SearchDriveFileResp,
    _gen_search_drive_file_req,
)
from pylark.api_service_drive_file_meta_get import (
    GetDriveFileMetaReq,
    GetDriveFileMetaResp,
    _gen_get_drive_file_meta_req,
)
from pylark.api_service_drive_file_create import (
    CreateDriveFileReq,
    CreateDriveFileResp,
    _gen_create_drive_file_req,
)
from pylark.api_service_drive_file_copy import (
    CopyDriveFileReq,
    CopyDriveFileResp,
    _gen_copy_drive_file_req,
)
from pylark.api_service_drive_file_delete import (
    DeleteDriveFileReq,
    DeleteDriveFileResp,
    _gen_delete_drive_file_req,
)
from pylark.api_service_drive_file_sheet_delete import (
    DeleteDriveSheetFileReq,
    DeleteDriveSheetFileResp,
    _gen_delete_drive_sheet_file_req,
)
from pylark.api_service_drive_folder_create import (
    CreateDriveFolderReq,
    CreateDriveFolderResp,
    _gen_create_drive_folder_req,
)
from pylark.api_service_drive_folder_meta import (
    GetDriveFolderMetaReq,
    GetDriveFolderMetaResp,
    _gen_get_drive_folder_meta_req,
)
from pylark.api_service_drive_folder_root_meta import (
    GetDriveRootFolderMetaReq,
    GetDriveRootFolderMetaResp,
    _gen_get_drive_root_folder_meta_req,
)
from pylark.api_service_drive_folder_children_get import (
    GetDriveFolderChildrenReq,
    GetDriveFolderChildrenResp,
    _gen_get_drive_folder_children_req,
)
from pylark.api_service_drive_file_statistics_get import (
    GetDriveFileStatisticsReq,
    GetDriveFileStatisticsResp,
    _gen_get_drive_file_statistics_req,
)
from pylark.api_service_drive_file_download import (
    DownloadDriveFileReq,
    DownloadDriveFileResp,
    _gen_download_drive_file_req,
)
from pylark.api_service_drive_file_upload_all import (
    UploadDriveFileReq,
    UploadDriveFileResp,
    _gen_upload_drive_file_req,
)
from pylark.api_service_drive_file_upload_prepare import (
    PrepareUploadDriveFileReq,
    PrepareUploadDriveFileResp,
    _gen_prepare_upload_drive_file_req,
)
from pylark.api_service_drive_file_upload_part import (
    PartUploadDriveFileReq,
    PartUploadDriveFileResp,
    _gen_part_upload_drive_file_req,
)
from pylark.api_service_drive_file_upload_finish import (
    FinishUploadDriveFileReq,
    FinishUploadDriveFileResp,
    _gen_finish_upload_drive_file_req,
)
from pylark.api_service_drive_media_download import (
    DownloadDriveMediaReq,
    DownloadDriveMediaResp,
    _gen_download_drive_media_req,
)
from pylark.api_service_drive_media_upload_all import (
    UploadDriveMediaReq,
    UploadDriveMediaResp,
    _gen_upload_drive_media_req,
)
from pylark.api_service_drive_media_upload_prepare import (
    PrepareUploadDriveMediaReq,
    PrepareUploadDriveMediaResp,
    _gen_prepare_upload_drive_media_req,
)
from pylark.api_service_drive_media_upload_part import (
    PartUploadDriveMediaReq,
    PartUploadDriveMediaResp,
    _gen_part_upload_drive_media_req,
)
from pylark.api_service_drive_media_upload_finish import (
    FinishUploadDriveMediaReq,
    FinishUploadDriveMediaResp,
    _gen_finish_upload_drive_media_req,
)
from pylark.api_service_drive_permission_member_create_old import (
    CreateDriveMemberPermissionOldReq,
    CreateDriveMemberPermissionOldResp,
    _gen_create_drive_member_permission_old_req,
)
from pylark.api_service_drive_permission_member_transfer import (
    TransferDriveMemberPermissionReq,
    TransferDriveMemberPermissionResp,
    _gen_transfer_drive_member_permission_req,
)
from pylark.api_service_drive_permission_member_list import (
    GetDriveMemberPermissionListReq,
    GetDriveMemberPermissionListResp,
    _gen_get_drive_member_permission_list_req,
)
from pylark.api_service_drive_permission_member_create import (
    CreateDriveMemberPermissionReq,
    CreateDriveMemberPermissionResp,
    _gen_create_drive_member_permission_req,
)
from pylark.api_service_drive_permission_member_delete import (
    DeleteDriveMemberPermissionReq,
    DeleteDriveMemberPermissionResp,
    _gen_delete_drive_member_permission_req,
)
from pylark.api_service_drive_permission_member_update import (
    UpdateDriveMemberPermissionReq,
    UpdateDriveMemberPermissionResp,
    _gen_update_drive_member_permission_req,
)
from pylark.api_service_drive_permission_member_check import (
    CheckDriveMemberPermissionReq,
    CheckDriveMemberPermissionResp,
    _gen_check_drive_member_permission_req,
)
from pylark.api_service_drive_permission_public_update_v1_old import (
    UpdateDrivePublicPermissionV1OldReq,
    UpdateDrivePublicPermissionV1OldResp,
    _gen_update_drive_public_permission_v1_old_req,
)
from pylark.api_service_drive_permission_public_update_v2_old import (
    UpdateDrivePublicPermissionV2OldReq,
    UpdateDrivePublicPermissionV2OldResp,
    _gen_update_drive_public_permission_v2_old_req,
)
from pylark.api_service_drive_permission_public_get_v2 import (
    GetDrivePublicPermissionV2Req,
    GetDrivePublicPermissionV2Resp,
    _gen_get_drive_public_permission_v2_req,
)
from pylark.api_service_drive_permission_public_patch import (
    UpdateDrivePublicPermissionReq,
    UpdateDrivePublicPermissionResp,
    _gen_update_drive_public_permission_req,
)
from pylark.api_service_drive_media_batch_get_tmp_download_url import (
    BatchGetDriveMediaTmpDownloadURLReq,
    BatchGetDriveMediaTmpDownloadURLResp,
    _gen_batch_get_drive_media_tmp_download_url_req,
)
from pylark.api_service_drive_comment_list import (
    GetDriveCommentListReq,
    GetDriveCommentListResp,
    _gen_get_drive_comment_list_req,
)
from pylark.api_service_drive_comment_get import (
    GetDriveCommentReq,
    GetDriveCommentResp,
    _gen_get_drive_comment_req,
)
from pylark.api_service_drive_comment_create import (
    CreateDriveCommentReq,
    CreateDriveCommentResp,
    _gen_create_drive_comment_req,
)
from pylark.api_service_drive_comment_update import (
    UpdateDriveCommentReq,
    UpdateDriveCommentResp,
    _gen_update_drive_comment_req,
)
from pylark.api_service_drive_comment_delete import (
    DeleteDriveCommentReq,
    DeleteDriveCommentResp,
    _gen_delete_drive_comment_req,
)
from pylark.api_service_drive_comment_patch import (
    UpdateDriveCommentPatchReq,
    UpdateDriveCommentPatchResp,
    _gen_update_drive_comment_patch_req,
)
from pylark.api_service_drive_doc_create import (
    CreateDriveDocReq,
    CreateDriveDocResp,
    _gen_create_drive_doc_req,
)
from pylark.api_service_drive_doc_content_get import (
    GetDriveDocContentReq,
    GetDriveDocContentResp,
    _gen_get_drive_doc_content_req,
)
from pylark.api_service_drive_doc_raw_content_get import (
    GetDriveDocRawContentReq,
    GetDriveDocRawContentResp,
    _gen_get_drive_doc_raw_content_req,
)
from pylark.api_service_drive_doc_meta_get import (
    GetDriveDocMetaReq,
    GetDriveDocMetaResp,
    _gen_get_drive_doc_meta_req,
)
from pylark.api_service_drive_sheet_create import (
    CreateSheetReq,
    CreateSheetResp,
    _gen_create_sheet_req,
)
from pylark.api_service_drive_sheet_meta_get import (
    GetSheetMetaReq,
    GetSheetMetaResp,
    _gen_get_sheet_meta_req,
)
from pylark.api_service_drive_sheet_property_update import (
    UpdateSheetPropertyReq,
    UpdateSheetPropertyResp,
    _gen_update_sheet_property_req,
)
from pylark.api_service_drive_sheet_batch_update import (
    BatchUpdateSheetReq,
    BatchUpdateSheetResp,
    _gen_batch_update_sheet_req,
)
from pylark.api_service_drive_sheet_import import (
    ImportSheetReq,
    ImportSheetResp,
    _gen_import_sheet_req,
)
from pylark.api_service_drive_import_task_create import (
    CreateDriveImportTaskReq,
    CreateDriveImportTaskResp,
    _gen_create_drive_import_task_req,
)
from pylark.api_service_drive_import_task_get import (
    GetDriveImportTaskReq,
    GetDriveImportTaskResp,
    _gen_get_drive_import_task_req,
)
from pylark.api_service_drive_sheet_dimension_move import (
    MoveSheetDimensionReq,
    MoveSheetDimensionResp,
    _gen_move_sheet_dimension_req,
)
from pylark.api_service_drive_sheet_value_prepend import (
    PrependSheetValueReq,
    PrependSheetValueResp,
    _gen_prepend_sheet_value_req,
)
from pylark.api_service_drive_sheet_value_append import (
    AppendSheetValueReq,
    AppendSheetValueResp,
    _gen_append_sheet_value_req,
)
from pylark.api_service_drive_sheet_dimension_range_insert import (
    InsertSheetDimensionRangeReq,
    InsertSheetDimensionRangeResp,
    _gen_insert_sheet_dimension_range_req,
)
from pylark.api_service_drive_sheet_dimension_range_add import (
    AddSheetDimensionRangeReq,
    AddSheetDimensionRangeResp,
    _gen_add_sheet_dimension_range_req,
)
from pylark.api_service_drive_sheet_dimension_range_update import (
    UpdateSheetDimensionRangeReq,
    UpdateSheetDimensionRangeResp,
    _gen_update_sheet_dimension_range_req,
)
from pylark.api_service_drive_sheet_dimension_range_delete import (
    DeleteSheetDimensionRangeReq,
    DeleteSheetDimensionRangeResp,
    _gen_delete_sheet_dimension_range_req,
)
from pylark.api_service_drive_sheet_value_get import (
    GetSheetValueReq,
    GetSheetValueResp,
    _gen_get_sheet_value_req,
)
from pylark.api_service_drive_sheet_value_batch_get import (
    BatchGetSheetValueReq,
    BatchGetSheetValueResp,
    _gen_batch_get_sheet_value_req,
)
from pylark.api_service_drive_sheet_value_set import (
    SetSheetValueReq,
    SetSheetValueResp,
    _gen_set_sheet_value_req,
)
from pylark.api_service_drive_sheet_value_batch_set import (
    BatchSetSheetValueReq,
    BatchSetSheetValueResp,
    _gen_batch_set_sheet_value_req,
)
from pylark.api_service_drive_sheet_style_set import (
    SetSheetStyleReq,
    SetSheetStyleResp,
    _gen_set_sheet_style_req,
)
from pylark.api_service_drive_sheet_style_batch_set import (
    BatchSetSheetStyleReq,
    BatchSetSheetStyleResp,
    _gen_batch_set_sheet_style_req,
)
from pylark.api_service_drive_sheet_cell_merge import (
    MergeSheetCellReq,
    MergeSheetCellResp,
    _gen_merge_sheet_cell_req,
)
from pylark.api_service_drive_sheet_cell_unmerge import (
    UnmergeSheetCellReq,
    UnmergeSheetCellResp,
    _gen_unmerge_sheet_cell_req,
)
from pylark.api_service_drive_sheet_image_set import (
    SetSheetValueImageReq,
    SetSheetValueImageResp,
    _gen_set_sheet_value_image_req,
)
from pylark.api_service_drive_sheet_find import (
    FindSheetReq,
    FindSheetResp,
    _gen_find_sheet_req,
)
from pylark.api_service_drive_sheet_replace import (
    ReplaceSheetReq,
    ReplaceSheetResp,
    _gen_replace_sheet_req,
)
from pylark.api_service_drive_sheet_condition_format_create import (
    CreateSheetConditionFormatReq,
    CreateSheetConditionFormatResp,
    _gen_create_sheet_condition_format_req,
)
from pylark.api_service_drive_sheet_condition_format_get import (
    GetSheetConditionFormatReq,
    GetSheetConditionFormatResp,
    _gen_get_sheet_condition_format_req,
)
from pylark.api_service_drive_sheet_condition_format_update import (
    UpdateSheetConditionFormatReq,
    UpdateSheetConditionFormatResp,
    _gen_update_sheet_condition_format_req,
)
from pylark.api_service_drive_sheet_condition_format_delete import (
    DeleteSheetConditionFormatReq,
    DeleteSheetConditionFormatResp,
    _gen_delete_sheet_condition_format_req,
)
from pylark.api_service_drive_sheet_protected_dimension_create import (
    CreateSheetProtectedDimensionReq,
    CreateSheetProtectedDimensionResp,
    _gen_create_sheet_protected_dimension_req,
)
from pylark.api_service_drive_sheet_protected_dimension_get import (
    GetSheetProtectedDimensionReq,
    GetSheetProtectedDimensionResp,
    _gen_get_sheet_protected_dimension_req,
)
from pylark.api_service_drive_sheet_protected_dimension_update import (
    UpdateSheetProtectedDimensionReq,
    UpdateSheetProtectedDimensionResp,
    _gen_update_sheet_protected_dimension_req,
)
from pylark.api_service_drive_sheet_protected_dimension_delete import (
    DeleteSheetProtectedDimensionReq,
    DeleteSheetProtectedDimensionResp,
    _gen_delete_sheet_protected_dimension_req,
)
from pylark.api_service_drive_sheet_data_validation_dropdown_create import (
    CreateSheetDataValidationDropdownReq,
    CreateSheetDataValidationDropdownResp,
    _gen_create_sheet_data_validation_dropdown_req,
)
from pylark.api_service_drive_sheet_data_validation_dropdown_delete import (
    DeleteSheetDataValidationDropdownReq,
    DeleteSheetDataValidationDropdownResp,
    _gen_delete_sheet_data_validation_dropdown_req,
)
from pylark.api_service_drive_sheet_data_validation_dropdown_update import (
    UpdateSheetDataValidationDropdownReq,
    UpdateSheetDataValidationDropdownResp,
    _gen_update_sheet_data_validation_dropdown_req,
)
from pylark.api_service_drive_sheet_data_validation_dropdown_get import (
    GetSheetDataValidationDropdownReq,
    GetSheetDataValidationDropdownResp,
    _gen_get_sheet_data_validation_dropdown_req,
)
from pylark.api_service_drive_sheet_filter_create import (
    CreateSheetFilterReq,
    CreateSheetFilterResp,
    _gen_create_sheet_filter_req,
)
from pylark.api_service_drive_sheet_filter_delete import (
    DeleteSheetFilterReq,
    DeleteSheetFilterResp,
    _gen_delete_sheet_filter_req,
)
from pylark.api_service_drive_sheet_filter_update import (
    UpdateSheetFilterReq,
    UpdateSheetFilterResp,
    _gen_update_sheet_filter_req,
)
from pylark.api_service_drive_sheet_filter_get import (
    GetSheetFilterReq,
    GetSheetFilterResp,
    _gen_get_sheet_filter_req,
)
from pylark.api_service_drive_sheet_filter_view_create import (
    CreateSheetFilterViewReq,
    CreateSheetFilterViewResp,
    _gen_create_sheet_filter_view_req,
)
from pylark.api_service_drive_sheet_filter_view_delete import (
    DeleteSheetFilterViewReq,
    DeleteSheetFilterViewResp,
    _gen_delete_sheet_filter_view_req,
)
from pylark.api_service_drive_sheet_filter_view_update import (
    UpdateSheetFilterViewReq,
    UpdateSheetFilterViewResp,
    _gen_update_sheet_filter_view_req,
)
from pylark.api_service_drive_sheet_filter_view_get import (
    GetSheetFilterViewReq,
    GetSheetFilterViewResp,
    _gen_get_sheet_filter_view_req,
)
from pylark.api_service_drive_sheet_filter_view_query import (
    QuerySheetFilterViewReq,
    QuerySheetFilterViewResp,
    _gen_query_sheet_filter_view_req,
)
from pylark.api_service_drive_sheet_filter_view_condition_create import (
    CreateSheetFilterViewConditionReq,
    CreateSheetFilterViewConditionResp,
    _gen_create_sheet_filter_view_condition_req,
)
from pylark.api_service_drive_sheet_filter_view_condition_delete import (
    DeleteSheetFilterViewConditionReq,
    DeleteSheetFilterViewConditionResp,
    _gen_delete_sheet_filter_view_condition_req,
)
from pylark.api_service_drive_sheet_filter_view_condition_update import (
    UpdateSheetFilterViewConditionReq,
    UpdateSheetFilterViewConditionResp,
    _gen_update_sheet_filter_view_condition_req,
)
from pylark.api_service_drive_sheet_filter_view_condition_get import (
    GetSheetFilterViewConditionReq,
    GetSheetFilterViewConditionResp,
    _gen_get_sheet_filter_view_condition_req,
)
from pylark.api_service_drive_sheet_filter_view_condition_query import (
    QuerySheetFilterViewConditionReq,
    QuerySheetFilterViewConditionResp,
    _gen_query_sheet_filter_view_condition_req,
)
from pylark.api_service_drive_sheet_float_image_create import (
    CreateSheetFloatImageReq,
    CreateSheetFloatImageResp,
    _gen_create_sheet_float_image_req,
)
from pylark.api_service_drive_sheet_float_image_delete import (
    DeleteSheetFloatImageReq,
    DeleteSheetFloatImageResp,
    _gen_delete_sheet_float_image_req,
)
from pylark.api_service_drive_sheet_float_image_update import (
    UpdateSheetFloatImageReq,
    UpdateSheetFloatImageResp,
    _gen_update_sheet_float_image_req,
)
from pylark.api_service_drive_sheet_float_image_get import (
    GetSheetFloatImageReq,
    GetSheetFloatImageResp,
    _gen_get_sheet_float_image_req,
)
from pylark.api_service_drive_sheet_float_image_query import (
    QuerySheetFloatImageReq,
    QuerySheetFloatImageResp,
    _gen_query_sheet_float_image_req,
)


if typing.TYPE_CHECKING:
    from lark import Lark


class LarkDriveService(object):
    cli: "Lark"

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

    def search_drive_file(
        self, request: SearchDriveFileReq, options: typing.List[str] = None
    ) -> typing.Tuple[SearchDriveFileResp, Response]:
        return self.cli.raw_request(_gen_search_drive_file_req(request, options))

    def get_drive_file_meta(
        self, request: GetDriveFileMetaReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetDriveFileMetaResp, Response]:
        return self.cli.raw_request(_gen_get_drive_file_meta_req(request, options))

    def create_drive_file(
        self, request: CreateDriveFileReq, options: typing.List[str] = None
    ) -> typing.Tuple[CreateDriveFileResp, Response]:
        return self.cli.raw_request(_gen_create_drive_file_req(request, options))

    def copy_drive_file(
        self, request: CopyDriveFileReq, options: typing.List[str] = None
    ) -> typing.Tuple[CopyDriveFileResp, Response]:
        return self.cli.raw_request(_gen_copy_drive_file_req(request, options))

    def delete_drive_file(
        self, request: DeleteDriveFileReq, options: typing.List[str] = None
    ) -> typing.Tuple[DeleteDriveFileResp, Response]:
        return self.cli.raw_request(_gen_delete_drive_file_req(request, options))

    def delete_drive_sheet_file(
        self, request: DeleteDriveSheetFileReq, options: typing.List[str] = None
    ) -> typing.Tuple[DeleteDriveSheetFileResp, Response]:
        return self.cli.raw_request(_gen_delete_drive_sheet_file_req(request, options))

    def create_drive_folder(
        self, request: CreateDriveFolderReq, options: typing.List[str] = None
    ) -> typing.Tuple[CreateDriveFolderResp, Response]:
        return self.cli.raw_request(_gen_create_drive_folder_req(request, options))

    def get_drive_folder_meta(
        self, request: GetDriveFolderMetaReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetDriveFolderMetaResp, Response]:
        return self.cli.raw_request(_gen_get_drive_folder_meta_req(request, options))

    def get_drive_root_folder_meta(
        self, request: GetDriveRootFolderMetaReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetDriveRootFolderMetaResp, Response]:
        return self.cli.raw_request(
            _gen_get_drive_root_folder_meta_req(request, options)
        )

    def get_drive_folder_children(
        self, request: GetDriveFolderChildrenReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetDriveFolderChildrenResp, Response]:
        return self.cli.raw_request(
            _gen_get_drive_folder_children_req(request, options)
        )

    def get_drive_file_statistics(
        self, request: GetDriveFileStatisticsReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetDriveFileStatisticsResp, Response]:
        return self.cli.raw_request(
            _gen_get_drive_file_statistics_req(request, options)
        )

    def download_drive_file(
        self, request: DownloadDriveFileReq, options: typing.List[str] = None
    ) -> typing.Tuple[DownloadDriveFileResp, Response]:
        return self.cli.raw_request(_gen_download_drive_file_req(request, options))

    def upload_drive_file(
        self, request: UploadDriveFileReq, options: typing.List[str] = None
    ) -> typing.Tuple[UploadDriveFileResp, Response]:
        return self.cli.raw_request(_gen_upload_drive_file_req(request, options))

    def prepare_upload_drive_file(
        self, request: PrepareUploadDriveFileReq, options: typing.List[str] = None
    ) -> typing.Tuple[PrepareUploadDriveFileResp, Response]:
        return self.cli.raw_request(
            _gen_prepare_upload_drive_file_req(request, options)
        )

    def part_upload_drive_file(
        self, request: PartUploadDriveFileReq, options: typing.List[str] = None
    ) -> typing.Tuple[PartUploadDriveFileResp, Response]:
        return self.cli.raw_request(_gen_part_upload_drive_file_req(request, options))

    def finish_upload_drive_file(
        self, request: FinishUploadDriveFileReq, options: typing.List[str] = None
    ) -> typing.Tuple[FinishUploadDriveFileResp, Response]:
        return self.cli.raw_request(_gen_finish_upload_drive_file_req(request, options))

    def download_drive_media(
        self, request: DownloadDriveMediaReq, options: typing.List[str] = None
    ) -> typing.Tuple[DownloadDriveMediaResp, Response]:
        return self.cli.raw_request(_gen_download_drive_media_req(request, options))

    def upload_drive_media(
        self, request: UploadDriveMediaReq, options: typing.List[str] = None
    ) -> typing.Tuple[UploadDriveMediaResp, Response]:
        return self.cli.raw_request(_gen_upload_drive_media_req(request, options))

    def prepare_upload_drive_media(
        self, request: PrepareUploadDriveMediaReq, options: typing.List[str] = None
    ) -> typing.Tuple[PrepareUploadDriveMediaResp, Response]:
        return self.cli.raw_request(
            _gen_prepare_upload_drive_media_req(request, options)
        )

    def part_upload_drive_media(
        self, request: PartUploadDriveMediaReq, options: typing.List[str] = None
    ) -> typing.Tuple[PartUploadDriveMediaResp, Response]:
        return self.cli.raw_request(_gen_part_upload_drive_media_req(request, options))

    def finish_upload_drive_media(
        self, request: FinishUploadDriveMediaReq, options: typing.List[str] = None
    ) -> typing.Tuple[FinishUploadDriveMediaResp, Response]:
        return self.cli.raw_request(
            _gen_finish_upload_drive_media_req(request, options)
        )

    def create_drive_member_permission_old(
        self,
        request: CreateDriveMemberPermissionOldReq,
        options: typing.List[str] = None,
    ) -> typing.Tuple[CreateDriveMemberPermissionOldResp, Response]:
        return self.cli.raw_request(
            _gen_create_drive_member_permission_old_req(request, options)
        )

    def transfer_drive_member_permission(
        self,
        request: TransferDriveMemberPermissionReq,
        options: typing.List[str] = None,
    ) -> typing.Tuple[TransferDriveMemberPermissionResp, Response]:
        return self.cli.raw_request(
            _gen_transfer_drive_member_permission_req(request, options)
        )

    def get_drive_member_permission_list(
        self, request: GetDriveMemberPermissionListReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetDriveMemberPermissionListResp, Response]:
        return self.cli.raw_request(
            _gen_get_drive_member_permission_list_req(request, options)
        )

    def create_drive_member_permission(
        self, request: CreateDriveMemberPermissionReq, options: typing.List[str] = None
    ) -> typing.Tuple[CreateDriveMemberPermissionResp, Response]:
        return self.cli.raw_request(
            _gen_create_drive_member_permission_req(request, options)
        )

    def delete_drive_member_permission(
        self, request: DeleteDriveMemberPermissionReq, options: typing.List[str] = None
    ) -> typing.Tuple[DeleteDriveMemberPermissionResp, Response]:
        return self.cli.raw_request(
            _gen_delete_drive_member_permission_req(request, options)
        )

    def update_drive_member_permission(
        self, request: UpdateDriveMemberPermissionReq, options: typing.List[str] = None
    ) -> typing.Tuple[UpdateDriveMemberPermissionResp, Response]:
        return self.cli.raw_request(
            _gen_update_drive_member_permission_req(request, options)
        )

    def check_drive_member_permission(
        self, request: CheckDriveMemberPermissionReq, options: typing.List[str] = None
    ) -> typing.Tuple[CheckDriveMemberPermissionResp, Response]:
        return self.cli.raw_request(
            _gen_check_drive_member_permission_req(request, options)
        )

    def update_drive_public_permission_v1_old(
        self,
        request: UpdateDrivePublicPermissionV1OldReq,
        options: typing.List[str] = None,
    ) -> typing.Tuple[UpdateDrivePublicPermissionV1OldResp, Response]:
        return self.cli.raw_request(
            _gen_update_drive_public_permission_v1_old_req(request, options)
        )

    def update_drive_public_permission_v2_old(
        self,
        request: UpdateDrivePublicPermissionV2OldReq,
        options: typing.List[str] = None,
    ) -> typing.Tuple[UpdateDrivePublicPermissionV2OldResp, Response]:
        return self.cli.raw_request(
            _gen_update_drive_public_permission_v2_old_req(request, options)
        )

    def get_drive_public_permission_v2(
        self, request: GetDrivePublicPermissionV2Req, options: typing.List[str] = None
    ) -> typing.Tuple[GetDrivePublicPermissionV2Resp, Response]:
        return self.cli.raw_request(
            _gen_get_drive_public_permission_v2_req(request, options)
        )

    def update_drive_public_permission(
        self, request: UpdateDrivePublicPermissionReq, options: typing.List[str] = None
    ) -> typing.Tuple[UpdateDrivePublicPermissionResp, Response]:
        return self.cli.raw_request(
            _gen_update_drive_public_permission_req(request, options)
        )

    def batch_get_drive_media_tmp_download_url(
        self,
        request: BatchGetDriveMediaTmpDownloadURLReq,
        options: typing.List[str] = None,
    ) -> typing.Tuple[BatchGetDriveMediaTmpDownloadURLResp, Response]:
        return self.cli.raw_request(
            _gen_batch_get_drive_media_tmp_download_url_req(request, options)
        )

    def get_drive_comment_list(
        self, request: GetDriveCommentListReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetDriveCommentListResp, Response]:
        return self.cli.raw_request(_gen_get_drive_comment_list_req(request, options))

    def get_drive_comment(
        self, request: GetDriveCommentReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetDriveCommentResp, Response]:
        return self.cli.raw_request(_gen_get_drive_comment_req(request, options))

    def create_drive_comment(
        self, request: CreateDriveCommentReq, options: typing.List[str] = None
    ) -> typing.Tuple[CreateDriveCommentResp, Response]:
        return self.cli.raw_request(_gen_create_drive_comment_req(request, options))

    def update_drive_comment(
        self, request: UpdateDriveCommentReq, options: typing.List[str] = None
    ) -> typing.Tuple[UpdateDriveCommentResp, Response]:
        return self.cli.raw_request(_gen_update_drive_comment_req(request, options))

    def delete_drive_comment(
        self, request: DeleteDriveCommentReq, options: typing.List[str] = None
    ) -> typing.Tuple[DeleteDriveCommentResp, Response]:
        return self.cli.raw_request(_gen_delete_drive_comment_req(request, options))

    def update_drive_comment_patch(
        self, request: UpdateDriveCommentPatchReq, options: typing.List[str] = None
    ) -> typing.Tuple[UpdateDriveCommentPatchResp, Response]:
        return self.cli.raw_request(
            _gen_update_drive_comment_patch_req(request, options)
        )

    def create_drive_doc(
        self, request: CreateDriveDocReq, options: typing.List[str] = None
    ) -> typing.Tuple[CreateDriveDocResp, Response]:
        return self.cli.raw_request(_gen_create_drive_doc_req(request, options))

    def get_drive_doc_content(
        self, request: GetDriveDocContentReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetDriveDocContentResp, Response]:
        return self.cli.raw_request(_gen_get_drive_doc_content_req(request, options))

    def get_drive_doc_raw_content(
        self, request: GetDriveDocRawContentReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetDriveDocRawContentResp, Response]:
        return self.cli.raw_request(
            _gen_get_drive_doc_raw_content_req(request, options)
        )

    def get_drive_doc_meta(
        self, request: GetDriveDocMetaReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetDriveDocMetaResp, Response]:
        return self.cli.raw_request(_gen_get_drive_doc_meta_req(request, options))

    def create_sheet(
        self, request: CreateSheetReq, options: typing.List[str] = None
    ) -> typing.Tuple[CreateSheetResp, Response]:
        return self.cli.raw_request(_gen_create_sheet_req(request, options))

    def get_sheet_meta(
        self, request: GetSheetMetaReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetSheetMetaResp, Response]:
        return self.cli.raw_request(_gen_get_sheet_meta_req(request, options))

    def update_sheet_property(
        self, request: UpdateSheetPropertyReq, options: typing.List[str] = None
    ) -> typing.Tuple[UpdateSheetPropertyResp, Response]:
        return self.cli.raw_request(_gen_update_sheet_property_req(request, options))

    def batch_update_sheet(
        self, request: BatchUpdateSheetReq, options: typing.List[str] = None
    ) -> typing.Tuple[BatchUpdateSheetResp, Response]:
        return self.cli.raw_request(_gen_batch_update_sheet_req(request, options))

    def import_sheet(
        self, request: ImportSheetReq, options: typing.List[str] = None
    ) -> typing.Tuple[ImportSheetResp, Response]:
        return self.cli.raw_request(_gen_import_sheet_req(request, options))

    def create_drive_import_task(
        self, request: CreateDriveImportTaskReq, options: typing.List[str] = None
    ) -> typing.Tuple[CreateDriveImportTaskResp, Response]:
        return self.cli.raw_request(_gen_create_drive_import_task_req(request, options))

    def get_drive_import_task(
        self, request: GetDriveImportTaskReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetDriveImportTaskResp, Response]:
        return self.cli.raw_request(_gen_get_drive_import_task_req(request, options))

    def move_sheet_dimension(
        self, request: MoveSheetDimensionReq, options: typing.List[str] = None
    ) -> typing.Tuple[MoveSheetDimensionResp, Response]:
        return self.cli.raw_request(_gen_move_sheet_dimension_req(request, options))

    def prepend_sheet_value(
        self, request: PrependSheetValueReq, options: typing.List[str] = None
    ) -> typing.Tuple[PrependSheetValueResp, Response]:
        return self.cli.raw_request(_gen_prepend_sheet_value_req(request, options))

    def append_sheet_value(
        self, request: AppendSheetValueReq, options: typing.List[str] = None
    ) -> typing.Tuple[AppendSheetValueResp, Response]:
        return self.cli.raw_request(_gen_append_sheet_value_req(request, options))

    def insert_sheet_dimension_range(
        self, request: InsertSheetDimensionRangeReq, options: typing.List[str] = None
    ) -> typing.Tuple[InsertSheetDimensionRangeResp, Response]:
        return self.cli.raw_request(
            _gen_insert_sheet_dimension_range_req(request, options)
        )

    def add_sheet_dimension_range(
        self, request: AddSheetDimensionRangeReq, options: typing.List[str] = None
    ) -> typing.Tuple[AddSheetDimensionRangeResp, Response]:
        return self.cli.raw_request(
            _gen_add_sheet_dimension_range_req(request, options)
        )

    def update_sheet_dimension_range(
        self, request: UpdateSheetDimensionRangeReq, options: typing.List[str] = None
    ) -> typing.Tuple[UpdateSheetDimensionRangeResp, Response]:
        return self.cli.raw_request(
            _gen_update_sheet_dimension_range_req(request, options)
        )

    def delete_sheet_dimension_range(
        self, request: DeleteSheetDimensionRangeReq, options: typing.List[str] = None
    ) -> typing.Tuple[DeleteSheetDimensionRangeResp, Response]:
        return self.cli.raw_request(
            _gen_delete_sheet_dimension_range_req(request, options)
        )

    def get_sheet_value(
        self, request: GetSheetValueReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetSheetValueResp, Response]:
        return self.cli.raw_request(_gen_get_sheet_value_req(request, options))

    def batch_get_sheet_value(
        self, request: BatchGetSheetValueReq, options: typing.List[str] = None
    ) -> typing.Tuple[BatchGetSheetValueResp, Response]:
        return self.cli.raw_request(_gen_batch_get_sheet_value_req(request, options))

    def set_sheet_value(
        self, request: SetSheetValueReq, options: typing.List[str] = None
    ) -> typing.Tuple[SetSheetValueResp, Response]:
        return self.cli.raw_request(_gen_set_sheet_value_req(request, options))

    def batch_set_sheet_value(
        self, request: BatchSetSheetValueReq, options: typing.List[str] = None
    ) -> typing.Tuple[BatchSetSheetValueResp, Response]:
        return self.cli.raw_request(_gen_batch_set_sheet_value_req(request, options))

    def set_sheet_style(
        self, request: SetSheetStyleReq, options: typing.List[str] = None
    ) -> typing.Tuple[SetSheetStyleResp, Response]:
        return self.cli.raw_request(_gen_set_sheet_style_req(request, options))

    def batch_set_sheet_style(
        self, request: BatchSetSheetStyleReq, options: typing.List[str] = None
    ) -> typing.Tuple[BatchSetSheetStyleResp, Response]:
        return self.cli.raw_request(_gen_batch_set_sheet_style_req(request, options))

    def merge_sheet_cell(
        self, request: MergeSheetCellReq, options: typing.List[str] = None
    ) -> typing.Tuple[MergeSheetCellResp, Response]:
        return self.cli.raw_request(_gen_merge_sheet_cell_req(request, options))

    def unmerge_sheet_cell(
        self, request: UnmergeSheetCellReq, options: typing.List[str] = None
    ) -> typing.Tuple[UnmergeSheetCellResp, Response]:
        return self.cli.raw_request(_gen_unmerge_sheet_cell_req(request, options))

    def set_sheet_value_image(
        self, request: SetSheetValueImageReq, options: typing.List[str] = None
    ) -> typing.Tuple[SetSheetValueImageResp, Response]:
        return self.cli.raw_request(_gen_set_sheet_value_image_req(request, options))

    def find_sheet(
        self, request: FindSheetReq, options: typing.List[str] = None
    ) -> typing.Tuple[FindSheetResp, Response]:
        return self.cli.raw_request(_gen_find_sheet_req(request, options))

    def replace_sheet(
        self, request: ReplaceSheetReq, options: typing.List[str] = None
    ) -> typing.Tuple[ReplaceSheetResp, Response]:
        return self.cli.raw_request(_gen_replace_sheet_req(request, options))

    def create_sheet_condition_format(
        self, request: CreateSheetConditionFormatReq, options: typing.List[str] = None
    ) -> typing.Tuple[CreateSheetConditionFormatResp, Response]:
        return self.cli.raw_request(
            _gen_create_sheet_condition_format_req(request, options)
        )

    def get_sheet_condition_format(
        self, request: GetSheetConditionFormatReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetSheetConditionFormatResp, Response]:
        return self.cli.raw_request(
            _gen_get_sheet_condition_format_req(request, options)
        )

    def update_sheet_condition_format(
        self, request: UpdateSheetConditionFormatReq, options: typing.List[str] = None
    ) -> typing.Tuple[UpdateSheetConditionFormatResp, Response]:
        return self.cli.raw_request(
            _gen_update_sheet_condition_format_req(request, options)
        )

    def delete_sheet_condition_format(
        self, request: DeleteSheetConditionFormatReq, options: typing.List[str] = None
    ) -> typing.Tuple[DeleteSheetConditionFormatResp, Response]:
        return self.cli.raw_request(
            _gen_delete_sheet_condition_format_req(request, options)
        )

    def create_sheet_protected_dimension(
        self,
        request: CreateSheetProtectedDimensionReq,
        options: typing.List[str] = None,
    ) -> typing.Tuple[CreateSheetProtectedDimensionResp, Response]:
        return self.cli.raw_request(
            _gen_create_sheet_protected_dimension_req(request, options)
        )

    def get_sheet_protected_dimension(
        self, request: GetSheetProtectedDimensionReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetSheetProtectedDimensionResp, Response]:
        return self.cli.raw_request(
            _gen_get_sheet_protected_dimension_req(request, options)
        )

    def update_sheet_protected_dimension(
        self,
        request: UpdateSheetProtectedDimensionReq,
        options: typing.List[str] = None,
    ) -> typing.Tuple[UpdateSheetProtectedDimensionResp, Response]:
        return self.cli.raw_request(
            _gen_update_sheet_protected_dimension_req(request, options)
        )

    def delete_sheet_protected_dimension(
        self,
        request: DeleteSheetProtectedDimensionReq,
        options: typing.List[str] = None,
    ) -> typing.Tuple[DeleteSheetProtectedDimensionResp, Response]:
        return self.cli.raw_request(
            _gen_delete_sheet_protected_dimension_req(request, options)
        )

    def create_sheet_data_validation_dropdown(
        self,
        request: CreateSheetDataValidationDropdownReq,
        options: typing.List[str] = None,
    ) -> typing.Tuple[CreateSheetDataValidationDropdownResp, Response]:
        return self.cli.raw_request(
            _gen_create_sheet_data_validation_dropdown_req(request, options)
        )

    def delete_sheet_data_validation_dropdown(
        self,
        request: DeleteSheetDataValidationDropdownReq,
        options: typing.List[str] = None,
    ) -> typing.Tuple[DeleteSheetDataValidationDropdownResp, Response]:
        return self.cli.raw_request(
            _gen_delete_sheet_data_validation_dropdown_req(request, options)
        )

    def update_sheet_data_validation_dropdown(
        self,
        request: UpdateSheetDataValidationDropdownReq,
        options: typing.List[str] = None,
    ) -> typing.Tuple[UpdateSheetDataValidationDropdownResp, Response]:
        return self.cli.raw_request(
            _gen_update_sheet_data_validation_dropdown_req(request, options)
        )

    def get_sheet_data_validation_dropdown(
        self,
        request: GetSheetDataValidationDropdownReq,
        options: typing.List[str] = None,
    ) -> typing.Tuple[GetSheetDataValidationDropdownResp, Response]:
        return self.cli.raw_request(
            _gen_get_sheet_data_validation_dropdown_req(request, options)
        )

    def create_sheet_filter(
        self, request: CreateSheetFilterReq, options: typing.List[str] = None
    ) -> typing.Tuple[CreateSheetFilterResp, Response]:
        return self.cli.raw_request(_gen_create_sheet_filter_req(request, options))

    def delete_sheet_filter(
        self, request: DeleteSheetFilterReq, options: typing.List[str] = None
    ) -> typing.Tuple[DeleteSheetFilterResp, Response]:
        return self.cli.raw_request(_gen_delete_sheet_filter_req(request, options))

    def update_sheet_filter(
        self, request: UpdateSheetFilterReq, options: typing.List[str] = None
    ) -> typing.Tuple[UpdateSheetFilterResp, Response]:
        return self.cli.raw_request(_gen_update_sheet_filter_req(request, options))

    def get_sheet_filter(
        self, request: GetSheetFilterReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetSheetFilterResp, Response]:
        return self.cli.raw_request(_gen_get_sheet_filter_req(request, options))

    def create_sheet_filter_view(
        self, request: CreateSheetFilterViewReq, options: typing.List[str] = None
    ) -> typing.Tuple[CreateSheetFilterViewResp, Response]:
        return self.cli.raw_request(_gen_create_sheet_filter_view_req(request, options))

    def delete_sheet_filter_view(
        self, request: DeleteSheetFilterViewReq, options: typing.List[str] = None
    ) -> typing.Tuple[DeleteSheetFilterViewResp, Response]:
        return self.cli.raw_request(_gen_delete_sheet_filter_view_req(request, options))

    def update_sheet_filter_view(
        self, request: UpdateSheetFilterViewReq, options: typing.List[str] = None
    ) -> typing.Tuple[UpdateSheetFilterViewResp, Response]:
        return self.cli.raw_request(_gen_update_sheet_filter_view_req(request, options))

    def get_sheet_filter_view(
        self, request: GetSheetFilterViewReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetSheetFilterViewResp, Response]:
        return self.cli.raw_request(_gen_get_sheet_filter_view_req(request, options))

    def query_sheet_filter_view(
        self, request: QuerySheetFilterViewReq, options: typing.List[str] = None
    ) -> typing.Tuple[QuerySheetFilterViewResp, Response]:
        return self.cli.raw_request(_gen_query_sheet_filter_view_req(request, options))

    def create_sheet_filter_view_condition(
        self,
        request: CreateSheetFilterViewConditionReq,
        options: typing.List[str] = None,
    ) -> typing.Tuple[CreateSheetFilterViewConditionResp, Response]:
        return self.cli.raw_request(
            _gen_create_sheet_filter_view_condition_req(request, options)
        )

    def delete_sheet_filter_view_condition(
        self,
        request: DeleteSheetFilterViewConditionReq,
        options: typing.List[str] = None,
    ) -> typing.Tuple[DeleteSheetFilterViewConditionResp, Response]:
        return self.cli.raw_request(
            _gen_delete_sheet_filter_view_condition_req(request, options)
        )

    def update_sheet_filter_view_condition(
        self,
        request: UpdateSheetFilterViewConditionReq,
        options: typing.List[str] = None,
    ) -> typing.Tuple[UpdateSheetFilterViewConditionResp, Response]:
        return self.cli.raw_request(
            _gen_update_sheet_filter_view_condition_req(request, options)
        )

    def get_sheet_filter_view_condition(
        self, request: GetSheetFilterViewConditionReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetSheetFilterViewConditionResp, Response]:
        return self.cli.raw_request(
            _gen_get_sheet_filter_view_condition_req(request, options)
        )

    def query_sheet_filter_view_condition(
        self,
        request: QuerySheetFilterViewConditionReq,
        options: typing.List[str] = None,
    ) -> typing.Tuple[QuerySheetFilterViewConditionResp, Response]:
        return self.cli.raw_request(
            _gen_query_sheet_filter_view_condition_req(request, options)
        )

    def create_sheet_float_image(
        self, request: CreateSheetFloatImageReq, options: typing.List[str] = None
    ) -> typing.Tuple[CreateSheetFloatImageResp, Response]:
        return self.cli.raw_request(_gen_create_sheet_float_image_req(request, options))

    def delete_sheet_float_image(
        self, request: DeleteSheetFloatImageReq, options: typing.List[str] = None
    ) -> typing.Tuple[DeleteSheetFloatImageResp, Response]:
        return self.cli.raw_request(_gen_delete_sheet_float_image_req(request, options))

    def update_sheet_float_image(
        self, request: UpdateSheetFloatImageReq, options: typing.List[str] = None
    ) -> typing.Tuple[UpdateSheetFloatImageResp, Response]:
        return self.cli.raw_request(_gen_update_sheet_float_image_req(request, options))

    def get_sheet_float_image(
        self, request: GetSheetFloatImageReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetSheetFloatImageResp, Response]:
        return self.cli.raw_request(_gen_get_sheet_float_image_req(request, options))

    def query_sheet_float_image(
        self, request: QuerySheetFloatImageReq, options: typing.List[str] = None
    ) -> typing.Tuple[QuerySheetFloatImageResp, Response]:
        return self.cli.raw_request(_gen_query_sheet_float_image_req(request, options))
