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

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

package me.snowdrop.istio.api.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import me.snowdrop.istio.adapter.denier.Denier;
import me.snowdrop.istio.adapter.prometheus.Prometheus;
import me.snowdrop.istio.adapter.circonus.CirconusFluentImpl;
import me.snowdrop.istio.adapter.fluentd.FluentdBuilder;
import java.lang.String;
import me.snowdrop.istio.api.model.v1.networking.ServiceEntry;
import me.snowdrop.istio.adapter.opa.OpaBuilder;
import me.snowdrop.istio.api.model.v1.mixer.template.ListEntryFluentImpl;
import me.snowdrop.istio.adapter.circonus.CirconusBuilder;
import io.fabric8.kubernetes.api.builder.BaseFluent;
import me.snowdrop.istio.adapter.denier.DenierBuilder;
import me.snowdrop.istio.api.model.v1.routing.EgressRule;
import java.lang.Boolean;
import me.snowdrop.istio.api.model.v1.routing.RouteRuleBuilder;
import me.snowdrop.istio.adapter.kubernetesenv.Kubernetesenv;
import me.snowdrop.istio.api.model.v1.routing.RouteRuleFluentImpl;
import me.snowdrop.istio.adapter.prometheus.PrometheusBuilder;
import me.snowdrop.istio.api.model.v1.routing.EgressRuleFluentImpl;
import me.snowdrop.istio.api.model.v1.networking.GatewayFluentImpl;
import io.fabric8.kubernetes.api.model.ObjectMetaBuilder;
import me.snowdrop.istio.adapter.denier.DenierFluentImpl;
import me.snowdrop.istio.api.model.v1.mixer.template.ListEntryBuilder;
import me.snowdrop.istio.api.model.v1.mixer.template.TraceSpanFluentImpl;
import java.lang.Object;
import me.snowdrop.istio.api.model.v1.mixer.template.LogEntryFluentImpl;
import me.snowdrop.istio.api.model.v1.mixer.template.ApiKeyFluentImpl;
import me.snowdrop.istio.adapter.opa.OpaFluentImpl;
import me.snowdrop.istio.api.model.v1.mixer.template.ReportNothing;
import me.snowdrop.istio.api.model.v1.mixer.template.ApiKey;
import me.snowdrop.istio.api.model.v1.networking.ServiceEntryFluentImpl;
import me.snowdrop.istio.api.model.v1.networking.VirtualServiceBuilder;
import me.snowdrop.istio.api.model.v1.rbac.ServiceRoleFluentImpl;
import me.snowdrop.istio.api.model.v1.mixer.template.Authorization;
import me.snowdrop.istio.api.model.v1.mixer.template.ReportNothingBuilder;
import me.snowdrop.istio.api.model.v1.mixer.template.ReportNothingFluentImpl;
import java.lang.Deprecated;
import me.snowdrop.istio.api.model.v1.routing.DestinationPolicyBuilder;
import me.snowdrop.istio.api.model.v1.mixer.template.LogEntryBuilder;
import me.snowdrop.istio.api.model.v1.rbac.ServiceRoleBindingBuilder;
import me.snowdrop.istio.api.model.v1.mixer.template.MetricBuilder;
import me.snowdrop.istio.api.model.v1.mixer.template.ListEntry;
import io.fabric8.kubernetes.api.model.ObjectMeta;
import me.snowdrop.istio.api.model.v1.mixer.template.CheckNothingFluentImpl;
import io.fabric8.kubernetes.api.model.ObjectMetaFluentImpl;
import me.snowdrop.istio.api.model.v1.mixer.template.ApiKeyBuilder;
import me.snowdrop.istio.adapter.fluentd.Fluentd;
import me.snowdrop.istio.api.model.v1.mixer.template.QuotaFluentImpl;
import me.snowdrop.istio.api.model.v1.networking.DestinationRuleFluentImpl;
import me.snowdrop.istio.adapter.opa.Opa;
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
import io.fabric8.kubernetes.api.builder.VisitableBuilder;
import me.snowdrop.istio.api.model.v1.networking.DestinationRule;
import me.snowdrop.istio.api.model.v1.networking.GatewayBuilder;
import me.snowdrop.istio.api.model.v1.networking.ServiceEntryBuilder;
import me.snowdrop.istio.api.model.v1.mixer.template.TraceSpan;
import me.snowdrop.istio.adapter.solarwinds.Solarwinds;
import me.snowdrop.istio.api.model.v1.routing.DestinationPolicyFluentImpl;
import me.snowdrop.istio.api.model.v1.rbac.ServiceRoleBuilder;
import me.snowdrop.istio.adapter.prometheus.PrometheusFluentImpl;
import me.snowdrop.istio.api.model.v1.routing.RouteRule;
import me.snowdrop.istio.api.model.v1.networking.VirtualServiceFluentImpl;
import me.snowdrop.istio.api.model.v1.networking.VirtualService;
import me.snowdrop.istio.api.model.v1.mixer.template.QuotaBuilder;
import me.snowdrop.istio.adapter.solarwinds.SolarwindsBuilder;
import io.fabric8.kubernetes.api.builder.Nested;
import me.snowdrop.istio.api.model.v1.mixer.template.MetricFluentImpl;
import me.snowdrop.istio.adapter.kubernetesenv.KubernetesenvFluentImpl;
import me.snowdrop.istio.api.model.v1.rbac.ServiceRoleBindingFluentImpl;
import me.snowdrop.istio.api.model.v1.rbac.ServiceRole;
import me.snowdrop.istio.api.model.v1.networking.Gateway;
import me.snowdrop.istio.api.model.v1.networking.DestinationRuleBuilder;
import me.snowdrop.istio.api.model.v1.mixer.template.TraceSpanBuilder;
import me.snowdrop.istio.api.model.v1.mixer.template.CheckNothing;
import me.snowdrop.istio.api.model.v1.mixer.template.LogEntry;
import me.snowdrop.istio.adapter.solarwinds.SolarwindsFluentImpl;
import me.snowdrop.istio.adapter.kubernetesenv.KubernetesenvBuilder;
import me.snowdrop.istio.api.model.v1.mixer.template.AuthorizationBuilder;
import me.snowdrop.istio.api.model.v1.rbac.ServiceRoleBinding;
import me.snowdrop.istio.api.model.v1.mixer.template.AuthorizationFluentImpl;
import me.snowdrop.istio.api.model.v1.routing.DestinationPolicy;
import me.snowdrop.istio.api.model.v1.mixer.template.CheckNothingBuilder;
import me.snowdrop.istio.api.model.v1.mixer.template.Quota;
import me.snowdrop.istio.api.model.v1.routing.EgressRuleBuilder;
import me.snowdrop.istio.adapter.fluentd.FluentdFluentImpl;
import me.snowdrop.istio.adapter.circonus.Circonus;
import me.snowdrop.istio.api.model.v1.mixer.template.Metric;

public class IstioResourceFluentImpl> extends io.fabric8.kubernetes.api.builder.BaseFluent implements IstioResourceFluent{

    private ObjectMetaBuilder metadata;
    private String kind;
    private String apiVersion;
    private VisitableBuilder spec;

    public IstioResourceFluentImpl(){
    }
    public IstioResourceFluentImpl(IstioResource instance){
            this.withApiVersion(instance.getApiVersion()); 
            this.withKind(instance.getKind()); 
            this.withMetadata(instance.getMetadata()); 
            this.withSpec(instance.getSpec()); 
    }

    
/**
 * This method has been deprecated, please use method buildMetadata instead.
 */
@Deprecated public ObjectMeta getMetadata(){
            return this.metadata!=null?this.metadata.build():null;
    }

    public ObjectMeta buildMetadata(){
            return this.metadata!=null?this.metadata.build():null;
    }

    public A withMetadata(ObjectMeta metadata){
            _visitables.remove(this.metadata);
            if (metadata!=null){ this.metadata= new ObjectMetaBuilder(metadata); _visitables.add(this.metadata);} return (A) this;
    }

    public Boolean hasMetadata(){
            return this.metadata != null;
    }

    public IstioResourceFluent.MetadataNested withNewMetadata(){
            return new MetadataNestedImpl();
    }

    public IstioResourceFluent.MetadataNested withNewMetadataLike(ObjectMeta item){
            return new MetadataNestedImpl(item);
    }

    public IstioResourceFluent.MetadataNested editMetadata(){
            return withNewMetadataLike(getMetadata());
    }

    public IstioResourceFluent.MetadataNested editOrNewMetadata(){
            return withNewMetadataLike(getMetadata() != null ? getMetadata(): new ObjectMetaBuilder().build());
    }

    public IstioResourceFluent.MetadataNested editOrNewMetadataLike(ObjectMeta item){
            return withNewMetadataLike(getMetadata() != null ? getMetadata(): item);
    }

    public String getKind(){
            return this.kind;
    }

    public A withKind(String kind){
            this.kind=kind; return (A) this;
    }

    public Boolean hasKind(){
            return this.kind != null;
    }

    public String getApiVersion(){
            return this.apiVersion;
    }

    public A withApiVersion(String apiVersion){
            this.apiVersion=apiVersion; return (A) this;
    }

    public Boolean hasApiVersion(){
            return this.apiVersion != null;
    }

    
/**
 * This method has been deprecated, please use method buildSpec instead.
 */
@Deprecated public IstioSpec getSpec(){
            return this.spec!=null?this.spec.build():null;
    }

    public IstioSpec buildSpec(){
            return this.spec!=null?this.spec.build():null;
    }

    public A withSpec(IstioSpec spec){
            if (spec instanceof ListEntry){ this.spec= new ListEntryBuilder((ListEntry)spec); _visitables.add(this.spec);}
            if (spec instanceof EgressRule){ this.spec= new EgressRuleBuilder((EgressRule)spec); _visitables.add(this.spec);}
            if (spec instanceof ApiKey){ this.spec= new ApiKeyBuilder((ApiKey)spec); _visitables.add(this.spec);}
            if (spec instanceof Gateway){ this.spec= new GatewayBuilder((Gateway)spec); _visitables.add(this.spec);}
            if (spec instanceof Circonus){ this.spec= new CirconusBuilder((Circonus)spec); _visitables.add(this.spec);}
            if (spec instanceof TraceSpan){ this.spec= new TraceSpanBuilder((TraceSpan)spec); _visitables.add(this.spec);}
            if (spec instanceof ServiceRole){ this.spec= new ServiceRoleBuilder((ServiceRole)spec); _visitables.add(this.spec);}
            if (spec instanceof DestinationPolicy){ this.spec= new DestinationPolicyBuilder((DestinationPolicy)spec); _visitables.add(this.spec);}
            if (spec instanceof ServiceEntry){ this.spec= new ServiceEntryBuilder((ServiceEntry)spec); _visitables.add(this.spec);}
            if (spec instanceof DestinationRule){ this.spec= new DestinationRuleBuilder((DestinationRule)spec); _visitables.add(this.spec);}
            if (spec instanceof Prometheus){ this.spec= new PrometheusBuilder((Prometheus)spec); _visitables.add(this.spec);}
            if (spec instanceof IstioBaseSpec){ this.spec= new IstioBaseSpecBuilder((IstioBaseSpec)spec); _visitables.add(this.spec);}
            if (spec instanceof Metric){ this.spec= new MetricBuilder((Metric)spec); _visitables.add(this.spec);}
            if (spec instanceof ServiceRoleBinding){ this.spec= new ServiceRoleBindingBuilder((ServiceRoleBinding)spec); _visitables.add(this.spec);}
            if (spec instanceof CheckNothing){ this.spec= new CheckNothingBuilder((CheckNothing)spec); _visitables.add(this.spec);}
            if (spec instanceof Kubernetesenv){ this.spec= new KubernetesenvBuilder((Kubernetesenv)spec); _visitables.add(this.spec);}
            if (spec instanceof LogEntry){ this.spec= new LogEntryBuilder((LogEntry)spec); _visitables.add(this.spec);}
            if (spec instanceof Authorization){ this.spec= new AuthorizationBuilder((Authorization)spec); _visitables.add(this.spec);}
            if (spec instanceof Fluentd){ this.spec= new FluentdBuilder((Fluentd)spec); _visitables.add(this.spec);}
            if (spec instanceof ReportNothing){ this.spec= new ReportNothingBuilder((ReportNothing)spec); _visitables.add(this.spec);}
            if (spec instanceof Solarwinds){ this.spec= new SolarwindsBuilder((Solarwinds)spec); _visitables.add(this.spec);}
            if (spec instanceof RouteRule){ this.spec= new RouteRuleBuilder((RouteRule)spec); _visitables.add(this.spec);}
            if (spec instanceof VirtualService){ this.spec= new VirtualServiceBuilder((VirtualService)spec); _visitables.add(this.spec);}
            if (spec instanceof Opa){ this.spec= new OpaBuilder((Opa)spec); _visitables.add(this.spec);}
            if (spec instanceof Quota){ this.spec= new QuotaBuilder((Quota)spec); _visitables.add(this.spec);}
            if (spec instanceof Denier){ this.spec= new DenierBuilder((Denier)spec); _visitables.add(this.spec);}
            return (A) this;
    }

