package com.sequenceiq.cloudbreak.api.model;
import javax.validation.constraints.Pattern;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.sequenceiq.cloudbreak.doc.ModelDescriptions;
import io.swagger.annotations.ApiModelProperty;
@JsonIgnoreProperties(ignoreUnknown = true)
public abstract class SecurityRuleBase implements JsonEntity {
@ApiModelProperty(value = ModelDescriptions.SecurityRuleModelDescription.SUBNET, required = true)
@Pattern(regexp =
"^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\/([0-9]|[1-2][0-9]|3[0-2]))$",
message = "The subnet field should contain a valid CIDR definition.")
private String subnet;
@ApiModelProperty(value = ModelDescriptions.SecurityRuleModelDescription.PORTS, required = true)
@Pattern(regexp = "^[1-9][0-9]{0,4}(-[1-9][0-9]{0,4}){0,1}(,[1-9][0-9]{0,4}(-[1-9][0-9]{0,4}){0,1})*$",
message = "The ports field should contain a comma separated list of port numbers, for example: 8080,9090,5555")
private String ports;
@ApiModelProperty(value = ModelDescriptions.SecurityRuleModelDescription.PROTOCOL, required = true)
private String protocol;
@ApiModelProperty(value = ModelDescriptions.SecurityRuleModelDescription.MODIFIABLE)
private boolean modifiable;
public SecurityRuleBase() {
}
public SecurityRuleBase(String subnet) {
this.subnet = subnet;
}
public String getSubnet() {
return subnet;
}
public void setSubnet(String subnet) {
this.subnet = subnet;
}
public String getPorts() {
return ports;
}
public void setPorts(String ports) {
this.ports = ports;
}
public String getProtocol() {
return protocol;
}
public void setProtocol(String protocol) {
this.protocol = protocol;
}
public boolean isModifiable() {
return modifiable;
}
public void setModifiable(boolean modifiable) {
this.modifiable = modifiable;
}
}