All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.alauda.kubernetes.api.model.PersistentVolumeSpecFluentImpl Maven / Gradle / Ivy

There is a newer version: 0.2.12
Show newest version
package io.alauda.kubernetes.api.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonInclude;
import java.util.ArrayList;
import java.lang.String;
import io.alauda.kubernetes.api.builder.BaseFluent;
import java.lang.Boolean;
import javax.validation.Valid;
import java.lang.Object;
import java.util.Map;
import java.lang.Deprecated;
import io.alauda.kubernetes.api.builder.Predicate;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Collection;
import io.alauda.kubernetes.api.builder.Nested;
import java.lang.Integer;

public class PersistentVolumeSpecFluentImpl> extends io.alauda.kubernetes.api.builder.BaseFluent implements PersistentVolumeSpecFluent{

    private List accessModes = new ArrayList();
    private AWSElasticBlockStoreVolumeSourceBuilder awsElasticBlockStore;
    private AzureDiskVolumeSourceBuilder azureDisk;
    private AzureFileVolumeSourceBuilder azureFile;
    private Map capacity = new LinkedHashMap();
    private CephFSVolumeSourceBuilder cephfs;
    private CinderVolumeSourceBuilder cinder;
    private ObjectReferenceBuilder claimRef;
    private FCVolumeSourceBuilder fc;
    private FlexVolumeSourceBuilder flexVolume;
    private FlockerVolumeSourceBuilder flocker;
    private GCEPersistentDiskVolumeSourceBuilder gcePersistentDisk;
    private GlusterfsVolumeSourceBuilder glusterfs;
    private HostPathVolumeSourceBuilder hostPath;
    private ISCSIVolumeSourceBuilder iscsi;
    private LocalVolumeSourceBuilder local;
    private NFSVolumeSourceBuilder nfs;
    private String persistentVolumeReclaimPolicy;
    private PhotonPersistentDiskVolumeSourceBuilder photonPersistentDisk;
    private PortworxVolumeSourceBuilder portworxVolume;
    private QuobyteVolumeSourceBuilder quobyte;
    private RBDVolumeSourceBuilder rbd;
    private ScaleIOVolumeSourceBuilder scaleIO;
    private String storageClassName;
    private StorageOSPersistentVolumeSourceBuilder storageos;
    private VsphereVirtualDiskVolumeSourceBuilder vsphereVolume;

    public PersistentVolumeSpecFluentImpl(){
    }
    public PersistentVolumeSpecFluentImpl(PersistentVolumeSpec instance){
            this.withAccessModes(instance.getAccessModes()); 
            this.withAwsElasticBlockStore(instance.getAwsElasticBlockStore()); 
            this.withAzureDisk(instance.getAzureDisk()); 
            this.withAzureFile(instance.getAzureFile()); 
            this.withCapacity(instance.getCapacity()); 
            this.withCephfs(instance.getCephfs()); 
            this.withCinder(instance.getCinder()); 
            this.withClaimRef(instance.getClaimRef()); 
            this.withFc(instance.getFc()); 
            this.withFlexVolume(instance.getFlexVolume()); 
            this.withFlocker(instance.getFlocker()); 
            this.withGcePersistentDisk(instance.getGcePersistentDisk()); 
            this.withGlusterfs(instance.getGlusterfs()); 
            this.withHostPath(instance.getHostPath()); 
            this.withIscsi(instance.getIscsi()); 
            this.withLocal(instance.getLocal()); 
            this.withNfs(instance.getNfs()); 
            this.withPersistentVolumeReclaimPolicy(instance.getPersistentVolumeReclaimPolicy()); 
            this.withPhotonPersistentDisk(instance.getPhotonPersistentDisk()); 
            this.withPortworxVolume(instance.getPortworxVolume()); 
            this.withQuobyte(instance.getQuobyte()); 
            this.withRbd(instance.getRbd()); 
            this.withScaleIO(instance.getScaleIO()); 
            this.withStorageClassName(instance.getStorageClassName()); 
            this.withStorageos(instance.getStorageos()); 
            this.withVsphereVolume(instance.getVsphereVolume()); 
    }

    public A addToAccessModes(int index,String item){
            this.accessModes.add(index, item); return (A)this;
    }

    public A setToAccessModes(int index,String item){
            this.accessModes.set(index, item); return (A)this;
    }

    public A addToAccessModes(String... items){
            for (String item : items) {this.accessModes.add(item);} return (A)this;
    }

    public A addAllToAccessModes(Collection items){
            for (String item : items) {this.accessModes.add(item);} return (A)this;
    }

    public A removeFromAccessModes(String... items){
            for (String item : items) {this.accessModes.remove(item);} return (A)this;
    }

    public A removeAllFromAccessModes(Collection items){
            for (String item : items) {this.accessModes.remove(item);} return (A)this;
    }

    public List getAccessModes(){
            return this.accessModes;
    }

    public String getAccessMode(int index){
            return this.accessModes.get(index);
    }

    public String getFirstAccessMode(){
            return this.accessModes.get(0);
    }

    public String getLastAccessMode(){
            return this.accessModes.get(accessModes.size() - 1);
    }

    public String getMatchingAccessMode(io.alauda.kubernetes.api.builder.Predicate predicate){
            for (String item: accessModes) { if(predicate.apply(item)){return item;} } return null;
    }

    public A withAccessModes(List accessModes){
            this.accessModes.clear();
            if (accessModes != null) {for (String item : accessModes){this.addToAccessModes(item);}} return (A) this;
    }

    public A withAccessModes(String... accessModes){
            this.accessModes.clear(); if (accessModes != null) {for (String item :accessModes){ this.addToAccessModes(item);}} return (A) this;
    }

    public Boolean hasAccessModes(){
            return accessModes!= null && !accessModes.isEmpty();
    }

    
/**
 * This method has been deprecated, please use method buildAwsElasticBlockStore instead.
 */
@Deprecated public AWSElasticBlockStoreVolumeSource getAwsElasticBlockStore(){
            return this.awsElasticBlockStore!=null?this.awsElasticBlockStore.build():null;
    }

    public AWSElasticBlockStoreVolumeSource buildAwsElasticBlockStore(){
            return this.awsElasticBlockStore!=null?this.awsElasticBlockStore.build():null;
    }

    public A withAwsElasticBlockStore(AWSElasticBlockStoreVolumeSource awsElasticBlockStore){
            _visitables.remove(this.awsElasticBlockStore);
            if (awsElasticBlockStore!=null){ this.awsElasticBlockStore= new AWSElasticBlockStoreVolumeSourceBuilder(awsElasticBlockStore); _visitables.add(this.awsElasticBlockStore);} return (A) this;
    }

    public Boolean hasAwsElasticBlockStore(){
            return this.awsElasticBlockStore!=null;
    }

    public PersistentVolumeSpecFluent.AwsElasticBlockStoreNested withNewAwsElasticBlockStore(){
            return new AwsElasticBlockStoreNestedImpl();
    }

    public PersistentVolumeSpecFluent.AwsElasticBlockStoreNested withNewAwsElasticBlockStoreLike(AWSElasticBlockStoreVolumeSource item){
            return new AwsElasticBlockStoreNestedImpl(item);
    }

    public PersistentVolumeSpecFluent.AwsElasticBlockStoreNested editAwsElasticBlockStore(){
            return withNewAwsElasticBlockStoreLike(getAwsElasticBlockStore());
    }

    public PersistentVolumeSpecFluent.AwsElasticBlockStoreNested editOrNewAwsElasticBlockStore(){
            return withNewAwsElasticBlockStoreLike(getAwsElasticBlockStore() != null ? getAwsElasticBlockStore(): new AWSElasticBlockStoreVolumeSourceBuilder().build());
    }

    public PersistentVolumeSpecFluent.AwsElasticBlockStoreNested editOrNewAwsElasticBlockStoreLike(AWSElasticBlockStoreVolumeSource item){
            return withNewAwsElasticBlockStoreLike(getAwsElasticBlockStore() != null ? getAwsElasticBlockStore(): item);
    }