    public Boolean hasSpec(){
            return this.spec != null;
    }

    public A withListEntrySpec(ListEntry listEntrySpec){
            _visitables.remove(this.spec);
            if (listEntrySpec!=null){ this.spec= new ListEntryBuilder(listEntrySpec); _visitables.add(this.spec);} return (A) this;
    }

    public IstioResourceFluent.ListEntrySpecNested withNewListEntrySpec(){
            return new ListEntrySpecNestedImpl();
    }

    public IstioResourceFluent.ListEntrySpecNested withNewListEntrySpecLike(ListEntry item){
            return new ListEntrySpecNestedImpl(item);
    }

    public A withNewListEntrySpec(String name,String value){
            return (A)withListEntrySpec(new ListEntry(name, value));
    }

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

    public IstioResourceFluent.EgressRuleSpecNested withNewEgressRuleSpec(){
            return new EgressRuleSpecNestedImpl();
    }

    public IstioResourceFluent.EgressRuleSpecNested withNewEgressRuleSpecLike(EgressRule item){
            return new EgressRuleSpecNestedImpl(item);
    }

    public A withApiKeySpec(ApiKey apiKeySpec){
            _visitables.remove(this.spec);
            if (apiKeySpec!=null){ this.spec= new ApiKeyBuilder(apiKeySpec); _visitables.add(this.spec);} return (A) this;
    }

    public IstioResourceFluent.ApiKeySpecNested withNewApiKeySpec(){
            return new ApiKeySpecNestedImpl();
    }

    public IstioResourceFluent.ApiKeySpecNested withNewApiKeySpecLike(ApiKey item){
            return new ApiKeySpecNestedImpl(item);
    }

    public A withGatewaySpec(Gateway gatewaySpec){
            _visitables.remove(this.spec);
            if (gatewaySpec!=null){ this.spec= new GatewayBuilder(gatewaySpec); _visitables.add(this.spec);} return (A) this;
    }

    public IstioResourceFluent.GatewaySpecNested withNewGatewaySpec(){
            return new GatewaySpecNestedImpl();
    }

    public IstioResourceFluent.GatewaySpecNested withNewGatewaySpecLike(Gateway item){
            return new GatewaySpecNestedImpl(item);
    }

    public A withCirconusSpec(Circonus circonusSpec){
            _visitables.remove(this.spec);
            if (circonusSpec!=null){ this.spec= new CirconusBuilder(circonusSpec); _visitables.add(this.spec);} return (A) this;
    }

    public IstioResourceFluent.CirconusSpecNested withNewCirconusSpec(){
            return new CirconusSpecNestedImpl();
    }

    public IstioResourceFluent.CirconusSpecNested withNewCirconusSpecLike(Circonus item){
            return new CirconusSpecNestedImpl(item);
    }

    public A withTraceSpanSpec(TraceSpan traceSpanSpec){
            _visitables.remove(this.spec);
            if (traceSpanSpec!=null){ this.spec= new TraceSpanBuilder(traceSpanSpec); _visitables.add(this.spec);} return (A) this;
    }

    public IstioResourceFluent.TraceSpanSpecNested withNewTraceSpanSpec(){
            return new TraceSpanSpecNestedImpl();
    }

    public IstioResourceFluent.TraceSpanSpecNested withNewTraceSpanSpecLike(TraceSpan item){
            return new TraceSpanSpecNestedImpl(item);
    }

    public A withServiceRoleSpec(ServiceRole serviceRoleSpec){
            _visitables.remove(this.spec);
            if (serviceRoleSpec!=null){ this.spec= new ServiceRoleBuilder(serviceRoleSpec); _visitables.add(this.spec);} return (A) this;
    }

    public IstioResourceFluent.ServiceRoleSpecNested withNewServiceRoleSpec(){
            return new ServiceRoleSpecNestedImpl();
    }

    public IstioResourceFluent.ServiceRoleSpecNested withNewServiceRoleSpecLike(ServiceRole item){
            return new ServiceRoleSpecNestedImpl(item);
    }

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

    public IstioResourceFluent.DestinationPolicySpecNested withNewDestinationPolicySpec(){
            return new DestinationPolicySpecNestedImpl();
    }

