# 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 GetSheetDataValidationDropdownReq(object):
    range_: str = attr.ib(
        default="", metadata={"req_type": "query"}
    )  # 查询范围，包含 sheetId 与单元格范围两部分，目前支持四种索引方式，详见[在线表格开发指南](https://open.feishu.cn/document/ukTMukTMukTM/uATMzUjLwEzM14CMxMTN/overview)
    data_validation_type: str = attr.ib(
        default="", metadata={"req_type": "query"}
    )  # 下拉列表填"list"
    spreadsheet_token: str = attr.ib(
        default="", metadata={"req_type": "path"}
    )  # spreadsheet 的 token，获取方式见 [在线表格开发指南](https://open.feishu.cn/document/ukTMukTMukTM/uATMzUjLwEzM14CMxMTN/overview)


@attr.s
class GetSheetDataValidationDropdownRespDataValidationOptionsColorValueMap(object):
    pass


@attr.s
class GetSheetDataValidationDropdownRespDataValidationOptions(object):
    multiple_values: bool = attr.ib(
        default=None, metadata={"req_type": "json"}
    )  # 单选填false, 多选填true
    highlight_valid_data: bool = attr.ib(
        default=None, metadata={"req_type": "json"}
    )  # 是否设置颜色和胶囊样式
    color_value_map: GetSheetDataValidationDropdownRespDataValidationOptionsColorValueMap = attr.ib(
        factory=lambda: GetSheetDataValidationDropdownRespDataValidationOptionsColorValueMap(),
        metadata={"req_type": "json"},
    )  # 当highlightValidData为true时，colorValueMap的key与conditionValues中的值一一对应，value为对应的颜色参数。


@attr.s
class GetSheetDataValidationDropdownRespDataValidation(object):
    data_validation_id: int = attr.ib(
        default=0, metadata={"req_type": "json"}
    )  # 唯一标示id
    data_validation_type: str = attr.ib(
        default="", metadata={"req_type": "json"}
    )  # 下拉列表为"list"
    condition_values: typing.List[str] = attr.ib(
        factory=lambda: [], metadata={"req_type": "json"}
    )  # 下拉列表选项值
    options: GetSheetDataValidationDropdownRespDataValidationOptions = attr.ib(
        default=None, metadata={"req_type": "json"}
    )  # 可选属性


@attr.s
class GetSheetDataValidationDropdownResp(object):
    spreadsheet_token: str = attr.ib(
        default="", metadata={"req_type": "json"}
    )  # spreadsheet的token
    sheet_id: str = attr.ib(default="", metadata={"req_type": "json"})  # 工作表 sheet 的 id
    revision: int = attr.ib(default=0, metadata={"req_type": "json"})  # 版本号
    data_validations: typing.List[
        GetSheetDataValidationDropdownRespDataValidation
    ] = attr.ib(
        factory=lambda: [], metadata={"req_type": "json"}
    )  # 下拉列表数组, 不存在时为空


def _gen_get_sheet_data_validation_dropdown_req(request, options) -> RawRequestReq:
    return RawRequestReq(
        dataclass=GetSheetDataValidationDropdownResp,
        scope="Drive",
        api="GetSheetDataValidationDropdown",
        method="GET",
        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,
    )
