package com.sequenceiq.cloudbreak.api.model; import java.util.HashMap; import java.util.Map; import javax.validation.constraints.Digits; import javax.validation.constraints.Max; import javax.validation.constraints.Min; import javax.validation.constraints.NotNull; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.sequenceiq.cloudbreak.doc.ModelDescriptions.InstanceGroupModelDescription; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @ApiModel("InstanceGroup") @JsonIgnoreProperties(ignoreUnknown = true) public abstract class InstanceGroupBase implements JsonEntity { @ApiModelProperty(value = InstanceGroupModelDescription.TEMPLATE_ID) private Long templateId; @ApiModelProperty(value = InstanceGroupModelDescription.SECURITY_GROUP_ID) private Long securityGroupId; @Min(value = 0, message = "The node count has to be greater or equals than 0") @Max(value = 100000, message = "The node count has to be less than 100000") @Digits(fraction = 0, integer = 10, message = "The node count has to be a number") @ApiModelProperty(value = InstanceGroupModelDescription.NODE_COUNT, required = true) private int nodeCount; @NotNull @ApiModelProperty(value = InstanceGroupModelDescription.INSTANCE_GROUP_NAME, required = true) private String group; @ApiModelProperty(InstanceGroupModelDescription.INSTANCE_GROUP_TYPE) private InstanceGroupType type = InstanceGroupType.CORE; @ApiModelProperty(value = InstanceGroupModelDescription.PARAMETERS) private Map<String, Object> parameters = new HashMap<>(); public InstanceGroupBase() { } public Long getTemplateId() { return templateId; } public void setTemplateId(Long templateId) { this.templateId = templateId; } public int getNodeCount() { return nodeCount; } public void setNodeCount(int nodeCount) { this.nodeCount = nodeCount; } public String getGroup() { return group; } public void setGroup(String group) { this.group = group; } public Long getSecurityGroupId() { return securityGroupId; } public void setSecurityGroupId(Long securityGroupId) { this.securityGroupId = securityGroupId; } public InstanceGroupType getType() { return type; } public void setType(InstanceGroupType type) { this.type = type; } public Map<String, Object> getParameters() { return parameters; } public void setParameters(Map<String, Object> parameters) { this.parameters = parameters; } }