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

io.kubernetes.client.models.V1beta1JSONSchemaPropsFluentImpl Maven / Gradle / Ivy

package io.kubernetes.client.models;

import com.google.gson.annotations.SerializedName;
import io.kubernetes.client.fluent.Nested;
import java.util.ArrayList;
import java.lang.String;
import io.kubernetes.client.fluent.Predicate;
import java.util.LinkedHashMap;
import java.lang.Deprecated;
import io.kubernetes.client.fluent.BaseFluent;
import java.util.List;
import java.lang.Boolean;
import java.lang.Double;
import java.lang.Long;
import java.util.Collection;
import java.lang.Object;
import java.util.Map;

public class V1beta1JSONSchemaPropsFluentImpl> extends io.kubernetes.client.fluent.BaseFluent implements V1beta1JSONSchemaPropsFluent{

    private String ref;
    private String schema;
    private Object additionalItems;
    private Object additionalProperties;
    private List allOf;
    private List anyOf;
    private Object _default;
    private Map definitions;
    private Map dependencies;
    private String description;
    private List _enum;
    private Object example;
    private Boolean exclusiveMaximum;
    private Boolean exclusiveMinimum;
    private V1beta1ExternalDocumentationBuilder externalDocs;
    private String format;
    private String id;
    private Object items;
    private Long maxItems;
    private Long maxLength;
    private Long maxProperties;
    private Double maximum;
    private Long minItems;
    private Long minLength;
    private Long minProperties;
    private Double minimum;
    private Double multipleOf;
    private V1beta1JSONSchemaPropsBuilder not;
    private List oneOf;
    private String pattern;
    private Map patternProperties;
    private Map properties;
    private List required;
    private String title;
    private String type;
    private Boolean uniqueItems;

    public V1beta1JSONSchemaPropsFluentImpl(){
    }
    public V1beta1JSONSchemaPropsFluentImpl(V1beta1JSONSchemaProps instance){
            this.withRef(instance.getRef());

            this.withSchema(instance.getSchema());

            this.withAdditionalItems(instance.getAdditionalItems());

            this.withAdditionalProperties(instance.getAdditionalProperties());

            this.withAllOf(instance.getAllOf());

            this.withAnyOf(instance.getAnyOf());

            this.withDefault(instance.getDefault());

            this.withDefinitions(instance.getDefinitions());

            this.withDependencies(instance.getDependencies());

            this.withDescription(instance.getDescription());

            this.withEnum(instance.getEnum());

            this.withExample(instance.getExample());

            this.withExclusiveMaximum(instance.isExclusiveMaximum());

            this.withExclusiveMinimum(instance.isExclusiveMinimum());

            this.withExternalDocs(instance.getExternalDocs());

            this.withFormat(instance.getFormat());

            this.withId(instance.getId());

            this.withItems(instance.getItems());

            this.withMaxItems(instance.getMaxItems());

            this.withMaxLength(instance.getMaxLength());

            this.withMaxProperties(instance.getMaxProperties());

            this.withMaximum(instance.getMaximum());

            this.withMinItems(instance.getMinItems());

            this.withMinLength(instance.getMinLength());

            this.withMinProperties(instance.getMinProperties());

            this.withMinimum(instance.getMinimum());

            this.withMultipleOf(instance.getMultipleOf());

            this.withNot(instance.getNot());

            this.withOneOf(instance.getOneOf());

            this.withPattern(instance.getPattern());

            this.withPatternProperties(instance.getPatternProperties());

            this.withProperties(instance.getProperties());

            this.withRequired(instance.getRequired());

            this.withTitle(instance.getTitle());

            this.withType(instance.getType());

            this.withUniqueItems(instance.isUniqueItems());

    }

    public String getRef(){
            return this.ref;
    }

    public A withRef(String ref){
            this.ref=ref; return (A) this;
    }

    public Boolean hasRef(){
            return this.ref != null;
    }

    public String getSchema(){
            return this.schema;
    }

    public A withSchema(String schema){
            this.schema=schema; return (A) this;
    }

    public Boolean hasSchema(){
            return this.schema != null;
    }

    public Object getAdditionalItems(){
            return this.additionalItems;
    }

    public A withAdditionalItems(Object additionalItems){
            this.additionalItems=additionalItems; return (A) this;
    }

    public Boolean hasAdditionalItems(){
            return this.additionalItems != null;
    }

    public Object getAdditionalProperties(){
            return this.additionalProperties;
    }

    public A withAdditionalProperties(Object additionalProperties){
            this.additionalProperties=additionalProperties; return (A) this;
    }

    public Boolean hasAdditionalProperties(){
            return this.additionalProperties != null;
    }

    public A addToAllOf(int index,V1beta1JSONSchemaProps item){
            if (this.allOf == null) {this.allOf = new ArrayList();}
            V1beta1JSONSchemaPropsBuilder builder = new V1beta1JSONSchemaPropsBuilder(item);_visitables.add(index >= 0 ? index : _visitables.size(), builder);this.allOf.add(index >= 0 ? index : allOf.size(), builder); return (A)this;
    }

    public A setToAllOf(int index,V1beta1JSONSchemaProps item){
            if (this.allOf == null) {this.allOf = new ArrayList();}
            V1beta1JSONSchemaPropsBuilder builder = new V1beta1JSONSchemaPropsBuilder(item);
            if (index < 0 || index >= _visitables.size()) { _visitables.add(builder); } else { _visitables.set(index, builder);}
            if (index < 0 || index >= allOf.size()) { allOf.add(builder); } else { allOf.set(index, builder);}
             return (A)this;
    }

