class JobManagementSpringResource {

    @ApiOperation("Delete attributes of a task with the specified key names")
    @DeleteMapping(path = "/tasks/{taskId}/attributes")
    public ResponseEntity<Void> deleteTaskAttributes(@PathVariable("taskId") String taskId,
                                                     @RequestParam("keys") String delimitedKeys,
                                                     CallMetadataAuthentication authentication) {
        if (Strings.isNullOrEmpty(delimitedKeys)) {
            throw TitusServiceException.invalidArgument("Path parameter 'keys' cannot be empty");
        }

        Set<String> keys = StringExt.splitByCommaIntoSet(delimitedKeys);
        if (keys.isEmpty()) {
            throw TitusServiceException.invalidArgument("Parsed path parameter 'keys' cannot be empty");
        }

        TaskAttributesDeleteRequest request = TaskAttributesDeleteRequest.newBuilder()
                .setTaskId(taskId)
                .addAllKeys(keys)
                .build();
        return Responses.fromCompletable(jobServiceGateway.deleteTaskAttributes(request, authentication.getCallMetadata()), HttpStatus.OK);
    }

    @Inject public  JobManagementSpringResource(JobServiceGateway jobServiceGateway, SystemLogService systemLog);

}