<gh_stars>1-10
# Code generated by lark_sdk_gen. DO NOT EDIT.

from pylark.lark_request import RawRequestReq, _new_method_option
from pylark import lark_type, lark_type_sheet, lark_type_approval
import attr
import typing
import io


@attr.s
class CreateApprovalInstanceReq(object):
    approval_code: str = attr.ib(
        default="", metadata={"req_type": "json", "key": "approval_code"}
    )  # 审批定义 code
    user_id: str = attr.ib(
        default="", metadata={"req_type": "json", "key": "user_id"}
    )  # 发起审批用户
    tenant_id: str = attr.ib(
        default="", metadata={"req_type": "json", "key": "tenant_id"}
    )  # 平台租户ID
    open_id: str = attr.ib(
        default="", metadata={"req_type": "json", "key": "open_id"}
    )  # 发起审批用户 open id, 如果传了 user_id 则优先使用 user_id
    department_id: str = attr.ib(
        default="", metadata={"req_type": "json", "key": "department_id"}
    )  # 发起审批用户部门id，如果用户只属于一个部门，可以不填。如果属于多个部门，默认会选择部门列表第一个部门
    form: lark_type_approval.ApprovalWidgetList = attr.ib(
        factory=lambda: lark_type_approval.ApprovalWidgetList(),
        metadata={"req_type": "json", "key": "form"},
    )  # json 数组，**控件值**
    node_approver_user_id_list: typing.Dict = attr.ib(
        default=None, metadata={"req_type": "json", "key": "node_approver_user_id_list"}
    )  # 如果有发起人自选节点，则需要填写对应节点的审批人<br>key:  node id 或 custom node id , 通过 [查看审批定义](https://open.feishu.cn/document/ukTMukTMukTM/uADNyUjLwQjM14CM0ITN) 获取<br> value: 审批人列表
    node_approver_open_id_list: typing.Dict = attr.ib(
        default=None, metadata={"req_type": "json", "key": "node_approver_open_id_list"}
    )  # 审批人发起人自选 open id
    node_cc_user_id_list: typing.Dict = attr.ib(
        default=None, metadata={"req_type": "json", "key": "node_cc_user_id_list"}
    )  # 如果有发起人自选节点，则可填写对应节点的抄送人<br>key:  node id 或 custom node id , 通过 [查看审批定义](https://open.feishu.cn/document/ukTMukTMukTM/uADNyUjLwQjM14CM0ITN) 获取<br> value: 审批人列表<br>单个节点最多选择20位抄送人
    node_cc_open_id_list: typing.Dict = attr.ib(
        default=None, metadata={"req_type": "json", "key": "node_cc_open_id_list"}
    )  # 抄送人发起人自选 open id<br>单个节点最多选择20位抄送人
    uuid: str = attr.ib(
        default="", metadata={"req_type": "json", "key": "uuid"}
    )  # 审批实例 uuid，用于幂等操作，同一个 uuid 只能用于创建一个审批实例，如果冲突，返回错误码 60012 ，格式必须为 XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX，不区分大小写


@attr.s
class CreateApprovalInstanceResp(object):
    instance_code: str = attr.ib(
        default="", metadata={"req_type": "json", "key": "instance_code"}
    )  # 审批实例 Code


def _gen_create_approval_instance_req(request, options) -> RawRequestReq:
    return RawRequestReq(
        dataclass=CreateApprovalInstanceResp,
        scope="Approval",
        api="CreateApprovalInstance",
        method="POST",
        url="https://www.feishu.cn/approval/openapi/v2/instance/create",
        body=request,
        method_option=_new_method_option(options),
        need_tenant_access_token=True,
    )

# Code generated by lark_sdk_gen. DO NOT EDIT.

from pylark.lark_request import RawRequestReq, _new_method_option
from pylark import lark_type, lark_type_sheet, lark_type_approval
import attr
import typing
import io