    public A addToAllOf(V1beta1JSONSchemaProps... items){
            if (this.allOf == null) {this.allOf = new ArrayList();}
            for (V1beta1JSONSchemaProps item : items) {V1beta1JSONSchemaPropsBuilder builder = new V1beta1JSONSchemaPropsBuilder(item);_visitables.add(builder);this.allOf.add(builder);} return (A)this;
    }

    public A addAllToAllOf(Collection items){
            if (this.allOf == null) {this.allOf = new ArrayList();}
            for (V1beta1JSONSchemaProps item : items) {V1beta1JSONSchemaPropsBuilder builder = new V1beta1JSONSchemaPropsBuilder(item);_visitables.add(builder);this.allOf.add(builder);} return (A)this;
    }

    public A removeFromAllOf(V1beta1JSONSchemaProps... items){
            for (V1beta1JSONSchemaProps item : items) {V1beta1JSONSchemaPropsBuilder builder = new V1beta1JSONSchemaPropsBuilder(item);_visitables.remove(builder);if (this.allOf != null) {this.allOf.remove(builder);}} return (A)this;
    }

    public A removeAllFromAllOf(Collection items){
            for (V1beta1JSONSchemaProps item : items) {V1beta1JSONSchemaPropsBuilder builder = new V1beta1JSONSchemaPropsBuilder(item);_visitables.remove(builder);if (this.allOf != null) {this.allOf.remove(builder);}} return (A)this;
    }

    
/**
 * This method has been deprecated, please use method buildAllOf instead.
 */
@Deprecated public List getAllOf(){
            return build(allOf);
    }

    public List buildAllOf(){
            return build(allOf);
    }

    public V1beta1JSONSchemaProps buildAllOf(int index){
            return this.allOf.get(index).build();
    }

    public V1beta1JSONSchemaProps buildFirstAllOf(){
            return this.allOf.get(0).build();
    }

    public V1beta1JSONSchemaProps buildLastAllOf(){
            return this.allOf.get(allOf.size() - 1).build();
    }

    public V1beta1JSONSchemaProps buildMatchingAllOf(io.kubernetes.client.fluent.Predicate predicate){
            for (V1beta1JSONSchemaPropsBuilder item: allOf) { if(predicate.apply(item)){return item.build();} } return null;
    }

    public A withAllOf(List allOf){
            if (this.allOf != null) { _visitables.removeAll(this.allOf);}
            if (allOf != null) {this.allOf = new ArrayList(); for (V1beta1JSONSchemaProps item : allOf){this.addToAllOf(item);}} else { this.allOf = null;} return (A) this;
    }

    public A withAllOf(V1beta1JSONSchemaProps... allOf){
            this.allOf.clear(); if (allOf != null) {for (V1beta1JSONSchemaProps item :allOf){ this.addToAllOf(item);}} return (A) this;
    }

    public Boolean hasAllOf(){
            return allOf != null && !allOf.isEmpty();
    }

    public V1beta1JSONSchemaPropsFluent.AllOfNested addNewAllOf(){
            return new AllOfNestedImpl();
    }

    public V1beta1JSONSchemaPropsFluent.AllOfNested addNewAllOfLike(V1beta1JSONSchemaProps item){
            return new AllOfNestedImpl(-1, item);
    }

    public V1beta1JSONSchemaPropsFluent.AllOfNested setNewAllOfLike(int index,V1beta1JSONSchemaProps item){
            return new AllOfNestedImpl(index, item);
    }

    public V1beta1JSONSchemaPropsFluent.AllOfNested editAllOf(int index){
            if (allOf.size() <= index) throw new RuntimeException("Can't edit allOf. Index exceeds size.");
            return setNewAllOfLike(index, buildAllOf(index));
    }

    public V1beta1JSONSchemaPropsFluent.AllOfNested editFirstAllOf(){
            if (allOf.size() == 0) throw new RuntimeException("Can't edit first allOf. The list is empty.");
            return setNewAllOfLike(0, buildAllOf(0));
    }

    public V1beta1JSONSchemaPropsFluent.AllOfNested editLastAllOf(){
            int index = allOf.size() - 1;
            if (index < 0) throw new RuntimeException("Can't edit last allOf. The list is empty.");
            return setNewAllOfLike(index, buildAllOf(index));
    }

    public V1beta1JSONSchemaPropsFluent.AllOfNested editMatchingAllOf(io.kubernetes.client.fluent.Predicate predicate){
            int index = -1;
            for (int i=0;i();}
            V1beta1JSONSchemaPropsBuilder builder = new V1beta1JSONSchemaPropsBuilder(item);_visitables.add(index >= 0 ? index : _visitables.size(), builder);this.anyOf.add(index >= 0 ? index : anyOf.size(), builder); return (A)this;
    }

    public A setToAnyOf(int index,V1beta1JSONSchemaProps item){
            if (this.anyOf == null) {this.anyOf = new ArrayList();}
            V1beta1JSONSchemaPropsBuilder builder = new V1beta1JSONSchemaPropsBuilder(item);
            if (index < 0 || index >= _visitables.size()) { _visitables.add(builder); } else { _visitables.set(index, builder);}
            if (index < 0 || index >= anyOf.size()) { anyOf.add(builder); } else { anyOf.set(index, builder);}
             return (A)this;
    }

    public A addToAnyOf(V1beta1JSONSchemaProps... items){
            if (this.anyOf == null) {this.anyOf = new ArrayList();}
            for (V1beta1JSONSchemaProps item : items) {V1beta1JSONSchemaPropsBuilder builder = new V1beta1JSONSchemaPropsBuilder(item);_visitables.add(builder);this.anyOf.add(builder);} return (A)this;
    }

    public A addAllToAnyOf(Collection items){
            if (this.anyOf == null) {this.anyOf = new ArrayList();}
            for (V1beta1JSONSchemaProps item : items) {V1beta1JSONSchemaPropsBuilder builder = new V1beta1JSONSchemaPropsBuilder(item);_visitables.add(builder);this.anyOf.add(builder);} return (A)this;
    }

