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


class CloudapiComputeNetAttachResultModel(
    _base.BaseAPIResultModel,
    _nested.InterfaceForComputeGetAPIResultNM,
):
    pass


class CloudapiComputeNetAttachProtocol(_base.BasePostAPIFunctionProtocol):
    def net_attach(
        self,
        *,
        vm_id: int,
        net_type: _nested.NetType,
        net_id: int,
        security_group_ids: None | list[int] = None,
        security_group_mode: bool = False,
        enabled: bool = True,
        ip_addr: None | str = None,
        mtu: None | int = None,
        mac: None | str = None,
        sdn_logical_port_id: None | str = None,
        net_prefix: int | None = None,
        sdn_segment_id: str | None = None,
        sdn_object_group_id: str | None = None,
        sdn_logical_port_display_name: str | None = None,
        sdn_logical_port_description: str | None = None,
    ) -> CloudapiComputeNetAttachResultModel:
        ...