    public A withNewAwsElasticBlockStore(String fsType,Integer partition,Boolean readOnly,String volumeID){
            return (A)withAwsElasticBlockStore(new AWSElasticBlockStoreVolumeSource(fsType, partition, readOnly, volumeID));
    }

    
/**
 * This method has been deprecated, please use method buildAzureDisk instead.
 */
@Deprecated public AzureDiskVolumeSource getAzureDisk(){
            return this.azureDisk!=null?this.azureDisk.build():null;
    }

    public AzureDiskVolumeSource buildAzureDisk(){
            return this.azureDisk!=null?this.azureDisk.build():null;
    }

    public A withAzureDisk(AzureDiskVolumeSource azureDisk){
            _visitables.remove(this.azureDisk);
            if (azureDisk!=null){ this.azureDisk= new AzureDiskVolumeSourceBuilder(azureDisk); _visitables.add(this.azureDisk);} return (A) this;
    }

    public Boolean hasAzureDisk(){
            return this.azureDisk!=null;
    }

    public PersistentVolumeSpecFluent.AzureDiskNested withNewAzureDisk(){
            return new AzureDiskNestedImpl();
    }

    public PersistentVolumeSpecFluent.AzureDiskNested withNewAzureDiskLike(AzureDiskVolumeSource item){
            return new AzureDiskNestedImpl(item);
    }

    public PersistentVolumeSpecFluent.AzureDiskNested editAzureDisk(){
            return withNewAzureDiskLike(getAzureDisk());
    }

    public PersistentVolumeSpecFluent.AzureDiskNested editOrNewAzureDisk(){
            return withNewAzureDiskLike(getAzureDisk() != null ? getAzureDisk(): new AzureDiskVolumeSourceBuilder().build());
    }

    public PersistentVolumeSpecFluent.AzureDiskNested editOrNewAzureDiskLike(AzureDiskVolumeSource item){
            return withNewAzureDiskLike(getAzureDisk() != null ? getAzureDisk(): item);
    }

    
/**
 * This method has been deprecated, please use method buildAzureFile instead.
 */
@Deprecated public AzureFileVolumeSource getAzureFile(){
            return this.azureFile!=null?this.azureFile.build():null;
    }

    public AzureFileVolumeSource buildAzureFile(){
            return this.azureFile!=null?this.azureFile.build():null;
    }

    public A withAzureFile(AzureFileVolumeSource azureFile){
            _visitables.remove(this.azureFile);
            if (azureFile!=null){ this.azureFile= new AzureFileVolumeSourceBuilder(azureFile); _visitables.add(this.azureFile);} return (A) this;
    }

    public Boolean hasAzureFile(){
            return this.azureFile!=null;
    }

    public PersistentVolumeSpecFluent.AzureFileNested withNewAzureFile(){
            return new AzureFileNestedImpl();
    }

    public PersistentVolumeSpecFluent.AzureFileNested withNewAzureFileLike(AzureFileVolumeSource item){
            return new AzureFileNestedImpl(item);
    }

    public PersistentVolumeSpecFluent.AzureFileNested editAzureFile(){
            return withNewAzureFileLike(getAzureFile());
    }

    public PersistentVolumeSpecFluent.AzureFileNested editOrNewAzureFile(){
            return withNewAzureFileLike(getAzureFile() != null ? getAzureFile(): new AzureFileVolumeSourceBuilder().build());
    }

    public PersistentVolumeSpecFluent.AzureFileNested editOrNewAzureFileLike(AzureFileVolumeSource item){
            return withNewAzureFileLike(getAzureFile() != null ? getAzureFile(): item);
    }

    public A withNewAzureFile(Boolean readOnly,String secretName,String shareName){
            return (A)withAzureFile(new AzureFileVolumeSource(readOnly, secretName, shareName));
    }

    public A addToCapacity(String key,Quantity value){
            if(key != null && value != null) {this.capacity.put(key, value);} return (A)this;
    }

    public A addToCapacity(Map map){
            if(map != null) { this.capacity.putAll(map);} return (A)this;
    }

    public A removeFromCapacity(String key){
            if(key != null) {this.capacity.remove(key);} return (A)this;
    }

    public A removeFromCapacity(Map map){
            if(map != null) { for(Object key : map.keySet()) {this.capacity.remove(key);}} return (A)this;
    }

    public Map getCapacity(){
            return this.capacity;
    }

    public A withCapacity(Map capacity){
            this.capacity.clear();
            if (capacity != null) {this.capacity.putAll(capacity);} return (A) this;
    }

    public Boolean hasCapacity(){
            return this.capacity!=null;
    }

    
/**
 * This method has been deprecated, please use method buildCephfs instead.
 */
@Deprecated public CephFSVolumeSource getCephfs(){
            return this.cephfs!=null?this.cephfs.build():null;
    }

    public CephFSVolumeSource buildCephfs(){
            return this.cephfs!=null?this.cephfs.build():null;
    }

    public A withCephfs(CephFSVolumeSource cephfs){
            _visitables.remove(this.cephfs);
            if (cephfs!=null){ this.cephfs= new CephFSVolumeSourceBuilder(cephfs); _visitables.add(this.cephfs);} return (A) this;
    }

    public Boolean hasCephfs(){
            return this.cephfs!=null;
    }

    public PersistentVolumeSpecFluent.CephfsNested withNewCephfs(){
            return new CephfsNestedImpl();
    }

    public PersistentVolumeSpecFluent.CephfsNested withNewCephfsLike(CephFSVolumeSource item){
            return new CephfsNestedImpl(item);
    }

    public PersistentVolumeSpecFluent.CephfsNested editCephfs(){
            return withNewCephfsLike(getCephfs());
    }

    public PersistentVolumeSpecFluent.CephfsNested editOrNewCephfs(){
            return withNewCephfsLike(getCephfs() != null ? getCephfs(): new CephFSVolumeSourceBuilder().build());
    }

    public PersistentVolumeSpecFluent.CephfsNested editOrNewCephfsLike(CephFSVolumeSource item){
            return withNewCephfsLike(getCephfs() != null ? getCephfs(): item);
    }

    
/**
 * This method has been deprecated, please use method buildCinder instead.
 */
@Deprecated public CinderVolumeSource getCinder(){
            return this.cinder!=null?this.cinder.build():null;
    }

    public CinderVolumeSource buildCinder(){
            return this.cinder!=null?this.cinder.build():null;
    }

    public A withCinder(CinderVolumeSource cinder){
            _visitables.remove(this.cinder);
            if (cinder!=null){ this.cinder= new CinderVolumeSourceBuilder(cinder); _visitables.add(this.cinder);} return (A) this;
    }

    public Boolean hasCinder(){
            return this.cinder!=null;
    }

    public PersistentVolumeSpecFluent.CinderNested withNewCinder(){
            return new CinderNestedImpl();
    }

    public PersistentVolumeSpecFluent.CinderNested withNewCinderLike(CinderVolumeSource item){
            return new CinderNestedImpl(item);
    }

    public PersistentVolumeSpecFluent.CinderNested editCinder(){
            return withNewCinderLike(getCinder());
    }

    public PersistentVolumeSpecFluent.CinderNested editOrNewCinder(){
            return withNewCinderLike(getCinder() != null ? getCinder(): new CinderVolumeSourceBuilder().build());
    }

    public PersistentVolumeSpecFluent.CinderNested editOrNewCinderLike(CinderVolumeSource item){
            return withNewCinderLike(getCinder() != null ? getCinder(): item);
    }

    public A withNewCinder(String fsType,Boolean readOnly,String volumeID){
            return (A)withCinder(new CinderVolumeSource(fsType, readOnly, volumeID));
    }

    
/**
 * This method has been deprecated, please use method buildClaimRef instead.
 */
@Deprecated public ObjectReference getClaimRef(){
            return this.claimRef!=null?this.claimRef.build():null;
    }

    public ObjectReference buildClaimRef(){
            return this.claimRef!=null?this.claimRef.build():null;
    }

    public A withClaimRef(ObjectReference claimRef){
            _visitables.remove(this.claimRef);
            if (claimRef!=null){ this.claimRef= new ObjectReferenceBuilder(claimRef); _visitables.add(this.claimRef);} return (A) this;
    }