    public A removeFromAnyOf(V1beta1JSONSchemaProps... items){
            for (V1beta1JSONSchemaProps item : items) {V1beta1JSONSchemaPropsBuilder builder = new V1beta1JSONSchemaPropsBuilder(item);_visitables.remove(builder);if (this.anyOf != null) {this.anyOf.remove(builder);}} return (A)this;
    }

    public A removeAllFromAnyOf(Collection items){
            for (V1beta1JSONSchemaProps item : items) {V1beta1JSONSchemaPropsBuilder builder = new V1beta1JSONSchemaPropsBuilder(item);_visitables.remove(builder);if (this.anyOf != null) {this.anyOf.remove(builder);}} return (A)this;
    }

    
/**
 * This method has been deprecated, please use method buildAnyOf instead.
 */
@Deprecated public List getAnyOf(){
            return build(anyOf);
    }

    public List buildAnyOf(){
            return build(anyOf);
    }

    public V1beta1JSONSchemaProps buildAnyOf(int index){
            return this.anyOf.get(index).build();
    }

    public V1beta1JSONSchemaProps buildFirstAnyOf(){
            return this.anyOf.get(0).build();
    }

    public V1beta1JSONSchemaProps buildLastAnyOf(){
            return this.anyOf.get(anyOf.size() - 1).build();
    }

    public V1beta1JSONSchemaProps buildMatchingAnyOf(io.kubernetes.client.fluent.Predicate predicate){
            for (V1beta1JSONSchemaPropsBuilder item: anyOf) { if(predicate.apply(item)){return item.build();} } return null;
    }

    public A withAnyOf(List anyOf){
            if (this.anyOf != null) { _visitables.removeAll(this.anyOf);}
            if (anyOf != null) {this.anyOf = new ArrayList(); for (V1beta1JSONSchemaProps item : anyOf){this.addToAnyOf(item);}} else { this.anyOf = null;} return (A) this;
    }

    public A withAnyOf(V1beta1JSONSchemaProps... anyOf){
            this.anyOf.clear(); if (anyOf != null) {for (V1beta1JSONSchemaProps item :anyOf){ this.addToAnyOf(item);}} return (A) this;
    }

    public Boolean hasAnyOf(){
            return anyOf != null && !anyOf.isEmpty();
    }

    public V1beta1JSONSchemaPropsFluent.AnyOfNested addNewAnyOf(){
            return new AnyOfNestedImpl();
    }

    public V1beta1JSONSchemaPropsFluent.AnyOfNested addNewAnyOfLike(V1beta1JSONSchemaProps item){
            return new AnyOfNestedImpl(-1, item);
    }

    public V1beta1JSONSchemaPropsFluent.AnyOfNested setNewAnyOfLike(int index,V1beta1JSONSchemaProps item){
            return new AnyOfNestedImpl(index, item);
    }

    public V1beta1JSONSchemaPropsFluent.AnyOfNested editAnyOf(int index){
            if (anyOf.size() <= index) throw new RuntimeException("Can't edit anyOf. Index exceeds size.");
            return setNewAnyOfLike(index, buildAnyOf(index));
    }

    public V1beta1JSONSchemaPropsFluent.AnyOfNested editFirstAnyOf(){
            if (anyOf.size() == 0) throw new RuntimeException("Can't edit first anyOf. The list is empty.");
            return setNewAnyOfLike(0, buildAnyOf(0));
    }

    public V1beta1JSONSchemaPropsFluent.AnyOfNested editLastAnyOf(){
            int index = anyOf.size() - 1;
            if (index < 0) throw new RuntimeException("Can't edit last anyOf. The list is empty.");
            return setNewAnyOfLike(index, buildAnyOf(index));
    }

    public V1beta1JSONSchemaPropsFluent.AnyOfNested editMatchingAnyOf(io.kubernetes.client.fluent.Predicate predicate){
            int index = -1;
            for (int i=0;i(); }
            if(key != null && value != null) {this.definitions.put(key, value);} return (A)this;
    }

    public A addToDefinitions(Map map){
            if(this.definitions == null && map != null) { this.definitions = new LinkedHashMap(); }
            if(map != null) { this.definitions.putAll(map);} return (A)this;
    }

    public A removeFromDefinitions(String key){
            if(this.definitions == null) { return (A) this; }
            if(key != null && this.definitions != null) {this.definitions.remove(key);} return (A)this;
    }

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

    public Map getDefinitions(){
            return this.definitions;
    }

    public A withDefinitions(Map definitions){
            if (definitions == null) { this.definitions =  null;} else {this.definitions = new LinkedHashMap(definitions);} return (A) this;
    }

    public Boolean hasDefinitions(){
            return this.definitions != null;
    }

    public A addToDependencies(String key,Object value){
            if(this.dependencies == null && key != null && value != null) { this.dependencies = new LinkedHashMap(); }
            if(key != null && value != null) {this.dependencies.put(key, value);} return (A)this;
    }

    public A addToDependencies(Map map){
            if(this.dependencies == null && map != null) { this.dependencies = new LinkedHashMap(); }
            if(map != null) { this.dependencies.putAll(map);} return (A)this;
    }

    public A removeFromDependencies(String key){
            if(this.dependencies == null) { return (A) this; }
            if(key != null && this.dependencies != null) {this.dependencies.remove(key);} return (A)this;
    }

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

    public Map getDependencies(){
            return this.dependencies;
    }

    public A withDependencies(Map dependencies){
            if (dependencies == null) { this.dependencies =  null;} else {this.dependencies = new LinkedHashMap(dependencies);} return (A) this;
    }

