package com.sequenceiq.cloudbreak.api.model;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import com.fasterxml.jackson.annotation.JsonRawValue;
import com.fasterxml.jackson.databind.JsonNode;
import com.sequenceiq.cloudbreak.doc.ModelDescriptions;
import com.sequenceiq.cloudbreak.doc.ModelDescriptions.BlueprintModelDescription;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ApiModel
public abstract class BlueprintBase implements JsonEntity {
@Size(max = 100, min = 1, message = "The length of the blueprint's name has to be in range of 1 to 100")
@NotNull
@ApiModelProperty(value = ModelDescriptions.NAME, required = true)
private String name;
@ApiModelProperty(value = BlueprintModelDescription.AMBARI_BLUEPRINT)
private String ambariBlueprint;
@Size(max = 1000)
@ApiModelProperty(value = ModelDescriptions.DESCRIPTION)
private String description;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@JsonRawValue
public String getAmbariBlueprint() {
return ambariBlueprint;
}
public void setAmbariBlueprint(JsonNode ambariBlueprint) {
this.ambariBlueprint = ambariBlueprint.toString();
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}