protected Response doAdd(Snapshot snapshot, boolean block) { validateParameters(snapshot, "description"); CreateSnapshotForVmParameters snapshotParams = new CreateSnapshotForVmParameters(parentId, snapshot.getDescription()); if (snapshot.isSetPersistMemorystate()) { snapshotParams.setSaveMemory(snapshot.isPersistMemorystate()); } if (snapshot.isSetDiskAttachments()) { Map<Guid, Guid> diskToImageIds = mapDisks(snapshot.getDiskAttachments()); snapshotParams.setDiskIds(new TreeSet<>(diskToImageIds.keySet())); snapshotParams.setDiskToImageIds(diskToImageIds); } return performCreate(ActionType.CreateSnapshotForVm, snapshotParams, new SnapshotIdResolver(), block); }