    public Boolean hasDependencies(){
            return this.dependencies != null;
    }

    public String getDescription(){
            return this.description;
    }

    public A withDescription(String description){
            this.description=description; return (A) this;
    }

    public Boolean hasDescription(){
            return this.description != null;
    }

    public A addToEnum(int index,Object item){
            if (this._enum == null) {this._enum = new ArrayList();}
            this._enum.add(index, item);
            return (A)this;
    }

    public A setToEnum(int index,Object item){
            this._enum.set(index, item); return (A)this;
    }

    public A addToEnum(Object... items){
            for (Object item : items) {this._enum.add(item);} return (A)this;
    }

    public A addAllToEnum(Collection items){
            for (Object item : items) {this._enum.add(item);} return (A)this;
    }

    public A removeFromEnum(Object... items){
            for (Object item : items) {if (this._enum!= null){ this._enum.remove(item);}} return (A)this;
    }

    public A removeAllFromEnum(Collection items){
            for (Object item : items) {if (this._enum!= null){ this._enum.remove(item);}} return (A)this;
    }

    public List getEnum(){
            return this._enum;
    }

    public Object getEnum(int index){
            return this._enum.get(index);
    }

    public Object getFirstEnum(){
            return this._enum.get(0);
    }

    public Object getLastEnum(){
            return this._enum.get(_enum.size() - 1);
    }

    public Object getMatchingEnum(io.kubernetes.client.fluent.Predicate predicate){
            for (Object item: _enum) { if(predicate.apply(item)){return item;} } return null;
    }

    public A withEnum(List _enum){
            if (this._enum != null) { _visitables.removeAll(this._enum);}
            if (_enum != null) {this._enum = new ArrayList(); for (Object item : _enum){this.addToEnum(item);}} else { this._enum = null;} return (A) this;
    }

    public A withEnum(Object... _enum){
            this._enum.clear(); if (_enum != null) {for (Object item :_enum){ this.addToEnum(item);}} return (A) this;
    }

    public Boolean hasEnum(){
            return _enum != null && !_enum.isEmpty();
    }

    public Object getExample(){
            return this.example;
    }

    public A withExample(Object example){
            this.example=example; return (A) this;
    }

    public Boolean hasExample(){
            return this.example != null;
    }

    public Boolean isExclusiveMaximum(){
            return this.exclusiveMaximum;
    }

    public A withExclusiveMaximum(Boolean exclusiveMaximum){
            this.exclusiveMaximum=exclusiveMaximum; return (A) this;
    }

    public Boolean hasExclusiveMaximum(){
            return this.exclusiveMaximum != null;
    }

    public A withNewExclusiveMaximum(boolean arg1){
            return (A)withExclusiveMaximum(new Boolean(arg1));
    }

    public A withNewExclusiveMaximum(String arg1){
            return (A)withExclusiveMaximum(new Boolean(arg1));
    }

    public Boolean isExclusiveMinimum(){
            return this.exclusiveMinimum;
    }

    public A withExclusiveMinimum(Boolean exclusiveMinimum){
            this.exclusiveMinimum=exclusiveMinimum; return (A) this;
    }

    public Boolean hasExclusiveMinimum(){
            return this.exclusiveMinimum != null;
    }

    public A withNewExclusiveMinimum(boolean arg1){
            return (A)withExclusiveMinimum(new Boolean(arg1));
    }

    public A withNewExclusiveMinimum(String arg1){
            return (A)withExclusiveMinimum(new Boolean(arg1));
    }

    
/**
 * This method has been deprecated, please use method buildExternalDocs instead.
 */
@Deprecated public V1beta1ExternalDocumentation getExternalDocs(){
            return this.externalDocs!=null?this.externalDocs.build():null;
    }

    public V1beta1ExternalDocumentation buildExternalDocs(){
            return this.externalDocs!=null?this.externalDocs.build():null;
    }

    public A withExternalDocs(V1beta1ExternalDocumentation externalDocs){
            _visitables.remove(this.externalDocs);
            if (externalDocs!=null){ this.externalDocs= new V1beta1ExternalDocumentationBuilder(externalDocs); _visitables.add(this.externalDocs);} return (A) this;
    }

    public Boolean hasExternalDocs(){
            return this.externalDocs != null;
    }

    public V1beta1JSONSchemaPropsFluent.ExternalDocsNested withNewExternalDocs(){
            return new ExternalDocsNestedImpl();
    }

    public V1beta1JSONSchemaPropsFluent.ExternalDocsNested withNewExternalDocsLike(V1beta1ExternalDocumentation item){
            return new ExternalDocsNestedImpl(item);
    }

    public V1beta1JSONSchemaPropsFluent.ExternalDocsNested editExternalDocs(){
            return withNewExternalDocsLike(getExternalDocs());
    }

    public V1beta1JSONSchemaPropsFluent.ExternalDocsNested editOrNewExternalDocs(){
            return withNewExternalDocsLike(getExternalDocs() != null ? getExternalDocs(): new V1beta1ExternalDocumentationBuilder().build());
    }

    public V1beta1JSONSchemaPropsFluent.ExternalDocsNested editOrNewExternalDocsLike(V1beta1ExternalDocumentation item){
            return withNewExternalDocsLike(getExternalDocs() != null ? getExternalDocs(): item);
    }

    public String getFormat(){
            return this.format;
    }

    public A withFormat(String format){
            this.format=format; return (A) this;
    }

    public Boolean hasFormat(){
            return this.format != null;
    }

    public String getId(){
            return this.id;
    }

    public A withId(String id){
            this.id=id; return (A) this;
    }

    public Boolean hasId(){
            return this.id != null;
    }

    public Object getItems(){
            return this.items;
    }

    public A withItems(Object items){
            this.items=items; return (A) this;
    }

