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

me.snowdrop.istio.api.model.IstioSchemaFluentImpl Maven / Gradle / Ivy

package me.snowdrop.istio.api.model;

import me.snowdrop.istio.api.model.v1.routing.MatchConditionBuilder;
import me.snowdrop.istio.api.model.v1.mixer.QuotaResult;
import me.snowdrop.istio.api.model.v1.broker.CatalogEntry;
import me.snowdrop.istio.api.model.v1.mixer.CheckResponse;
import java.lang.String;
import me.snowdrop.istio.api.model.v1.mixer.QuotaParamsBuilder;
import me.snowdrop.istio.api.model.v1.broker.ServicePlanBuilder;
import me.snowdrop.istio.api.model.v1.routing.RouteRuleFluentImpl;
import me.snowdrop.istio.api.model.v1.mixer.AttributeValueFluentImpl;
import me.snowdrop.istio.api.model.v1.routing.CorsPolicy;
import me.snowdrop.istio.api.model.v1.routing.CircuitBreaker;
import me.snowdrop.istio.api.model.v1.routing.StringMatch;
import me.snowdrop.istio.api.model.v1.broker.ServiceClass;
import java.lang.Deprecated;
import me.snowdrop.istio.api.model.v1.routing.DestinationPolicyBuilder;
import me.snowdrop.istio.api.model.v1.routing.HTTPRewriteBuilder;
import me.snowdrop.istio.api.model.v1.routing.IstioService;
import me.snowdrop.istio.api.model.v1.mixer.AttributesFluentImpl;
import me.snowdrop.istio.api.model.v1.routing.DestinationWeightFluentImpl;
import me.snowdrop.istio.api.model.v1.routing.HTTPFaultInjection;
import me.snowdrop.istio.api.model.v1.routing.HTTPRetryBuilder;
import me.snowdrop.istio.api.model.v1.mixer.CheckRequestBuilder;
import me.snowdrop.istio.api.model.v1.mesh.MeshConfigFluentImpl;
import me.snowdrop.istio.api.model.v1.broker.CatalogEntryBuilder;
import me.snowdrop.istio.api.model.v1.mixer.AttributeValue;
import me.snowdrop.istio.api.model.v1.broker.Deployment;
import me.snowdrop.istio.api.model.v1.routing.HTTPRedirect;
import me.snowdrop.istio.api.model.v1.routing.DestinationPolicyFluentImpl;
import me.snowdrop.istio.api.model.v1.mixer.CheckResponseFluentImpl;
import me.snowdrop.istio.api.model.v1.routing.IngressRuleFluentImpl;
import me.snowdrop.istio.api.model.v1.mixer.ReportRequestFluentImpl;
import me.snowdrop.istio.api.model.v1.routing.StringMatchFluentImpl;
import java.lang.Long;
import me.snowdrop.istio.api.model.v1.routing.IstioServiceFluentImpl;
import me.snowdrop.istio.api.model.v1.routing.CorsPolicyBuilder;
import me.snowdrop.istio.api.model.v1.mesh.MeshConfig;
import me.snowdrop.istio.api.model.v1.routing.MatchCondition;
import me.snowdrop.istio.api.model.v1.routing.HTTPFaultInjectionFluentImpl;
import me.snowdrop.istio.api.model.v1.routing.L4FaultInjectionBuilder;
import me.snowdrop.istio.api.model.v1.mixer.QuotaResultFluentImpl;
import me.snowdrop.istio.api.model.v1.mixer.QuotaParamsFluentImpl;
import me.snowdrop.istio.api.model.v1.mixer.CompressedAttributesBuilder;
import me.snowdrop.istio.api.model.v1.mesh.ProxyConfigBuilder;
import me.snowdrop.istio.api.model.v1.routing.HTTPRetry;
import me.snowdrop.istio.api.model.v1.mixer.ReferencedAttributesFluentImpl;
import me.snowdrop.istio.api.model.v1.routing.DestinationPolicy;
import me.snowdrop.istio.api.model.v1.routing.L4MatchAttributesFluentImpl;
import me.snowdrop.istio.api.model.v1.routing.MatchConditionFluentImpl;
import me.snowdrop.istio.api.model.v1.routing.DestinationWeightBuilder;
import me.snowdrop.istio.api.model.v1.mixer.QuotaResultBuilder;
import me.snowdrop.istio.api.model.v1.routing.LoadBalancingFluentImpl;
import me.snowdrop.istio.api.model.v1.routing.CircuitBreakerFluentImpl;
import com.fasterxml.jackson.annotation.JsonProperty;
import me.snowdrop.istio.api.model.v1.mixer.QuotaParams;
import me.snowdrop.istio.api.model.v1.routing.IngressRule;
import me.snowdrop.istio.api.model.v1.routing.HTTPTimeoutBuilder;
import me.snowdrop.istio.api.model.v1.broker.ServicePlanFluentImpl;
import me.snowdrop.istio.api.builder.BaseFluent;
import me.snowdrop.istio.api.model.v1.routing.HTTPRetryFluentImpl;
import me.snowdrop.istio.api.model.v1.routing.EgressRule;
import java.lang.Boolean;
import me.snowdrop.istio.api.model.v1.mixer.ReportResponseBuilder;
import me.snowdrop.istio.api.model.v1.mesh.MeshConfigBuilder;
import me.snowdrop.istio.api.model.v1.routing.RouteRuleBuilder;
import me.snowdrop.istio.api.model.v1.broker.ServicePlan;
import me.snowdrop.istio.api.model.v1.routing.EgressRuleFluentImpl;
import me.snowdrop.istio.api.model.v1.mixer.ReportResponseFluentImpl;
import me.snowdrop.istio.api.model.v1.routing.LoadBalancing;
import me.snowdrop.istio.api.model.v1.mixer.StringMapFluentImpl;
import javax.validation.Valid;
import java.lang.Object;
import me.snowdrop.istio.api.model.v1.mixer.AttributeValueBuilder;
import me.snowdrop.istio.api.model.v1.mixer.AttributesBuilder;
import me.snowdrop.istio.api.model.v1.broker.DeploymentBuilder;
import me.snowdrop.istio.api.model.v1.mixer.StringMap;
import me.snowdrop.istio.api.model.v1.routing.HTTPRedirectBuilder;
import me.snowdrop.istio.api.model.v1.mixer.ReportResponse;
import me.snowdrop.istio.api.model.v1.mixer.CheckRequestFluentImpl;
import me.snowdrop.istio.api.model.v1.routing.CorsPolicyFluentImpl;
import me.snowdrop.istio.api.model.v1.routing.HTTPTimeoutFluentImpl;
import me.snowdrop.istio.api.model.v1.routing.StringMatchBuilder;
import me.snowdrop.istio.api.model.v1.routing.MatchRequestBuilder;
import me.snowdrop.istio.api.model.v1.routing.L4MatchAttributes;
import me.snowdrop.istio.api.model.v1.mixer.ReportRequest;
import me.snowdrop.istio.api.model.v1.routing.L4FaultInjectionFluentImpl;
import me.snowdrop.istio.api.model.v1.mixer.CheckResponseBuilder;
import me.snowdrop.istio.api.model.v1.routing.IngressRuleBuilder;
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
import me.snowdrop.istio.api.model.v1.mixer.Attributes;
import me.snowdrop.istio.api.model.v1.broker.DeploymentFluentImpl;
import me.snowdrop.istio.api.model.v1.routing.LoadBalancingBuilder;
import me.snowdrop.istio.api.model.v1.routing.DestinationWeight;
import me.snowdrop.istio.api.model.v1.routing.HTTPRedirectFluentImpl;
import me.snowdrop.istio.api.model.v1.broker.CatalogEntryFluentImpl;
import me.snowdrop.istio.api.model.v1.routing.HTTPTimeout;
import me.snowdrop.istio.api.model.v1.broker.CatalogPlan;
import me.snowdrop.istio.api.model.v1.broker.CatalogPlanFluentImpl;
import me.snowdrop.istio.api.model.v1.mesh.ProxyConfigFluentImpl;
import me.snowdrop.istio.api.model.v1.mixer.StringMapBuilder;
import me.snowdrop.istio.api.model.v1.routing.RouteRule;
import me.snowdrop.istio.api.model.v1.routing.HTTPFaultInjectionBuilder;
import me.snowdrop.istio.api.model.v1.mixer.CompressedAttributesFluentImpl;
import me.snowdrop.istio.api.model.v1.mixer.ReferencedAttributesBuilder;
import me.snowdrop.istio.api.model.v1.broker.CatalogPlanBuilder;
import me.snowdrop.istio.api.model.v1.mixer.CompressedAttributes;
import me.snowdrop.istio.api.model.v1.routing.IstioServiceBuilder;
import me.snowdrop.istio.api.model.v1.routing.MatchRequestFluentImpl;
import me.snowdrop.istio.api.builder.Nested;
import me.snowdrop.istio.api.model.v1.routing.L4MatchAttributesBuilder;
import me.snowdrop.istio.api.model.v1.mixer.ReferencedAttributes;
import me.snowdrop.istio.api.model.v1.mixer.ReportRequestBuilder;
import me.snowdrop.istio.api.model.v1.routing.HTTPRewriteFluentImpl;
import me.snowdrop.istio.api.model.v1.broker.ServiceClassFluentImpl;
import me.snowdrop.istio.api.model.v1.routing.L4FaultInjection;
import me.snowdrop.istio.api.model.v1.broker.ServiceClassBuilder;
import me.snowdrop.istio.api.model.v1.mesh.ProxyConfig;
import me.snowdrop.istio.api.model.v1.routing.EgressRuleBuilder;
import me.snowdrop.istio.api.model.v1.routing.CircuitBreakerBuilder;
import me.snowdrop.istio.api.model.v1.mixer.CheckRequest;
import me.snowdrop.istio.api.model.v1.routing.HTTPRewrite;
import me.snowdrop.istio.api.model.v1.routing.MatchRequest;

public class IstioSchemaFluentImpl> extends me.snowdrop.istio.api.builder.BaseFluent implements IstioSchemaFluent{

    private AttributeValueBuilder attributeValue;
    private AttributesBuilder attributes;
    private CatalogEntryBuilder catalogEntry;
    private CatalogPlanBuilder catalogPlan;
    private CheckRequestBuilder checkRequest;
    private CheckResponseBuilder checkResponse;
    private CircuitBreakerBuilder circuitBreaker;
    private CompressedAttributesBuilder compressedAttributes;
    private CorsPolicyBuilder corsPolicy;
    private DeploymentBuilder deployment;
    private DestinationPolicyBuilder destinationPolicy;
    private DestinationWeightBuilder destinationWeight;
    private EgressRuleBuilder egressRule;
    private HTTPFaultInjectionBuilder hTTPFaultInjection;
    private HTTPRedirectBuilder hTTPRedirect;
    private HTTPRetryBuilder hTTPRetry;
    private HTTPRewriteBuilder hTTPRewrite;
    private HTTPTimeoutBuilder hTTPTimeout;
    private IngressRuleBuilder ingressRule;
    private IstioServiceBuilder istioService;
    private L4FaultInjectionBuilder l4FaultInjection;
    private L4MatchAttributesBuilder l4MatchAttributes;
    private LoadBalancingBuilder loadBalancing;
    private MatchConditionBuilder matchCondition;
    private MatchRequestBuilder matchRequest;
    private MeshConfigBuilder meshConfig;
    private ProxyConfigBuilder proxyConfig;
    private QuotaParamsBuilder quotaParams;
    private QuotaResultBuilder quotaResult;
    private ReferencedAttributesBuilder referencedAttributes;
    private ReportRequestBuilder reportRequest;
    private ReportResponseBuilder reportResponse;
    private RouteRuleBuilder routeRule;
    private ServiceClassBuilder serviceClass;
    private ServicePlanBuilder servicePlan;
    private StringMapBuilder stringMap;
    private StringMatchBuilder stringMatch;