    public IstioResourceFluent.DestinationPolicySpecNested withNewDestinationPolicySpecLike(DestinationPolicy item){
            return new DestinationPolicySpecNestedImpl(item);
    }

    public A withServiceEntrySpec(ServiceEntry serviceEntrySpec){
            _visitables.remove(this.spec);
            if (serviceEntrySpec!=null){ this.spec= new ServiceEntryBuilder(serviceEntrySpec); _visitables.add(this.spec);} return (A) this;
    }

    public IstioResourceFluent.ServiceEntrySpecNested withNewServiceEntrySpec(){
            return new ServiceEntrySpecNestedImpl();
    }

    public IstioResourceFluent.ServiceEntrySpecNested withNewServiceEntrySpecLike(ServiceEntry item){
            return new ServiceEntrySpecNestedImpl(item);
    }

    public A withDestinationRuleSpec(DestinationRule destinationRuleSpec){
            _visitables.remove(this.spec);
            if (destinationRuleSpec!=null){ this.spec= new DestinationRuleBuilder(destinationRuleSpec); _visitables.add(this.spec);} return (A) this;
    }

    public IstioResourceFluent.DestinationRuleSpecNested withNewDestinationRuleSpec(){
            return new DestinationRuleSpecNestedImpl();
    }

    public IstioResourceFluent.DestinationRuleSpecNested withNewDestinationRuleSpecLike(DestinationRule item){
            return new DestinationRuleSpecNestedImpl(item);
    }

    public A withPrometheusSpec(Prometheus prometheusSpec){
            _visitables.remove(this.spec);
            if (prometheusSpec!=null){ this.spec= new PrometheusBuilder(prometheusSpec); _visitables.add(this.spec);} return (A) this;
    }

    public IstioResourceFluent.PrometheusSpecNested withNewPrometheusSpec(){
            return new PrometheusSpecNestedImpl();
    }

    public IstioResourceFluent.PrometheusSpecNested withNewPrometheusSpecLike(Prometheus item){
            return new PrometheusSpecNestedImpl(item);
    }

    public A withIstioBaseSpec(IstioBaseSpec istioBaseSpec){
            _visitables.remove(this.spec);
            if (istioBaseSpec!=null){ this.spec= new IstioBaseSpecBuilder(istioBaseSpec); _visitables.add(this.spec);} return (A) this;
    }

    public IstioResourceFluent.IstioBaseSpecNested withNewIstioBaseSpec(){
            return new IstioBaseSpecNestedImpl();
    }

    public IstioResourceFluent.IstioBaseSpecNested withNewIstioBaseSpecLike(IstioBaseSpec item){
            return new IstioBaseSpecNestedImpl(item);
    }

    public A withMetricSpec(Metric metricSpec){
            _visitables.remove(this.spec);
            if (metricSpec!=null){ this.spec= new MetricBuilder(metricSpec); _visitables.add(this.spec);} return (A) this;
    }

    public IstioResourceFluent.MetricSpecNested withNewMetricSpec(){
            return new MetricSpecNestedImpl();
    }

    public IstioResourceFluent.MetricSpecNested withNewMetricSpecLike(Metric item){
            return new MetricSpecNestedImpl(item);
    }

    public A withServiceRoleBindingSpec(ServiceRoleBinding serviceRoleBindingSpec){
            _visitables.remove(this.spec);
            if (serviceRoleBindingSpec!=null){ this.spec= new ServiceRoleBindingBuilder(serviceRoleBindingSpec); _visitables.add(this.spec);} return (A) this;
    }

    public IstioResourceFluent.ServiceRoleBindingSpecNested withNewServiceRoleBindingSpec(){
            return new ServiceRoleBindingSpecNestedImpl();
    }

    public IstioResourceFluent.ServiceRoleBindingSpecNested withNewServiceRoleBindingSpecLike(ServiceRoleBinding item){
            return new ServiceRoleBindingSpecNestedImpl(item);
    }

    public A withCheckNothingSpec(CheckNothing checkNothingSpec){
            _visitables.remove(this.spec);
            if (checkNothingSpec!=null){ this.spec= new CheckNothingBuilder(checkNothingSpec); _visitables.add(this.spec);} return (A) this;
    }

    public IstioResourceFluent.CheckNothingSpecNested withNewCheckNothingSpec(){
            return new CheckNothingSpecNestedImpl();
    }

    public IstioResourceFluent.CheckNothingSpecNested withNewCheckNothingSpecLike(CheckNothing item){
            return new CheckNothingSpecNestedImpl(item);
    }

    public A withNewCheckNothingSpec(String name){
            return (A)withCheckNothingSpec(new CheckNothing(name));
    }

    public A withKubernetesenvSpec(Kubernetesenv kubernetesenvSpec){
            _visitables.remove(this.spec);
            if (kubernetesenvSpec!=null){ this.spec= new KubernetesenvBuilder(kubernetesenvSpec); _visitables.add(this.spec);} return (A) this;
    }

    public IstioResourceFluent.KubernetesenvSpecNested withNewKubernetesenvSpec(){
            return new KubernetesenvSpecNestedImpl();
    }

    public IstioResourceFluent.KubernetesenvSpecNested withNewKubernetesenvSpecLike(Kubernetesenv item){
            return new KubernetesenvSpecNestedImpl(item);
    }

    public A withLogEntrySpec(LogEntry logEntrySpec){
            _visitables.remove(this.spec);
            if (logEntrySpec!=null){ this.spec= new LogEntryBuilder(logEntrySpec); _visitables.add(this.spec);} return (A) this;
    }

    public IstioResourceFluent.LogEntrySpecNested withNewLogEntrySpec(){
            return new LogEntrySpecNestedImpl();
    }

    public IstioResourceFluent.LogEntrySpecNested withNewLogEntrySpecLike(LogEntry item){
            return new LogEntrySpecNestedImpl(item);
    }

