/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.model.vpool;
import java.util.HashSet;
import java.util.Set;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import com.emc.storageos.model.valid.Length;
import com.emc.storageos.model.valid.Range;
@XmlRootElement(name = "compute_vpool_create")
public class ComputeVirtualPoolCreateParam {
private String name;
private String description;
private String systemType;
private Set<String> varrays;
private Integer minProcessors;
private Integer maxProcessors;
private Integer minTotalCores;
private Integer maxTotalCores;
private Integer minTotalThreads;
private Integer maxTotalThreads;
private Integer minCpuSpeed;
private Integer maxCpuSpeed;
private Integer minMemory;
private Integer maxMemory;
private Integer minNics;
private Integer maxNics;
private Integer minHbas;
private Integer maxHbas;
private Boolean useMatchedElements = true;
private Set<String> serviceProfileTemplates;
private String id;
public ComputeVirtualPoolCreateParam() {
}
/**
* The name for the virtual pool.
*
*/
@XmlElement(required = false)
@Length(min = 2, max = 128)
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
/**
* The description for the virtual pool.
*
*/
@XmlElement(name = "description")
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
/**
* Supported System Types
*
*/
@XmlElement(name = "system_type")
public String getSystemType() {
return systemType;
}
public void setSystemType(String systemType) {
this.systemType = systemType;
}
@XmlElement(name = "min_processors")
@Range(min = 1, max = 65535)
public Integer getMinProcessors() {
return minProcessors;
}
public void setMinProcessors(Integer minProcessors) {
this.minProcessors = minProcessors;
}
@XmlElement(name = "max_processors")
@Range(min = 1, max = 65535)
public Integer getMaxProcessors() {
return maxProcessors;
}
public void setMaxProcessors(Integer maxProcessors) {
this.maxProcessors = maxProcessors;
}
@XmlElement(name = "min_total_cores")
@Range(min = 1, max = 65535)
public Integer getMinTotalCores() {
return minTotalCores;
}
public void setMinTotalCores(Integer minTotalCores) {
this.minTotalCores = minTotalCores;
}
@XmlElement(name = "max_total_cores")
@Range(min = 1, max = 65535)
public Integer getMaxTotalCores() {
return maxTotalCores;
}
public void setMaxTotalCores(Integer maxTotalCores) {
this.maxTotalCores = maxTotalCores;
}
@XmlElement(name = "min_total_threads")
@Range(min = 1, max = 65535)
public Integer getMinTotalThreads() {
return minTotalThreads;
}
public void setMinTotalThreads(Integer minTotalThreads) {
this.minTotalThreads = minTotalThreads;
}
@XmlElement(name = "max_total_threads")
@Range(min = 1, max = 65535)
public Integer getMaxTotalThreads() {
return maxTotalThreads;
}
public void setMaxTotalThreads(Integer maxTotalThreads) {
this.maxTotalThreads = maxTotalThreads;
}
@XmlElement(name = "min_cpu_speed")
@Range(min = 1, max = 65535)
public Integer getMinCpuSpeed() {
return minCpuSpeed;
}
public void setMinCpuSpeed(Integer minCpuSpeed) {
this.minCpuSpeed = minCpuSpeed;
}
@XmlElement(name = "max_cpu_speed")
@Range(min = 1, max = 65535)
public Integer getMaxCpuSpeed() {
return maxCpuSpeed;
}
public void setMaxCpuSpeed(Integer maxCpuSpeed) {
this.maxCpuSpeed = maxCpuSpeed;
}
@XmlElement(name = "min_memory")
@Range(min = 1, max = 65535)
public Integer getMinMemory() {
return minMemory;
}
public void setMinMemory(Integer minMemory) {
this.minMemory = minMemory;
}
@XmlElement(name = "max_memory")
@Range(min = 1, max = 65535)
public Integer getMaxMemory() {
return maxMemory;
}
public void setMaxMemory(Integer maxMemory) {
this.maxMemory = maxMemory;
}
@XmlElement(name = "min_nics")
@Range(min = 1, max = 65535)
public Integer getMinNics() {
return minNics;
}
public void setMinNics(Integer minNics) {
this.minNics = minNics;
}
@XmlElement(name = "max_nics")
@Range(min = 1, max = 65535)
public Integer getMaxNics() {
return maxNics;
}
public void setMaxNics(Integer maxNics) {
this.maxNics = maxNics;
}
@XmlElement(name = "min_hbas")
@Range(min = 1, max = 65535)
public Integer getMinHbas() {
return minHbas;
}
public void setMinHbas(Integer minHbas) {
this.minHbas = minHbas;
}
@XmlElement(name = "max_hbas")
@Range(min = 1, max = 65535)
public Integer getMaxHbas() {
return maxHbas;
}
public void setMaxHbas(Integer maxHbas) {
this.maxHbas = maxHbas;
}
@XmlElementWrapper(name = "varrays")
/**
* The virtual arrays for the virtual pool
*
*/
@XmlElement(name = "varray")
public Set<String> getVarrays() {
if (varrays == null) {
varrays = new HashSet<String>();
}
return varrays;
}
public void setVarrays(Set<String> varrays) {
this.varrays = varrays;
}
/**
* Determines if matched or valid assigned Compute Elements are returned
* from command to retrieve the list of Compute Elements.
*
*/
@XmlElement(name = "use_matched_elements")
public Boolean getUseMatchedElements() {
return useMatchedElements;
}
public void setUseMatchedElements(Boolean useMatchedElements) {
this.useMatchedElements = useMatchedElements;
}
@XmlElementWrapper(name = "service_profile_templates")
/**
* The service Profile templates for the virtual pool
*
*/
@XmlElement(name = "service_profile_template")
public Set<String> getServiceProfileTemplates() {
if (serviceProfileTemplates == null) {
serviceProfileTemplates = new HashSet<String>();
}
return serviceProfileTemplates;
}
public void setServiceProfileTemplates(Set<String> serviceProfileTemplates) {
this.serviceProfileTemplates = serviceProfileTemplates;
}
@XmlElement(name = "id")
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}