@attr.s
class CreateApprovalInstanceReq(object):
    approval_code: str = attr.ib(
        default="", metadata={"req_type": "json", "key": "approval_code"}
    )  # 审批定义 code
    user_id: str = attr.ib(
        default="", metadata={"req_type": "json", "key": "user_id"}
    )  # 发起审批用户
    tenant_id: str = attr.ib(
        default="", metadata={"req_type": "json", "key": "tenant_id"}
    )  # 平台租户ID
    open_id: str = attr.ib(
        default="", metadata={"req_type": "json", "key": "open_id"}
    )  # 发起审批用户 open id, 如果传了 user_id 则优先使用 user_id
    department_id: str = attr.ib(
        default="", metadata={"req_type": "json", "key": "department_id"}
    )  # 发起审批用户部门id，如果用户只属于一个部门，可以不填。如果属于多个部门，默认会选择部门列表第一个部门
    form: lark_type_approval.ApprovalWidgetList = attr.ib(
        factory=lambda: lark_type_approval.ApprovalWidgetList(),
        metadata={"req_type": "json", "key": "form"},
    )  # json 数组，**控件值**
    node_approver_user_id_list: typing.Dict = attr.ib(
        default=None, metadata={"req_type": "json", "key": "node_approver_user_id_list"}
    )  # 如果有发起人自选节点，则需要填写对应节点的审批人<br>key:  node id 或 custom node id , 通过 [查看审批定义](https://open.feishu.cn/document/ukTMukTMukTM/uADNyUjLwQjM14CM0ITN) 获取<br> value: 审批人列表
    node_approver_open_id_list: typing.Dict = attr.ib(
        default=None, metadata={"req_type": "json", "key": "node_approver_open_id_list"}
    )  # 审批人发起人自选 open id
    node_cc_user_id_list: typing.Dict = attr.ib(
        default=None, metadata={"req_type": "json", "key": "node_cc_user_id_list"}
    )  # 如果有发起人自选节点，则可填写对应节点的抄送人<br>key:  node id 或 custom node id , 通过 [查看审批定义](https://open.feishu.cn/document/ukTMukTMukTM/uADNyUjLwQjM14CM0ITN) 获取<br> value: 审批人列表<br>单个节点最多选择20位抄送人
    node_cc_open_id_list: typing.Dict = attr.ib(
        default=None, metadata={"req_type": "json", "key": "node_cc_open_id_list"}
    )  # 抄送人发起人自选 open id<br>单个节点最多选择20位抄送人
    uuid: str = attr.ib(
        default="", metadata={"req_type": "json", "key": "uuid"}
    )  # 审批实例 uuid，用于幂等操作，同一个 uuid 只能用于创建一个审批实例，如果冲突，返回错误码 60012 ，格式必须为 XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX，不区分大小写


@attr.s
class CreateApprovalInstanceResp(object):
    instance_code: str = attr.ib(
        default="", metadata={"req_type": "json", "key": "instance_code"}
    )  # 审批实例 Code


def _gen_create_approval_instance_req(request, options) -> RawRequestReq:
    return RawRequestReq(
        dataclass=CreateApprovalInstanceResp,
        scope="Approval",
        api="CreateApprovalInstance",
        method="POST",
        url="https://www.feishu.cn/approval/openapi/v2/instance/create",
        body=request,
        method_option=_new_method_option(options),
        need_tenant_access_token=True,
    )
# Code generated by lark_sdk_gen. DO NOT EDIT. # 审批定义 code # 发起审批用户 # 平台租户ID # 发起审批用户 open id, 如果传了 user_id 则优先使用 user_id # 发起审批用户部门id，如果用户只属于一个部门，可以不填。如果属于多个部门，默认会选择部门列表第一个部门 # json 数组，**控件值** # 如果有发起人自选节点，则需要填写对应节点的审批人<br>key:  node id 或 custom node id , 通过 [查看审批定义](https://open.feishu.cn/document/ukTMukTMukTM/uADNyUjLwQjM14CM0ITN) 获取<br> value: 审批人列表 # 审批人发起人自选 open id # 如果有发起人自选节点，则可填写对应节点的抄送人<br>key:  node id 或 custom node id , 通过 [查看审批定义](https://open.feishu.cn/document/ukTMukTMukTM/uADNyUjLwQjM14CM0ITN) 获取<br> value: 审批人列表<br>单个节点最多选择20位抄送人 # 抄送人发起人自选 open id<br>单个节点最多选择20位抄送人 # 审批实例 uuid，用于幂等操作，同一个 uuid 只能用于创建一个审批实例，如果冲突，返回错误码 60012 ，格式必须为 XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX，不区分大小写 # 审批实例 Code