    public Boolean hasClaimRef(){
            return this.claimRef!=null;
    }

    public PersistentVolumeSpecFluent.ClaimRefNested withNewClaimRef(){
            return new ClaimRefNestedImpl();
    }

    public PersistentVolumeSpecFluent.ClaimRefNested withNewClaimRefLike(ObjectReference item){
            return new ClaimRefNestedImpl(item);
    }

    public PersistentVolumeSpecFluent.ClaimRefNested editClaimRef(){
            return withNewClaimRefLike(getClaimRef());
    }

    public PersistentVolumeSpecFluent.ClaimRefNested editOrNewClaimRef(){
            return withNewClaimRefLike(getClaimRef() != null ? getClaimRef(): new ObjectReferenceBuilder().build());
    }

    public PersistentVolumeSpecFluent.ClaimRefNested editOrNewClaimRefLike(ObjectReference item){
            return withNewClaimRefLike(getClaimRef() != null ? getClaimRef(): item);
    }

    
/**
 * This method has been deprecated, please use method buildFc instead.
 */
@Deprecated public FCVolumeSource getFc(){
            return this.fc!=null?this.fc.build():null;
    }

    public FCVolumeSource buildFc(){
            return this.fc!=null?this.fc.build():null;
    }

    public A withFc(FCVolumeSource fc){
            _visitables.remove(this.fc);
            if (fc!=null){ this.fc= new FCVolumeSourceBuilder(fc); _visitables.add(this.fc);} return (A) this;
    }

    public Boolean hasFc(){
            return this.fc!=null;
    }

    public PersistentVolumeSpecFluent.FcNested withNewFc(){
            return new FcNestedImpl();
    }

    public PersistentVolumeSpecFluent.FcNested withNewFcLike(FCVolumeSource item){
            return new FcNestedImpl(item);
    }

    public PersistentVolumeSpecFluent.FcNested editFc(){
            return withNewFcLike(getFc());
    }

    public PersistentVolumeSpecFluent.FcNested editOrNewFc(){
            return withNewFcLike(getFc() != null ? getFc(): new FCVolumeSourceBuilder().build());
    }

    public PersistentVolumeSpecFluent.FcNested editOrNewFcLike(FCVolumeSource item){
            return withNewFcLike(getFc() != null ? getFc(): item);
    }

    
/**
 * This method has been deprecated, please use method buildFlexVolume instead.
 */
@Deprecated public FlexVolumeSource getFlexVolume(){
            return this.flexVolume!=null?this.flexVolume.build():null;
    }

    public FlexVolumeSource buildFlexVolume(){
            return this.flexVolume!=null?this.flexVolume.build():null;
    }

    public A withFlexVolume(FlexVolumeSource flexVolume){
            _visitables.remove(this.flexVolume);
            if (flexVolume!=null){ this.flexVolume= new FlexVolumeSourceBuilder(flexVolume); _visitables.add(this.flexVolume);} return (A) this;
    }

    public Boolean hasFlexVolume(){
            return this.flexVolume!=null;
    }

    public PersistentVolumeSpecFluent.FlexVolumeNested withNewFlexVolume(){
            return new FlexVolumeNestedImpl();
    }

    public PersistentVolumeSpecFluent.FlexVolumeNested withNewFlexVolumeLike(FlexVolumeSource item){
            return new FlexVolumeNestedImpl(item);
    }

    public PersistentVolumeSpecFluent.FlexVolumeNested editFlexVolume(){
            return withNewFlexVolumeLike(getFlexVolume());
    }

    public PersistentVolumeSpecFluent.FlexVolumeNested editOrNewFlexVolume(){
            return withNewFlexVolumeLike(getFlexVolume() != null ? getFlexVolume(): new FlexVolumeSourceBuilder().build());
    }

    public PersistentVolumeSpecFluent.FlexVolumeNested editOrNewFlexVolumeLike(FlexVolumeSource item){
            return withNewFlexVolumeLike(getFlexVolume() != null ? getFlexVolume(): item);
    }

    
/**
 * This method has been deprecated, please use method buildFlocker instead.
 */
@Deprecated public FlockerVolumeSource getFlocker(){
            return this.flocker!=null?this.flocker.build():null;
    }

    public FlockerVolumeSource buildFlocker(){
            return this.flocker!=null?this.flocker.build():null;
    }

    public A withFlocker(FlockerVolumeSource flocker){
            _visitables.remove(this.flocker);
            if (flocker!=null){ this.flocker= new FlockerVolumeSourceBuilder(flocker); _visitables.add(this.flocker);} return (A) this;
    }

    public Boolean hasFlocker(){
            return this.flocker!=null;
    }

    public PersistentVolumeSpecFluent.FlockerNested withNewFlocker(){
            return new FlockerNestedImpl();
    }

    public PersistentVolumeSpecFluent.FlockerNested withNewFlockerLike(FlockerVolumeSource item){
            return new FlockerNestedImpl(item);
    }

    public PersistentVolumeSpecFluent.FlockerNested editFlocker(){
            return withNewFlockerLike(getFlocker());
    }

    public PersistentVolumeSpecFluent.FlockerNested editOrNewFlocker(){
            return withNewFlockerLike(getFlocker() != null ? getFlocker(): new FlockerVolumeSourceBuilder().build());
    }

    public PersistentVolumeSpecFluent.FlockerNested editOrNewFlockerLike(FlockerVolumeSource item){
            return withNewFlockerLike(getFlocker() != null ? getFlocker(): item);
    }

    public A withNewFlocker(String datasetName,String datasetUUID){
            return (A)withFlocker(new FlockerVolumeSource(datasetName, datasetUUID));
    }

    
/**
 * This method has been deprecated, please use method buildGcePersistentDisk instead.
 */
@Deprecated public GCEPersistentDiskVolumeSource getGcePersistentDisk(){
            return this.gcePersistentDisk!=null?this.gcePersistentDisk.build():null;
    }

    public GCEPersistentDiskVolumeSource buildGcePersistentDisk(){
            return this.gcePersistentDisk!=null?this.gcePersistentDisk.build():null;
    }

    public A withGcePersistentDisk(GCEPersistentDiskVolumeSource gcePersistentDisk){
            _visitables.remove(this.gcePersistentDisk);
            if (gcePersistentDisk!=null){ this.gcePersistentDisk= new GCEPersistentDiskVolumeSourceBuilder(gcePersistentDisk); _visitables.add(this.gcePersistentDisk);} return (A) this;
    }

    public Boolean hasGcePersistentDisk(){
            return this.gcePersistentDisk!=null;
    }

    public PersistentVolumeSpecFluent.GcePersistentDiskNested withNewGcePersistentDisk(){
            return new GcePersistentDiskNestedImpl();
    }

    public PersistentVolumeSpecFluent.GcePersistentDiskNested withNewGcePersistentDiskLike(GCEPersistentDiskVolumeSource item){
            return new GcePersistentDiskNestedImpl(item);
    }

    public PersistentVolumeSpecFluent.GcePersistentDiskNested editGcePersistentDisk(){
            return withNewGcePersistentDiskLike(getGcePersistentDisk());
    }

    public PersistentVolumeSpecFluent.GcePersistentDiskNested editOrNewGcePersistentDisk(){
            return withNewGcePersistentDiskLike(getGcePersistentDisk() != null ? getGcePersistentDisk(): new GCEPersistentDiskVolumeSourceBuilder().build());
    }

    public PersistentVolumeSpecFluent.GcePersistentDiskNested editOrNewGcePersistentDiskLike(GCEPersistentDiskVolumeSource item){
            return withNewGcePersistentDiskLike(getGcePersistentDisk() != null ? getGcePersistentDisk(): item);
    }

    public A withNewGcePersistentDisk(String fsType,Integer partition,String pdName,Boolean readOnly){
            return (A)withGcePersistentDisk(new GCEPersistentDiskVolumeSource(fsType, partition, pdName, readOnly));
    }

    
/**
 * This method has been deprecated, please use method buildGlusterfs instead.
 */
@Deprecated public GlusterfsVolumeSource getGlusterfs(){
            return this.glusterfs!=null?this.glusterfs.build():null;
    }