    public IstioSchemaFluentImpl(){
    }
    public IstioSchemaFluentImpl(IstioSchema instance){
            this.withAttributeValue(instance.getAttributeValue()); 
            this.withAttributes(instance.getAttributes()); 
            this.withCatalogEntry(instance.getCatalogEntry()); 
            this.withCatalogPlan(instance.getCatalogPlan()); 
            this.withCheckRequest(instance.getCheckRequest()); 
            this.withCheckResponse(instance.getCheckResponse()); 
            this.withCircuitBreaker(instance.getCircuitBreaker()); 
            this.withCompressedAttributes(instance.getCompressedAttributes()); 
            this.withCorsPolicy(instance.getCorsPolicy()); 
            this.withDeployment(instance.getDeployment()); 
            this.withDestinationPolicy(instance.getDestinationPolicy()); 
            this.withDestinationWeight(instance.getDestinationWeight()); 
            this.withEgressRule(instance.getEgressRule()); 
            this.withHTTPFaultInjection(instance.getHTTPFaultInjection()); 
            this.withHTTPRedirect(instance.getHTTPRedirect()); 
            this.withHTTPRetry(instance.getHTTPRetry()); 
            this.withHTTPRewrite(instance.getHTTPRewrite()); 
            this.withHTTPTimeout(instance.getHTTPTimeout()); 
            this.withIngressRule(instance.getIngressRule()); 
            this.withIstioService(instance.getIstioService()); 
            this.withL4FaultInjection(instance.getL4FaultInjection()); 
            this.withL4MatchAttributes(instance.getL4MatchAttributes()); 
            this.withLoadBalancing(instance.getLoadBalancing()); 
            this.withMatchCondition(instance.getMatchCondition()); 
            this.withMatchRequest(instance.getMatchRequest()); 
            this.withMeshConfig(instance.getMeshConfig()); 
            this.withProxyConfig(instance.getProxyConfig()); 
            this.withQuotaParams(instance.getQuotaParams()); 
            this.withQuotaResult(instance.getQuotaResult()); 
            this.withReferencedAttributes(instance.getReferencedAttributes()); 
            this.withReportRequest(instance.getReportRequest()); 
            this.withReportResponse(instance.getReportResponse()); 
            this.withRouteRule(instance.getRouteRule()); 
            this.withServiceClass(instance.getServiceClass()); 
            this.withServicePlan(instance.getServicePlan()); 
            this.withStringMap(instance.getStringMap()); 
            this.withStringMatch(instance.getStringMatch()); 
    }

    
/**
 * This method has been deprecated, please use method buildAttributeValue instead.
 */
@Deprecated public AttributeValue getAttributeValue(){
            return this.attributeValue!=null?this.attributeValue.build():null;
    }

    public AttributeValue buildAttributeValue(){
            return this.attributeValue!=null?this.attributeValue.build():null;
    }

    public A withAttributeValue(AttributeValue attributeValue){
            _visitables.remove(this.attributeValue);
            if (attributeValue!=null){ this.attributeValue= new AttributeValueBuilder(attributeValue); _visitables.add(this.attributeValue);} return (A) this;
    }

    public Boolean hasAttributeValue(){
            return this.attributeValue != null;
    }

    public A withNewAttributeValue(Object value){
            return (A)withAttributeValue(new AttributeValue(value));
    }

    public IstioSchemaFluent.AttributeValueNested withNewAttributeValue(){
            return new AttributeValueNestedImpl();
    }

    public IstioSchemaFluent.AttributeValueNested withNewAttributeValueLike(AttributeValue item){
            return new AttributeValueNestedImpl(item);
    }

    public IstioSchemaFluent.AttributeValueNested editAttributeValue(){
            return withNewAttributeValueLike(getAttributeValue());
    }

    public IstioSchemaFluent.AttributeValueNested editOrNewAttributeValue(){
            return withNewAttributeValueLike(getAttributeValue() != null ? getAttributeValue(): new AttributeValueBuilder().build());
    }

    public IstioSchemaFluent.AttributeValueNested editOrNewAttributeValueLike(AttributeValue item){
            return withNewAttributeValueLike(getAttributeValue() != null ? getAttributeValue(): item);
    }

    
/**
 * This method has been deprecated, please use method buildAttributes instead.
 */
@Deprecated public Attributes getAttributes(){
            return this.attributes!=null?this.attributes.build():null;
    }

    public Attributes buildAttributes(){
            return this.attributes!=null?this.attributes.build():null;
    }

    public A withAttributes(Attributes attributes){
            _visitables.remove(this.attributes);
            if (attributes!=null){ this.attributes= new AttributesBuilder(attributes); _visitables.add(this.attributes);} return (A) this;
    }

    public Boolean hasAttributes(){
            return this.attributes != null;
    }

    public IstioSchemaFluent.AttributesNested withNewAttributes(){
            return new AttributesNestedImpl();
    }

    public IstioSchemaFluent.AttributesNested withNewAttributesLike(Attributes item){
            return new AttributesNestedImpl(item);
    }

    public IstioSchemaFluent.AttributesNested editAttributes(){
            return withNewAttributesLike(getAttributes());
    }

    public IstioSchemaFluent.AttributesNested editOrNewAttributes(){
            return withNewAttributesLike(getAttributes() != null ? getAttributes(): new AttributesBuilder().build());
    }

    public IstioSchemaFluent.AttributesNested editOrNewAttributesLike(Attributes item){
            return withNewAttributesLike(getAttributes() != null ? getAttributes(): item);
    }

    
/**
 * This method has been deprecated, please use method buildCatalogEntry instead.
 */
@Deprecated public CatalogEntry getCatalogEntry(){
            return this.catalogEntry!=null?this.catalogEntry.build():null;
    }

    public CatalogEntry buildCatalogEntry(){
            return this.catalogEntry!=null?this.catalogEntry.build():null;
    }

    public A withCatalogEntry(CatalogEntry catalogEntry){
            _visitables.remove(this.catalogEntry);
            if (catalogEntry!=null){ this.catalogEntry= new CatalogEntryBuilder(catalogEntry); _visitables.add(this.catalogEntry);} return (A) this;
    }

    public Boolean hasCatalogEntry(){
            return this.catalogEntry != null;
    }

    public A withNewCatalogEntry(String description,String id,String name){
            return (A)withCatalogEntry(new CatalogEntry(description, id, name));
    }

    public IstioSchemaFluent.CatalogEntryNested withNewCatalogEntry(){
            return new CatalogEntryNestedImpl();
    }

    public IstioSchemaFluent.CatalogEntryNested withNewCatalogEntryLike(CatalogEntry item){
            return new CatalogEntryNestedImpl(item);
    }

    public IstioSchemaFluent.CatalogEntryNested editCatalogEntry(){
            return withNewCatalogEntryLike(getCatalogEntry());
    }

    public IstioSchemaFluent.CatalogEntryNested editOrNewCatalogEntry(){
            return withNewCatalogEntryLike(getCatalogEntry() != null ? getCatalogEntry(): new CatalogEntryBuilder().build());
    }

    public IstioSchemaFluent.CatalogEntryNested editOrNewCatalogEntryLike(CatalogEntry item){
            return withNewCatalogEntryLike(getCatalogEntry() != null ? getCatalogEntry(): item);
    }

    
/**
 * This method has been deprecated, please use method buildCatalogPlan instead.
 */
@Deprecated public CatalogPlan getCatalogPlan(){
            return this.catalogPlan!=null?this.catalogPlan.build():null;
    }

    public CatalogPlan buildCatalogPlan(){
            return this.catalogPlan!=null?this.catalogPlan.build():null;
    }

    public A withCatalogPlan(CatalogPlan catalogPlan){
            _visitables.remove(this.catalogPlan);
            if (catalogPlan!=null){ this.catalogPlan= new CatalogPlanBuilder(catalogPlan); _visitables.add(this.catalogPlan);} return (A) this;
    }

    public Boolean hasCatalogPlan(){
            return this.catalogPlan != null;
    }

    public A withNewCatalogPlan(String description,String id,String name){
            return (A)withCatalogPlan(new CatalogPlan(description, id, name));
    }

    public IstioSchemaFluent.CatalogPlanNested withNewCatalogPlan(){
            return new CatalogPlanNestedImpl();
    }

    public IstioSchemaFluent.CatalogPlanNested withNewCatalogPlanLike(CatalogPlan item){
            return new CatalogPlanNestedImpl(item);
    }

    public IstioSchemaFluent.CatalogPlanNested editCatalogPlan(){
            return withNewCatalogPlanLike(getCatalogPlan());
    }

    public IstioSchemaFluent.CatalogPlanNested editOrNewCatalogPlan(){
            return withNewCatalogPlanLike(getCatalogPlan() != null ? getCatalogPlan(): new CatalogPlanBuilder().build());
    }

    public IstioSchemaFluent.CatalogPlanNested editOrNewCatalogPlanLike(CatalogPlan item){
            return withNewCatalogPlanLike(getCatalogPlan() != null ? getCatalogPlan(): item);
    }

    
/**
 * This method has been deprecated, please use method buildCheckRequest instead.
 */
@Deprecated public CheckRequest getCheckRequest(){
            return this.checkRequest!=null?this.checkRequest.build():null;
    }

    public CheckRequest buildCheckRequest(){
            return this.checkRequest!=null?this.checkRequest.build():null;
    }

    public A withCheckRequest(CheckRequest checkRequest){
            _visitables.remove(this.checkRequest);
            if (checkRequest!=null){ this.checkRequest= new CheckRequestBuilder(checkRequest); _visitables.add(this.checkRequest);} return (A) this;
    }

    public Boolean hasCheckRequest(){
            return this.checkRequest != null;
    }

    public IstioSchemaFluent.CheckRequestNested withNewCheckRequest(){
            return new CheckRequestNestedImpl();
    }

    public IstioSchemaFluent.CheckRequestNested withNewCheckRequestLike(CheckRequest item){
            return new CheckRequestNestedImpl(item);
    }

    public IstioSchemaFluent.CheckRequestNested editCheckRequest(){
            return withNewCheckRequestLike(getCheckRequest());
    }

    public IstioSchemaFluent.CheckRequestNested editOrNewCheckRequest(){
            return withNewCheckRequestLike(getCheckRequest() != null ? getCheckRequest(): new CheckRequestBuilder().build());
    }

    public IstioSchemaFluent.CheckRequestNested editOrNewCheckRequestLike(CheckRequest item){
            return withNewCheckRequestLike(getCheckRequest() != null ? getCheckRequest(): item);
    }

    
/**
 * This method has been deprecated, please use method buildCheckResponse instead.
 */
@Deprecated public CheckResponse getCheckResponse(){
            return this.checkResponse!=null?this.checkResponse.build():null;
    }

    public CheckResponse buildCheckResponse(){
            return this.checkResponse!=null?this.checkResponse.build():null;
    }

    public A withCheckResponse(CheckResponse checkResponse){
            _visitables.remove(this.checkResponse);
            if (checkResponse!=null){ this.checkResponse= new CheckResponseBuilder(checkResponse); _visitables.add(this.checkResponse);} return (A) this;
    }

    public Boolean hasCheckResponse(){
            return this.checkResponse != null;
    }

    public IstioSchemaFluent.CheckResponseNested withNewCheckResponse(){
            return new CheckResponseNestedImpl();
    }

    public IstioSchemaFluent.CheckResponseNested withNewCheckResponseLike(CheckResponse item){
            return new CheckResponseNestedImpl(item);
    }

    public IstioSchemaFluent.CheckResponseNested editCheckResponse(){
            return withNewCheckResponseLike(getCheckResponse());
    }

    public IstioSchemaFluent.CheckResponseNested editOrNewCheckResponse(){
            return withNewCheckResponseLike(getCheckResponse() != null ? getCheckResponse(): new CheckResponseBuilder().build());
    }

    public IstioSchemaFluent.CheckResponseNested editOrNewCheckResponseLike(CheckResponse item){
            return withNewCheckResponseLike(getCheckResponse() != null ? getCheckResponse(): item);
    }

    
/**
 * This method has been deprecated, please use method buildCircuitBreaker instead.
 */
@Deprecated public CircuitBreaker getCircuitBreaker(){
            return this.circuitBreaker!=null?this.circuitBreaker.build():null;
    }

    public CircuitBreaker buildCircuitBreaker(){
            return this.circuitBreaker!=null?this.circuitBreaker.build():null;
    }

    public A withCircuitBreaker(CircuitBreaker circuitBreaker){
            _visitables.remove(this.circuitBreaker);
            if (circuitBreaker!=null){ this.circuitBreaker= new CircuitBreakerBuilder(circuitBreaker); _visitables.add(this.circuitBreaker);} return (A) this;
    }

    public Boolean hasCircuitBreaker(){
            return this.circuitBreaker != null;
    }

    public A withNewCircuitBreaker(Object cbPolicy){
            return (A)withCircuitBreaker(new CircuitBreaker(cbPolicy));
    }

    public IstioSchemaFluent.CircuitBreakerNested withNewCircuitBreaker(){
            return new CircuitBreakerNestedImpl();
    }

