package org.zstack.header.vm;
import org.springframework.http.HttpMethod;
import org.zstack.header.identity.Action;
import org.zstack.header.message.APIEvent;
import org.zstack.header.message.APIMessage;
import org.zstack.header.message.APIParam;
import org.zstack.header.network.l3.L3NetworkVO;
import org.zstack.header.notification.ApiNotification;
import org.zstack.header.rest.RestRequest;
/**
* Created by frank on 6/14/2015.
*/
@Action(category = VmInstanceConstant.ACTION_CATEGORY)
@RestRequest(
path = "/vm-instances/{uuid}/actions",
method = HttpMethod.PUT,
isAction = true,
responseClass = APIUpdateVmInstanceEvent.class
)
public class APIUpdateVmInstanceMsg extends APIMessage implements VmInstanceMessage {
@APIParam(resourceType = VmInstanceVO.class, checkAccount = true, operationTarget = true)
private String uuid;
@APIParam(maxLength = 255, required = false)
private String name;
@APIParam(maxLength = 2048, required = false)
private String description;
@APIParam(validValues = {"Stopped", "Running"}, required = false)
private String state;
@APIParam(resourceType = L3NetworkVO.class, required = false)
private String defaultL3NetworkUuid;
@APIParam(required = false, validValues = {"Linux", "Windows", "Other", "Paravirtualization", "WindowsVirtio"})
private String platform;
@APIParam(required = false, numberRange = {1, 1024})
private Integer cpuNum;
@APIParam(required = false, numberRange = {1, Long.MAX_VALUE})
private Long memorySize;
public String getDefaultL3NetworkUuid() {
return defaultL3NetworkUuid;
}
public void setDefaultL3NetworkUuid(String defaultL3NetworkUuid) {
this.defaultL3NetworkUuid = defaultL3NetworkUuid;
}
public String getPlatform() {
return platform;
}
public void setPlatform(String platform) {
this.platform = platform;
}
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
@Override
public String getVmInstanceUuid() {
return uuid;
}
public Integer getCpuNum() {
return cpuNum;
}
public void setCpuNum(Integer cpuNum) {
this.cpuNum = cpuNum;
}
public Long getMemorySize() {
return memorySize;
}
public void setMemorySize(Long memorySize) {
this.memorySize = memorySize;
}
public static APIUpdateVmInstanceMsg __example__() {
APIUpdateVmInstanceMsg msg = new APIUpdateVmInstanceMsg();
msg.uuid = uuid();
msg.name = "new vm name";
return msg;
}
public ApiNotification __notification__() {
APIMessage that = this;
return new ApiNotification() {
@Override
public void after(APIEvent evt) {
ntfy("Updated").resource(uuid, VmInstanceVO.class.getSimpleName())
.messageAndEvent(that, evt).done();
}
};
}
}