    public GlusterfsVolumeSource buildGlusterfs(){
            return this.glusterfs!=null?this.glusterfs.build():null;
    }

    public A withGlusterfs(GlusterfsVolumeSource glusterfs){
            _visitables.remove(this.glusterfs);
            if (glusterfs!=null){ this.glusterfs= new GlusterfsVolumeSourceBuilder(glusterfs); _visitables.add(this.glusterfs);} return (A) this;
    }

    public Boolean hasGlusterfs(){
            return this.glusterfs!=null;
    }

    public PersistentVolumeSpecFluent.GlusterfsNested withNewGlusterfs(){
            return new GlusterfsNestedImpl();
    }

    public PersistentVolumeSpecFluent.GlusterfsNested withNewGlusterfsLike(GlusterfsVolumeSource item){
            return new GlusterfsNestedImpl(item);
    }

    public PersistentVolumeSpecFluent.GlusterfsNested editGlusterfs(){
            return withNewGlusterfsLike(getGlusterfs());
    }

    public PersistentVolumeSpecFluent.GlusterfsNested editOrNewGlusterfs(){
            return withNewGlusterfsLike(getGlusterfs() != null ? getGlusterfs(): new GlusterfsVolumeSourceBuilder().build());
    }

    public PersistentVolumeSpecFluent.GlusterfsNested editOrNewGlusterfsLike(GlusterfsVolumeSource item){
            return withNewGlusterfsLike(getGlusterfs() != null ? getGlusterfs(): item);
    }

    public A withNewGlusterfs(String endpoints,String path,Boolean readOnly){
            return (A)withGlusterfs(new GlusterfsVolumeSource(endpoints, path, readOnly));
    }

    
/**
 * This method has been deprecated, please use method buildHostPath instead.
 */
@Deprecated public HostPathVolumeSource getHostPath(){
            return this.hostPath!=null?this.hostPath.build():null;
    }

    public HostPathVolumeSource buildHostPath(){
            return this.hostPath!=null?this.hostPath.build():null;
    }

    public A withHostPath(HostPathVolumeSource hostPath){
            _visitables.remove(this.hostPath);
            if (hostPath!=null){ this.hostPath= new HostPathVolumeSourceBuilder(hostPath); _visitables.add(this.hostPath);} return (A) this;
    }

    public Boolean hasHostPath(){
            return this.hostPath!=null;
    }

    public PersistentVolumeSpecFluent.HostPathNested withNewHostPath(){
            return new HostPathNestedImpl();
    }

    public PersistentVolumeSpecFluent.HostPathNested withNewHostPathLike(HostPathVolumeSource item){
            return new HostPathNestedImpl(item);
    }

    public PersistentVolumeSpecFluent.HostPathNested editHostPath(){
            return withNewHostPathLike(getHostPath());
    }

    public PersistentVolumeSpecFluent.HostPathNested editOrNewHostPath(){
            return withNewHostPathLike(getHostPath() != null ? getHostPath(): new HostPathVolumeSourceBuilder().build());
    }

    public PersistentVolumeSpecFluent.HostPathNested editOrNewHostPathLike(HostPathVolumeSource item){
            return withNewHostPathLike(getHostPath() != null ? getHostPath(): item);
    }

    public A withNewHostPath(String path){
            return (A)withHostPath(new HostPathVolumeSource(path));
    }

    
/**
 * This method has been deprecated, please use method buildIscsi instead.
 */
@Deprecated public ISCSIVolumeSource getIscsi(){
            return this.iscsi!=null?this.iscsi.build():null;
    }

    public ISCSIVolumeSource buildIscsi(){
            return this.iscsi!=null?this.iscsi.build():null;
    }

    public A withIscsi(ISCSIVolumeSource iscsi){
            _visitables.remove(this.iscsi);
            if (iscsi!=null){ this.iscsi= new ISCSIVolumeSourceBuilder(iscsi); _visitables.add(this.iscsi);} return (A) this;
    }

    public Boolean hasIscsi(){
            return this.iscsi!=null;
    }

    public PersistentVolumeSpecFluent.IscsiNested withNewIscsi(){
            return new IscsiNestedImpl();
    }

    public PersistentVolumeSpecFluent.IscsiNested withNewIscsiLike(ISCSIVolumeSource item){
            return new IscsiNestedImpl(item);
    }

    public PersistentVolumeSpecFluent.IscsiNested editIscsi(){
            return withNewIscsiLike(getIscsi());
    }

    public PersistentVolumeSpecFluent.IscsiNested editOrNewIscsi(){
            return withNewIscsiLike(getIscsi() != null ? getIscsi(): new ISCSIVolumeSourceBuilder().build());
    }

    public PersistentVolumeSpecFluent.IscsiNested editOrNewIscsiLike(ISCSIVolumeSource item){
            return withNewIscsiLike(getIscsi() != null ? getIscsi(): item);
    }

    
/**
 * This method has been deprecated, please use method buildLocal instead.
 */
@Deprecated public LocalVolumeSource getLocal(){
            return this.local!=null?this.local.build():null;
    }

    public LocalVolumeSource buildLocal(){
            return this.local!=null?this.local.build():null;
    }

    public A withLocal(LocalVolumeSource local){
            _visitables.remove(this.local);
            if (local!=null){ this.local= new LocalVolumeSourceBuilder(local); _visitables.add(this.local);} return (A) this;
    }

    public Boolean hasLocal(){
            return this.local!=null;
    }

    public PersistentVolumeSpecFluent.LocalNested withNewLocal(){
            return new LocalNestedImpl();
    }

    public PersistentVolumeSpecFluent.LocalNested withNewLocalLike(LocalVolumeSource item){
            return new LocalNestedImpl(item);
    }

    public PersistentVolumeSpecFluent.LocalNested editLocal(){
            return withNewLocalLike(getLocal());
    }

    public PersistentVolumeSpecFluent.LocalNested editOrNewLocal(){
            return withNewLocalLike(getLocal() != null ? getLocal(): new LocalVolumeSourceBuilder().build());
    }

    public PersistentVolumeSpecFluent.LocalNested editOrNewLocalLike(LocalVolumeSource item){
            return withNewLocalLike(getLocal() != null ? getLocal(): item);
    }

    public A withNewLocal(String path){
            return (A)withLocal(new LocalVolumeSource(path));
    }

    
/**
 * This method has been deprecated, please use method buildNfs instead.
 */
@Deprecated public NFSVolumeSource getNfs(){
            return this.nfs!=null?this.nfs.build():null;
    }

    public NFSVolumeSource buildNfs(){
            return this.nfs!=null?this.nfs.build():null;
    }

    public A withNfs(NFSVolumeSource nfs){
            _visitables.remove(this.nfs);
            if (nfs!=null){ this.nfs= new NFSVolumeSourceBuilder(nfs); _visitables.add(this.nfs);} return (A) this;
    }

    public Boolean hasNfs(){
            return this.nfs!=null;
    }

    public PersistentVolumeSpecFluent.NfsNested withNewNfs(){
            return new NfsNestedImpl();
    }

    public PersistentVolumeSpecFluent.NfsNested withNewNfsLike(NFSVolumeSource item){
            return new NfsNestedImpl(item);
    }

    public PersistentVolumeSpecFluent.NfsNested editNfs(){
            return withNewNfsLike(getNfs());
    }

    public PersistentVolumeSpecFluent.NfsNested editOrNewNfs(){
            return withNewNfsLike(getNfs() != null ? getNfs(): new NFSVolumeSourceBuilder().build());
    }

    public PersistentVolumeSpecFluent.NfsNested editOrNewNfsLike(NFSVolumeSource item){
            return withNewNfsLike(getNfs() != null ? getNfs(): item);
    }

    public A withNewNfs(String path,Boolean readOnly,String server){
            return (A)withNfs(new NFSVolumeSource(path, readOnly, server));
    }

    public String getPersistentVolumeReclaimPolicy(){
            return this.persistentVolumeReclaimPolicy;
    }

    public A withPersistentVolumeReclaimPolicy(String persistentVolumeReclaimPolicy){
            this.persistentVolumeReclaimPolicy=persistentVolumeReclaimPolicy; return (A) this;
    }