    public IstioSchemaFluent.CircuitBreakerNested withNewCircuitBreakerLike(CircuitBreaker item){
            return new CircuitBreakerNestedImpl(item);
    }

    public IstioSchemaFluent.CircuitBreakerNested editCircuitBreaker(){
            return withNewCircuitBreakerLike(getCircuitBreaker());
    }

    public IstioSchemaFluent.CircuitBreakerNested editOrNewCircuitBreaker(){
            return withNewCircuitBreakerLike(getCircuitBreaker() != null ? getCircuitBreaker(): new CircuitBreakerBuilder().build());
    }

    public IstioSchemaFluent.CircuitBreakerNested editOrNewCircuitBreakerLike(CircuitBreaker item){
            return withNewCircuitBreakerLike(getCircuitBreaker() != null ? getCircuitBreaker(): item);
    }

    
/**
 * This method has been deprecated, please use method buildCompressedAttributes instead.
 */
@Deprecated public CompressedAttributes getCompressedAttributes(){
            return this.compressedAttributes!=null?this.compressedAttributes.build():null;
    }

    public CompressedAttributes buildCompressedAttributes(){
            return this.compressedAttributes!=null?this.compressedAttributes.build():null;
    }

    public A withCompressedAttributes(CompressedAttributes compressedAttributes){
            _visitables.remove(this.compressedAttributes);
            if (compressedAttributes!=null){ this.compressedAttributes= new CompressedAttributesBuilder(compressedAttributes); _visitables.add(this.compressedAttributes);} return (A) this;
    }

    public Boolean hasCompressedAttributes(){
            return this.compressedAttributes != null;
    }

    public IstioSchemaFluent.CompressedAttributesNested withNewCompressedAttributes(){
            return new CompressedAttributesNestedImpl();
    }

    public IstioSchemaFluent.CompressedAttributesNested withNewCompressedAttributesLike(CompressedAttributes item){
            return new CompressedAttributesNestedImpl(item);
    }

    public IstioSchemaFluent.CompressedAttributesNested editCompressedAttributes(){
            return withNewCompressedAttributesLike(getCompressedAttributes());
    }

    public IstioSchemaFluent.CompressedAttributesNested editOrNewCompressedAttributes(){
            return withNewCompressedAttributesLike(getCompressedAttributes() != null ? getCompressedAttributes(): new CompressedAttributesBuilder().build());
    }

    public IstioSchemaFluent.CompressedAttributesNested editOrNewCompressedAttributesLike(CompressedAttributes item){
            return withNewCompressedAttributesLike(getCompressedAttributes() != null ? getCompressedAttributes(): item);
    }

    
/**
 * This method has been deprecated, please use method buildCorsPolicy instead.
 */
@Deprecated public CorsPolicy getCorsPolicy(){
            return this.corsPolicy!=null?this.corsPolicy.build():null;
    }

    public CorsPolicy buildCorsPolicy(){
            return this.corsPolicy!=null?this.corsPolicy.build():null;
    }

    public A withCorsPolicy(CorsPolicy corsPolicy){
            _visitables.remove(this.corsPolicy);
            if (corsPolicy!=null){ this.corsPolicy= new CorsPolicyBuilder(corsPolicy); _visitables.add(this.corsPolicy);} return (A) this;
    }

    public Boolean hasCorsPolicy(){
            return this.corsPolicy != null;
    }

    public IstioSchemaFluent.CorsPolicyNested withNewCorsPolicy(){
            return new CorsPolicyNestedImpl();
    }

    public IstioSchemaFluent.CorsPolicyNested withNewCorsPolicyLike(CorsPolicy item){
            return new CorsPolicyNestedImpl(item);
    }

    public IstioSchemaFluent.CorsPolicyNested editCorsPolicy(){
            return withNewCorsPolicyLike(getCorsPolicy());
    }

    public IstioSchemaFluent.CorsPolicyNested editOrNewCorsPolicy(){
            return withNewCorsPolicyLike(getCorsPolicy() != null ? getCorsPolicy(): new CorsPolicyBuilder().build());
    }

    public IstioSchemaFluent.CorsPolicyNested editOrNewCorsPolicyLike(CorsPolicy item){
            return withNewCorsPolicyLike(getCorsPolicy() != null ? getCorsPolicy(): item);
    }

    
/**
 * This method has been deprecated, please use method buildDeployment instead.
 */
@Deprecated public Deployment getDeployment(){
            return this.deployment!=null?this.deployment.build():null;
    }

    public Deployment buildDeployment(){
            return this.deployment!=null?this.deployment.build():null;
    }

    public A withDeployment(Deployment deployment){
            _visitables.remove(this.deployment);
            if (deployment!=null){ this.deployment= new DeploymentBuilder(deployment); _visitables.add(this.deployment);} return (A) this;
    }

    public Boolean hasDeployment(){
            return this.deployment != null;
    }

    public A withNewDeployment(String instance){
            return (A)withDeployment(new Deployment(instance));
    }

    public IstioSchemaFluent.DeploymentNested withNewDeployment(){
            return new DeploymentNestedImpl();
    }

    public IstioSchemaFluent.DeploymentNested withNewDeploymentLike(Deployment item){
            return new DeploymentNestedImpl(item);
    }

    public IstioSchemaFluent.DeploymentNested editDeployment(){
            return withNewDeploymentLike(getDeployment());
    }

    public IstioSchemaFluent.DeploymentNested editOrNewDeployment(){
            return withNewDeploymentLike(getDeployment() != null ? getDeployment(): new DeploymentBuilder().build());
    }

    public IstioSchemaFluent.DeploymentNested editOrNewDeploymentLike(Deployment item){
            return withNewDeploymentLike(getDeployment() != null ? getDeployment(): item);
    }

    
/**
 * This method has been deprecated, please use method buildDestinationPolicy instead.
 */
@Deprecated public DestinationPolicy getDestinationPolicy(){
            return this.destinationPolicy!=null?this.destinationPolicy.build():null;
    }

    public DestinationPolicy buildDestinationPolicy(){
            return this.destinationPolicy!=null?this.destinationPolicy.build():null;
    }

    public A withDestinationPolicy(DestinationPolicy destinationPolicy){
            _visitables.remove(this.destinationPolicy);
            if (destinationPolicy!=null){ this.destinationPolicy= new DestinationPolicyBuilder(destinationPolicy); _visitables.add(this.destinationPolicy);} return (A) this;
    }

    public Boolean hasDestinationPolicy(){
            return this.destinationPolicy != null;
    }

    public IstioSchemaFluent.DestinationPolicyNested withNewDestinationPolicy(){
            return new DestinationPolicyNestedImpl();
    }

    public IstioSchemaFluent.DestinationPolicyNested withNewDestinationPolicyLike(DestinationPolicy item){
            return new DestinationPolicyNestedImpl(item);
    }

    public IstioSchemaFluent.DestinationPolicyNested editDestinationPolicy(){
            return withNewDestinationPolicyLike(getDestinationPolicy());
    }

    public IstioSchemaFluent.DestinationPolicyNested editOrNewDestinationPolicy(){
            return withNewDestinationPolicyLike(getDestinationPolicy() != null ? getDestinationPolicy(): new DestinationPolicyBuilder().build());
    }

    public IstioSchemaFluent.DestinationPolicyNested editOrNewDestinationPolicyLike(DestinationPolicy item){
            return withNewDestinationPolicyLike(getDestinationPolicy() != null ? getDestinationPolicy(): item);
    }

    
/**
 * This method has been deprecated, please use method buildDestinationWeight instead.
 */
@Deprecated public DestinationWeight getDestinationWeight(){
            return this.destinationWeight!=null?this.destinationWeight.build():null;
    }

    public DestinationWeight buildDestinationWeight(){
            return this.destinationWeight!=null?this.destinationWeight.build():null;
    }

    public A withDestinationWeight(DestinationWeight destinationWeight){
            _visitables.remove(this.destinationWeight);
            if (destinationWeight!=null){ this.destinationWeight= new DestinationWeightBuilder(destinationWeight); _visitables.add(this.destinationWeight);} return (A) this;
    }

    public Boolean hasDestinationWeight(){
            return this.destinationWeight != null;
    }

    public IstioSchemaFluent.DestinationWeightNested withNewDestinationWeight(){
            return new DestinationWeightNestedImpl();
    }

    public IstioSchemaFluent.DestinationWeightNested withNewDestinationWeightLike(DestinationWeight item){
            return new DestinationWeightNestedImpl(item);
    }

    public IstioSchemaFluent.DestinationWeightNested editDestinationWeight(){
            return withNewDestinationWeightLike(getDestinationWeight());
    }

    public IstioSchemaFluent.DestinationWeightNested editOrNewDestinationWeight(){
            return withNewDestinationWeightLike(getDestinationWeight() != null ? getDestinationWeight(): new DestinationWeightBuilder().build());
    }

    public IstioSchemaFluent.DestinationWeightNested editOrNewDestinationWeightLike(DestinationWeight item){
            return withNewDestinationWeightLike(getDestinationWeight() != null ? getDestinationWeight(): item);
    }

    
/**
 * This method has been deprecated, please use method buildEgressRule instead.
 */
@Deprecated public EgressRule getEgressRule(){
            return this.egressRule!=null?this.egressRule.build():null;
    }

    public EgressRule buildEgressRule(){
            return this.egressRule!=null?this.egressRule.build():null;
    }

    public A withEgressRule(EgressRule egressRule){
            _visitables.remove(this.egressRule);
            if (egressRule!=null){ this.egressRule= new EgressRuleBuilder(egressRule); _visitables.add(this.egressRule);} return (A) this;
    }

    public Boolean hasEgressRule(){
            return this.egressRule != null;
    }

    public IstioSchemaFluent.EgressRuleNested withNewEgressRule(){
            return new EgressRuleNestedImpl();
    }

    public IstioSchemaFluent.EgressRuleNested withNewEgressRuleLike(EgressRule item){
            return new EgressRuleNestedImpl(item);
    }

    public IstioSchemaFluent.EgressRuleNested editEgressRule(){
            return withNewEgressRuleLike(getEgressRule());
    }

    public IstioSchemaFluent.EgressRuleNested editOrNewEgressRule(){
            return withNewEgressRuleLike(getEgressRule() != null ? getEgressRule(): new EgressRuleBuilder().build());
    }

    public IstioSchemaFluent.EgressRuleNested editOrNewEgressRuleLike(EgressRule item){
            return withNewEgressRuleLike(getEgressRule() != null ? getEgressRule(): item);
    }

    
/**
 * This method has been deprecated, please use method buildHTTPFaultInjection instead.
 */
@Deprecated public HTTPFaultInjection getHTTPFaultInjection(){
            return this.hTTPFaultInjection!=null?this.hTTPFaultInjection.build():null;
    }

    public HTTPFaultInjection buildHTTPFaultInjection(){
            return this.hTTPFaultInjection!=null?this.hTTPFaultInjection.build():null;
    }

    public A withHTTPFaultInjection(HTTPFaultInjection hTTPFaultInjection){
            _visitables.remove(this.hTTPFaultInjection);
            if (hTTPFaultInjection!=null){ this.hTTPFaultInjection= new HTTPFaultInjectionBuilder(hTTPFaultInjection); _visitables.add(this.hTTPFaultInjection);} return (A) this;
    }

    public Boolean hasHTTPFaultInjection(){
            return this.hTTPFaultInjection != null;
    }

    public IstioSchemaFluent.HTTPFaultInjectionNested withNewHTTPFaultInjection(){
            return new HTTPFaultInjectionNestedImpl();
    }

    public IstioSchemaFluent.HTTPFaultInjectionNested withNewHTTPFaultInjectionLike(HTTPFaultInjection item){
            return new HTTPFaultInjectionNestedImpl(item);
    }

    public IstioSchemaFluent.HTTPFaultInjectionNested editHTTPFaultInjection(){
            return withNewHTTPFaultInjectionLike(getHTTPFaultInjection());
    }

    public IstioSchemaFluent.HTTPFaultInjectionNested editOrNewHTTPFaultInjection(){
            return withNewHTTPFaultInjectionLike(getHTTPFaultInjection() != null ? getHTTPFaultInjection(): new HTTPFaultInjectionBuilder().build());
    }

