@POST
@Consumes(APPLICATION_JSON)
@Produces(APPLICATION_JSON)
public Response createTagDefinition(final TagDefinitionJson json,
@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,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws TagDefinitionApiException {
Preconditions.checkNotNull(json.getName(), String.format("TagDefinition name needs to be set"));
Preconditions.checkNotNull(json.getDescription(), String.format("TagDefinition description needs to be set"));
final TagDefinition createdTagDef = tagUserApi.createTagDefinition(json.getName(), json.getDescription(), context.createContext(createdBy, reason, comment, request));
return uriBuilder.buildResponse(uriInfo, TagDefinitionResource.class, "getTagDefinition", createdTagDef.getId());
}