    public Boolean hasPersistentVolumeReclaimPolicy(){
            return this.persistentVolumeReclaimPolicy!=null;
    }

    
/**
 * This method has been deprecated, please use method buildPhotonPersistentDisk instead.
 */
@Deprecated public PhotonPersistentDiskVolumeSource getPhotonPersistentDisk(){
            return this.photonPersistentDisk!=null?this.photonPersistentDisk.build():null;
    }

    public PhotonPersistentDiskVolumeSource buildPhotonPersistentDisk(){
            return this.photonPersistentDisk!=null?this.photonPersistentDisk.build():null;
    }

    public A withPhotonPersistentDisk(PhotonPersistentDiskVolumeSource photonPersistentDisk){
            _visitables.remove(this.photonPersistentDisk);
            if (photonPersistentDisk!=null){ this.photonPersistentDisk= new PhotonPersistentDiskVolumeSourceBuilder(photonPersistentDisk); _visitables.add(this.photonPersistentDisk);} return (A) this;
    }

    public Boolean hasPhotonPersistentDisk(){
            return this.photonPersistentDisk!=null;
    }

    public PersistentVolumeSpecFluent.PhotonPersistentDiskNested withNewPhotonPersistentDisk(){
            return new PhotonPersistentDiskNestedImpl();
    }

    public PersistentVolumeSpecFluent.PhotonPersistentDiskNested withNewPhotonPersistentDiskLike(PhotonPersistentDiskVolumeSource item){
            return new PhotonPersistentDiskNestedImpl(item);
    }

    public PersistentVolumeSpecFluent.PhotonPersistentDiskNested editPhotonPersistentDisk(){
            return withNewPhotonPersistentDiskLike(getPhotonPersistentDisk());
    }

    public PersistentVolumeSpecFluent.PhotonPersistentDiskNested editOrNewPhotonPersistentDisk(){
            return withNewPhotonPersistentDiskLike(getPhotonPersistentDisk() != null ? getPhotonPersistentDisk(): new PhotonPersistentDiskVolumeSourceBuilder().build());
    }

    public PersistentVolumeSpecFluent.PhotonPersistentDiskNested editOrNewPhotonPersistentDiskLike(PhotonPersistentDiskVolumeSource item){
            return withNewPhotonPersistentDiskLike(getPhotonPersistentDisk() != null ? getPhotonPersistentDisk(): item);
    }

    public A withNewPhotonPersistentDisk(String fsType,String pdID){
            return (A)withPhotonPersistentDisk(new PhotonPersistentDiskVolumeSource(fsType, pdID));
    }

    
/**
 * This method has been deprecated, please use method buildPortworxVolume instead.
 */
@Deprecated public PortworxVolumeSource getPortworxVolume(){
            return this.portworxVolume!=null?this.portworxVolume.build():null;
    }

    public PortworxVolumeSource buildPortworxVolume(){
            return this.portworxVolume!=null?this.portworxVolume.build():null;
    }

    public A withPortworxVolume(PortworxVolumeSource portworxVolume){
            _visitables.remove(this.portworxVolume);
            if (portworxVolume!=null){ this.portworxVolume= new PortworxVolumeSourceBuilder(portworxVolume); _visitables.add(this.portworxVolume);} return (A) this;
    }

    public Boolean hasPortworxVolume(){
            return this.portworxVolume!=null;
    }

    public PersistentVolumeSpecFluent.PortworxVolumeNested withNewPortworxVolume(){
            return new PortworxVolumeNestedImpl();
    }

    public PersistentVolumeSpecFluent.PortworxVolumeNested withNewPortworxVolumeLike(PortworxVolumeSource item){
            return new PortworxVolumeNestedImpl(item);
    }

    public PersistentVolumeSpecFluent.PortworxVolumeNested editPortworxVolume(){
            return withNewPortworxVolumeLike(getPortworxVolume());
    }

    public PersistentVolumeSpecFluent.PortworxVolumeNested editOrNewPortworxVolume(){
            return withNewPortworxVolumeLike(getPortworxVolume() != null ? getPortworxVolume(): new PortworxVolumeSourceBuilder().build());
    }

    public PersistentVolumeSpecFluent.PortworxVolumeNested editOrNewPortworxVolumeLike(PortworxVolumeSource item){
            return withNewPortworxVolumeLike(getPortworxVolume() != null ? getPortworxVolume(): item);
    }

    public A withNewPortworxVolume(String fsType,Boolean readOnly,String volumeID){
            return (A)withPortworxVolume(new PortworxVolumeSource(fsType, readOnly, volumeID));
    }

    
/**
 * This method has been deprecated, please use method buildQuobyte instead.
 */
@Deprecated public QuobyteVolumeSource getQuobyte(){
            return this.quobyte!=null?this.quobyte.build():null;
    }

    public QuobyteVolumeSource buildQuobyte(){
            return this.quobyte!=null?this.quobyte.build():null;
    }

    public A withQuobyte(QuobyteVolumeSource quobyte){
            _visitables.remove(this.quobyte);
            if (quobyte!=null){ this.quobyte= new QuobyteVolumeSourceBuilder(quobyte); _visitables.add(this.quobyte);} return (A) this;
    }

    public Boolean hasQuobyte(){
            return this.quobyte!=null;
    }

    public PersistentVolumeSpecFluent.QuobyteNested withNewQuobyte(){
            return new QuobyteNestedImpl();
    }

    public PersistentVolumeSpecFluent.QuobyteNested withNewQuobyteLike(QuobyteVolumeSource item){
            return new QuobyteNestedImpl(item);
    }

    public PersistentVolumeSpecFluent.QuobyteNested editQuobyte(){
            return withNewQuobyteLike(getQuobyte());
    }

    public PersistentVolumeSpecFluent.QuobyteNested editOrNewQuobyte(){
            return withNewQuobyteLike(getQuobyte() != null ? getQuobyte(): new QuobyteVolumeSourceBuilder().build());
    }

    public PersistentVolumeSpecFluent.QuobyteNested editOrNewQuobyteLike(QuobyteVolumeSource item){
            return withNewQuobyteLike(getQuobyte() != null ? getQuobyte(): item);
    }

    public A withNewQuobyte(String group,Boolean readOnly,String registry,String user,String volume){
            return (A)withQuobyte(new QuobyteVolumeSource(group, readOnly, registry, user, volume));
    }

    
/**
 * This method has been deprecated, please use method buildRbd instead.
 */
@Deprecated public RBDVolumeSource getRbd(){
            return this.rbd!=null?this.rbd.build():null;
    }

    public RBDVolumeSource buildRbd(){
            return this.rbd!=null?this.rbd.build():null;
    }

    public A withRbd(RBDVolumeSource rbd){
            _visitables.remove(this.rbd);
            if (rbd!=null){ this.rbd= new RBDVolumeSourceBuilder(rbd); _visitables.add(this.rbd);} return (A) this;
    }

    public Boolean hasRbd(){
            return this.rbd!=null;
    }

    public PersistentVolumeSpecFluent.RbdNested withNewRbd(){
            return new RbdNestedImpl();
    }

    public PersistentVolumeSpecFluent.RbdNested withNewRbdLike(RBDVolumeSource item){
            return new RbdNestedImpl(item);
    }

    public PersistentVolumeSpecFluent.RbdNested editRbd(){
            return withNewRbdLike(getRbd());
    }

    public PersistentVolumeSpecFluent.RbdNested editOrNewRbd(){
            return withNewRbdLike(getRbd() != null ? getRbd(): new RBDVolumeSourceBuilder().build());
    }

    public PersistentVolumeSpecFluent.RbdNested editOrNewRbdLike(RBDVolumeSource item){
            return withNewRbdLike(getRbd() != null ? getRbd(): item);
    }

    
/**
 * This method has been deprecated, please use method buildScaleIO instead.
 */
@Deprecated public ScaleIOVolumeSource getScaleIO(){
            return this.scaleIO!=null?this.scaleIO.build():null;
    }

    public ScaleIOVolumeSource buildScaleIO(){
            return this.scaleIO!=null?this.scaleIO.build():null;
    }

