# 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 OpenWebAppReq(object):
    app_id: str = attr.ib(
        default="", metadata={"req_type": "json"}
    )  # H5应用的 appId(可从「开发者后台-凭证与基础信息」获取)
    mode: str = attr.ib(
        default="", metadata={"req_type": "json"}
    )  # 打开H5应用的容器模式，枚举值包括<br> `appCenter`：在工作台打开，3.20版本开始支持（缺省值） <br> `window`：在独立窗口打开，3.20版本开始支持 <br> `sidebar`：在侧边栏打开，3.40版本开始支持
    path: str = attr.ib(
        default="", metadata={"req_type": "json"}
    )  # 访问H5应用的具体某个页面，path参数将替换H5应用URL的path部分 <br>也可以使用 path_android、path_ios、path_pc 参数对不同的客户端指定不同的path <br>3.20版本开始支持
    path_android: str = attr.ib(
        default="", metadata={"req_type": "json"}
    )  # 同 path 参数，Android 端会优先使用该参数，如果该参数不存在，则会使用 path 参数。 <br>3.20版本开始支持
    path_ios: str = attr.ib(
        default="", metadata={"req_type": "json"}
    )  # 同 path 参数，iOS 端会优先使用该参数，如果该参数不存在，则会使用 path 参数 <br>3.20版本开始支持
    path_pc: str = attr.ib(
        default="", metadata={"req_type": "json"}
    )  # 同 path 参数，PC 端会优先使用该参数，如果该参数不存在，则会使用 path 参数 <br>3.20版本开始支持


@attr.s
class OpenWebAppResp(object):
    pass


def _gen_open_web_app_req(request, options) -> RawRequestReq:
    return RawRequestReq(
        dataclass=OpenWebAppResp,
        scope="AppLink",
        api="OpenWebApp",
        method="",
        url="https://applink.feishu.cn/client/web_app/open",
        body=request,
        method_option=_new_method_option(options),
    )