    public Boolean hasItems(){
            return this.items != null;
    }

    public Long getMaxItems(){
            return this.maxItems;
    }

    public A withMaxItems(Long maxItems){
            this.maxItems=maxItems; return (A) this;
    }

    public Boolean hasMaxItems(){
            return this.maxItems != null;
    }

    public A withNewMaxItems(String arg1){
            return (A)withMaxItems(new Long(arg1));
    }

    public A withNewMaxItems(long arg1){
            return (A)withMaxItems(new Long(arg1));
    }

    public Long getMaxLength(){
            return this.maxLength;
    }

    public A withMaxLength(Long maxLength){
            this.maxLength=maxLength; return (A) this;
    }

    public Boolean hasMaxLength(){
            return this.maxLength != null;
    }

    public A withNewMaxLength(String arg1){
            return (A)withMaxLength(new Long(arg1));
    }

    public A withNewMaxLength(long arg1){
            return (A)withMaxLength(new Long(arg1));
    }

    public Long getMaxProperties(){
            return this.maxProperties;
    }

    public A withMaxProperties(Long maxProperties){
            this.maxProperties=maxProperties; return (A) this;
    }

    public Boolean hasMaxProperties(){
            return this.maxProperties != null;
    }

    public A withNewMaxProperties(String arg1){
            return (A)withMaxProperties(new Long(arg1));
    }

    public A withNewMaxProperties(long arg1){
            return (A)withMaxProperties(new Long(arg1));
    }

    public Double getMaximum(){
            return this.maximum;
    }

    public A withMaximum(Double maximum){
            this.maximum=maximum; return (A) this;
    }

    public Boolean hasMaximum(){
            return this.maximum != null;
    }

    public A withNewMaximum(double arg1){
            return (A)withMaximum(new Double(arg1));
    }

    public A withNewMaximum(String arg1){
            return (A)withMaximum(new Double(arg1));
    }

    public Long getMinItems(){
            return this.minItems;
    }

    public A withMinItems(Long minItems){
            this.minItems=minItems; return (A) this;
    }

    public Boolean hasMinItems(){
            return this.minItems != null;
    }

    public A withNewMinItems(String arg1){
            return (A)withMinItems(new Long(arg1));
    }

    public A withNewMinItems(long arg1){
            return (A)withMinItems(new Long(arg1));
    }

    public Long getMinLength(){
            return this.minLength;
    }

    public A withMinLength(Long minLength){
            this.minLength=minLength; return (A) this;
    }

    public Boolean hasMinLength(){
            return this.minLength != null;
    }

    public A withNewMinLength(String arg1){
            return (A)withMinLength(new Long(arg1));
    }

    public A withNewMinLength(long arg1){
            return (A)withMinLength(new Long(arg1));
    }

    public Long getMinProperties(){
            return this.minProperties;
    }

    public A withMinProperties(Long minProperties){
            this.minProperties=minProperties; return (A) this;
    }

    public Boolean hasMinProperties(){
            return this.minProperties != null;
    }

    public A withNewMinProperties(String arg1){
            return (A)withMinProperties(new Long(arg1));
    }

    public A withNewMinProperties(long arg1){
            return (A)withMinProperties(new Long(arg1));
    }

    public Double getMinimum(){
            return this.minimum;
    }

    public A withMinimum(Double minimum){
            this.minimum=minimum; return (A) this;
    }

    public Boolean hasMinimum(){
            return this.minimum != null;
    }

    public A withNewMinimum(double arg1){
            return (A)withMinimum(new Double(arg1));
    }

    public A withNewMinimum(String arg1){
            return (A)withMinimum(new Double(arg1));
    }

    public Double getMultipleOf(){
            return this.multipleOf;
    }

    public A withMultipleOf(Double multipleOf){
            this.multipleOf=multipleOf; return (A) this;
    }

    public Boolean hasMultipleOf(){
            return this.multipleOf != null;
    }

    public A withNewMultipleOf(double arg1){
            return (A)withMultipleOf(new Double(arg1));
    }

    public A withNewMultipleOf(String arg1){
            return (A)withMultipleOf(new Double(arg1));
    }

    
/**
 * This method has been deprecated, please use method buildNot instead.
 */
@Deprecated public V1beta1JSONSchemaProps getNot(){
            return this.not!=null?this.not.build():null;
    }

    public V1beta1JSONSchemaProps buildNot(){
            return this.not!=null?this.not.build():null;
    }

    public A withNot(V1beta1JSONSchemaProps not){
            _visitables.remove(this.not);
            if (not!=null){ this.not= new V1beta1JSONSchemaPropsBuilder(not); _visitables.add(this.not);} return (A) this;
    }

    public Boolean hasNot(){
            return this.not != null;
    }

    public V1beta1JSONSchemaPropsFluent.NotNested withNewNot(){
            return new NotNestedImpl();
    }

    public V1beta1JSONSchemaPropsFluent.NotNested withNewNotLike(V1beta1JSONSchemaProps item){
            return new NotNestedImpl(item);
    }

    public V1beta1JSONSchemaPropsFluent.NotNested editNot(){
            return withNewNotLike(getNot());
    }

    public V1beta1JSONSchemaPropsFluent.NotNested editOrNewNot(){
            return withNewNotLike(getNot() != null ? getNot(): new V1beta1JSONSchemaPropsBuilder().build());
    }

    public V1beta1JSONSchemaPropsFluent.NotNested editOrNewNotLike(V1beta1JSONSchemaProps item){
            return withNewNotLike(getNot() != null ? getNot(): item);
    }