    public A withScaleIO(ScaleIOVolumeSource scaleIO){
            _visitables.remove(this.scaleIO);
            if (scaleIO!=null){ this.scaleIO= new ScaleIOVolumeSourceBuilder(scaleIO); _visitables.add(this.scaleIO);} return (A) this;
    }

    public Boolean hasScaleIO(){
            return this.scaleIO!=null;
    }

    public PersistentVolumeSpecFluent.ScaleIONested withNewScaleIO(){
            return new ScaleIONestedImpl();
    }

    public PersistentVolumeSpecFluent.ScaleIONested withNewScaleIOLike(ScaleIOVolumeSource item){
            return new ScaleIONestedImpl(item);
    }

    public PersistentVolumeSpecFluent.ScaleIONested editScaleIO(){
            return withNewScaleIOLike(getScaleIO());
    }

    public PersistentVolumeSpecFluent.ScaleIONested editOrNewScaleIO(){
            return withNewScaleIOLike(getScaleIO() != null ? getScaleIO(): new ScaleIOVolumeSourceBuilder().build());
    }

    public PersistentVolumeSpecFluent.ScaleIONested editOrNewScaleIOLike(ScaleIOVolumeSource item){
            return withNewScaleIOLike(getScaleIO() != null ? getScaleIO(): item);
    }

    public String getStorageClassName(){
            return this.storageClassName;
    }

    public A withStorageClassName(String storageClassName){
            this.storageClassName=storageClassName; return (A) this;
    }

    public Boolean hasStorageClassName(){
            return this.storageClassName!=null;
    }

    
/**
 * This method has been deprecated, please use method buildStorageos instead.
 */
@Deprecated public StorageOSPersistentVolumeSource getStorageos(){
            return this.storageos!=null?this.storageos.build():null;
    }

    public StorageOSPersistentVolumeSource buildStorageos(){
            return this.storageos!=null?this.storageos.build():null;
    }

    public A withStorageos(StorageOSPersistentVolumeSource storageos){
            _visitables.remove(this.storageos);
            if (storageos!=null){ this.storageos= new StorageOSPersistentVolumeSourceBuilder(storageos); _visitables.add(this.storageos);} return (A) this;
    }

    public Boolean hasStorageos(){
            return this.storageos!=null;
    }

    public PersistentVolumeSpecFluent.StorageosNested withNewStorageos(){
            return new StorageosNestedImpl();
    }

    public PersistentVolumeSpecFluent.StorageosNested withNewStorageosLike(StorageOSPersistentVolumeSource item){
            return new StorageosNestedImpl(item);
    }

    public PersistentVolumeSpecFluent.StorageosNested editStorageos(){
            return withNewStorageosLike(getStorageos());
    }

    public PersistentVolumeSpecFluent.StorageosNested editOrNewStorageos(){
            return withNewStorageosLike(getStorageos() != null ? getStorageos(): new StorageOSPersistentVolumeSourceBuilder().build());
    }

    public PersistentVolumeSpecFluent.StorageosNested editOrNewStorageosLike(StorageOSPersistentVolumeSource item){
            return withNewStorageosLike(getStorageos() != null ? getStorageos(): item);
    }

    
/**
 * This method has been deprecated, please use method buildVsphereVolume instead.
 */
@Deprecated public VsphereVirtualDiskVolumeSource getVsphereVolume(){
            return this.vsphereVolume!=null?this.vsphereVolume.build():null;
    }

    public VsphereVirtualDiskVolumeSource buildVsphereVolume(){
            return this.vsphereVolume!=null?this.vsphereVolume.build():null;
    }

    public A withVsphereVolume(VsphereVirtualDiskVolumeSource vsphereVolume){
            _visitables.remove(this.vsphereVolume);
            if (vsphereVolume!=null){ this.vsphereVolume= new VsphereVirtualDiskVolumeSourceBuilder(vsphereVolume); _visitables.add(this.vsphereVolume);} return (A) this;
    }

    public Boolean hasVsphereVolume(){
            return this.vsphereVolume!=null;
    }

    public PersistentVolumeSpecFluent.VsphereVolumeNested withNewVsphereVolume(){
            return new VsphereVolumeNestedImpl();
    }

    public PersistentVolumeSpecFluent.VsphereVolumeNested withNewVsphereVolumeLike(VsphereVirtualDiskVolumeSource item){
            return new VsphereVolumeNestedImpl(item);
    }

    public PersistentVolumeSpecFluent.VsphereVolumeNested editVsphereVolume(){
            return withNewVsphereVolumeLike(getVsphereVolume());
    }

    public PersistentVolumeSpecFluent.VsphereVolumeNested editOrNewVsphereVolume(){
            return withNewVsphereVolumeLike(getVsphereVolume() != null ? getVsphereVolume(): new VsphereVirtualDiskVolumeSourceBuilder().build());
    }

    public PersistentVolumeSpecFluent.VsphereVolumeNested editOrNewVsphereVolumeLike(VsphereVirtualDiskVolumeSource item){
            return withNewVsphereVolumeLike(getVsphereVolume() != null ? getVsphereVolume(): item);
    }

    public A withNewVsphereVolume(String fsType,String storagePolicyID,String storagePolicyName,String volumePath){
            return (A)withVsphereVolume(new VsphereVirtualDiskVolumeSource(fsType, storagePolicyID, storagePolicyName, volumePath));
    }

    public boolean equals(Object o){
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;
            if (!super.equals(o)) return false;
            PersistentVolumeSpecFluentImpl that = (PersistentVolumeSpecFluentImpl) o;
            if (accessModes != null ? !accessModes.equals(that.accessModes) :that.accessModes != null) return false;
            if (awsElasticBlockStore != null ? !awsElasticBlockStore.equals(that.awsElasticBlockStore) :that.awsElasticBlockStore != null) return false;
            if (azureDisk != null ? !azureDisk.equals(that.azureDisk) :that.azureDisk != null) return false;
            if (azureFile != null ? !azureFile.equals(that.azureFile) :that.azureFile != null) return false;
            if (capacity != null ? !capacity.equals(that.capacity) :that.capacity != null) return false;
            if (cephfs != null ? !cephfs.equals(that.cephfs) :that.cephfs != null) return false;
            if (cinder != null ? !cinder.equals(that.cinder) :that.cinder != null) return false;
            if (claimRef != null ? !claimRef.equals(that.claimRef) :that.claimRef != null) return false;
            if (fc != null ? !fc.equals(that.fc) :that.fc != null) return false;
            if (flexVolume != null ? !flexVolume.equals(that.flexVolume) :that.flexVolume != null) return false;
            if (flocker != null ? !flocker.equals(that.flocker) :that.flocker != null) return false;
            if (gcePersistentDisk != null ? !gcePersistentDisk.equals(that.gcePersistentDisk) :that.gcePersistentDisk != null) return false;
            if (glusterfs != null ? !glusterfs.equals(that.glusterfs) :that.glusterfs != null) return false;
            if (hostPath != null ? !hostPath.equals(that.hostPath) :that.hostPath != null) return false;
            if (iscsi != null ? !iscsi.equals(that.iscsi) :that.iscsi != null) return false;
            if (local != null ? !local.equals(that.local) :that.local != null) return false;
            if (nfs != null ? !nfs.equals(that.nfs) :that.nfs != null) return false;
            if (persistentVolumeReclaimPolicy != null ? !persistentVolumeReclaimPolicy.equals(that.persistentVolumeReclaimPolicy) :that.persistentVolumeReclaimPolicy != null) return false;
            if (photonPersistentDisk != null ? !photonPersistentDisk.equals(that.photonPersistentDisk) :that.photonPersistentDisk != null) return false;
            if (portworxVolume != null ? !portworxVolume.equals(that.portworxVolume) :that.portworxVolume != null) return false;
            if (quobyte != null ? !quobyte.equals(that.quobyte) :that.quobyte != null) return false;
            if (rbd != null ? !rbd.equals(that.rbd) :that.rbd != null) return false;
            if (scaleIO != null ? !scaleIO.equals(that.scaleIO) :that.scaleIO != null) return false;
            if (storageClassName != null ? !storageClassName.equals(that.storageClassName) :that.storageClassName != null) return false;
            if (storageos != null ? !storageos.equals(that.storageos) :that.storageos != null) return false;
            if (vsphereVolume != null ? !vsphereVolume.equals(that.vsphereVolume) :that.vsphereVolume != null) return false;
            return true;
    }


