package io.cattle.platform.core.addon;
import io.github.ibuildthecloud.gdapi.annotation.Field;
import io.github.ibuildthecloud.gdapi.annotation.Type;
@Type(list = false)
public class PortRule {
String hostname;
String path;
Integer sourcePort;
Integer priority;
Protocol protocol;
String serviceId;
Integer targetPort;
String backendName;
String selector;
public enum Protocol {
http,
tcp,
https,
tls,
sni,
udp
}
public PortRule() {
}
public PortRule(String hostname, String path, Integer sourcePort, Integer priority, Protocol protocol,
String serviceId,
Integer targetPort, String backendName, String selector) {
super();
this.hostname = hostname;
this.path = path;
this.sourcePort = sourcePort;
this.priority = priority;
this.protocol = protocol;
this.serviceId = serviceId;
this.targetPort = targetPort;
this.backendName = backendName;
this.selector = selector;
}
@Field(nullable = true)
public String getHostname() {
return hostname;
}
public void setHostname(String hostname) {
this.hostname = hostname;
}
@Field(nullable = true)
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
@Field(min = 1, max = 65535, required = true)
public Integer getSourcePort() {
return sourcePort;
}
public void setSourcePort(Integer port) {
this.sourcePort = port;
}
@Field(min = 1, nullable = true)
public Integer getPriority() {
return priority;
}
public void setPriority(Integer priority) {
this.priority = priority;
}
@Field(defaultValue = "http")
public Protocol getProtocol() {
return protocol;
}
public void setProtocol(Protocol protocol) {
this.protocol = protocol;
}
@Field(typeString = "reference[service]", nullable = true)
public String getServiceId() {
return serviceId;
}
public void setServiceId(String serviceId) {
this.serviceId = serviceId;
}
@Field(min = 1, max = 65535, nullable = true)
public Integer getTargetPort() {
return targetPort;
}
public void setTargetPort(Integer targetPort) {
this.targetPort = targetPort;
}
@Field(nullable = true)
public String getBackendName() {
return backendName;
}
public void setBackendName(String backendName) {
this.backendName = backendName;
}
@Field(nullable = true)
public String getSelector() {
return selector;
}
public void setSelector(String selector) {
this.selector = selector;
}
}