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

io.fabric8.knative.internal.networking.v1alpha1.IngressSpec Maven / Gradle / Ivy

The newest version!

package io.fabric8.knative.internal.networking.v1alpha1;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.fabric8.kubernetes.api.builder.Editable;
import io.fabric8.kubernetes.api.model.Container;
import io.fabric8.kubernetes.api.model.ContainerPort;
import io.fabric8.kubernetes.api.model.EnvVar;
import io.fabric8.kubernetes.api.model.IntOrString;
import io.fabric8.kubernetes.api.model.KubernetesResource;
import io.fabric8.kubernetes.api.model.LabelSelector;
import io.fabric8.kubernetes.api.model.LocalObjectReference;
import io.fabric8.kubernetes.api.model.ObjectMeta;
import io.fabric8.kubernetes.api.model.ObjectReference;
import io.fabric8.kubernetes.api.model.PersistentVolumeClaim;
import io.fabric8.kubernetes.api.model.PodTemplateSpec;
import io.fabric8.kubernetes.api.model.ResourceRequirements;
import io.fabric8.kubernetes.api.model.Volume;
import io.fabric8.kubernetes.api.model.VolumeMount;
import io.sundr.builder.annotations.Buildable;
import io.sundr.builder.annotations.BuildableReference;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 * IngressSpec describes the Ingress the user wishes to exist.


In general this follows the same shape as K8s Ingress. Some notable differences: - Backends now can have namespace: - Traffic can be split across multiple backends. - Timeout & Retry can be configured. - Headers can be appended. */ @JsonDeserialize(using = com.fasterxml.jackson.databind.JsonDeserializer.None.class) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonPropertyOrder({ "httpOption", "rules", "tls" }) @ToString @EqualsAndHashCode @Accessors(prefix = { "_", "" }) @Buildable(editableEnabled = false, validationEnabled = false, generateBuilderPackage = false, lazyCollectionInitEnabled = false, builderPackage = "io.fabric8.kubernetes.api.builder", refs = { @BuildableReference(ObjectMeta.class), @BuildableReference(LabelSelector.class), @BuildableReference(Container.class), @BuildableReference(PodTemplateSpec.class), @BuildableReference(ResourceRequirements.class), @BuildableReference(IntOrString.class), @BuildableReference(ObjectReference.class), @BuildableReference(LocalObjectReference.class), @BuildableReference(PersistentVolumeClaim.class), @BuildableReference(EnvVar.class), @BuildableReference(ContainerPort.class), @BuildableReference(Volume.class), @BuildableReference(VolumeMount.class) }) @Generated("io.fabric8.kubernetes.schema.generator.model.ModelGenerator") public class IngressSpec implements Editable, KubernetesResource { @JsonProperty("httpOption") private String httpOption; @JsonProperty("rules") @JsonInclude(JsonInclude.Include.NON_EMPTY) private List rules = new ArrayList<>(); @JsonProperty("tls") @JsonInclude(JsonInclude.Include.NON_EMPTY) private List tls = new ArrayList<>(); @JsonIgnore private Map additionalProperties = new LinkedHashMap(); /** * No args constructor for use in serialization */ public IngressSpec() { } public IngressSpec(String httpOption, List rules, List tls) { super(); this.httpOption = httpOption; this.rules = rules; this.tls = tls; } /** * HTTPOption is the option of HTTP. It has the following two values: `HTTPOptionEnabled`, `HTTPOptionRedirected` */ @JsonProperty("httpOption") public String getHttpOption() { return httpOption; } /** * HTTPOption is the option of HTTP. It has the following two values: `HTTPOptionEnabled`, `HTTPOptionRedirected` */ @JsonProperty("httpOption") public void setHttpOption(String httpOption) { this.httpOption = httpOption; } /** * A list of host rules used to configure the Ingress. */ @JsonProperty("rules") @JsonInclude(JsonInclude.Include.NON_EMPTY) public List getRules() { return rules; } /** * A list of host rules used to configure the Ingress. */ @JsonProperty("rules") public void setRules(List rules) { this.rules = rules; } /** * TLS configuration. Currently Ingress only supports a single TLS port: 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI. */ @JsonProperty("tls") @JsonInclude(JsonInclude.Include.NON_EMPTY) public List getTls() { return tls; } /** * TLS configuration. Currently Ingress only supports a single TLS port: 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI. */ @JsonProperty("tls") public void setTls(List tls) { this.tls = tls; } @JsonIgnore public IngressSpecBuilder edit() { return new IngressSpecBuilder(this); } @JsonIgnore public IngressSpecBuilder toBuilder() { return edit(); } @JsonAnyGetter public Map getAdditionalProperties() { return this.additionalProperties; } @JsonAnySetter public void setAdditionalProperty(String name, Object value) { this.additionalProperties.put(name, value); } public void setAdditionalProperties(Map additionalProperties) { this.additionalProperties = additionalProperties; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy