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


class CloudapiZoneGetResultModel(_base.BaseAPIResultModel):
    account_ids: list[int]
    bservice_ids: list[int]
    created_timestamp: int
    deletable: bool
    description: str
    drs_broadcast_ip_addr: str
    drs_bvs_domain: str
    drs_dx_app_id: str
    drs_dx_ssl_skip_verify: bool
    drs_dx_sso_type: _nested.DRSDXSSOType
    drs_dx_sso_url: str
    drs_dx_url: str
    drs_name: str
    drs_ping_ip_addr: str
    drs_uid: str
    drs: bool
    extnet_ids: list[int]
    grid_id: int
    guid: int
    id: int
    k8s_ids: list[int]
    lb_ids: list[int]
    name: str
    node_auto_start: bool
    node_ids: list[int]
    status: _nested.ZoneStatus
    updated_timestamp: int
    vins_ids: list[int]
    vm_ids: list[int]

    @_base.computed_field
    def created_datetime(self) -> _base.datetime | None:
        return self._get_datetime_from_timestamp(self.created_timestamp)

    @_base.computed_field
    def updated_datetime(self) -> _base.datetime | None:
        return self._get_datetime_from_timestamp(self.updated_timestamp)


class CloudapiZoneGetProtocol(_base.BasePostAPIFunctionProtocol):
    def get(
        self,
        *,
        id: int,
    ) -> CloudapiZoneGetResultModel:
        ...
