@Override public Object perform(String name, Object obj, ApiRequest request) { if (!(obj instanceof Volume)) { return null; } Volume volume = (Volume)obj; Snapshot snapshot = objectManager.newRecord(Snapshot.class); snapshot.setKind(SnapshotConstants.TYPE); snapshot.setAccountId(volume.getAccountId()); snapshot.setVolumeId(volume.getId()); String snapshotName = DataAccessor.fromMap(request.getRequestObject()).withKey("name").as(String.class); if (StringUtils.isNotBlank(snapshotName)) { snapshot.setName(snapshotName); } snapshot = objectManager.create(snapshot); processManager.scheduleStandardProcess(StandardProcess.CREATE, snapshot, null); return objectManager.reload(snapshot); } }