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


class CloudbrokerStoragePolicyUpdateResultModel(_base.BaseAPIResultModel):
    description: str
    guid: int
    id: int
    iops_limit: int
    name: str
    sep_pools: list[_nested.SEPPoolsAPIResultNM]
    status: _nested.StoragePolicyStatus
    usage: _nested.TenantIDsAPIResultNM


class CloudbrokerStoragePolicyUpdateProtocol(
    _base.BasePostAPIFunctionProtocol,
):
    def update(
        self,
        *,
        storage_policy_id: int,
        name: str | None = None,
        iops_limit: int | None = None,
        description: str | None = None,
        sep_pools: list[_nested.SEPPoolsAPIParamsNM] | None = None,
    ) -> CloudbrokerStoragePolicyUpdateResultModel:
        ...
