@POST @JsonRequest @ApiOperation(value = "Get events of the user", authorizations = @Authorization(value = "master_key")) @ApiResponses(value = {@ApiResponse(code = 404, message = "User does not exist.")}) @Path("/create_segment") public SuccessMessage createSegment(@Named("project") RequestContext context, @ApiParam("name") String name, @ApiParam("table_name") String tableName, @ApiParam(value = "filter_expression", required = false) String filterExpression, @ApiParam(value = "event_filters", required = false) List<UserStorage.EventFilter> eventFilters, @ApiParam("cache_eviction") Duration duration) { if (filterExpression == null && (eventFilters == null || eventFilters.isEmpty())) { throw new RakamException("At least one predicate is required", BAD_REQUEST); } Expression expression = null; if (filterExpression != null) { synchronized (sqlParser) { expression = sqlParser.createExpression(filterExpression); } } service.createSegment(context, name, tableName, expression, eventFilters, duration); return SuccessMessage.success(); }