package org.zstack.network.securitygroup;
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.notification.ApiNotification;
import org.zstack.header.rest.RestRequest;
import org.zstack.header.vm.VmNicVO;
import java.util.List;
import static java.util.Arrays.asList;
/**
* @api
*
* delete a vm nic from security group
*
* @category security group
*
* @since 0.1.0
*
* @cli
*
* @httpMsg
* {
"org.zstack.network.securitygroup.APIDeleteVmNicFromSecurityGroupMsg": {
"securityGroupUuid": "cfc28caea12649b184f4990ca7265d98",
"vmNicUuid": "d87f0d53dbcb4befbcaade738058e3d9",
"session": {
"uuid": "ffa14cc5d36d40fea22d062f0ed724ba"
}
}
}
*
* @msg
* {
"org.zstack.network.securitygroup.APIDeleteVmNicFromSecurityGroupMsg": {
"securityGroupUuid": "cfc28caea12649b184f4990ca7265d98",
"vmNicUuid": "d87f0d53dbcb4befbcaade738058e3d9",
"session": {
"uuid": "ffa14cc5d36d40fea22d062f0ed724ba"
},
"timeout": 1800000,
"id": "0cb5681956f04154855addf23d11d4c8",
"serviceId": "api.portal"
}
}
*
* @result
*
* see :ref:`APIDeleteVmNicFromSecurityGroupEvent`
*/
@Action(category = SecurityGroupConstant.ACTION_CATEGORY)
@RestRequest(
path = "/security-groups/{securityGroupUuid}/vm-instances/nics",
method = HttpMethod.DELETE,
responseClass = APIDeleteVmNicFromSecurityGroupEvent.class
)
public class APIDeleteVmNicFromSecurityGroupMsg extends APIMessage {
/**
* @desc security group uuid
*/
@APIParam(resourceType = SecurityGroupVO.class, checkAccount = true, operationTarget = true)
private String securityGroupUuid;
/**
* @desc vm nic uuid. See :ref:`VmNicInventory`
*/
@APIParam(resourceType = VmNicVO.class, nonempty = true, checkAccount = true, operationTarget = true)
private List<String> vmNicUuids;
public String getSecurityGroupUuid() {
return securityGroupUuid;
}
public void setSecurityGroupUuid(String securityGroupUuid) {
this.securityGroupUuid = securityGroupUuid;
}
public List<String> getVmNicUuids() {
return vmNicUuids;
}
public void setVmNicUuids(List<String> vmNicUuids) {
this.vmNicUuids = vmNicUuids;
}
public static APIDeleteVmNicFromSecurityGroupMsg __example__() {
APIDeleteVmNicFromSecurityGroupMsg msg = new APIDeleteVmNicFromSecurityGroupMsg();
msg.setSecurityGroupUuid(uuid());
msg.setVmNicUuids(asList(uuid()));
return msg;
}
public ApiNotification __notification__() {
APIMessage that = this;
return new ApiNotification() {
@Override
public void after(APIEvent evt) {
if (evt.isSuccess()) {
ntfy("Delete vm nics[uuid:%s]",vmNicUuids).resource(securityGroupUuid,SecurityGroupVO.class.getSimpleName())
.messageAndEvent(that, evt).done();
}
}
};
}
}