code: public Observable<Void> updateUserAsync(String poolId, String nodeId, String userName, NodeUpdateUserParameter nodeUpdateUserParameter, ComputeNodeUpdateUserOptions computeNodeUpdateUserOptions) {
          return updateUserWithServiceResponseAsync(poolId, nodeId, userName, nodeUpdateUserParameter, computeNodeUpdateUserOptions).map(new Func1<ServiceResponseWithHeaders<Void, ComputeNodeUpdateUserHeaders>, Void>() {
              @Override
              public Void call(ServiceResponseWithHeaders<Void, ComputeNodeUpdateUserHeaders> response) {
                  return response.body();
              }
          });
      }
docs: Updates the password and expiration time of a user account on the specified compute node.
  This operation replaces of all the updatable properties of the account. For example, if the expiryTime element is not specified, the current value is replaced with the default value, not left unmodified. You can update a user account on a node only when it is in the idle or running state.
  
  @param poolId The ID of the pool that contains the compute node.
  @param nodeId The ID of the machine on which you want to update a user account.
  @param userName The name of the user account to update.
  @param nodeUpdateUserParameter The parameters for the request.
  @param computeNodeUpdateUserOptions Additional parameters for the operation
  @throws IllegalArgumentException thrown if parameters fail the validation
  @return the {@link ServiceResponseWithHeaders} object if successful.