package org.zstack.header.volume; import org.springframework.http.HttpMethod; import org.zstack.header.identity.Action; import org.zstack.header.message.APIMessage; import org.zstack.header.message.APIParam; import org.zstack.header.vm.VmInstanceVO; import org.zstack.header.rest.RestRequest; /** * @api detach a data volume from vm * @cli * @httpMsg { * "org.zstack.header.volume.APIDetachDataVolumeMsg": { * "volumeUuid": "57e060d2eb324da4bc65c1c5ad9a6e59", * "session": { * "uuid": "9f1fddca86544ad282f4c3ffe12d5f10" * } * } * } * @msg { * "org.zstack.header.volume.APIDetachDataVolumeMsg": { * "volumeUuid": "57e060d2eb324da4bc65c1c5ad9a6e59", * "session": { * "uuid": "9f1fddca86544ad282f4c3ffe12d5f10" * }, * "timeout": 1800000, * "id": "d32847e788d145648cf0e53994d451e2", * "serviceId": "api.portal" * } * } * @result See :ref:`APIDetachDataVolumeEvent` * @since 0.1.0 */ @Action(category = VolumeConstant.ACTION_CATEGORY) @RestRequest( path = "/volumes/{uuid}/vm-instances", method = HttpMethod.DELETE, responseClass = APIDetachDataVolumeFromVmEvent.class ) public class APIDetachDataVolumeFromVmMsg extends APIMessage implements VolumeMessage { /** * @desc data volume uuid. See :ref:`VolumeInventory` */ @APIParam(resourceType = VolumeVO.class, checkAccount = true, operationTarget = true) private String uuid; @APIParam(required = false, resourceType = VmInstanceVO.class, checkAccount = true, operationTarget = true) private String vmUuid; public String getVmUuid() { return vmUuid; } public void setVmUuid(String vmUuid) { this.vmUuid = vmUuid; } public String getUuid() { return uuid; } public void setUuid(String volumeUuid) { this.uuid = volumeUuid; } @Override public String getVolumeUuid() { return uuid; } public static APIDetachDataVolumeFromVmMsg __example__() { APIDetachDataVolumeFromVmMsg msg = new APIDetachDataVolumeFromVmMsg(); msg.setUuid(uuid()); msg.setVmUuid(uuid()); return msg; } }