@TimedResource @DELETE @Path("/{invoiceId:" + UUID_PATTERN + "}" + "/{invoiceItemId:" + UUID_PATTERN + "}/cba") @Consumes(APPLICATION_JSON) @Produces(APPLICATION_JSON) @ApiOperation(value = "Delete a CBA item") @ApiResponses(value = {@ApiResponse(code = 204, message = "Successful operation"), @ApiResponse(code = 400, message = "Invalid account id, invoice id or invoice item id supplied"), @ApiResponse(code = 404, message = "Account or invoice not found")}) public Response deleteCBA(@PathParam("invoiceId") final UUID invoiceId, @PathParam("invoiceItemId") final UUID invoiceItemId, @ApiParam(required=true) @QueryParam(QUERY_ACCOUNT_ID) final UUID accountId, @HeaderParam(HDR_CREATED_BY) final String createdBy, @HeaderParam(HDR_REASON) final String reason, @HeaderParam(HDR_COMMENT) final String comment, @javax.ws.rs.core.Context final HttpServletRequest request) throws AccountApiException, InvoiceApiException { final CallContext callContext = context.createCallContextWithAccountId(accountId, createdBy, reason, comment, request); final Account account = accountUserApi.getAccountById(accountId, callContext); invoiceApi.deleteCBA(account.getId(), invoiceId, invoiceItemId, callContext); return Response.status(Status.NO_CONTENT).build(); }