    public IstioSchemaFluent.HTTPFaultInjectionNested editOrNewHTTPFaultInjectionLike(HTTPFaultInjection item){
            return withNewHTTPFaultInjectionLike(getHTTPFaultInjection() != null ? getHTTPFaultInjection(): item);
    }

    
/**
 * This method has been deprecated, please use method buildHTTPRedirect instead.
 */
@Deprecated public HTTPRedirect getHTTPRedirect(){
            return this.hTTPRedirect!=null?this.hTTPRedirect.build():null;
    }

    public HTTPRedirect buildHTTPRedirect(){
            return this.hTTPRedirect!=null?this.hTTPRedirect.build():null;
    }

    public A withHTTPRedirect(HTTPRedirect hTTPRedirect){
            _visitables.remove(this.hTTPRedirect);
            if (hTTPRedirect!=null){ this.hTTPRedirect= new HTTPRedirectBuilder(hTTPRedirect); _visitables.add(this.hTTPRedirect);} return (A) this;
    }

    public Boolean hasHTTPRedirect(){
            return this.hTTPRedirect != null;
    }

    public A withNewHTTPRedirect(String authority,String uri){
            return (A)withHTTPRedirect(new HTTPRedirect(authority, uri));
    }

    public IstioSchemaFluent.HTTPRedirectNested withNewHTTPRedirect(){
            return new HTTPRedirectNestedImpl();
    }

    public IstioSchemaFluent.HTTPRedirectNested withNewHTTPRedirectLike(HTTPRedirect item){
            return new HTTPRedirectNestedImpl(item);
    }

    public IstioSchemaFluent.HTTPRedirectNested editHTTPRedirect(){
            return withNewHTTPRedirectLike(getHTTPRedirect());
    }

    public IstioSchemaFluent.HTTPRedirectNested editOrNewHTTPRedirect(){
            return withNewHTTPRedirectLike(getHTTPRedirect() != null ? getHTTPRedirect(): new HTTPRedirectBuilder().build());
    }

    public IstioSchemaFluent.HTTPRedirectNested editOrNewHTTPRedirectLike(HTTPRedirect item){
            return withNewHTTPRedirectLike(getHTTPRedirect() != null ? getHTTPRedirect(): item);
    }

    
/**
 * This method has been deprecated, please use method buildHTTPRetry instead.
 */
@Deprecated public HTTPRetry getHTTPRetry(){
            return this.hTTPRetry!=null?this.hTTPRetry.build():null;
    }

    public HTTPRetry buildHTTPRetry(){
            return this.hTTPRetry!=null?this.hTTPRetry.build():null;
    }

    public A withHTTPRetry(HTTPRetry hTTPRetry){
            _visitables.remove(this.hTTPRetry);
            if (hTTPRetry!=null){ this.hTTPRetry= new HTTPRetryBuilder(hTTPRetry); _visitables.add(this.hTTPRetry);} return (A) this;
    }

    public Boolean hasHTTPRetry(){
            return this.hTTPRetry != null;
    }

    public A withNewHTTPRetry(Object retryPolicy){
            return (A)withHTTPRetry(new HTTPRetry(retryPolicy));
    }

    public IstioSchemaFluent.HTTPRetryNested withNewHTTPRetry(){
            return new HTTPRetryNestedImpl();
    }

    public IstioSchemaFluent.HTTPRetryNested withNewHTTPRetryLike(HTTPRetry item){
            return new HTTPRetryNestedImpl(item);
    }

    public IstioSchemaFluent.HTTPRetryNested editHTTPRetry(){
            return withNewHTTPRetryLike(getHTTPRetry());
    }

    public IstioSchemaFluent.HTTPRetryNested editOrNewHTTPRetry(){
            return withNewHTTPRetryLike(getHTTPRetry() != null ? getHTTPRetry(): new HTTPRetryBuilder().build());
    }

    public IstioSchemaFluent.HTTPRetryNested editOrNewHTTPRetryLike(HTTPRetry item){
            return withNewHTTPRetryLike(getHTTPRetry() != null ? getHTTPRetry(): item);
    }

    
/**
 * This method has been deprecated, please use method buildHTTPRewrite instead.
 */
@Deprecated public HTTPRewrite getHTTPRewrite(){
            return this.hTTPRewrite!=null?this.hTTPRewrite.build():null;
    }

    public HTTPRewrite buildHTTPRewrite(){
            return this.hTTPRewrite!=null?this.hTTPRewrite.build():null;
    }

    public A withHTTPRewrite(HTTPRewrite hTTPRewrite){
            _visitables.remove(this.hTTPRewrite);
            if (hTTPRewrite!=null){ this.hTTPRewrite= new HTTPRewriteBuilder(hTTPRewrite); _visitables.add(this.hTTPRewrite);} return (A) this;
    }

    public Boolean hasHTTPRewrite(){
            return this.hTTPRewrite != null;
    }

    public A withNewHTTPRewrite(String authority,String uri){
            return (A)withHTTPRewrite(new HTTPRewrite(authority, uri));
    }

    public IstioSchemaFluent.HTTPRewriteNested withNewHTTPRewrite(){
            return new HTTPRewriteNestedImpl();
    }

    public IstioSchemaFluent.HTTPRewriteNested withNewHTTPRewriteLike(HTTPRewrite item){
            return new HTTPRewriteNestedImpl(item);
    }

    public IstioSchemaFluent.HTTPRewriteNested editHTTPRewrite(){
            return withNewHTTPRewriteLike(getHTTPRewrite());
    }

    public IstioSchemaFluent.HTTPRewriteNested editOrNewHTTPRewrite(){
            return withNewHTTPRewriteLike(getHTTPRewrite() != null ? getHTTPRewrite(): new HTTPRewriteBuilder().build());
    }

    public IstioSchemaFluent.HTTPRewriteNested editOrNewHTTPRewriteLike(HTTPRewrite item){
            return withNewHTTPRewriteLike(getHTTPRewrite() != null ? getHTTPRewrite(): item);
    }

    
/**
 * This method has been deprecated, please use method buildHTTPTimeout instead.
 */
@Deprecated public HTTPTimeout getHTTPTimeout(){
            return this.hTTPTimeout!=null?this.hTTPTimeout.build():null;
    }

    public HTTPTimeout buildHTTPTimeout(){
            return this.hTTPTimeout!=null?this.hTTPTimeout.build():null;
    }

    public A withHTTPTimeout(HTTPTimeout hTTPTimeout){
            _visitables.remove(this.hTTPTimeout);
            if (hTTPTimeout!=null){ this.hTTPTimeout= new HTTPTimeoutBuilder(hTTPTimeout); _visitables.add(this.hTTPTimeout);} return (A) this;
    }

    public Boolean hasHTTPTimeout(){
            return this.hTTPTimeout != null;
    }

    public A withNewHTTPTimeout(Object timeoutPolicy){
            return (A)withHTTPTimeout(new HTTPTimeout(timeoutPolicy));
    }

    public IstioSchemaFluent.HTTPTimeoutNested withNewHTTPTimeout(){
            return new HTTPTimeoutNestedImpl();
    }

    public IstioSchemaFluent.HTTPTimeoutNested withNewHTTPTimeoutLike(HTTPTimeout item){
            return new HTTPTimeoutNestedImpl(item);
    }

    public IstioSchemaFluent.HTTPTimeoutNested editHTTPTimeout(){
            return withNewHTTPTimeoutLike(getHTTPTimeout());
    }

    public IstioSchemaFluent.HTTPTimeoutNested editOrNewHTTPTimeout(){
            return withNewHTTPTimeoutLike(getHTTPTimeout() != null ? getHTTPTimeout(): new HTTPTimeoutBuilder().build());
    }

    public IstioSchemaFluent.HTTPTimeoutNested editOrNewHTTPTimeoutLike(HTTPTimeout item){
            return withNewHTTPTimeoutLike(getHTTPTimeout() != null ? getHTTPTimeout(): item);
    }

    
/**
 * This method has been deprecated, please use method buildIngressRule instead.
 */
@Deprecated public IngressRule getIngressRule(){
            return this.ingressRule!=null?this.ingressRule.build():null;
    }

    public IngressRule buildIngressRule(){
            return this.ingressRule!=null?this.ingressRule.build():null;
    }

    public A withIngressRule(IngressRule ingressRule){
            _visitables.remove(this.ingressRule);
            if (ingressRule!=null){ this.ingressRule= new IngressRuleBuilder(ingressRule); _visitables.add(this.ingressRule);} return (A) this;
    }

    public Boolean hasIngressRule(){
            return this.ingressRule != null;
    }

    public IstioSchemaFluent.IngressRuleNested withNewIngressRule(){
            return new IngressRuleNestedImpl();
    }

    public IstioSchemaFluent.IngressRuleNested withNewIngressRuleLike(IngressRule item){
            return new IngressRuleNestedImpl(item);
    }

    public IstioSchemaFluent.IngressRuleNested editIngressRule(){
            return withNewIngressRuleLike(getIngressRule());
    }

    public IstioSchemaFluent.IngressRuleNested editOrNewIngressRule(){
            return withNewIngressRuleLike(getIngressRule() != null ? getIngressRule(): new IngressRuleBuilder().build());
    }

    public IstioSchemaFluent.IngressRuleNested editOrNewIngressRuleLike(IngressRule item){
            return withNewIngressRuleLike(getIngressRule() != null ? getIngressRule(): item);
    }

    
/**
 * This method has been deprecated, please use method buildIstioService instead.
 */
@Deprecated public IstioService getIstioService(){
            return this.istioService!=null?this.istioService.build():null;
    }

    public IstioService buildIstioService(){
            return this.istioService!=null?this.istioService.build():null;
    }

    public A withIstioService(IstioService istioService){
            _visitables.remove(this.istioService);
            if (istioService!=null){ this.istioService= new IstioServiceBuilder(istioService); _visitables.add(this.istioService);} return (A) this;
    }

    public Boolean hasIstioService(){
            return this.istioService != null;
    }

    public IstioSchemaFluent.IstioServiceNested withNewIstioService(){
            return new IstioServiceNestedImpl();
    }

    public IstioSchemaFluent.IstioServiceNested withNewIstioServiceLike(IstioService item){
            return new IstioServiceNestedImpl(item);
    }

    public IstioSchemaFluent.IstioServiceNested editIstioService(){
            return withNewIstioServiceLike(getIstioService());
    }

    public IstioSchemaFluent.IstioServiceNested editOrNewIstioService(){
            return withNewIstioServiceLike(getIstioService() != null ? getIstioService(): new IstioServiceBuilder().build());
    }

    public IstioSchemaFluent.IstioServiceNested editOrNewIstioServiceLike(IstioService item){
            return withNewIstioServiceLike(getIstioService() != null ? getIstioService(): item);
    }

    
/**
 * This method has been deprecated, please use method buildL4FaultInjection instead.
 */
@Deprecated public L4FaultInjection getL4FaultInjection(){
            return this.l4FaultInjection!=null?this.l4FaultInjection.build():null;
    }

    public L4FaultInjection buildL4FaultInjection(){
            return this.l4FaultInjection!=null?this.l4FaultInjection.build():null;
    }

    public A withL4FaultInjection(L4FaultInjection l4FaultInjection){
            _visitables.remove(this.l4FaultInjection);
            if (l4FaultInjection!=null){ this.l4FaultInjection= new L4FaultInjectionBuilder(l4FaultInjection); _visitables.add(this.l4FaultInjection);} return (A) this;
    }

    public Boolean hasL4FaultInjection(){
            return this.l4FaultInjection != null;
    }

    public IstioSchemaFluent.L4FaultInjectionNested withNewL4FaultInjection(){
            return new L4FaultInjectionNestedImpl();
    }

    public IstioSchemaFluent.L4FaultInjectionNested withNewL4FaultInjectionLike(L4FaultInjection item){
            return new L4FaultInjectionNestedImpl(item);
    }

    public IstioSchemaFluent.L4FaultInjectionNested editL4FaultInjection(){
            return withNewL4FaultInjectionLike(getL4FaultInjection());
    }

    public IstioSchemaFluent.L4FaultInjectionNested editOrNewL4FaultInjection(){
            return withNewL4FaultInjectionLike(getL4FaultInjection() != null ? getL4FaultInjection(): new L4FaultInjectionBuilder().build());
    }

    public IstioSchemaFluent.L4FaultInjectionNested editOrNewL4FaultInjectionLike(L4FaultInjection item){
            return withNewL4FaultInjectionLike(getL4FaultInjection() != null ? getL4FaultInjection(): item);
    }

    
/**
 * This method has been deprecated, please use method buildL4MatchAttributes instead.
 */
@Deprecated public L4MatchAttributes getL4MatchAttributes(){
            return this.l4MatchAttributes!=null?this.l4MatchAttributes.build():null;
    }

