-module(kuberl_v1_persistent_volume_spec). -export([encode/1]). -export_type([kuberl_v1_persistent_volume_spec/0]). -type kuberl_v1_persistent_volume_spec() :: #{ 'accessModes' => list(), 'awsElasticBlockStore' => kuberl_v1_aws_elastic_block_store_volume_source:kuberl_v1_aws_elastic_block_store_volume_source(), 'azureDisk' => kuberl_v1_azure_disk_volume_source:kuberl_v1_azure_disk_volume_source(), 'azureFile' => kuberl_v1_azure_file_persistent_volume_source:kuberl_v1_azure_file_persistent_volume_source(), 'capacity' => maps:map(), 'cephfs' => kuberl_v1_ceph_fs_persistent_volume_source:kuberl_v1_ceph_fs_persistent_volume_source(), 'cinder' => kuberl_v1_cinder_volume_source:kuberl_v1_cinder_volume_source(), 'claimRef' => kuberl_v1_object_reference:kuberl_v1_object_reference(), 'fc' => kuberl_v1_fc_volume_source:kuberl_v1_fc_volume_source(), 'flexVolume' => kuberl_v1_flex_volume_source:kuberl_v1_flex_volume_source(), 'flocker' => kuberl_v1_flocker_volume_source:kuberl_v1_flocker_volume_source(), 'gcePersistentDisk' => kuberl_v1_gce_persistent_disk_volume_source:kuberl_v1_gce_persistent_disk_volume_source(), 'glusterfs' => kuberl_v1_glusterfs_volume_source:kuberl_v1_glusterfs_volume_source(), 'hostPath' => kuberl_v1_host_path_volume_source:kuberl_v1_host_path_volume_source(), 'iscsi' => kuberl_v1_iscsi_volume_source:kuberl_v1_iscsi_volume_source(), 'local' => kuberl_v1_local_volume_source:kuberl_v1_local_volume_source(), 'mountOptions' => list(), 'nfs' => kuberl_v1_nfs_volume_source:kuberl_v1_nfs_volume_source(), 'persistentVolumeReclaimPolicy' => binary(), 'photonPersistentDisk' => kuberl_v1_photon_persistent_disk_volume_source:kuberl_v1_photon_persistent_disk_volume_source(), 'portworxVolume' => kuberl_v1_portworx_volume_source:kuberl_v1_portworx_volume_source(), 'quobyte' => kuberl_v1_quobyte_volume_source:kuberl_v1_quobyte_volume_source(), 'rbd' => kuberl_v1_rbd_volume_source:kuberl_v1_rbd_volume_source(), 'scaleIO' => kuberl_v1_scale_io_persistent_volume_source:kuberl_v1_scale_io_persistent_volume_source(), 'storageClassName' => binary(), 'storageos' => kuberl_v1_storage_os_persistent_volume_source:kuberl_v1_storage_os_persistent_volume_source(), 'vsphereVolume' => kuberl_v1_vsphere_virtual_disk_volume_source:kuberl_v1_vsphere_virtual_disk_volume_source() }. encode(#{ 'accessModes' := AccessModes, 'awsElasticBlockStore' := AwsElasticBlockStore, 'azureDisk' := AzureDisk, 'azureFile' := AzureFile, 'capacity' := Capacity, 'cephfs' := Cephfs, 'cinder' := Cinder, 'claimRef' := ClaimRef, 'fc' := Fc, 'flexVolume' := FlexVolume, 'flocker' := Flocker, 'gcePersistentDisk' := GcePersistentDisk, 'glusterfs' := Glusterfs, 'hostPath' := HostPath, 'iscsi' := Iscsi, 'local' := Local, 'mountOptions' := MountOptions, 'nfs' := Nfs, 'persistentVolumeReclaimPolicy' := PersistentVolumeReclaimPolicy, 'photonPersistentDisk' := PhotonPersistentDisk, 'portworxVolume' := PortworxVolume, 'quobyte' := Quobyte, 'rbd' := Rbd, 'scaleIO' := ScaleIO, 'storageClassName' := StorageClassName, 'storageos' := Storageos, 'vsphereVolume' := VsphereVolume }) -> #{ 'accessModes' => AccessModes, 'awsElasticBlockStore' => AwsElasticBlockStore, 'azureDisk' => AzureDisk, 'azureFile' => AzureFile, 'capacity' => Capacity, 'cephfs' => Cephfs, 'cinder' => Cinder, 'claimRef' => ClaimRef, 'fc' => Fc, 'flexVolume' => FlexVolume, 'flocker' => Flocker, 'gcePersistentDisk' => GcePersistentDisk, 'glusterfs' => Glusterfs, 'hostPath' => HostPath, 'iscsi' => Iscsi, 'local' => Local, 'mountOptions' => MountOptions, 'nfs' => Nfs, 'persistentVolumeReclaimPolicy' => PersistentVolumeReclaimPolicy, 'photonPersistentDisk' => PhotonPersistentDisk, 'portworxVolume' => PortworxVolume, 'quobyte' => Quobyte, 'rbd' => Rbd, 'scaleIO' => ScaleIO, 'storageClassName' => StorageClassName, 'storageos' => Storageos, 'vsphereVolume' => VsphereVolume }.