package org.ovirt.engine.core.common.action;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
import org.ovirt.engine.core.common.businessentities.VM;
import org.ovirt.engine.core.common.businessentities.VmStatic;
import org.ovirt.engine.core.common.utils.ValidationUtils;
import org.ovirt.engine.core.common.validation.annotation.ValidName;
import org.ovirt.engine.core.common.validation.group.CreateEntity;
import org.ovirt.engine.core.common.validation.group.UpdateEntity;
import org.ovirt.engine.core.compat.Guid;
@XmlAccessorType(XmlAccessType.NONE)
@XmlType(name = "AddVmTemplateParameters")
public class AddVmTemplateParameters extends VmTemplateParametersBase implements java.io.Serializable {
private static final long serialVersionUID = 2114985552063499069L;
public AddVmTemplateParameters() {
}
private VmStatic _masterVm;
@XmlElement(name = "DestinationStorageDomainId")
private Guid destinationStorageDomainId;
@XmlElement(name = "Name")
@Size(max = 40, message = "VALIDATION.VM_TEMPLATE.NAME.MAX", groups = { CreateEntity.class, UpdateEntity.class })
@ValidName(message = "ACTION_TYPE_FAILED_NAME_MAY_NOT_CONTAIN_SPECIAL_CHARS")
private String _name;
@XmlElement
@Pattern(regexp = ValidationUtils.ONLY_ASCII_OR_NONE,
message = "ACTION_TYPE_FAILED_DESCRIPTION_MAY_NOT_CONTAIN_SPECIAL_CHARS")
private String _description;
@XmlElement(name = "PublicUse")
private boolean publicUse = false;
public AddVmTemplateParameters(VmStatic masterVm, String name, String description) {
_masterVm = masterVm;
_name = name;
_description = description;
}
public AddVmTemplateParameters(VM vm, String name, String description) {
_masterVm = vm.getStaticData();
_name = name;
_description = description;
}
public VmStatic getMasterVm() {
return _masterVm;
}
public String getName() {
return _name;
}
public String getDescription() {
return _description;
}
@XmlElement(name = "VmTemplateID")
private Guid privateVmTemplateID = new Guid();
@Override
public Guid getVmTemplateId() {
return privateVmTemplateID;
}
public void setVmTemplateID(Guid value) {
privateVmTemplateID = value;
}
@XmlElement(name = "vm")
public VM getVm() {
VM vm = new VM();
vm.setStaticData(_masterVm);
return vm;
}
public void setVm(VM value) {
_masterVm = value.getStaticData();
}
public void setPublicUse(boolean publicUse) {
this.publicUse = publicUse;
}
public boolean isPublicUse() {
return publicUse;
}
public void setDestinationStorageDomainId(Guid destinationStorageDomainId) {
this.destinationStorageDomainId = destinationStorageDomainId;
}
public Guid getDestinationStorageDomainId() {
return destinationStorageDomainId;
}
}