code: public Observable<Void> terminateAsync(String jobId) {
          return terminateWithServiceResponseAsync(jobId).map(new Func1<ServiceResponseWithHeaders<Void, JobTerminateHeaders>, Void>() {
              @Override
              public Void call(ServiceResponseWithHeaders<Void, JobTerminateHeaders> response) {
                  return response.body();
              }
          });
      }
docs: Terminates the specified job, marking it as completed.
  When a Terminate Job request is received, the Batch service sets the job to the terminating state. The Batch service then terminates any running tasks associated with the job and runs any required job release tasks. Then the job moves into the completed state. If there are any tasks in the job in the active state, they will remain in the active state. Once a job is terminated, new tasks cannot be added and any remaining active tasks will not be scheduled.
  
  @param jobId The ID of the job to terminate.
  @throws IllegalArgumentException thrown if parameters fail the validation
  @return the {@link ServiceResponseWithHeaders} object if successful.