from kubernetes_asyncio.client.models import StorageV1TokenRequest
from typing import Any

class V1CSIDriverSpec:
    def __eq__(self, other: Any) -> bool: ...
    def __init__(self, attach_required: bool | None = None, fs_group_policy: str | None = None, node_allocatable_update_period_seconds: int | None = None, pod_info_on_mount: bool | None = None, requires_republish: bool | None = None, se_linux_mount: bool | None = None, storage_capacity: bool | None = None, token_requests: list[StorageV1TokenRequest] | None = None, volume_lifecycle_modes: list[str] | None = None, local_vars_configuration: Any | None = None) -> None: ...
    def __ne__(self, other: Any) -> bool: ...
    def __repr__(self) -> str: ...
    def to_dict(self, serialize: bool = False) -> dict[str, Any]: ...
    def to_str(self) -> str: ...
    @property
    def attach_required(self) -> bool: ...
    @attach_required.setter
    def attach_required(self, attach_required: bool) -> None: ...
    @property
    def fs_group_policy(self) -> str: ...
    @fs_group_policy.setter
    def fs_group_policy(self, fs_group_policy: str) -> None: ...
    @property
    def node_allocatable_update_period_seconds(self) -> int: ...
    @node_allocatable_update_period_seconds.setter
    def node_allocatable_update_period_seconds(self, node_allocatable_update_period_seconds: int) -> None: ...
    @property
    def pod_info_on_mount(self) -> bool: ...
    @pod_info_on_mount.setter
    def pod_info_on_mount(self, pod_info_on_mount: bool) -> None: ...
    @property
    def requires_republish(self) -> bool: ...
    @requires_republish.setter
    def requires_republish(self, requires_republish: bool) -> None: ...
    @property
    def se_linux_mount(self) -> bool: ...
    @se_linux_mount.setter
    def se_linux_mount(self, se_linux_mount: bool) -> None: ...
    @property
    def storage_capacity(self) -> bool: ...
    @storage_capacity.setter
    def storage_capacity(self, storage_capacity: bool) -> None: ...
    @property
    def token_requests(self) -> list[StorageV1TokenRequest]: ...
    @token_requests.setter
    def token_requests(self, token_requests: list[StorageV1TokenRequest]) -> None: ...
    @property
    def volume_lifecycle_modes(self) -> list[str]: ...
    @volume_lifecycle_modes.setter
    def volume_lifecycle_modes(self, volume_lifecycle_modes: list[str]) -> None: ...
