code: @PUT
      @Path("{group}/{id}")
      @Consumes(MediaType.APPLICATION_JSON)
      public SuccessResponse updateRole(@PathParam("group") String group, @PathParam("id") String id,
                                        EmoRole role, final @Authenticated Subject subject) {
          checkArgument(role.getId().equals(new EmoRoleKey(group, id)),
                  "Body contains conflicting role identifier");
  
          return updateRoleFromUpdateRequest(group, id,
                  new UpdateEmoRoleRequest()
                          .setName(role.getName())
                          .setDescription(role.getDescription())
                          .setGrantedPermissions(role.getPermissions())
                          .setRevokeOtherPermissions(true),
                  subject);
      }
docs: RESTful endpoint for updating a role.  Note that all attributes of the role will be updated to match the
  provided object.