    public A withAuthorizationSpec(Authorization authorizationSpec){
            _visitables.remove(this.spec);
            if (authorizationSpec!=null){ this.spec= new AuthorizationBuilder(authorizationSpec); _visitables.add(this.spec);} return (A) this;
    }

    public IstioResourceFluent.AuthorizationSpecNested withNewAuthorizationSpec(){
            return new AuthorizationSpecNestedImpl();
    }

    public IstioResourceFluent.AuthorizationSpecNested withNewAuthorizationSpecLike(Authorization item){
            return new AuthorizationSpecNestedImpl(item);
    }

    public A withFluentdSpec(Fluentd fluentdSpec){
            _visitables.remove(this.spec);
            if (fluentdSpec!=null){ this.spec= new FluentdBuilder(fluentdSpec); _visitables.add(this.spec);} return (A) this;
    }

    public IstioResourceFluent.FluentdSpecNested withNewFluentdSpec(){
            return new FluentdSpecNestedImpl();
    }

    public IstioResourceFluent.FluentdSpecNested withNewFluentdSpecLike(Fluentd item){
            return new FluentdSpecNestedImpl(item);
    }

    public A withNewFluentdSpec(String address){
            return (A)withFluentdSpec(new Fluentd(address));
    }

    public A withReportNothingSpec(ReportNothing reportNothingSpec){
            _visitables.remove(this.spec);
            if (reportNothingSpec!=null){ this.spec= new ReportNothingBuilder(reportNothingSpec); _visitables.add(this.spec);} return (A) this;
    }

    public IstioResourceFluent.ReportNothingSpecNested withNewReportNothingSpec(){
            return new ReportNothingSpecNestedImpl();
    }

    public IstioResourceFluent.ReportNothingSpecNested withNewReportNothingSpecLike(ReportNothing item){
            return new ReportNothingSpecNestedImpl(item);
    }

    public A withNewReportNothingSpec(String name){
            return (A)withReportNothingSpec(new ReportNothing(name));
    }

    public A withSolarwindsSpec(Solarwinds solarwindsSpec){
            _visitables.remove(this.spec);
            if (solarwindsSpec!=null){ this.spec= new SolarwindsBuilder(solarwindsSpec); _visitables.add(this.spec);} return (A) this;
    }

    public IstioResourceFluent.SolarwindsSpecNested withNewSolarwindsSpec(){
            return new SolarwindsSpecNestedImpl();
    }

    public IstioResourceFluent.SolarwindsSpecNested withNewSolarwindsSpecLike(Solarwinds item){
            return new SolarwindsSpecNestedImpl(item);
    }

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

    public IstioResourceFluent.RouteRuleSpecNested withNewRouteRuleSpec(){
            return new RouteRuleSpecNestedImpl();
    }

    public IstioResourceFluent.RouteRuleSpecNested withNewRouteRuleSpecLike(RouteRule item){
            return new RouteRuleSpecNestedImpl(item);
    }

    public A withVirtualServiceSpec(VirtualService virtualServiceSpec){
            _visitables.remove(this.spec);
            if (virtualServiceSpec!=null){ this.spec= new VirtualServiceBuilder(virtualServiceSpec); _visitables.add(this.spec);} return (A) this;
    }

    public IstioResourceFluent.VirtualServiceSpecNested withNewVirtualServiceSpec(){
            return new VirtualServiceSpecNestedImpl();
    }

    public IstioResourceFluent.VirtualServiceSpecNested withNewVirtualServiceSpecLike(VirtualService item){
            return new VirtualServiceSpecNestedImpl(item);
    }

    public A withOpaSpec(Opa opaSpec){
            _visitables.remove(this.spec);
            if (opaSpec!=null){ this.spec= new OpaBuilder(opaSpec); _visitables.add(this.spec);} return (A) this;
    }

    public IstioResourceFluent.OpaSpecNested withNewOpaSpec(){
            return new OpaSpecNestedImpl();
    }

    public IstioResourceFluent.OpaSpecNested withNewOpaSpecLike(Opa item){
            return new OpaSpecNestedImpl(item);
    }

    public A withQuotaSpec(Quota quotaSpec){
            _visitables.remove(this.spec);
            if (quotaSpec!=null){ this.spec= new QuotaBuilder(quotaSpec); _visitables.add(this.spec);} return (A) this;
    }

    public IstioResourceFluent.QuotaSpecNested withNewQuotaSpec(){
            return new QuotaSpecNestedImpl();
    }

    public IstioResourceFluent.QuotaSpecNested withNewQuotaSpecLike(Quota item){
            return new QuotaSpecNestedImpl(item);
    }

    public A withDenierSpec(Denier denierSpec){
            _visitables.remove(this.spec);
            if (denierSpec!=null){ this.spec= new DenierBuilder(denierSpec); _visitables.add(this.spec);} return (A) this;
    }

    public IstioResourceFluent.DenierSpecNested withNewDenierSpec(){
            return new DenierSpecNestedImpl();
    }

