from kubernetes_asyncio.client.models import V1AWSElasticBlockStoreVolumeSource
from kubernetes_asyncio.client.models import V1AzureDiskVolumeSource
from kubernetes_asyncio.client.models import V1AzureFilePersistentVolumeSource
from kubernetes_asyncio.client.models import V1CSIPersistentVolumeSource
from kubernetes_asyncio.client.models import V1CephFSPersistentVolumeSource
from kubernetes_asyncio.client.models import V1CinderPersistentVolumeSource
from kubernetes_asyncio.client.models import V1FCVolumeSource
from kubernetes_asyncio.client.models import V1FlexPersistentVolumeSource
from kubernetes_asyncio.client.models import V1FlockerVolumeSource
from kubernetes_asyncio.client.models import V1GCEPersistentDiskVolumeSource
from kubernetes_asyncio.client.models import V1GlusterfsPersistentVolumeSource
from kubernetes_asyncio.client.models import V1HostPathVolumeSource
from kubernetes_asyncio.client.models import V1ISCSIPersistentVolumeSource
from kubernetes_asyncio.client.models import V1LocalVolumeSource
from kubernetes_asyncio.client.models import V1NFSVolumeSource
from kubernetes_asyncio.client.models import V1ObjectReference
from kubernetes_asyncio.client.models import V1PhotonPersistentDiskVolumeSource
from kubernetes_asyncio.client.models import V1PortworxVolumeSource
from kubernetes_asyncio.client.models import V1QuobyteVolumeSource
from kubernetes_asyncio.client.models import V1RBDPersistentVolumeSource
from kubernetes_asyncio.client.models import V1ScaleIOPersistentVolumeSource
from kubernetes_asyncio.client.models import V1StorageOSPersistentVolumeSource
from kubernetes_asyncio.client.models import V1VolumeNodeAffinity
from kubernetes_asyncio.client.models import V1VsphereVirtualDiskVolumeSource
from typing import Any

class V1PersistentVolumeSpec:
    def __eq__(self, other: Any) -> bool: ...
    def __init__(self, access_modes: list[str] | None = None, aws_elastic_block_store: V1AWSElasticBlockStoreVolumeSource | None = None, azure_disk: V1AzureDiskVolumeSource | None = None, azure_file: V1AzureFilePersistentVolumeSource | None = None, capacity: dict[str, str] | None = None, cephfs: V1CephFSPersistentVolumeSource | None = None, cinder: V1CinderPersistentVolumeSource | None = None, claim_ref: V1ObjectReference | None = None, csi: V1CSIPersistentVolumeSource | None = None, fc: V1FCVolumeSource | None = None, flex_volume: V1FlexPersistentVolumeSource | None = None, flocker: V1FlockerVolumeSource | None = None, gce_persistent_disk: V1GCEPersistentDiskVolumeSource | None = None, glusterfs: V1GlusterfsPersistentVolumeSource | None = None, host_path: V1HostPathVolumeSource | None = None, iscsi: V1ISCSIPersistentVolumeSource | None = None, local: V1LocalVolumeSource | None = None, mount_options: list[str] | None = None, nfs: V1NFSVolumeSource | None = None, node_affinity: V1VolumeNodeAffinity | None = None, persistent_volume_reclaim_policy: str | None = None, photon_persistent_disk: V1PhotonPersistentDiskVolumeSource | None = None, portworx_volume: V1PortworxVolumeSource | None = None, quobyte: V1QuobyteVolumeSource | None = None, rbd: V1RBDPersistentVolumeSource | None = None, scale_io: V1ScaleIOPersistentVolumeSource | None = None, storage_class_name: str | None = None, storageos: V1StorageOSPersistentVolumeSource | None = None, volume_attributes_class_name: str | None = None, volume_mode: str | None = None, vsphere_volume: V1VsphereVirtualDiskVolumeSource | 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 aws_elastic_block_store(self) -> V1AWSElasticBlockStoreVolumeSource: ...
    @aws_elastic_block_store.setter
    def aws_elastic_block_store(self, aws_elastic_block_store: V1AWSElasticBlockStoreVolumeSource) -> None: ...
    @property
    def azure_disk(self) -> V1AzureDiskVolumeSource: ...
    @azure_disk.setter
    def azure_disk(self, azure_disk: V1AzureDiskVolumeSource) -> None: ...
    @property
    def azure_file(self) -> V1AzureFilePersistentVolumeSource: ...
    @azure_file.setter
    def azure_file(self, azure_file: V1AzureFilePersistentVolumeSource) -> None: ...
    @property
    def capacity(self) -> dict[str, str]: ...
    @capacity.setter
    def capacity(self, capacity: dict[str, str]) -> None: ...
    @property
    def cephfs(self) -> V1CephFSPersistentVolumeSource: ...
    @cephfs.setter
    def cephfs(self, cephfs: V1CephFSPersistentVolumeSource) -> None: ...
    @property
    def cinder(self) -> V1CinderPersistentVolumeSource: ...
    @cinder.setter
    def cinder(self, cinder: V1CinderPersistentVolumeSource) -> None: ...
    @property
    def claim_ref(self) -> V1ObjectReference: ...
    @claim_ref.setter
    def claim_ref(self, claim_ref: V1ObjectReference) -> None: ...
    @property
    def csi(self) -> V1CSIPersistentVolumeSource: ...
    @csi.setter
    def csi(self, csi: V1CSIPersistentVolumeSource) -> None: ...
    @property
    def fc(self) -> V1FCVolumeSource: ...
    @fc.setter
    def fc(self, fc: V1FCVolumeSource) -> None: ...
    @property
    def flex_volume(self) -> V1FlexPersistentVolumeSource: ...
    @flex_volume.setter
    def flex_volume(self, flex_volume: V1FlexPersistentVolumeSource) -> None: ...
    @property
    def flocker(self) -> V1FlockerVolumeSource: ...
    @flocker.setter
    def flocker(self, flocker: V1FlockerVolumeSource) -> None: ...
    @property
    def gce_persistent_disk(self) -> V1GCEPersistentDiskVolumeSource: ...
    @gce_persistent_disk.setter
    def gce_persistent_disk(self, gce_persistent_disk: V1GCEPersistentDiskVolumeSource) -> None: ...
    @property
    def glusterfs(self) -> V1GlusterfsPersistentVolumeSource: ...
    @glusterfs.setter
    def glusterfs(self, glusterfs: V1GlusterfsPersistentVolumeSource) -> None: ...
    @property
    def host_path(self) -> V1HostPathVolumeSource: ...
    @host_path.setter
    def host_path(self, host_path: V1HostPathVolumeSource) -> None: ...
    @property
    def iscsi(self) -> V1ISCSIPersistentVolumeSource: ...
    @iscsi.setter
    def iscsi(self, iscsi: V1ISCSIPersistentVolumeSource) -> None: ...
    @property
    def local(self) -> V1LocalVolumeSource: ...
    @local.setter
    def local(self, local: V1LocalVolumeSource) -> None: ...
    @property
    def mount_options(self) -> list[str]: ...
    @mount_options.setter
    def mount_options(self, mount_options: list[str]) -> None: ...
    @property
    def nfs(self) -> V1NFSVolumeSource: ...
    @nfs.setter
    def nfs(self, nfs: V1NFSVolumeSource) -> None: ...
    @property
    def node_affinity(self) -> V1VolumeNodeAffinity: ...
    @node_affinity.setter
    def node_affinity(self, node_affinity: V1VolumeNodeAffinity) -> None: ...
    @property
    def persistent_volume_reclaim_policy(self) -> str: ...
    @persistent_volume_reclaim_policy.setter
    def persistent_volume_reclaim_policy(self, persistent_volume_reclaim_policy: str) -> None: ...
    @property
    def photon_persistent_disk(self) -> V1PhotonPersistentDiskVolumeSource: ...
    @photon_persistent_disk.setter
    def photon_persistent_disk(self, photon_persistent_disk: V1PhotonPersistentDiskVolumeSource) -> None: ...
    @property
    def portworx_volume(self) -> V1PortworxVolumeSource: ...
    @portworx_volume.setter
    def portworx_volume(self, portworx_volume: V1PortworxVolumeSource) -> None: ...
    @property
    def quobyte(self) -> V1QuobyteVolumeSource: ...
    @quobyte.setter
    def quobyte(self, quobyte: V1QuobyteVolumeSource) -> None: ...
    @property
    def rbd(self) -> V1RBDPersistentVolumeSource: ...
    @rbd.setter
    def rbd(self, rbd: V1RBDPersistentVolumeSource) -> None: ...
    @property
    def scale_io(self) -> V1ScaleIOPersistentVolumeSource: ...
    @scale_io.setter
    def scale_io(self, scale_io: V1ScaleIOPersistentVolumeSource) -> None: ...
    @property
    def storage_class_name(self) -> str: ...
    @storage_class_name.setter
    def storage_class_name(self, storage_class_name: str) -> None: ...
    @property
    def storageos(self) -> V1StorageOSPersistentVolumeSource: ...
    @storageos.setter
    def storageos(self, storageos: V1StorageOSPersistentVolumeSource) -> 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 vsphere_volume(self) -> V1VsphereVirtualDiskVolumeSource: ...
    @vsphere_volume.setter
    def vsphere_volume(self, vsphere_volume: V1VsphereVirtualDiskVolumeSource) -> None: ...