    public A addToOneOf(int index,V1beta1JSONSchemaProps item){
            if (this.oneOf == null) {this.oneOf = new ArrayList();}
            V1beta1JSONSchemaPropsBuilder builder = new V1beta1JSONSchemaPropsBuilder(item);_visitables.add(index >= 0 ? index : _visitables.size(), builder);this.oneOf.add(index >= 0 ? index : oneOf.size(), builder); return (A)this;
    }

    public A setToOneOf(int index,V1beta1JSONSchemaProps item){
            if (this.oneOf == null) {this.oneOf = new ArrayList();}
            V1beta1JSONSchemaPropsBuilder builder = new V1beta1JSONSchemaPropsBuilder(item);
            if (index < 0 || index >= _visitables.size()) { _visitables.add(builder); } else { _visitables.set(index, builder);}
            if (index < 0 || index >= oneOf.size()) { oneOf.add(builder); } else { oneOf.set(index, builder);}
             return (A)this;
    }

    public A addToOneOf(V1beta1JSONSchemaProps... items){
            if (this.oneOf == null) {this.oneOf = new ArrayList();}
            for (V1beta1JSONSchemaProps item : items) {V1beta1JSONSchemaPropsBuilder builder = new V1beta1JSONSchemaPropsBuilder(item);_visitables.add(builder);this.oneOf.add(builder);} return (A)this;
    }

    public A addAllToOneOf(Collection items){
            if (this.oneOf == null) {this.oneOf = new ArrayList();}
            for (V1beta1JSONSchemaProps item : items) {V1beta1JSONSchemaPropsBuilder builder = new V1beta1JSONSchemaPropsBuilder(item);_visitables.add(builder);this.oneOf.add(builder);} return (A)this;
    }

    public A removeFromOneOf(V1beta1JSONSchemaProps... items){
            for (V1beta1JSONSchemaProps item : items) {V1beta1JSONSchemaPropsBuilder builder = new V1beta1JSONSchemaPropsBuilder(item);_visitables.remove(builder);if (this.oneOf != null) {this.oneOf.remove(builder);}} return (A)this;
    }

    public A removeAllFromOneOf(Collection items){
            for (V1beta1JSONSchemaProps item : items) {V1beta1JSONSchemaPropsBuilder builder = new V1beta1JSONSchemaPropsBuilder(item);_visitables.remove(builder);if (this.oneOf != null) {this.oneOf.remove(builder);}} return (A)this;
    }

    
/**
 * This method has been deprecated, please use method buildOneOf instead.
 */
@Deprecated public List getOneOf(){
            return build(oneOf);
    }

    public List buildOneOf(){
            return build(oneOf);
    }

    public V1beta1JSONSchemaProps buildOneOf(int index){
            return this.oneOf.get(index).build();
    }

    public V1beta1JSONSchemaProps buildFirstOneOf(){
            return this.oneOf.get(0).build();
    }

    public V1beta1JSONSchemaProps buildLastOneOf(){
            return this.oneOf.get(oneOf.size() - 1).build();
    }

    public V1beta1JSONSchemaProps buildMatchingOneOf(io.kubernetes.client.fluent.Predicate predicate){
            for (V1beta1JSONSchemaPropsBuilder item: oneOf) { if(predicate.apply(item)){return item.build();} } return null;
    }

    public A withOneOf(List oneOf){
            if (this.oneOf != null) { _visitables.removeAll(this.oneOf);}
            if (oneOf != null) {this.oneOf = new ArrayList(); for (V1beta1JSONSchemaProps item : oneOf){this.addToOneOf(item);}} else { this.oneOf = null;} return (A) this;
    }

    public A withOneOf(V1beta1JSONSchemaProps... oneOf){
            this.oneOf.clear(); if (oneOf != null) {for (V1beta1JSONSchemaProps item :oneOf){ this.addToOneOf(item);}} return (A) this;
    }

    public Boolean hasOneOf(){
            return oneOf != null && !oneOf.isEmpty();
    }

    public V1beta1JSONSchemaPropsFluent.OneOfNested addNewOneOf(){
            return new OneOfNestedImpl();
    }

    public V1beta1JSONSchemaPropsFluent.OneOfNested addNewOneOfLike(V1beta1JSONSchemaProps item){
            return new OneOfNestedImpl(-1, item);
    }

    public V1beta1JSONSchemaPropsFluent.OneOfNested setNewOneOfLike(int index,V1beta1JSONSchemaProps item){
            return new OneOfNestedImpl(index, item);
    }

    public V1beta1JSONSchemaPropsFluent.OneOfNested editOneOf(int index){
            if (oneOf.size() <= index) throw new RuntimeException("Can't edit oneOf. Index exceeds size.");
            return setNewOneOfLike(index, buildOneOf(index));
    }

    public V1beta1JSONSchemaPropsFluent.OneOfNested editFirstOneOf(){
            if (oneOf.size() == 0) throw new RuntimeException("Can't edit first oneOf. The list is empty.");
            return setNewOneOfLike(0, buildOneOf(0));
    }

    public V1beta1JSONSchemaPropsFluent.OneOfNested editLastOneOf(){
            int index = oneOf.size() - 1;
            if (index < 0) throw new RuntimeException("Can't edit last oneOf. The list is empty.");
            return setNewOneOfLike(index, buildOneOf(index));
    }

    public V1beta1JSONSchemaPropsFluent.OneOfNested editMatchingOneOf(io.kubernetes.client.fluent.Predicate predicate){
            int index = -1;
            for (int i=0;i(); }
            if(key != null && value != null) {this.patternProperties.put(key, value);} return (A)this;
    }

    public A addToPatternProperties(Map map){
            if(this.patternProperties == null && map != null) { this.patternProperties = new LinkedHashMap(); }
            if(map != null) { this.patternProperties.putAll(map);} return (A)this;
    }

