import dynamix_sdk.base as _base
import dynamix_sdk.api._nested as _nested


class CloudapiK8sCreateResultStr(_base.BaseAPIResultStr):
    pass


class CloudapiK8sCreateProtocol(_base.BasePostAPIFunctionProtocol):
    def create(
        self,
        *,
        name: str,
        rg_id: int,
        k8ci_id: int,
        worker_group_name: str,
        network_plugin: _nested.K8sNetworkPlugin,
        storage_policy_id: int,
        master_node_sep_id: int | None = None,
        master_node_sep_pool_name: str | None = None,
        worker_node_sep_id: int | None = None,
        worker_node_sep_pool_name: str | None = None,
        labels: list[str] | None = None,
        taints: list[str] | None = None,
        annotations: list[str] | None = None,
        init_config: str | None = None,
        cluster_config: str | None = None,
        kubelet_config: str | None = None,
        kube_proxy_config: str | None = None,
        join_config: str | None = None,
        master_node_count: int = 1,
        master_node_cpu_count:  int = 2,
        master_node_ram_size_mb: int = 2048,
        master_node_disk_size_gb: int | None = None,
        worker_node_count: int = 1,
        worker_node_cpu_count: int = 1,
        worker_node_ram_size_mb: int = 1024,
        worker_node_disk_size_gb: int | None = None,
        ext_net_id:  int | None = None,
        vins_id: int | None = None,
        with_lb:  bool = True,
        lb_ha_mode: bool = False,
        description: str | None = None,
        extnet_only: bool = False,
        ci_user_data: str | None = None,
        additional_sans: list[str] | None = None,
        chipset: _nested.Chipset = _nested.Chipset.Q35,
        lb_sysctl_params: list[dict[str, str]] | None = None,
        zone_id: int | None = None,
    ) -> CloudapiK8sCreateResultStr:
        ...