    public L4MatchAttributes buildL4MatchAttributes(){
            return this.l4MatchAttributes!=null?this.l4MatchAttributes.build():null;
    }

    public A withL4MatchAttributes(L4MatchAttributes l4MatchAttributes){
            _visitables.remove(this.l4MatchAttributes);
            if (l4MatchAttributes!=null){ this.l4MatchAttributes= new L4MatchAttributesBuilder(l4MatchAttributes); _visitables.add(this.l4MatchAttributes);} return (A) this;
    }

    public Boolean hasL4MatchAttributes(){
            return this.l4MatchAttributes != null;
    }

    public IstioSchemaFluent.L4MatchAttributesNested withNewL4MatchAttributes(){
            return new L4MatchAttributesNestedImpl();
    }

    public IstioSchemaFluent.L4MatchAttributesNested withNewL4MatchAttributesLike(L4MatchAttributes item){
            return new L4MatchAttributesNestedImpl(item);
    }

    public IstioSchemaFluent.L4MatchAttributesNested editL4MatchAttributes(){
            return withNewL4MatchAttributesLike(getL4MatchAttributes());
    }

    public IstioSchemaFluent.L4MatchAttributesNested editOrNewL4MatchAttributes(){
            return withNewL4MatchAttributesLike(getL4MatchAttributes() != null ? getL4MatchAttributes(): new L4MatchAttributesBuilder().build());
    }

    public IstioSchemaFluent.L4MatchAttributesNested editOrNewL4MatchAttributesLike(L4MatchAttributes item){
            return withNewL4MatchAttributesLike(getL4MatchAttributes() != null ? getL4MatchAttributes(): item);
    }

    
/**
 * This method has been deprecated, please use method buildLoadBalancing instead.
 */
@Deprecated public LoadBalancing getLoadBalancing(){
            return this.loadBalancing!=null?this.loadBalancing.build():null;
    }

    public LoadBalancing buildLoadBalancing(){
            return this.loadBalancing!=null?this.loadBalancing.build():null;
    }

    public A withLoadBalancing(LoadBalancing loadBalancing){
            _visitables.remove(this.loadBalancing);
            if (loadBalancing!=null){ this.loadBalancing= new LoadBalancingBuilder(loadBalancing); _visitables.add(this.loadBalancing);} return (A) this;
    }

    public Boolean hasLoadBalancing(){
            return this.loadBalancing != null;
    }

    public A withNewLoadBalancing(Object lbPolicy){
            return (A)withLoadBalancing(new LoadBalancing(lbPolicy));
    }

    public IstioSchemaFluent.LoadBalancingNested withNewLoadBalancing(){
            return new LoadBalancingNestedImpl();
    }

    public IstioSchemaFluent.LoadBalancingNested withNewLoadBalancingLike(LoadBalancing item){
            return new LoadBalancingNestedImpl(item);
    }

    public IstioSchemaFluent.LoadBalancingNested editLoadBalancing(){
            return withNewLoadBalancingLike(getLoadBalancing());
    }

    public IstioSchemaFluent.LoadBalancingNested editOrNewLoadBalancing(){
            return withNewLoadBalancingLike(getLoadBalancing() != null ? getLoadBalancing(): new LoadBalancingBuilder().build());
    }

    public IstioSchemaFluent.LoadBalancingNested editOrNewLoadBalancingLike(LoadBalancing item){
            return withNewLoadBalancingLike(getLoadBalancing() != null ? getLoadBalancing(): item);
    }

    
/**
 * This method has been deprecated, please use method buildMatchCondition instead.
 */
@Deprecated public MatchCondition getMatchCondition(){
            return this.matchCondition!=null?this.matchCondition.build():null;
    }

    public MatchCondition buildMatchCondition(){
            return this.matchCondition!=null?this.matchCondition.build():null;
    }

    public A withMatchCondition(MatchCondition matchCondition){
            _visitables.remove(this.matchCondition);
            if (matchCondition!=null){ this.matchCondition= new MatchConditionBuilder(matchCondition); _visitables.add(this.matchCondition);} return (A) this;
    }

    public Boolean hasMatchCondition(){
            return this.matchCondition != null;
    }

    public IstioSchemaFluent.MatchConditionNested withNewMatchCondition(){
            return new MatchConditionNestedImpl();
    }

    public IstioSchemaFluent.MatchConditionNested withNewMatchConditionLike(MatchCondition item){
            return new MatchConditionNestedImpl(item);
    }

    public IstioSchemaFluent.MatchConditionNested editMatchCondition(){
            return withNewMatchConditionLike(getMatchCondition());
    }

    public IstioSchemaFluent.MatchConditionNested editOrNewMatchCondition(){
            return withNewMatchConditionLike(getMatchCondition() != null ? getMatchCondition(): new MatchConditionBuilder().build());
    }

    public IstioSchemaFluent.MatchConditionNested editOrNewMatchConditionLike(MatchCondition item){
            return withNewMatchConditionLike(getMatchCondition() != null ? getMatchCondition(): item);
    }

    
/**
 * This method has been deprecated, please use method buildMatchRequest instead.
 */
@Deprecated public MatchRequest getMatchRequest(){
            return this.matchRequest!=null?this.matchRequest.build():null;
    }

    public MatchRequest buildMatchRequest(){
            return this.matchRequest!=null?this.matchRequest.build():null;
    }

    public A withMatchRequest(MatchRequest matchRequest){
            _visitables.remove(this.matchRequest);
            if (matchRequest!=null){ this.matchRequest= new MatchRequestBuilder(matchRequest); _visitables.add(this.matchRequest);} return (A) this;
    }

    public Boolean hasMatchRequest(){
            return this.matchRequest != null;
    }

    public IstioSchemaFluent.MatchRequestNested withNewMatchRequest(){
            return new MatchRequestNestedImpl();
    }

    public IstioSchemaFluent.MatchRequestNested withNewMatchRequestLike(MatchRequest item){
            return new MatchRequestNestedImpl(item);
    }

    public IstioSchemaFluent.MatchRequestNested editMatchRequest(){
            return withNewMatchRequestLike(getMatchRequest());
    }

    public IstioSchemaFluent.MatchRequestNested editOrNewMatchRequest(){
            return withNewMatchRequestLike(getMatchRequest() != null ? getMatchRequest(): new MatchRequestBuilder().build());
    }

    public IstioSchemaFluent.MatchRequestNested editOrNewMatchRequestLike(MatchRequest item){
            return withNewMatchRequestLike(getMatchRequest() != null ? getMatchRequest(): item);
    }

    
/**
 * This method has been deprecated, please use method buildMeshConfig instead.
 */
@Deprecated public MeshConfig getMeshConfig(){
            return this.meshConfig!=null?this.meshConfig.build():null;
    }

    public MeshConfig buildMeshConfig(){
            return this.meshConfig!=null?this.meshConfig.build():null;
    }

    public A withMeshConfig(MeshConfig meshConfig){
            _visitables.remove(this.meshConfig);
            if (meshConfig!=null){ this.meshConfig= new MeshConfigBuilder(meshConfig); _visitables.add(this.meshConfig);} return (A) this;
    }

    public Boolean hasMeshConfig(){
            return this.meshConfig != null;
    }

    public IstioSchemaFluent.MeshConfigNested withNewMeshConfig(){
            return new MeshConfigNestedImpl();
    }

    public IstioSchemaFluent.MeshConfigNested withNewMeshConfigLike(MeshConfig item){
            return new MeshConfigNestedImpl(item);
    }

    public IstioSchemaFluent.MeshConfigNested editMeshConfig(){
            return withNewMeshConfigLike(getMeshConfig());
    }

    public IstioSchemaFluent.MeshConfigNested editOrNewMeshConfig(){
            return withNewMeshConfigLike(getMeshConfig() != null ? getMeshConfig(): new MeshConfigBuilder().build());
    }

    public IstioSchemaFluent.MeshConfigNested editOrNewMeshConfigLike(MeshConfig item){
            return withNewMeshConfigLike(getMeshConfig() != null ? getMeshConfig(): item);
    }

    
/**
 * This method has been deprecated, please use method buildProxyConfig instead.
 */
@Deprecated public ProxyConfig getProxyConfig(){
            return this.proxyConfig!=null?this.proxyConfig.build():null;
    }

    public ProxyConfig buildProxyConfig(){
            return this.proxyConfig!=null?this.proxyConfig.build():null;
    }

    public A withProxyConfig(ProxyConfig proxyConfig){
            _visitables.remove(this.proxyConfig);
            if (proxyConfig!=null){ this.proxyConfig= new ProxyConfigBuilder(proxyConfig); _visitables.add(this.proxyConfig);} return (A) this;
    }

    public Boolean hasProxyConfig(){
            return this.proxyConfig != null;
    }

    public IstioSchemaFluent.ProxyConfigNested withNewProxyConfig(){
            return new ProxyConfigNestedImpl();
    }

    public IstioSchemaFluent.ProxyConfigNested withNewProxyConfigLike(ProxyConfig item){
            return new ProxyConfigNestedImpl(item);
    }

    public IstioSchemaFluent.ProxyConfigNested editProxyConfig(){
            return withNewProxyConfigLike(getProxyConfig());
    }

    public IstioSchemaFluent.ProxyConfigNested editOrNewProxyConfig(){
            return withNewProxyConfigLike(getProxyConfig() != null ? getProxyConfig(): new ProxyConfigBuilder().build());
    }

    public IstioSchemaFluent.ProxyConfigNested editOrNewProxyConfigLike(ProxyConfig item){
            return withNewProxyConfigLike(getProxyConfig() != null ? getProxyConfig(): item);
    }

    
/**
 * This method has been deprecated, please use method buildQuotaParams instead.
 */
@Deprecated public QuotaParams getQuotaParams(){
            return this.quotaParams!=null?this.quotaParams.build():null;
    }

    public QuotaParams buildQuotaParams(){
            return this.quotaParams!=null?this.quotaParams.build():null;
    }

    public A withQuotaParams(QuotaParams quotaParams){
            _visitables.remove(this.quotaParams);
            if (quotaParams!=null){ this.quotaParams= new QuotaParamsBuilder(quotaParams); _visitables.add(this.quotaParams);} return (A) this;
    }

    public Boolean hasQuotaParams(){
            return this.quotaParams != null;
    }

    public A withNewQuotaParams(Long amount,Boolean bestEffort){
            return (A)withQuotaParams(new QuotaParams(amount, bestEffort));
    }

    public IstioSchemaFluent.QuotaParamsNested withNewQuotaParams(){
            return new QuotaParamsNestedImpl();
    }

    public IstioSchemaFluent.QuotaParamsNested withNewQuotaParamsLike(QuotaParams item){
            return new QuotaParamsNestedImpl(item);
    }

    public IstioSchemaFluent.QuotaParamsNested editQuotaParams(){
            return withNewQuotaParamsLike(getQuotaParams());
    }

    public IstioSchemaFluent.QuotaParamsNested editOrNewQuotaParams(){
            return withNewQuotaParamsLike(getQuotaParams() != null ? getQuotaParams(): new QuotaParamsBuilder().build());
    }

    public IstioSchemaFluent.QuotaParamsNested editOrNewQuotaParamsLike(QuotaParams item){
            return withNewQuotaParamsLike(getQuotaParams() != null ? getQuotaParams(): item);
    }

    
/**
 * This method has been deprecated, please use method buildQuotaResult instead.
 */
@Deprecated public QuotaResult getQuotaResult(){
            return this.quotaResult!=null?this.quotaResult.build():null;
    }

    public QuotaResult buildQuotaResult(){
            return this.quotaResult!=null?this.quotaResult.build():null;
    }

    public A withQuotaResult(QuotaResult quotaResult){
            _visitables.remove(this.quotaResult);
            if (quotaResult!=null){ this.quotaResult= new QuotaResultBuilder(quotaResult); _visitables.add(this.quotaResult);} return (A) this;
    }

    public Boolean hasQuotaResult(){
            return this.quotaResult != null;
    }

    public IstioSchemaFluent.QuotaResultNested withNewQuotaResult(){
            return new QuotaResultNestedImpl();
    }

    public IstioSchemaFluent.QuotaResultNested withNewQuotaResultLike(QuotaResult item){
            return new QuotaResultNestedImpl(item);
    }

    public IstioSchemaFluent.QuotaResultNested editQuotaResult(){
            return withNewQuotaResultLike(getQuotaResult());
    }