    public A removeFromPatternProperties(String key){
            if(this.patternProperties == null) { return (A) this; }
            if(key != null && this.patternProperties != null) {this.patternProperties.remove(key);} return (A)this;
    }

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

    public Map getPatternProperties(){
            return this.patternProperties;
    }

    public A withPatternProperties(Map patternProperties){
            if (patternProperties == null) { this.patternProperties =  null;} else {this.patternProperties = new LinkedHashMap(patternProperties);} return (A) this;
    }

    public Boolean hasPatternProperties(){
            return this.patternProperties != null;
    }

    public A addToProperties(String key,V1beta1JSONSchemaProps value){
            if(this.properties == null && key != null && value != null) { this.properties = new LinkedHashMap(); }
            if(key != null && value != null) {this.properties.put(key, value);} return (A)this;
    }

    public A addToProperties(Map map){
            if(this.properties == null && map != null) { this.properties = new LinkedHashMap(); }
            if(map != null) { this.properties.putAll(map);} return (A)this;
    }

    public A removeFromProperties(String key){
            if(this.properties == null) { return (A) this; }
            if(key != null && this.properties != null) {this.properties.remove(key);} return (A)this;
    }

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

    public Map getProperties(){
            return this.properties;
    }

    public A withProperties(Map properties){
            if (properties == null) { this.properties =  null;} else {this.properties = new LinkedHashMap(properties);} return (A) this;
    }

    public Boolean hasProperties(){
            return this.properties != null;
    }

    public A addToRequired(int index,String item){
            if (this.required == null) {this.required = new ArrayList();}
            this.required.add(index, item);
            return (A)this;
    }

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

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

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

    public A removeFromRequired(String... items){
            for (String item : items) {if (this.required!= null){ this.required.remove(item);}} return (A)this;
    }

    public A removeAllFromRequired(Collection items){
            for (String item : items) {if (this.required!= null){ this.required.remove(item);}} return (A)this;
    }

    public List getRequired(){
            return this.required;
    }

    public String getRequired(int index){
            return this.required.get(index);
    }

    public String getFirstRequired(){
            return this.required.get(0);
    }

    public String getLastRequired(){
            return this.required.get(required.size() - 1);
    }

    public String getMatchingRequired(io.kubernetes.client.fluent.Predicate predicate){
            for (String item: required) { if(predicate.apply(item)){return item;} } return null;
    }

    public A withRequired(List required){
            if (this.required != null) { _visitables.removeAll(this.required);}
            if (required != null) {this.required = new ArrayList(); for (String item : required){this.addToRequired(item);}} else { this.required = null;} return (A) this;
    }

    public A withRequired(String... required){
            this.required.clear(); if (required != null) {for (String item :required){ this.addToRequired(item);}} return (A) this;
    }

    public Boolean hasRequired(){
            return required != null && !required.isEmpty();
    }

    public String getTitle(){
            return this.title;
    }

    public A withTitle(String title){
            this.title=title; return (A) this;
    }

    public Boolean hasTitle(){
            return this.title != null;
    }

    public String getType(){
            return this.type;
    }

    public A withType(String type){
            this.type=type; return (A) this;
    }

    public Boolean hasType(){
            return this.type != null;
    }

    public Boolean isUniqueItems(){
            return this.uniqueItems;
    }

    public A withUniqueItems(Boolean uniqueItems){
            this.uniqueItems=uniqueItems; return (A) this;
    }

    public Boolean hasUniqueItems(){
            return this.uniqueItems != null;
    }

    public A withNewUniqueItems(boolean arg1){
            return (A)withUniqueItems(new Boolean(arg1));
    }

    public A withNewUniqueItems(String arg1){
            return (A)withUniqueItems(new Boolean(arg1));
    }

    public boolean equals(Object o){
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;
            if (!super.equals(o)) return false;
            V1beta1JSONSchemaPropsFluentImpl that = (V1beta1JSONSchemaPropsFluentImpl) o;
            if (ref != null ? !ref.equals(that.ref) :that.ref != null) return false;
            if (schema != null ? !schema.equals(that.schema) :that.schema != null) return false;
            if (additionalItems != null &&additionalItems != this ? !additionalItems.equals(that.additionalItems) :that.additionalItems != null &&additionalItems != this ) return false;

            if (additionalProperties != null &&additionalProperties != this ? !additionalProperties.equals(that.additionalProperties) :that.additionalProperties != null &&additionalProperties != this ) return false;

            if (allOf != null ? !allOf.equals(that.allOf) :that.allOf != null) return false;
            if (anyOf != null ? !anyOf.equals(that.anyOf) :that.anyOf != null) return false;
            if (_default != null &&_default != this ? !_default.equals(that._default) :that._default != null &&_default != this ) return false;

            if (definitions != null ? !definitions.equals(that.definitions) :that.definitions != null) return false;
            if (dependencies != null ? !dependencies.equals(that.dependencies) :that.dependencies != null) return false;
            if (description != null ? !description.equals(that.description) :that.description != null) return false;
            if (_enum != null ? !_enum.equals(that._enum) :that._enum != null) return false;
            if (example != null &&example != this ? !example.equals(that.example) :that.example != null &&example != this ) return false;

            if (exclusiveMaximum != null ? !exclusiveMaximum.equals(that.exclusiveMaximum) :that.exclusiveMaximum != null) return false;
            if (exclusiveMinimum != null ? !exclusiveMinimum.equals(that.exclusiveMinimum) :that.exclusiveMinimum != null) return false;
            if (externalDocs != null ? !externalDocs.equals(that.externalDocs) :that.externalDocs != null) return false;
            if (format != null ? !format.equals(that.format) :that.format != null) return false;
            if (id != null ? !id.equals(that.id) :that.id != null) return false;
            if (items != null &&items != this ? !items.equals(that.items) :that.items != null &&items != this ) return false;

            if (maxItems != null ? !maxItems.equals(that.maxItems) :that.maxItems != null) return false;
            if (maxLength != null ? !maxLength.equals(that.maxLength) :that.maxLength != null) return false;
            if (maxProperties != null ? !maxProperties.equals(that.maxProperties) :that.maxProperties != null) return false;
            if (maximum != null ? !maximum.equals(that.maximum) :that.maximum != null) return false;
            if (minItems != null ? !minItems.equals(that.minItems) :that.minItems != null) return false;
            if (minLength != null ? !minLength.equals(that.minLength) :that.minLength != null) return false;
            if (minProperties != null ? !minProperties.equals(that.minProperties) :that.minProperties != null) return false;
            if (minimum != null ? !minimum.equals(that.minimum) :that.minimum != null) return false;
            if (multipleOf != null ? !multipleOf.equals(that.multipleOf) :that.multipleOf != null) return false;
            if (not != null ? !not.equals(that.not) :that.not != null) return false;
            if (oneOf != null ? !oneOf.equals(that.oneOf) :that.oneOf != null) return false;
            if (pattern != null ? !pattern.equals(that.pattern) :that.pattern != null) return false;
            if (patternProperties != null ? !patternProperties.equals(that.patternProperties) :that.patternProperties != null) return false;
            if (properties != null ? !properties.equals(that.properties) :that.properties != null) return false;
            if (required != null ? !required.equals(that.required) :that.required != null) return false;
            if (title != null ? !title.equals(that.title) :that.title != null) return false;
            if (type != null ? !type.equals(that.type) :that.type != null) return false;
            if (uniqueItems != null ? !uniqueItems.equals(that.uniqueItems) :that.uniqueItems != null) return false;
            return true;
    }


    public class AllOfNestedImpl extends V1beta1JSONSchemaPropsFluentImpl> implements V1beta1JSONSchemaPropsFluent.AllOfNested,io.kubernetes.client.fluent.Nested{

            private final V1beta1JSONSchemaPropsBuilder builder;
        private final int index;
    
            AllOfNestedImpl(int index,V1beta1JSONSchemaProps item){
                    this.index = index;
                    this.builder = new V1beta1JSONSchemaPropsBuilder(this, item);
            }
            AllOfNestedImpl(){
                    this.index = -1;
                    this.builder = new V1beta1JSONSchemaPropsBuilder(this);
            }
    
    public N and(){
            return (N) V1beta1JSONSchemaPropsFluentImpl.this.setToAllOf(index, builder.build());
    }
    public N endAllOf(){
            return and();
    }

}
    public class AnyOfNestedImpl extends V1beta1JSONSchemaPropsFluentImpl> implements V1beta1JSONSchemaPropsFluent.AnyOfNested,io.kubernetes.client.fluent.Nested{

            private final V1beta1JSONSchemaPropsBuilder builder;
        private final int index;
    
            AnyOfNestedImpl(int index,V1beta1JSONSchemaProps item){
                    this.index = index;
                    this.builder = new V1beta1JSONSchemaPropsBuilder(this, item);
            }
            AnyOfNestedImpl(){
                    this.index = -1;
                    this.builder = new V1beta1JSONSchemaPropsBuilder(this);
            }
    
    public N and(){
            return (N) V1beta1JSONSchemaPropsFluentImpl.this.setToAnyOf(index, builder.build());
    }
    public N endAnyOf(){
            return and();
    }

}
    public class ExternalDocsNestedImpl extends V1beta1ExternalDocumentationFluentImpl> implements V1beta1JSONSchemaPropsFluent.ExternalDocsNested,io.kubernetes.client.fluent.Nested{

            private final V1beta1ExternalDocumentationBuilder builder;
    
            ExternalDocsNestedImpl(V1beta1ExternalDocumentation item){
                    this.builder = new V1beta1ExternalDocumentationBuilder(this, item);
            }
            ExternalDocsNestedImpl(){
                    this.builder = new V1beta1ExternalDocumentationBuilder(this);
            }
    
    public N and(){
            return (N) V1beta1JSONSchemaPropsFluentImpl.this.withExternalDocs(builder.build());
    }
    public N endExternalDocs(){
            return and();
    }

}
    public class NotNestedImpl extends V1beta1JSONSchemaPropsFluentImpl> implements V1beta1JSONSchemaPropsFluent.NotNested,io.kubernetes.client.fluent.Nested{

            private final V1beta1JSONSchemaPropsBuilder builder;
    
            NotNestedImpl(V1beta1JSONSchemaProps item){
                    this.builder = new V1beta1JSONSchemaPropsBuilder(this, item);
            }
            NotNestedImpl(){
                    this.builder = new V1beta1JSONSchemaPropsBuilder(this);
            }
    
    public N and(){
            return (N) V1beta1JSONSchemaPropsFluentImpl.this.withNot(builder.build());
    }
    public N endNot(){
            return and();
    }

}
    public class OneOfNestedImpl extends V1beta1JSONSchemaPropsFluentImpl> implements V1beta1JSONSchemaPropsFluent.OneOfNested,io.kubernetes.client.fluent.Nested{

            private final V1beta1JSONSchemaPropsBuilder builder;
        private final int index;
    
            OneOfNestedImpl(int index,V1beta1JSONSchemaProps item){
                    this.index = index;
                    this.builder = new V1beta1JSONSchemaPropsBuilder(this, item);
            }
            OneOfNestedImpl(){
                    this.index = -1;
                    this.builder = new V1beta1JSONSchemaPropsBuilder(this);
            }
    
    public N and(){
            return (N) V1beta1JSONSchemaPropsFluentImpl.this.setToOneOf(index, builder.build());
    }
    public N endOneOf(){
            return and();
    }

}


}