    public IstioResourceFluent.DenierSpecNested withNewDenierSpecLike(Denier item){
            return new DenierSpecNestedImpl(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;
            IstioResourceFluentImpl that = (IstioResourceFluentImpl) o;
            if (metadata != null ? !metadata.equals(that.metadata) :that.metadata != null) return false;
            if (kind != null ? !kind.equals(that.kind) :that.kind != null) return false;
            if (apiVersion != null ? !apiVersion.equals(that.apiVersion) :that.apiVersion != null) return false;
            if (spec != null ? !spec.equals(that.spec) :that.spec != null) return false;
            return true;
    }


    public class MetadataNestedImpl extends ObjectMetaFluentImpl> implements IstioResourceFluent.MetadataNested,io.fabric8.kubernetes.api.builder.Nested{

            private final ObjectMetaBuilder builder;
    
            MetadataNestedImpl(ObjectMeta item){
                    this.builder = new ObjectMetaBuilder(this, item);
            }
            MetadataNestedImpl(){
                    this.builder = new ObjectMetaBuilder(this);
            }
    
    public N and(){
            return (N) IstioResourceFluentImpl.this.withMetadata(builder.build());
    }
    public N endMetadata(){
            return and();
    }

}
    public class ListEntrySpecNestedImpl extends ListEntryFluentImpl> implements IstioResourceFluent.ListEntrySpecNested,io.fabric8.kubernetes.api.builder.Nested{

            private final ListEntryBuilder builder;
    
            ListEntrySpecNestedImpl(ListEntry item){
                    this.builder = new ListEntryBuilder(this, item);
            }
            ListEntrySpecNestedImpl(){
                    this.builder = new ListEntryBuilder(this);
            }
    
    public N and(){
            return (N) IstioResourceFluentImpl.this.withListEntrySpec(builder.build());
    }
    public N endListEntrySpec(){
            return and();
    }

}
    public class EgressRuleSpecNestedImpl extends EgressRuleFluentImpl> implements IstioResourceFluent.EgressRuleSpecNested,io.fabric8.kubernetes.api.builder.Nested{

            private final EgressRuleBuilder builder;
    
            EgressRuleSpecNestedImpl(EgressRule item){
                    this.builder = new EgressRuleBuilder(this, item);
            }
            EgressRuleSpecNestedImpl(){
                    this.builder = new EgressRuleBuilder(this);
            }
    
    public N and(){
            return (N) IstioResourceFluentImpl.this.withEgressRuleSpec(builder.build());
    }
    public N endEgressRuleSpec(){
            return and();
    }

}
    public class ApiKeySpecNestedImpl extends ApiKeyFluentImpl> implements IstioResourceFluent.ApiKeySpecNested,io.fabric8.kubernetes.api.builder.Nested{

            private final ApiKeyBuilder builder;
    
            ApiKeySpecNestedImpl(ApiKey item){
                    this.builder = new ApiKeyBuilder(this, item);
            }
            ApiKeySpecNestedImpl(){
                    this.builder = new ApiKeyBuilder(this);
            }
    
    public N and(){
            return (N) IstioResourceFluentImpl.this.withApiKeySpec(builder.build());
    }
    public N endApiKeySpec(){
            return and();
    }

}
    public class GatewaySpecNestedImpl extends GatewayFluentImpl> implements IstioResourceFluent.GatewaySpecNested,io.fabric8.kubernetes.api.builder.Nested{

            private final GatewayBuilder builder;
    
            GatewaySpecNestedImpl(Gateway item){
                    this.builder = new GatewayBuilder(this, item);
            }
            GatewaySpecNestedImpl(){
                    this.builder = new GatewayBuilder(this);
            }
    
    public N and(){
            return (N) IstioResourceFluentImpl.this.withGatewaySpec(builder.build());
    }
    public N endGatewaySpec(){
            return and();
    }

}
    public class CirconusSpecNestedImpl extends CirconusFluentImpl> implements IstioResourceFluent.CirconusSpecNested,io.fabric8.kubernetes.api.builder.Nested{

            private final CirconusBuilder builder;
    
            CirconusSpecNestedImpl(Circonus item){
                    this.builder = new CirconusBuilder(this, item);
            }
            CirconusSpecNestedImpl(){
                    this.builder = new CirconusBuilder(this);
            }
    
    public N and(){
            return (N) IstioResourceFluentImpl.this.withCirconusSpec(builder.build());
    }
    public N endCirconusSpec(){
            return and();
    }

}
    public class TraceSpanSpecNestedImpl extends TraceSpanFluentImpl> implements IstioResourceFluent.TraceSpanSpecNested,io.fabric8.kubernetes.api.builder.Nested{

            private final TraceSpanBuilder builder;
    
            TraceSpanSpecNestedImpl(TraceSpan item){
                    this.builder = new TraceSpanBuilder(this, item);
            }
            TraceSpanSpecNestedImpl(){
                    this.builder = new TraceSpanBuilder(this);
            }
    
    public N and(){
            return (N) IstioResourceFluentImpl.this.withTraceSpanSpec(builder.build());
    }
    public N endTraceSpanSpec(){
            return and();
    }

}
    public class ServiceRoleSpecNestedImpl extends ServiceRoleFluentImpl> implements IstioResourceFluent.ServiceRoleSpecNested,io.fabric8.kubernetes.api.builder.Nested{

            private final ServiceRoleBuilder builder;
    
            ServiceRoleSpecNestedImpl(ServiceRole item){
                    this.builder = new ServiceRoleBuilder(this, item);
            }
            ServiceRoleSpecNestedImpl(){
                    this.builder = new ServiceRoleBuilder(this);
            }
    
    public N and(){
            return (N) IstioResourceFluentImpl.this.withServiceRoleSpec(builder.build());
    }
    public N endServiceRoleSpec(){
            return and();
    }

}
    public class DestinationPolicySpecNestedImpl extends DestinationPolicyFluentImpl> implements IstioResourceFluent.DestinationPolicySpecNested,io.fabric8.kubernetes.api.builder.Nested{

            private final DestinationPolicyBuilder builder;
    
            DestinationPolicySpecNestedImpl(DestinationPolicy item){
                    this.builder = new DestinationPolicyBuilder(this, item);
            }
            DestinationPolicySpecNestedImpl(){
                    this.builder = new DestinationPolicyBuilder(this);
            }
    
    public N and(){
            return (N) IstioResourceFluentImpl.this.withDestinationPolicySpec(builder.build());
    }
    public N endDestinationPolicySpec(){
            return and();
    }

}
    public class ServiceEntrySpecNestedImpl extends ServiceEntryFluentImpl> implements IstioResourceFluent.ServiceEntrySpecNested,io.fabric8.kubernetes.api.builder.Nested{

            private final ServiceEntryBuilder builder;
    
            ServiceEntrySpecNestedImpl(ServiceEntry item){
                    this.builder = new ServiceEntryBuilder(this, item);
            }
            ServiceEntrySpecNestedImpl(){
                    this.builder = new ServiceEntryBuilder(this);
            }
    
    public N and(){
            return (N) IstioResourceFluentImpl.this.withServiceEntrySpec(builder.build());
    }
    public N endServiceEntrySpec(){
            return and();
    }

}
    public class DestinationRuleSpecNestedImpl extends DestinationRuleFluentImpl> implements IstioResourceFluent.DestinationRuleSpecNested,io.fabric8.kubernetes.api.builder.Nested{

            private final DestinationRuleBuilder builder;
    
            DestinationRuleSpecNestedImpl(DestinationRule item){
                    this.builder = new DestinationRuleBuilder(this, item);
            }
            DestinationRuleSpecNestedImpl(){
                    this.builder = new DestinationRuleBuilder(this);
            }
    
    public N and(){
            return (N) IstioResourceFluentImpl.this.withDestinationRuleSpec(builder.build());
    }
    public N endDestinationRuleSpec(){
            return and();
    }

}
    public class PrometheusSpecNestedImpl extends PrometheusFluentImpl> implements IstioResourceFluent.PrometheusSpecNested,io.fabric8.kubernetes.api.builder.Nested{

            private final PrometheusBuilder builder;
    
            PrometheusSpecNestedImpl(Prometheus item){
                    this.builder = new PrometheusBuilder(this, item);
            }
            PrometheusSpecNestedImpl(){
                    this.builder = new PrometheusBuilder(this);
            }
    
    public N and(){
            return (N) IstioResourceFluentImpl.this.withPrometheusSpec(builder.build());
    }
    public N endPrometheusSpec(){
            return and();
    }

}
    public class IstioBaseSpecNestedImpl extends IstioBaseSpecFluentImpl> implements IstioResourceFluent.IstioBaseSpecNested,io.fabric8.kubernetes.api.builder.Nested{

            private final IstioBaseSpecBuilder builder;
    
            IstioBaseSpecNestedImpl(IstioBaseSpec item){
                    this.builder = new IstioBaseSpecBuilder(this, item);
            }
            IstioBaseSpecNestedImpl(){
                    this.builder = new IstioBaseSpecBuilder(this);
            }
    
    public N and(){
            return (N) IstioResourceFluentImpl.this.withIstioBaseSpec(builder.build());
    }
    public N endIstioBaseSpec(){
            return and();
    }

}
    public class MetricSpecNestedImpl extends MetricFluentImpl> implements IstioResourceFluent.MetricSpecNested,io.fabric8.kubernetes.api.builder.Nested{

            private final MetricBuilder builder;
    
            MetricSpecNestedImpl(Metric item){
                    this.builder = new MetricBuilder(this, item);
            }
            MetricSpecNestedImpl(){
                    this.builder = new MetricBuilder(this);
            }
    
    public N and(){
            return (N) IstioResourceFluentImpl.this.withMetricSpec(builder.build());
    }
    public N endMetricSpec(){
            return and();
    }

}
    public class ServiceRoleBindingSpecNestedImpl extends ServiceRoleBindingFluentImpl> implements IstioResourceFluent.ServiceRoleBindingSpecNested,io.fabric8.kubernetes.api.builder.Nested{

            private final ServiceRoleBindingBuilder builder;
    
            ServiceRoleBindingSpecNestedImpl(ServiceRoleBinding item){
                    this.builder = new ServiceRoleBindingBuilder(this, item);
            }
            ServiceRoleBindingSpecNestedImpl(){
                    this.builder = new ServiceRoleBindingBuilder(this);
            }
    
    public N and(){
            return (N) IstioResourceFluentImpl.this.withServiceRoleBindingSpec(builder.build());
    }
    public N endServiceRoleBindingSpec(){
            return and();
    }

}
    public class CheckNothingSpecNestedImpl extends CheckNothingFluentImpl> implements IstioResourceFluent.CheckNothingSpecNested,io.fabric8.kubernetes.api.builder.Nested{

            private final CheckNothingBuilder builder;
    
            CheckNothingSpecNestedImpl(CheckNothing item){
                    this.builder = new CheckNothingBuilder(this, item);
            }
            CheckNothingSpecNestedImpl(){
                    this.builder = new CheckNothingBuilder(this);
            }
    
    public N and(){
            return (N) IstioResourceFluentImpl.this.withCheckNothingSpec(builder.build());
    }
    public N endCheckNothingSpec(){
            return and();
    }

}
    public class KubernetesenvSpecNestedImpl extends KubernetesenvFluentImpl> implements IstioResourceFluent.KubernetesenvSpecNested,io.fabric8.kubernetes.api.builder.Nested{

            private final KubernetesenvBuilder builder;
    
            KubernetesenvSpecNestedImpl(Kubernetesenv item){
                    this.builder = new KubernetesenvBuilder(this, item);
            }
            KubernetesenvSpecNestedImpl(){
                    this.builder = new KubernetesenvBuilder(this);
            }
    
    public N and(){
            return (N) IstioResourceFluentImpl.this.withKubernetesenvSpec(builder.build());
    }
    public N endKubernetesenvSpec(){
            return and();
    }

}
    public class LogEntrySpecNestedImpl extends LogEntryFluentImpl> implements IstioResourceFluent.LogEntrySpecNested,io.fabric8.kubernetes.api.builder.Nested{

            private final LogEntryBuilder builder;
    
            LogEntrySpecNestedImpl(LogEntry item){
                    this.builder = new LogEntryBuilder(this, item);
            }
            LogEntrySpecNestedImpl(){
                    this.builder = new LogEntryBuilder(this);
            }
    
    public N and(){
            return (N) IstioResourceFluentImpl.this.withLogEntrySpec(builder.build());
    }
    public N endLogEntrySpec(){
            return and();
    }

}
    public class AuthorizationSpecNestedImpl extends AuthorizationFluentImpl> implements IstioResourceFluent.AuthorizationSpecNested,io.fabric8.kubernetes.api.builder.Nested{

            private final AuthorizationBuilder builder;
    
            AuthorizationSpecNestedImpl(Authorization item){
                    this.builder = new AuthorizationBuilder(this, item);
            }
            AuthorizationSpecNestedImpl(){
                    this.builder = new AuthorizationBuilder(this);
            }
    
    public N and(){
            return (N) IstioResourceFluentImpl.this.withAuthorizationSpec(builder.build());
    }
    public N endAuthorizationSpec(){
            return and();
    }

}
    public class FluentdSpecNestedImpl extends FluentdFluentImpl> implements IstioResourceFluent.FluentdSpecNested,io.fabric8.kubernetes.api.builder.Nested{

            private final FluentdBuilder builder;
    
            FluentdSpecNestedImpl(Fluentd item){
                    this.builder = new FluentdBuilder(this, item);
            }
            FluentdSpecNestedImpl(){
                    this.builder = new FluentdBuilder(this);
            }
    
    public N and(){
            return (N) IstioResourceFluentImpl.this.withFluentdSpec(builder.build());
    }
    public N endFluentdSpec(){
            return and();
    }

}
    public class ReportNothingSpecNestedImpl extends ReportNothingFluentImpl> implements IstioResourceFluent.ReportNothingSpecNested,io.fabric8.kubernetes.api.builder.Nested{

            private final ReportNothingBuilder builder;
    
            ReportNothingSpecNestedImpl(ReportNothing item){
                    this.builder = new ReportNothingBuilder(this, item);
            }
            ReportNothingSpecNestedImpl(){
                    this.builder = new ReportNothingBuilder(this);
            }
    
    public N and(){
            return (N) IstioResourceFluentImpl.this.withReportNothingSpec(builder.build());
    }
    public N endReportNothingSpec(){
            return and();
    }

}
    public class SolarwindsSpecNestedImpl extends SolarwindsFluentImpl> implements IstioResourceFluent.SolarwindsSpecNested,io.fabric8.kubernetes.api.builder.Nested{

            private final SolarwindsBuilder builder;
    
            SolarwindsSpecNestedImpl(Solarwinds item){
                    this.builder = new SolarwindsBuilder(this, item);
            }
            SolarwindsSpecNestedImpl(){
                    this.builder = new SolarwindsBuilder(this);
            }
    
    public N and(){
            return (N) IstioResourceFluentImpl.this.withSolarwindsSpec(builder.build());
    }
    public N endSolarwindsSpec(){
            return and();
    }

}
    public class RouteRuleSpecNestedImpl extends RouteRuleFluentImpl> implements IstioResourceFluent.RouteRuleSpecNested,io.fabric8.kubernetes.api.builder.Nested{

            private final RouteRuleBuilder builder;
    
            RouteRuleSpecNestedImpl(RouteRule item){
                    this.builder = new RouteRuleBuilder(this, item);
            }
            RouteRuleSpecNestedImpl(){
                    this.builder = new RouteRuleBuilder(this);
            }
    
    public N and(){
            return (N) IstioResourceFluentImpl.this.withRouteRuleSpec(builder.build());
    }
    public N endRouteRuleSpec(){
            return and();
    }

}
    public class VirtualServiceSpecNestedImpl extends VirtualServiceFluentImpl> implements IstioResourceFluent.VirtualServiceSpecNested,io.fabric8.kubernetes.api.builder.Nested{

            private final VirtualServiceBuilder builder;
    
            VirtualServiceSpecNestedImpl(VirtualService item){
                    this.builder = new VirtualServiceBuilder(this, item);
            }
            VirtualServiceSpecNestedImpl(){
                    this.builder = new VirtualServiceBuilder(this);
            }
    
    public N and(){
            return (N) IstioResourceFluentImpl.this.withVirtualServiceSpec(builder.build());
    }
    public N endVirtualServiceSpec(){
            return and();
    }

}
    public class OpaSpecNestedImpl extends OpaFluentImpl> implements IstioResourceFluent.OpaSpecNested,io.fabric8.kubernetes.api.builder.Nested{

            private final OpaBuilder builder;
    
            OpaSpecNestedImpl(Opa item){
                    this.builder = new OpaBuilder(this, item);
            }
            OpaSpecNestedImpl(){
                    this.builder = new OpaBuilder(this);
            }
    
    public N and(){
            return (N) IstioResourceFluentImpl.this.withOpaSpec(builder.build());
    }
    public N endOpaSpec(){
            return and();
    }

}
    public class QuotaSpecNestedImpl extends QuotaFluentImpl> implements IstioResourceFluent.QuotaSpecNested,io.fabric8.kubernetes.api.builder.Nested{

            private final QuotaBuilder builder;
    
            QuotaSpecNestedImpl(Quota item){
                    this.builder = new QuotaBuilder(this, item);
            }
            QuotaSpecNestedImpl(){
                    this.builder = new QuotaBuilder(this);
            }
    
    public N and(){
            return (N) IstioResourceFluentImpl.this.withQuotaSpec(builder.build());
    }
    public N endQuotaSpec(){
            return and();
    }

}
    public class DenierSpecNestedImpl extends DenierFluentImpl> implements IstioResourceFluent.DenierSpecNested,io.fabric8.kubernetes.api.builder.Nested{

            private final DenierBuilder builder;
    
            DenierSpecNestedImpl(Denier item){
                    this.builder = new DenierBuilder(this, item);
            }
            DenierSpecNestedImpl(){
                    this.builder = new DenierBuilder(this);
            }
    
    public N and(){
            return (N) IstioResourceFluentImpl.this.withDenierSpec(builder.build());
    }
    public N endDenierSpec(){
            return and();
    }

}


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy