# Code generated by lark_sdk_gen. DO NOT EDIT.

from pylark.lark_request import RawRequestReq, _new_method_option
import attr
import typing
import io


@attr.s
class DeleteSheetDataValidationDropdownReqDataValidationRange(object):
    range_: str = attr.ib(
        default="", metadata={"req_type": "json"}
    )  # 查询范围，包含 sheetId 与单元格范围两部分，目前支持四种索引方式，详见[在线表格开发指南](https://open.feishu.cn/document/ukTMukTMukTM/uATMzUjLwEzM14CMxMTN/overview)
    data_validation_ids: typing.List[int] = attr.ib(
        factory=lambda: [], metadata={"req_type": "json"}
    )  # 指定需要删除的dataValidationIds


@attr.s
class DeleteSheetDataValidationDropdownReq(object):
    spreadsheet_token: str = attr.ib(
        default="", metadata={"req_type": "path"}
    )  # spreadsheet 的 token，获取方式见[在线表格开发指南](https://open.feishu.cn/document/ukTMukTMukTM/uATMzUjLwEzM14CMxMTN/overview)
    data_validation_ranges: typing.List[
        DeleteSheetDataValidationDropdownReqDataValidationRange
    ] = attr.ib(
        factory=lambda: [], metadata={"req_type": "json"}
    )  # 范围数组，每个range 最大单元格数量5000，每个range独立执行，一个range的失败不影响其他range的执行。返回结果会返回每个range的执行结果


@attr.s
class DeleteSheetDataValidationDropdownRespRangeResult(object):
    range_: str = attr.ib(
        default="", metadata={"req_type": "json"}
    )  # 执行的range,与请求入参中的range 对应
    msg: str = attr.ib(default="", metadata={"req_type": "json"})  # 结果信息
    success: bool = attr.ib(
        factory=lambda: bool(), metadata={"req_type": "json"}
    )  # 执行结果
    updated_cells: int = attr.ib(default=0, metadata={"req_type": "json"})  # 影响的单元格数量


@attr.s
class DeleteSheetDataValidationDropdownResp(object):
    range_results: typing.List[
        DeleteSheetDataValidationDropdownRespRangeResult
    ] = attr.ib(factory=lambda: [], metadata={"req_type": "json"})


def _gen_delete_sheet_data_validation_dropdown_req(request, options) -> RawRequestReq:
    return RawRequestReq(
        dataclass=DeleteSheetDataValidationDropdownResp,
        scope="Drive",
        api="DeleteSheetDataValidationDropdown",
        method="DELETE",
        url="https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/:spreadsheetToken/dataValidation",
        body=request,
        method_option=_new_method_option(options),
        need_tenant_access_token=True,
        need_user_access_token=True,
    )