    public class AwsElasticBlockStoreNestedImpl extends AWSElasticBlockStoreVolumeSourceFluentImpl> implements PersistentVolumeSpecFluent.AwsElasticBlockStoreNested,io.alauda.kubernetes.api.builder.Nested{

            private final AWSElasticBlockStoreVolumeSourceBuilder builder;
    
            AwsElasticBlockStoreNestedImpl(AWSElasticBlockStoreVolumeSource item){
                    this.builder = new AWSElasticBlockStoreVolumeSourceBuilder(this, item);
            }
            AwsElasticBlockStoreNestedImpl(){
                    this.builder = new AWSElasticBlockStoreVolumeSourceBuilder(this);
            }
    
    public N and(){
            return (N) PersistentVolumeSpecFluentImpl.this.withAwsElasticBlockStore(builder.build());
    }
    public N endAwsElasticBlockStore(){
            return and();
    }

}
    public class AzureDiskNestedImpl extends AzureDiskVolumeSourceFluentImpl> implements PersistentVolumeSpecFluent.AzureDiskNested,io.alauda.kubernetes.api.builder.Nested{

            private final AzureDiskVolumeSourceBuilder builder;
    
            AzureDiskNestedImpl(AzureDiskVolumeSource item){
                    this.builder = new AzureDiskVolumeSourceBuilder(this, item);
            }
            AzureDiskNestedImpl(){
                    this.builder = new AzureDiskVolumeSourceBuilder(this);
            }
    
    public N and(){
            return (N) PersistentVolumeSpecFluentImpl.this.withAzureDisk(builder.build());
    }
    public N endAzureDisk(){
            return and();
    }

}
    public class AzureFileNestedImpl extends AzureFileVolumeSourceFluentImpl> implements PersistentVolumeSpecFluent.AzureFileNested,io.alauda.kubernetes.api.builder.Nested{

            private final AzureFileVolumeSourceBuilder builder;
    
            AzureFileNestedImpl(AzureFileVolumeSource item){
                    this.builder = new AzureFileVolumeSourceBuilder(this, item);
            }
            AzureFileNestedImpl(){
                    this.builder = new AzureFileVolumeSourceBuilder(this);
            }
    
    public N and(){
            return (N) PersistentVolumeSpecFluentImpl.this.withAzureFile(builder.build());
    }
    public N endAzureFile(){
            return and();
    }

}
    public class CephfsNestedImpl extends CephFSVolumeSourceFluentImpl> implements PersistentVolumeSpecFluent.CephfsNested,io.alauda.kubernetes.api.builder.Nested{

            private final CephFSVolumeSourceBuilder builder;
    
            CephfsNestedImpl(CephFSVolumeSource item){
                    this.builder = new CephFSVolumeSourceBuilder(this, item);
            }
            CephfsNestedImpl(){
                    this.builder = new CephFSVolumeSourceBuilder(this);
            }
    
    public N and(){
            return (N) PersistentVolumeSpecFluentImpl.this.withCephfs(builder.build());
    }
    public N endCephfs(){
            return and();
    }

}
    public class CinderNestedImpl extends CinderVolumeSourceFluentImpl> implements PersistentVolumeSpecFluent.CinderNested,io.alauda.kubernetes.api.builder.Nested{

            private final CinderVolumeSourceBuilder builder;
    
            CinderNestedImpl(CinderVolumeSource item){
                    this.builder = new CinderVolumeSourceBuilder(this, item);
            }
            CinderNestedImpl(){
                    this.builder = new CinderVolumeSourceBuilder(this);
            }
    
    public N and(){
            return (N) PersistentVolumeSpecFluentImpl.this.withCinder(builder.build());
    }
    public N endCinder(){
            return and();
    }

}
    public class ClaimRefNestedImpl extends ObjectReferenceFluentImpl> implements PersistentVolumeSpecFluent.ClaimRefNested,io.alauda.kubernetes.api.builder.Nested{

            private final ObjectReferenceBuilder builder;
    
            ClaimRefNestedImpl(ObjectReference item){
                    this.builder = new ObjectReferenceBuilder(this, item);
            }
            ClaimRefNestedImpl(){
                    this.builder = new ObjectReferenceBuilder(this);
            }
    
    public N and(){
            return (N) PersistentVolumeSpecFluentImpl.this.withClaimRef(builder.build());
    }
    public N endClaimRef(){
            return and();
    }

}
    public class FcNestedImpl extends FCVolumeSourceFluentImpl> implements PersistentVolumeSpecFluent.FcNested,io.alauda.kubernetes.api.builder.Nested{

            private final FCVolumeSourceBuilder builder;
    
            FcNestedImpl(FCVolumeSource item){
                    this.builder = new FCVolumeSourceBuilder(this, item);
            }
            FcNestedImpl(){
                    this.builder = new FCVolumeSourceBuilder(this);
            }
    
    public N and(){
            return (N) PersistentVolumeSpecFluentImpl.this.withFc(builder.build());
    }
    public N endFc(){
            return and();
    }

}
    public class FlexVolumeNestedImpl extends FlexVolumeSourceFluentImpl> implements PersistentVolumeSpecFluent.FlexVolumeNested,io.alauda.kubernetes.api.builder.Nested{

            private final FlexVolumeSourceBuilder builder;
    
            FlexVolumeNestedImpl(FlexVolumeSource item){
                    this.builder = new FlexVolumeSourceBuilder(this, item);
            }
            FlexVolumeNestedImpl(){
                    this.builder = new FlexVolumeSourceBuilder(this);
            }
    
    public N and(){
            return (N) PersistentVolumeSpecFluentImpl.this.withFlexVolume(builder.build());
    }
    public N endFlexVolume(){
            return and();
    }

}
    public class FlockerNestedImpl extends FlockerVolumeSourceFluentImpl> implements PersistentVolumeSpecFluent.FlockerNested,io.alauda.kubernetes.api.builder.Nested{

            private final FlockerVolumeSourceBuilder builder;
    
            FlockerNestedImpl(FlockerVolumeSource item){
                    this.builder = new FlockerVolumeSourceBuilder(this, item);
            }
            FlockerNestedImpl(){
                    this.builder = new FlockerVolumeSourceBuilder(this);
            }
    
    public N and(){
            return (N) PersistentVolumeSpecFluentImpl.this.withFlocker(builder.build());
    }
    public N endFlocker(){
            return and();
    }

}
    public class GcePersistentDiskNestedImpl extends GCEPersistentDiskVolumeSourceFluentImpl> implements PersistentVolumeSpecFluent.GcePersistentDiskNested,io.alauda.kubernetes.api.builder.Nested{

            private final GCEPersistentDiskVolumeSourceBuilder builder;
    
            GcePersistentDiskNestedImpl(GCEPersistentDiskVolumeSource item){
                    this.builder = new GCEPersistentDiskVolumeSourceBuilder(this, item);
            }
            GcePersistentDiskNestedImpl(){
                    this.builder = new GCEPersistentDiskVolumeSourceBuilder(this);
            }
    
    public N and(){
            return (N) PersistentVolumeSpecFluentImpl.this.withGcePersistentDisk(builder.build());
    }
    public N endGcePersistentDisk(){
            return and();
    }

}
    public class GlusterfsNestedImpl extends GlusterfsVolumeSourceFluentImpl> implements PersistentVolumeSpecFluent.GlusterfsNested,io.alauda.kubernetes.api.builder.Nested{

            private final GlusterfsVolumeSourceBuilder builder;
    
            GlusterfsNestedImpl(GlusterfsVolumeSource item){
                    this.builder = new GlusterfsVolumeSourceBuilder(this, item);
            }
            GlusterfsNestedImpl(){
                    this.builder = new GlusterfsVolumeSourceBuilder(this);
            }
    
    public N and(){
            return (N) PersistentVolumeSpecFluentImpl.this.withGlusterfs(builder.build());
    }
    public N endGlusterfs(){
            return and();
    }

}
    public class HostPathNestedImpl extends HostPathVolumeSourceFluentImpl> implements PersistentVolumeSpecFluent.HostPathNested,io.alauda.kubernetes.api.builder.Nested{

            private final HostPathVolumeSourceBuilder builder;
    
            HostPathNestedImpl(HostPathVolumeSource item){
                    this.builder = new HostPathVolumeSourceBuilder(this, item);
            }
            HostPathNestedImpl(){
                    this.builder = new HostPathVolumeSourceBuilder(this);
            }
    
    public N and(){
            return (N) PersistentVolumeSpecFluentImpl.this.withHostPath(builder.build());
    }
    public N endHostPath(){
            return and();
    }

}
    public class IscsiNestedImpl extends ISCSIVolumeSourceFluentImpl> implements PersistentVolumeSpecFluent.IscsiNested,io.alauda.kubernetes.api.builder.Nested{

            private final ISCSIVolumeSourceBuilder builder;
    
            IscsiNestedImpl(ISCSIVolumeSource item){
                    this.builder = new ISCSIVolumeSourceBuilder(this, item);
            }
            IscsiNestedImpl(){
                    this.builder = new ISCSIVolumeSourceBuilder(this);
            }
    
    public N and(){
            return (N) PersistentVolumeSpecFluentImpl.this.withIscsi(builder.build());
    }
    public N endIscsi(){
            return and();
    }

}
    public class LocalNestedImpl extends LocalVolumeSourceFluentImpl> implements PersistentVolumeSpecFluent.LocalNested,io.alauda.kubernetes.api.builder.Nested{

            private final LocalVolumeSourceBuilder builder;
    
            LocalNestedImpl(LocalVolumeSource item){
                    this.builder = new LocalVolumeSourceBuilder(this, item);
            }
            LocalNestedImpl(){
                    this.builder = new LocalVolumeSourceBuilder(this);
            }
    
    public N and(){
            return (N) PersistentVolumeSpecFluentImpl.this.withLocal(builder.build());
    }
    public N endLocal(){
            return and();
    }

}
    public class NfsNestedImpl extends NFSVolumeSourceFluentImpl> implements PersistentVolumeSpecFluent.NfsNested,io.alauda.kubernetes.api.builder.Nested{

            private final NFSVolumeSourceBuilder builder;
    
            NfsNestedImpl(NFSVolumeSource item){
                    this.builder = new NFSVolumeSourceBuilder(this, item);
            }
            NfsNestedImpl(){
                    this.builder = new NFSVolumeSourceBuilder(this);
            }
    
    public N and(){
            return (N) PersistentVolumeSpecFluentImpl.this.withNfs(builder.build());
    }
    public N endNfs(){
            return and();
    }

}
    public class PhotonPersistentDiskNestedImpl extends PhotonPersistentDiskVolumeSourceFluentImpl> implements PersistentVolumeSpecFluent.PhotonPersistentDiskNested,io.alauda.kubernetes.api.builder.Nested{

            private final PhotonPersistentDiskVolumeSourceBuilder builder;
    
            PhotonPersistentDiskNestedImpl(PhotonPersistentDiskVolumeSource item){
                    this.builder = new PhotonPersistentDiskVolumeSourceBuilder(this, item);
            }
            PhotonPersistentDiskNestedImpl(){
                    this.builder = new PhotonPersistentDiskVolumeSourceBuilder(this);
            }
    
    public N and(){
            return (N) PersistentVolumeSpecFluentImpl.this.withPhotonPersistentDisk(builder.build());
    }
    public N endPhotonPersistentDisk(){
            return and();
    }

}
    public class PortworxVolumeNestedImpl extends PortworxVolumeSourceFluentImpl> implements PersistentVolumeSpecFluent.PortworxVolumeNested,io.alauda.kubernetes.api.builder.Nested{

            private final PortworxVolumeSourceBuilder builder;
    
            PortworxVolumeNestedImpl(PortworxVolumeSource item){
                    this.builder = new PortworxVolumeSourceBuilder(this, item);
            }
            PortworxVolumeNestedImpl(){
                    this.builder = new PortworxVolumeSourceBuilder(this);
            }
    
    public N and(){
            return (N) PersistentVolumeSpecFluentImpl.this.withPortworxVolume(builder.build());
    }
    public N endPortworxVolume(){
            return and();
    }

}
    public class QuobyteNestedImpl extends QuobyteVolumeSourceFluentImpl> implements PersistentVolumeSpecFluent.QuobyteNested,io.alauda.kubernetes.api.builder.Nested{

            private final QuobyteVolumeSourceBuilder builder;
    
            QuobyteNestedImpl(QuobyteVolumeSource item){
                    this.builder = new QuobyteVolumeSourceBuilder(this, item);
            }
            QuobyteNestedImpl(){
                    this.builder = new QuobyteVolumeSourceBuilder(this);
            }
    
    public N and(){
            return (N) PersistentVolumeSpecFluentImpl.this.withQuobyte(builder.build());
    }
    public N endQuobyte(){
            return and();
    }

}
    public class RbdNestedImpl extends RBDVolumeSourceFluentImpl> implements PersistentVolumeSpecFluent.RbdNested,io.alauda.kubernetes.api.builder.Nested{

            private final RBDVolumeSourceBuilder builder;
    
            RbdNestedImpl(RBDVolumeSource item){
                    this.builder = new RBDVolumeSourceBuilder(this, item);
            }
            RbdNestedImpl(){
                    this.builder = new RBDVolumeSourceBuilder(this);
            }
    
    public N and(){
            return (N) PersistentVolumeSpecFluentImpl.this.withRbd(builder.build());
    }
    public N endRbd(){
            return and();
    }

}
    public class ScaleIONestedImpl extends ScaleIOVolumeSourceFluentImpl> implements PersistentVolumeSpecFluent.ScaleIONested,io.alauda.kubernetes.api.builder.Nested{

            private final ScaleIOVolumeSourceBuilder builder;
    
            ScaleIONestedImpl(ScaleIOVolumeSource item){
                    this.builder = new ScaleIOVolumeSourceBuilder(this, item);
            }
            ScaleIONestedImpl(){
                    this.builder = new ScaleIOVolumeSourceBuilder(this);
            }
    
    public N and(){
            return (N) PersistentVolumeSpecFluentImpl.this.withScaleIO(builder.build());
    }
    public N endScaleIO(){
            return and();
    }

}
    public class StorageosNestedImpl extends StorageOSPersistentVolumeSourceFluentImpl> implements PersistentVolumeSpecFluent.StorageosNested,io.alauda.kubernetes.api.builder.Nested{

            private final StorageOSPersistentVolumeSourceBuilder builder;
    
            StorageosNestedImpl(StorageOSPersistentVolumeSource item){
                    this.builder = new StorageOSPersistentVolumeSourceBuilder(this, item);
            }
            StorageosNestedImpl(){
                    this.builder = new StorageOSPersistentVolumeSourceBuilder(this);
            }
    
    public N and(){
            return (N) PersistentVolumeSpecFluentImpl.this.withStorageos(builder.build());
    }
    public N endStorageos(){
            return and();
    }

}
    public class VsphereVolumeNestedImpl extends VsphereVirtualDiskVolumeSourceFluentImpl> implements PersistentVolumeSpecFluent.VsphereVolumeNested,io.alauda.kubernetes.api.builder.Nested{

            private final VsphereVirtualDiskVolumeSourceBuilder builder;
    
            VsphereVolumeNestedImpl(VsphereVirtualDiskVolumeSource item){
                    this.builder = new VsphereVirtualDiskVolumeSourceBuilder(this, item);
            }
            VsphereVolumeNestedImpl(){
                    this.builder = new VsphereVirtualDiskVolumeSourceBuilder(this);
            }
    
    public N and(){
            return (N) PersistentVolumeSpecFluentImpl.this.withVsphereVolume(builder.build());
    }
    public N endVsphereVolume(){
            return and();
    }

}


}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy