package com.sequenceiq.cloudbreak.api.model;
import java.util.HashSet;
import java.util.Set;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.sequenceiq.cloudbreak.common.type.RdsType;
import com.sequenceiq.cloudbreak.doc.ModelDescriptions;
import io.swagger.annotations.ApiModelProperty;
@JsonIgnoreProperties(ignoreUnknown = true)
public abstract class RDSConfigJson {
@NotNull
@ApiModelProperty(value = ModelDescriptions.RDSConfig.NAME, required = true)
private String name;
@NotNull
@Pattern(regexp = "^jdbc:postgresql://[-\\w\\.]*:?\\d*/?\\w*", message = "Connection URL is not valid")
@ApiModelProperty(value = ModelDescriptions.RDSConfig.CONNECTION_URL, required = true)
private String connectionURL;
@NotNull
@ApiModelProperty(value = ModelDescriptions.RDSConfig.DB_TYPE, required = true)
private RDSDatabase databaseType;
@NotNull
@ApiModelProperty(value = ModelDescriptions.RDSConfig.HDPVERSION, required = true)
private String hdpVersion;
@ApiModelProperty(value = ModelDescriptions.RDSConfig.VALIDATED)
private boolean validated = true;
@ApiModelProperty(value = ModelDescriptions.RDSConfig.RDSTYPE)
private RdsType type = RdsType.HIVE;
@ApiModelProperty(value = ModelDescriptions.RDSConfig.RDS_PROPERTIES)
private Set<RdsConfigPropertyJson> properties = new HashSet<>();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getConnectionURL() {
return connectionURL;
}
public void setConnectionURL(String connectionURL) {
this.connectionURL = connectionURL;
}
public RDSDatabase getDatabaseType() {
return databaseType;
}
public void setDatabaseType(RDSDatabase databaseType) {
this.databaseType = databaseType;
}
public String getHdpVersion() {
return hdpVersion;
}
public void setHdpVersion(String hdpVersion) {
this.hdpVersion = hdpVersion;
}
public boolean isValidated() {
return validated;
}
public void setValidated(boolean validated) {
this.validated = validated;
}
public RdsType getType() {
return type;
}
public void setType(RdsType type) {
this.type = type;
}
public Set<RdsConfigPropertyJson> getProperties() {
return properties;
}
public void setProperties(Set<RdsConfigPropertyJson> properties) {
this.properties = properties;
}
}