    public IstioSchemaFluent.QuotaResultNested editOrNewQuotaResult(){
            return withNewQuotaResultLike(getQuotaResult() != null ? getQuotaResult(): new QuotaResultBuilder().build());
    }

    public IstioSchemaFluent.QuotaResultNested editOrNewQuotaResultLike(QuotaResult item){
            return withNewQuotaResultLike(getQuotaResult() != null ? getQuotaResult(): item);
    }

    
/**
 * This method has been deprecated, please use method buildReferencedAttributes instead.
 */
@Deprecated public ReferencedAttributes getReferencedAttributes(){
            return this.referencedAttributes!=null?this.referencedAttributes.build():null;
    }

    public ReferencedAttributes buildReferencedAttributes(){
            return this.referencedAttributes!=null?this.referencedAttributes.build():null;
    }

    public A withReferencedAttributes(ReferencedAttributes referencedAttributes){
            _visitables.remove(this.referencedAttributes);
            if (referencedAttributes!=null){ this.referencedAttributes= new ReferencedAttributesBuilder(referencedAttributes); _visitables.add(this.referencedAttributes);} return (A) this;
    }

    public Boolean hasReferencedAttributes(){
            return this.referencedAttributes != null;
    }

    public IstioSchemaFluent.ReferencedAttributesNested withNewReferencedAttributes(){
            return new ReferencedAttributesNestedImpl();
    }

    public IstioSchemaFluent.ReferencedAttributesNested withNewReferencedAttributesLike(ReferencedAttributes item){
            return new ReferencedAttributesNestedImpl(item);
    }

    public IstioSchemaFluent.ReferencedAttributesNested editReferencedAttributes(){
            return withNewReferencedAttributesLike(getReferencedAttributes());
    }

    public IstioSchemaFluent.ReferencedAttributesNested editOrNewReferencedAttributes(){
            return withNewReferencedAttributesLike(getReferencedAttributes() != null ? getReferencedAttributes(): new ReferencedAttributesBuilder().build());
    }

    public IstioSchemaFluent.ReferencedAttributesNested editOrNewReferencedAttributesLike(ReferencedAttributes item){
            return withNewReferencedAttributesLike(getReferencedAttributes() != null ? getReferencedAttributes(): item);
    }

    
/**
 * This method has been deprecated, please use method buildReportRequest instead.
 */
@Deprecated public ReportRequest getReportRequest(){
            return this.reportRequest!=null?this.reportRequest.build():null;
    }

    public ReportRequest buildReportRequest(){
            return this.reportRequest!=null?this.reportRequest.build():null;
    }

    public A withReportRequest(ReportRequest reportRequest){
            _visitables.remove(this.reportRequest);
            if (reportRequest!=null){ this.reportRequest= new ReportRequestBuilder(reportRequest); _visitables.add(this.reportRequest);} return (A) this;
    }

    public Boolean hasReportRequest(){
            return this.reportRequest != null;
    }

    public IstioSchemaFluent.ReportRequestNested withNewReportRequest(){
            return new ReportRequestNestedImpl();
    }

    public IstioSchemaFluent.ReportRequestNested withNewReportRequestLike(ReportRequest item){
            return new ReportRequestNestedImpl(item);
    }

    public IstioSchemaFluent.ReportRequestNested editReportRequest(){
            return withNewReportRequestLike(getReportRequest());
    }

    public IstioSchemaFluent.ReportRequestNested editOrNewReportRequest(){
            return withNewReportRequestLike(getReportRequest() != null ? getReportRequest(): new ReportRequestBuilder().build());
    }

    public IstioSchemaFluent.ReportRequestNested editOrNewReportRequestLike(ReportRequest item){
            return withNewReportRequestLike(getReportRequest() != null ? getReportRequest(): item);
    }

    
/**
 * This method has been deprecated, please use method buildReportResponse instead.
 */
@Deprecated public ReportResponse getReportResponse(){
            return this.reportResponse!=null?this.reportResponse.build():null;
    }

    public ReportResponse buildReportResponse(){
            return this.reportResponse!=null?this.reportResponse.build():null;
    }

    public A withReportResponse(ReportResponse reportResponse){
            _visitables.remove(this.reportResponse);
            if (reportResponse!=null){ this.reportResponse= new ReportResponseBuilder(reportResponse); _visitables.add(this.reportResponse);} return (A) this;
    }

    public Boolean hasReportResponse(){
            return this.reportResponse != null;
    }

    public IstioSchemaFluent.ReportResponseNested withNewReportResponse(){
            return new ReportResponseNestedImpl();
    }

    public IstioSchemaFluent.ReportResponseNested withNewReportResponseLike(ReportResponse item){
            return new ReportResponseNestedImpl(item);
    }

    public IstioSchemaFluent.ReportResponseNested editReportResponse(){
            return withNewReportResponseLike(getReportResponse());
    }

    public IstioSchemaFluent.ReportResponseNested editOrNewReportResponse(){
            return withNewReportResponseLike(getReportResponse() != null ? getReportResponse(): new ReportResponseBuilder().build());
    }

    public IstioSchemaFluent.ReportResponseNested editOrNewReportResponseLike(ReportResponse item){
            return withNewReportResponseLike(getReportResponse() != null ? getReportResponse(): item);
    }

    
/**
 * This method has been deprecated, please use method buildRouteRule instead.
 */
@Deprecated public RouteRule getRouteRule(){
            return this.routeRule!=null?this.routeRule.build():null;
    }

    public RouteRule buildRouteRule(){
            return this.routeRule!=null?this.routeRule.build():null;
    }

    public A withRouteRule(RouteRule routeRule){
            _visitables.remove(this.routeRule);
            if (routeRule!=null){ this.routeRule= new RouteRuleBuilder(routeRule); _visitables.add(this.routeRule);} return (A) this;
    }

    public Boolean hasRouteRule(){
            return this.routeRule != null;
    }

    public IstioSchemaFluent.RouteRuleNested withNewRouteRule(){
            return new RouteRuleNestedImpl();
    }

    public IstioSchemaFluent.RouteRuleNested withNewRouteRuleLike(RouteRule item){
            return new RouteRuleNestedImpl(item);
    }

    public IstioSchemaFluent.RouteRuleNested editRouteRule(){
            return withNewRouteRuleLike(getRouteRule());
    }

    public IstioSchemaFluent.RouteRuleNested editOrNewRouteRule(){
            return withNewRouteRuleLike(getRouteRule() != null ? getRouteRule(): new RouteRuleBuilder().build());
    }

    public IstioSchemaFluent.RouteRuleNested editOrNewRouteRuleLike(RouteRule item){
            return withNewRouteRuleLike(getRouteRule() != null ? getRouteRule(): item);
    }

    
/**
 * This method has been deprecated, please use method buildServiceClass instead.
 */
@Deprecated public ServiceClass getServiceClass(){
            return this.serviceClass!=null?this.serviceClass.build():null;
    }

    public ServiceClass buildServiceClass(){
            return this.serviceClass!=null?this.serviceClass.build():null;
    }

    public A withServiceClass(ServiceClass serviceClass){
            _visitables.remove(this.serviceClass);
            if (serviceClass!=null){ this.serviceClass= new ServiceClassBuilder(serviceClass); _visitables.add(this.serviceClass);} return (A) this;
    }

    public Boolean hasServiceClass(){
            return this.serviceClass != null;
    }

    public IstioSchemaFluent.ServiceClassNested withNewServiceClass(){
            return new ServiceClassNestedImpl();
    }

    public IstioSchemaFluent.ServiceClassNested withNewServiceClassLike(ServiceClass item){
            return new ServiceClassNestedImpl(item);
    }

    public IstioSchemaFluent.ServiceClassNested editServiceClass(){
            return withNewServiceClassLike(getServiceClass());
    }

    public IstioSchemaFluent.ServiceClassNested editOrNewServiceClass(){
            return withNewServiceClassLike(getServiceClass() != null ? getServiceClass(): new ServiceClassBuilder().build());
    }

    public IstioSchemaFluent.ServiceClassNested editOrNewServiceClassLike(ServiceClass item){
            return withNewServiceClassLike(getServiceClass() != null ? getServiceClass(): item);
    }

    
/**
 * This method has been deprecated, please use method buildServicePlan instead.
 */
@Deprecated public ServicePlan getServicePlan(){
            return this.servicePlan!=null?this.servicePlan.build():null;
    }

    public ServicePlan buildServicePlan(){
            return this.servicePlan!=null?this.servicePlan.build():null;
    }

    public A withServicePlan(ServicePlan servicePlan){
            _visitables.remove(this.servicePlan);
            if (servicePlan!=null){ this.servicePlan= new ServicePlanBuilder(servicePlan); _visitables.add(this.servicePlan);} return (A) this;
    }

    public Boolean hasServicePlan(){
            return this.servicePlan != null;
    }

    public IstioSchemaFluent.ServicePlanNested withNewServicePlan(){
            return new ServicePlanNestedImpl();
    }

    public IstioSchemaFluent.ServicePlanNested withNewServicePlanLike(ServicePlan item){
            return new ServicePlanNestedImpl(item);
    }

    public IstioSchemaFluent.ServicePlanNested editServicePlan(){
            return withNewServicePlanLike(getServicePlan());
    }

    public IstioSchemaFluent.ServicePlanNested editOrNewServicePlan(){
            return withNewServicePlanLike(getServicePlan() != null ? getServicePlan(): new ServicePlanBuilder().build());
    }

    public IstioSchemaFluent.ServicePlanNested editOrNewServicePlanLike(ServicePlan item){
            return withNewServicePlanLike(getServicePlan() != null ? getServicePlan(): item);
    }

    
/**
 * This method has been deprecated, please use method buildStringMap instead.
 */
@Deprecated public StringMap getStringMap(){
            return this.stringMap!=null?this.stringMap.build():null;
    }

    public StringMap buildStringMap(){
            return this.stringMap!=null?this.stringMap.build():null;
    }

    public A withStringMap(StringMap stringMap){
            _visitables.remove(this.stringMap);
            if (stringMap!=null){ this.stringMap= new StringMapBuilder(stringMap); _visitables.add(this.stringMap);} return (A) this;
    }

    public Boolean hasStringMap(){
            return this.stringMap != null;
    }

    public IstioSchemaFluent.StringMapNested withNewStringMap(){
            return new StringMapNestedImpl();
    }

    public IstioSchemaFluent.StringMapNested withNewStringMapLike(StringMap item){
            return new StringMapNestedImpl(item);
    }

    public IstioSchemaFluent.StringMapNested editStringMap(){
            return withNewStringMapLike(getStringMap());
    }

    public IstioSchemaFluent.StringMapNested editOrNewStringMap(){
            return withNewStringMapLike(getStringMap() != null ? getStringMap(): new StringMapBuilder().build());
    }

    public IstioSchemaFluent.StringMapNested editOrNewStringMapLike(StringMap item){
            return withNewStringMapLike(getStringMap() != null ? getStringMap(): item);
    }

    
/**
 * This method has been deprecated, please use method buildStringMatch instead.
 */
@Deprecated public StringMatch getStringMatch(){
            return this.stringMatch!=null?this.stringMatch.build():null;
    }

    public StringMatch buildStringMatch(){
            return this.stringMatch!=null?this.stringMatch.build():null;
    }

    public A withStringMatch(StringMatch stringMatch){
            _visitables.remove(this.stringMatch);
            if (stringMatch!=null){ this.stringMatch= new StringMatchBuilder(stringMatch); _visitables.add(this.stringMatch);} return (A) this;
    }

    public Boolean hasStringMatch(){
            return this.stringMatch != null;
    }

    public A withNewStringMatch(Object matchType){
            return (A)withStringMatch(new StringMatch(matchType));
    }

    public IstioSchemaFluent.StringMatchNested withNewStringMatch(){
            return new StringMatchNestedImpl();
    }

    public IstioSchemaFluent.StringMatchNested withNewStringMatchLike(StringMatch item){
            return new StringMatchNestedImpl(item);
    }

    public IstioSchemaFluent.StringMatchNested editStringMatch(){
            return withNewStringMatchLike(getStringMatch());
    }

    public IstioSchemaFluent.StringMatchNested editOrNewStringMatch(){
            return withNewStringMatchLike(getStringMatch() != null ? getStringMatch(): new StringMatchBuilder().build());
    }

    public IstioSchemaFluent.StringMatchNested editOrNewStringMatchLike(StringMatch item){
            return withNewStringMatchLike(getStringMatch() != null ? getStringMatch(): item);
    }

    public boolean equals(Object o){
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;
            if (!super.equals(o)) return false;
            IstioSchemaFluentImpl that = (IstioSchemaFluentImpl) o;
            if (attributeValue != null ? !attributeValue.equals(that.attributeValue) :that.attributeValue != null) return false;
            if (attributes != null ? !attributes.equals(that.attributes) :that.attributes != null) return false;
            if (catalogEntry != null ? !catalogEntry.equals(that.catalogEntry) :that.catalogEntry != null) return false;
            if (catalogPlan != null ? !catalogPlan.equals(that.catalogPlan) :that.catalogPlan != null) return false;
            if (checkRequest != null ? !checkRequest.equals(that.checkRequest) :that.checkRequest != null) return false;
            if (checkResponse != null ? !checkResponse.equals(that.checkResponse) :that.checkResponse != null) return false;
            if (circuitBreaker != null ? !circuitBreaker.equals(that.circuitBreaker) :that.circuitBreaker != null) return false;
            if (compressedAttributes != null ? !compressedAttributes.equals(that.compressedAttributes) :that.compressedAttributes != null) return false;
            if (corsPolicy != null ? !corsPolicy.equals(that.corsPolicy) :that.corsPolicy != null) return false;
            if (deployment != null ? !deployment.equals(that.deployment) :that.deployment != null) return false;
            if (destinationPolicy != null ? !destinationPolicy.equals(that.destinationPolicy) :that.destinationPolicy != null) return false;
            if (destinationWeight != null ? !destinationWeight.equals(that.destinationWeight) :that.destinationWeight != null) return false;
            if (egressRule != null ? !egressRule.equals(that.egressRule) :that.egressRule != null) return false;
            if (hTTPFaultInjection != null ? !hTTPFaultInjection.equals(that.hTTPFaultInjection) :that.hTTPFaultInjection != null) return false;
            if (hTTPRedirect != null ? !hTTPRedirect.equals(that.hTTPRedirect) :that.hTTPRedirect != null) return false;
            if (hTTPRetry != null ? !hTTPRetry.equals(that.hTTPRetry) :that.hTTPRetry != null) return false;
            if (hTTPRewrite != null ? !hTTPRewrite.equals(that.hTTPRewrite) :that.hTTPRewrite != null) return false;
            if (hTTPTimeout != null ? !hTTPTimeout.equals(that.hTTPTimeout) :that.hTTPTimeout != null) return false;
            if (ingressRule != null ? !ingressRule.equals(that.ingressRule) :that.ingressRule != null) return false;
            if (istioService != null ? !istioService.equals(that.istioService) :that.istioService != null) return false;
            if (l4FaultInjection != null ? !l4FaultInjection.equals(that.l4FaultInjection) :that.l4FaultInjection != null) return false;
            if (l4MatchAttributes != null ? !l4MatchAttributes.equals(that.l4MatchAttributes) :that.l4MatchAttributes != null) return false;
            if (loadBalancing != null ? !loadBalancing.equals(that.loadBalancing) :that.loadBalancing != null) return false;
            if (matchCondition != null ? !matchCondition.equals(that.matchCondition) :that.matchCondition != null) return false;
            if (matchRequest != null ? !matchRequest.equals(that.matchRequest) :that.matchRequest != null) return false;
            if (meshConfig != null ? !meshConfig.equals(that.meshConfig) :that.meshConfig != null) return false;
            if (proxyConfig != null ? !proxyConfig.equals(that.proxyConfig) :that.proxyConfig != null) return false;
            if (quotaParams != null ? !quotaParams.equals(that.quotaParams) :that.quotaParams != null) return false;
            if (quotaResult != null ? !quotaResult.equals(that.quotaResult) :that.quotaResult != null) return false;
            if (referencedAttributes != null ? !referencedAttributes.equals(that.referencedAttributes) :that.referencedAttributes != null) return false;
            if (reportRequest != null ? !reportRequest.equals(that.reportRequest) :that.reportRequest != null) return false;
            if (reportResponse != null ? !reportResponse.equals(that.reportResponse) :that.reportResponse != null) return false;
            if (routeRule != null ? !routeRule.equals(that.routeRule) :that.routeRule != null) return false;
            if (serviceClass != null ? !serviceClass.equals(that.serviceClass) :that.serviceClass != null) return false;
            if (servicePlan != null ? !servicePlan.equals(that.servicePlan) :that.servicePlan != null) return false;
            if (stringMap != null ? !stringMap.equals(that.stringMap) :that.stringMap != null) return false;
            if (stringMatch != null ? !stringMatch.equals(that.stringMatch) :that.stringMatch != null) return false;
            return true;
    }


    public class AttributeValueNestedImpl extends AttributeValueFluentImpl> implements IstioSchemaFluent.AttributeValueNested,me.snowdrop.istio.api.builder.Nested{

            private final AttributeValueBuilder builder;
    
            AttributeValueNestedImpl(AttributeValue item){
                    this.builder = new AttributeValueBuilder(this, item);
            }
            AttributeValueNestedImpl(){
                    this.builder = new AttributeValueBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withAttributeValue(builder.build());
    }
    public N endAttributeValue(){
            return and();
    }

}
    public class AttributesNestedImpl extends AttributesFluentImpl> implements IstioSchemaFluent.AttributesNested,me.snowdrop.istio.api.builder.Nested{

            private final AttributesBuilder builder;
    
            AttributesNestedImpl(Attributes item){
                    this.builder = new AttributesBuilder(this, item);
            }
            AttributesNestedImpl(){
                    this.builder = new AttributesBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withAttributes(builder.build());
    }
    public N endAttributes(){
            return and();
    }

}
    public class CatalogEntryNestedImpl extends CatalogEntryFluentImpl> implements IstioSchemaFluent.CatalogEntryNested,me.snowdrop.istio.api.builder.Nested{

            private final CatalogEntryBuilder builder;
    
            CatalogEntryNestedImpl(CatalogEntry item){
                    this.builder = new CatalogEntryBuilder(this, item);
            }
            CatalogEntryNestedImpl(){
                    this.builder = new CatalogEntryBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withCatalogEntry(builder.build());
    }
    public N endCatalogEntry(){
            return and();
    }

}
    public class CatalogPlanNestedImpl extends CatalogPlanFluentImpl> implements IstioSchemaFluent.CatalogPlanNested,me.snowdrop.istio.api.builder.Nested{

            private final CatalogPlanBuilder builder;
    
            CatalogPlanNestedImpl(CatalogPlan item){
                    this.builder = new CatalogPlanBuilder(this, item);
            }
            CatalogPlanNestedImpl(){
                    this.builder = new CatalogPlanBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withCatalogPlan(builder.build());
    }
    public N endCatalogPlan(){
            return and();
    }

}
    public class CheckRequestNestedImpl extends CheckRequestFluentImpl> implements IstioSchemaFluent.CheckRequestNested,me.snowdrop.istio.api.builder.Nested{

            private final CheckRequestBuilder builder;
    
            CheckRequestNestedImpl(CheckRequest item){
                    this.builder = new CheckRequestBuilder(this, item);
            }
            CheckRequestNestedImpl(){
                    this.builder = new CheckRequestBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withCheckRequest(builder.build());
    }
    public N endCheckRequest(){
            return and();
    }

}
    public class CheckResponseNestedImpl extends CheckResponseFluentImpl> implements IstioSchemaFluent.CheckResponseNested,me.snowdrop.istio.api.builder.Nested{

            private final CheckResponseBuilder builder;
    
            CheckResponseNestedImpl(CheckResponse item){
                    this.builder = new CheckResponseBuilder(this, item);
            }
            CheckResponseNestedImpl(){
                    this.builder = new CheckResponseBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withCheckResponse(builder.build());
    }
    public N endCheckResponse(){
            return and();
    }

}
    public class CircuitBreakerNestedImpl extends CircuitBreakerFluentImpl> implements IstioSchemaFluent.CircuitBreakerNested,me.snowdrop.istio.api.builder.Nested{

            private final CircuitBreakerBuilder builder;
    
            CircuitBreakerNestedImpl(CircuitBreaker item){
                    this.builder = new CircuitBreakerBuilder(this, item);
            }
            CircuitBreakerNestedImpl(){
                    this.builder = new CircuitBreakerBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withCircuitBreaker(builder.build());
    }
    public N endCircuitBreaker(){
            return and();
    }

}
    public class CompressedAttributesNestedImpl extends CompressedAttributesFluentImpl> implements IstioSchemaFluent.CompressedAttributesNested,me.snowdrop.istio.api.builder.Nested{

            private final CompressedAttributesBuilder builder;
    
            CompressedAttributesNestedImpl(CompressedAttributes item){
                    this.builder = new CompressedAttributesBuilder(this, item);
            }
            CompressedAttributesNestedImpl(){
                    this.builder = new CompressedAttributesBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withCompressedAttributes(builder.build());
    }
    public N endCompressedAttributes(){
            return and();
    }

}
    public class CorsPolicyNestedImpl extends CorsPolicyFluentImpl> implements IstioSchemaFluent.CorsPolicyNested,me.snowdrop.istio.api.builder.Nested{

            private final CorsPolicyBuilder builder;
    
            CorsPolicyNestedImpl(CorsPolicy item){
                    this.builder = new CorsPolicyBuilder(this, item);
            }
            CorsPolicyNestedImpl(){
                    this.builder = new CorsPolicyBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withCorsPolicy(builder.build());
    }
    public N endCorsPolicy(){
            return and();
    }

}
    public class DeploymentNestedImpl extends DeploymentFluentImpl> implements IstioSchemaFluent.DeploymentNested,me.snowdrop.istio.api.builder.Nested{

            private final DeploymentBuilder builder;
    
            DeploymentNestedImpl(Deployment item){
                    this.builder = new DeploymentBuilder(this, item);
            }
            DeploymentNestedImpl(){
                    this.builder = new DeploymentBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withDeployment(builder.build());
    }
    public N endDeployment(){
            return and();
    }

}
    public class DestinationPolicyNestedImpl extends DestinationPolicyFluentImpl> implements IstioSchemaFluent.DestinationPolicyNested,me.snowdrop.istio.api.builder.Nested{

            private final DestinationPolicyBuilder builder;
    
            DestinationPolicyNestedImpl(DestinationPolicy item){
                    this.builder = new DestinationPolicyBuilder(this, item);
            }
            DestinationPolicyNestedImpl(){
                    this.builder = new DestinationPolicyBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withDestinationPolicy(builder.build());
    }
    public N endDestinationPolicy(){
            return and();
    }

}
    public class DestinationWeightNestedImpl extends DestinationWeightFluentImpl> implements IstioSchemaFluent.DestinationWeightNested,me.snowdrop.istio.api.builder.Nested{

            private final DestinationWeightBuilder builder;
    
            DestinationWeightNestedImpl(DestinationWeight item){
                    this.builder = new DestinationWeightBuilder(this, item);
            }
            DestinationWeightNestedImpl(){
                    this.builder = new DestinationWeightBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withDestinationWeight(builder.build());
    }
    public N endDestinationWeight(){
            return and();
    }

}
    public class EgressRuleNestedImpl extends EgressRuleFluentImpl> implements IstioSchemaFluent.EgressRuleNested,me.snowdrop.istio.api.builder.Nested{

            private final EgressRuleBuilder builder;
    
            EgressRuleNestedImpl(EgressRule item){
                    this.builder = new EgressRuleBuilder(this, item);
            }
            EgressRuleNestedImpl(){
                    this.builder = new EgressRuleBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withEgressRule(builder.build());
    }
    public N endEgressRule(){
            return and();
    }

}
    public class HTTPFaultInjectionNestedImpl extends HTTPFaultInjectionFluentImpl> implements IstioSchemaFluent.HTTPFaultInjectionNested,me.snowdrop.istio.api.builder.Nested{

            private final HTTPFaultInjectionBuilder builder;
    
            HTTPFaultInjectionNestedImpl(HTTPFaultInjection item){
                    this.builder = new HTTPFaultInjectionBuilder(this, item);
            }
            HTTPFaultInjectionNestedImpl(){
                    this.builder = new HTTPFaultInjectionBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withHTTPFaultInjection(builder.build());
    }
    public N endHTTPFaultInjection(){
            return and();
    }

}
    public class HTTPRedirectNestedImpl extends HTTPRedirectFluentImpl> implements IstioSchemaFluent.HTTPRedirectNested,me.snowdrop.istio.api.builder.Nested{

