from kubernetes_asyncio.client.models import V1LabelSelector
from kubernetes_asyncio.client.models import V1TypedLocalObjectReference
from kubernetes_asyncio.client.models import V1TypedObjectReference
from kubernetes_asyncio.client.models import V1VolumeResourceRequirements
from typing import Any

class V1PersistentVolumeClaimSpec:
    def __eq__(self, other: Any) -> bool: ...
    def __init__(self, access_modes: list[str] | None = None, data_source: V1TypedLocalObjectReference | None = None, data_source_ref: V1TypedObjectReference | None = None, resources: V1VolumeResourceRequirements | None = None, selector: V1LabelSelector | None = None, storage_class_name: str | None = None, volume_attributes_class_name: str | None = None, volume_mode: str | None = None, volume_name: 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 access_modes(self) -> list[str]: ...
    @access_modes.setter
    def access_modes(self, access_modes: list[str]) -> None: ...
    @property
    def data_source(self) -> V1TypedLocalObjectReference: ...
    @data_source.setter
    def data_source(self, data_source: V1TypedLocalObjectReference) -> None: ...
    @property
    def data_source_ref(self) -> V1TypedObjectReference: ...
    @data_source_ref.setter
    def data_source_ref(self, data_source_ref: V1TypedObjectReference) -> None: ...
    @property
    def resources(self) -> V1VolumeResourceRequirements: ...
    @resources.setter
    def resources(self, resources: V1VolumeResourceRequirements) -> None: ...
    @property
    def selector(self) -> V1LabelSelector: ...
    @selector.setter
    def selector(self, selector: V1LabelSelector) -> None: ...
    @property
    def storage_class_name(self) -> str: ...
    @storage_class_name.setter
    def storage_class_name(self, storage_class_name: str) -> None: ...
    @property
    def volume_attributes_class_name(self) -> str: ...
    @volume_attributes_class_name.setter
    def volume_attributes_class_name(self, volume_attributes_class_name: str) -> None: ...
    @property
    def volume_mode(self) -> str: ...
    @volume_mode.setter
    def volume_mode(self, volume_mode: str) -> None: ...
    @property
    def volume_name(self) -> str: ...
    @volume_name.setter
    def volume_name(self, volume_name: str) -> None: ...