            private final HTTPRedirectBuilder builder;
    
            HTTPRedirectNestedImpl(HTTPRedirect item){
                    this.builder = new HTTPRedirectBuilder(this, item);
            }
            HTTPRedirectNestedImpl(){
                    this.builder = new HTTPRedirectBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withHTTPRedirect(builder.build());
    }
    public N endHTTPRedirect(){
            return and();
    }

}
    public class HTTPRetryNestedImpl extends HTTPRetryFluentImpl> implements IstioSchemaFluent.HTTPRetryNested,me.snowdrop.istio.api.builder.Nested{

            private final HTTPRetryBuilder builder;
    
            HTTPRetryNestedImpl(HTTPRetry item){
                    this.builder = new HTTPRetryBuilder(this, item);
            }
            HTTPRetryNestedImpl(){
                    this.builder = new HTTPRetryBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withHTTPRetry(builder.build());
    }
    public N endHTTPRetry(){
            return and();
    }

}
    public class HTTPRewriteNestedImpl extends HTTPRewriteFluentImpl> implements IstioSchemaFluent.HTTPRewriteNested,me.snowdrop.istio.api.builder.Nested{

            private final HTTPRewriteBuilder builder;
    
            HTTPRewriteNestedImpl(HTTPRewrite item){
                    this.builder = new HTTPRewriteBuilder(this, item);
            }
            HTTPRewriteNestedImpl(){
                    this.builder = new HTTPRewriteBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withHTTPRewrite(builder.build());
    }
    public N endHTTPRewrite(){
            return and();
    }

}
    public class HTTPTimeoutNestedImpl extends HTTPTimeoutFluentImpl> implements IstioSchemaFluent.HTTPTimeoutNested,me.snowdrop.istio.api.builder.Nested{

            private final HTTPTimeoutBuilder builder;
    
            HTTPTimeoutNestedImpl(HTTPTimeout item){
                    this.builder = new HTTPTimeoutBuilder(this, item);
            }
            HTTPTimeoutNestedImpl(){
                    this.builder = new HTTPTimeoutBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withHTTPTimeout(builder.build());
    }
    public N endHTTPTimeout(){
            return and();
    }

}
    public class IngressRuleNestedImpl extends IngressRuleFluentImpl> implements IstioSchemaFluent.IngressRuleNested,me.snowdrop.istio.api.builder.Nested{

            private final IngressRuleBuilder builder;
    
            IngressRuleNestedImpl(IngressRule item){
                    this.builder = new IngressRuleBuilder(this, item);
            }
            IngressRuleNestedImpl(){
                    this.builder = new IngressRuleBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withIngressRule(builder.build());
    }
    public N endIngressRule(){
            return and();
    }

}
    public class IstioServiceNestedImpl extends IstioServiceFluentImpl> implements IstioSchemaFluent.IstioServiceNested,me.snowdrop.istio.api.builder.Nested{

            private final IstioServiceBuilder builder;
    
            IstioServiceNestedImpl(IstioService item){
                    this.builder = new IstioServiceBuilder(this, item);
            }
            IstioServiceNestedImpl(){
                    this.builder = new IstioServiceBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withIstioService(builder.build());
    }
    public N endIstioService(){
            return and();
    }

}
    public class L4FaultInjectionNestedImpl extends L4FaultInjectionFluentImpl> implements IstioSchemaFluent.L4FaultInjectionNested,me.snowdrop.istio.api.builder.Nested{

            private final L4FaultInjectionBuilder builder;
    
            L4FaultInjectionNestedImpl(L4FaultInjection item){
                    this.builder = new L4FaultInjectionBuilder(this, item);
            }
            L4FaultInjectionNestedImpl(){
                    this.builder = new L4FaultInjectionBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withL4FaultInjection(builder.build());
    }
    public N endL4FaultInjection(){
            return and();
    }

}
    public class L4MatchAttributesNestedImpl extends L4MatchAttributesFluentImpl> implements IstioSchemaFluent.L4MatchAttributesNested,me.snowdrop.istio.api.builder.Nested{

            private final L4MatchAttributesBuilder builder;
    
            L4MatchAttributesNestedImpl(L4MatchAttributes item){
                    this.builder = new L4MatchAttributesBuilder(this, item);
            }
            L4MatchAttributesNestedImpl(){
                    this.builder = new L4MatchAttributesBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withL4MatchAttributes(builder.build());
    }
    public N endL4MatchAttributes(){
            return and();
    }

}
    public class LoadBalancingNestedImpl extends LoadBalancingFluentImpl> implements IstioSchemaFluent.LoadBalancingNested,me.snowdrop.istio.api.builder.Nested{

            private final LoadBalancingBuilder builder;
    
            LoadBalancingNestedImpl(LoadBalancing item){
                    this.builder = new LoadBalancingBuilder(this, item);
            }
            LoadBalancingNestedImpl(){
                    this.builder = new LoadBalancingBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withLoadBalancing(builder.build());
    }
    public N endLoadBalancing(){
            return and();
    }

}
    public class MatchConditionNestedImpl extends MatchConditionFluentImpl> implements IstioSchemaFluent.MatchConditionNested,me.snowdrop.istio.api.builder.Nested{

            private final MatchConditionBuilder builder;
    
            MatchConditionNestedImpl(MatchCondition item){
                    this.builder = new MatchConditionBuilder(this, item);
            }
            MatchConditionNestedImpl(){
                    this.builder = new MatchConditionBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withMatchCondition(builder.build());
    }
    public N endMatchCondition(){
            return and();
    }

}
    public class MatchRequestNestedImpl extends MatchRequestFluentImpl> implements IstioSchemaFluent.MatchRequestNested,me.snowdrop.istio.api.builder.Nested{

            private final MatchRequestBuilder builder;
    
            MatchRequestNestedImpl(MatchRequest item){
                    this.builder = new MatchRequestBuilder(this, item);
            }
            MatchRequestNestedImpl(){
                    this.builder = new MatchRequestBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withMatchRequest(builder.build());
    }
    public N endMatchRequest(){
            return and();
    }

}
    public class MeshConfigNestedImpl extends MeshConfigFluentImpl> implements IstioSchemaFluent.MeshConfigNested,me.snowdrop.istio.api.builder.Nested{

            private final MeshConfigBuilder builder;
    
            MeshConfigNestedImpl(MeshConfig item){
                    this.builder = new MeshConfigBuilder(this, item);
            }
            MeshConfigNestedImpl(){
                    this.builder = new MeshConfigBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withMeshConfig(builder.build());
    }
    public N endMeshConfig(){
            return and();
    }

}
    public class ProxyConfigNestedImpl extends ProxyConfigFluentImpl> implements IstioSchemaFluent.ProxyConfigNested,me.snowdrop.istio.api.builder.Nested{

            private final ProxyConfigBuilder builder;
    
            ProxyConfigNestedImpl(ProxyConfig item){
                    this.builder = new ProxyConfigBuilder(this, item);
            }
            ProxyConfigNestedImpl(){
                    this.builder = new ProxyConfigBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withProxyConfig(builder.build());
    }
    public N endProxyConfig(){
            return and();
    }

}
    public class QuotaParamsNestedImpl extends QuotaParamsFluentImpl> implements IstioSchemaFluent.QuotaParamsNested,me.snowdrop.istio.api.builder.Nested{

            private final QuotaParamsBuilder builder;
    
            QuotaParamsNestedImpl(QuotaParams item){
                    this.builder = new QuotaParamsBuilder(this, item);
            }
            QuotaParamsNestedImpl(){
                    this.builder = new QuotaParamsBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withQuotaParams(builder.build());
    }
    public N endQuotaParams(){
            return and();
    }

}
    public class QuotaResultNestedImpl extends QuotaResultFluentImpl> implements IstioSchemaFluent.QuotaResultNested,me.snowdrop.istio.api.builder.Nested{

            private final QuotaResultBuilder builder;
    
            QuotaResultNestedImpl(QuotaResult item){
                    this.builder = new QuotaResultBuilder(this, item);
            }
            QuotaResultNestedImpl(){
                    this.builder = new QuotaResultBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withQuotaResult(builder.build());
    }
    public N endQuotaResult(){
            return and();
    }

}
    public class ReferencedAttributesNestedImpl extends ReferencedAttributesFluentImpl> implements IstioSchemaFluent.ReferencedAttributesNested,me.snowdrop.istio.api.builder.Nested{

            private final ReferencedAttributesBuilder builder;
    
            ReferencedAttributesNestedImpl(ReferencedAttributes item){
                    this.builder = new ReferencedAttributesBuilder(this, item);
            }
            ReferencedAttributesNestedImpl(){
                    this.builder = new ReferencedAttributesBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withReferencedAttributes(builder.build());
    }
    public N endReferencedAttributes(){
            return and();
    }

}
    public class ReportRequestNestedImpl extends ReportRequestFluentImpl> implements IstioSchemaFluent.ReportRequestNested,me.snowdrop.istio.api.builder.Nested{

            private final ReportRequestBuilder builder;
    
            ReportRequestNestedImpl(ReportRequest item){
                    this.builder = new ReportRequestBuilder(this, item);
            }
            ReportRequestNestedImpl(){
                    this.builder = new ReportRequestBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withReportRequest(builder.build());
    }
    public N endReportRequest(){
            return and();
    }

}
    public class ReportResponseNestedImpl extends ReportResponseFluentImpl> implements IstioSchemaFluent.ReportResponseNested,me.snowdrop.istio.api.builder.Nested{

            private final ReportResponseBuilder builder;
    
            ReportResponseNestedImpl(ReportResponse item){
                    this.builder = new ReportResponseBuilder(this, item);
            }
            ReportResponseNestedImpl(){
                    this.builder = new ReportResponseBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withReportResponse(builder.build());
    }
    public N endReportResponse(){
            return and();
    }

}
    public class RouteRuleNestedImpl extends RouteRuleFluentImpl> implements IstioSchemaFluent.RouteRuleNested,me.snowdrop.istio.api.builder.Nested{

            private final RouteRuleBuilder builder;
    
            RouteRuleNestedImpl(RouteRule item){
                    this.builder = new RouteRuleBuilder(this, item);
            }
            RouteRuleNestedImpl(){
                    this.builder = new RouteRuleBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withRouteRule(builder.build());
    }
    public N endRouteRule(){
            return and();
    }

}
    public class ServiceClassNestedImpl extends ServiceClassFluentImpl> implements IstioSchemaFluent.ServiceClassNested,me.snowdrop.istio.api.builder.Nested{

            private final ServiceClassBuilder builder;
    
            ServiceClassNestedImpl(ServiceClass item){
                    this.builder = new ServiceClassBuilder(this, item);
            }
            ServiceClassNestedImpl(){
                    this.builder = new ServiceClassBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withServiceClass(builder.build());
    }
    public N endServiceClass(){
            return and();
    }

}
    public class ServicePlanNestedImpl extends ServicePlanFluentImpl> implements IstioSchemaFluent.ServicePlanNested,me.snowdrop.istio.api.builder.Nested{

            private final ServicePlanBuilder builder;
    
            ServicePlanNestedImpl(ServicePlan item){
                    this.builder = new ServicePlanBuilder(this, item);
            }
            ServicePlanNestedImpl(){
                    this.builder = new ServicePlanBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withServicePlan(builder.build());
    }
    public N endServicePlan(){
            return and();
    }

}
    public class StringMapNestedImpl extends StringMapFluentImpl> implements IstioSchemaFluent.StringMapNested,me.snowdrop.istio.api.builder.Nested{

            private final StringMapBuilder builder;
    
            StringMapNestedImpl(StringMap item){
                    this.builder = new StringMapBuilder(this, item);
            }
            StringMapNestedImpl(){
                    this.builder = new StringMapBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withStringMap(builder.build());
    }
    public N endStringMap(){
            return and();
    }

}
    public class StringMatchNestedImpl extends StringMatchFluentImpl> implements IstioSchemaFluent.StringMatchNested,me.snowdrop.istio.api.builder.Nested{

            private final StringMatchBuilder builder;
    
            StringMatchNestedImpl(StringMatch item){
                    this.builder = new StringMatchBuilder(this, item);
            }
            StringMatchNestedImpl(){
                    this.builder = new StringMatchBuilder(this);
            }
    
    public N and(){
            return (N) IstioSchemaFluentImpl.this.withStringMatch(builder.build());
    }
    public N endStringMatch(){
            return and();
    }

}


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy