Class JobControllerClient (3.1.1)

public class JobControllerClient implements BackgroundResource

Service Description: The JobController provides methods to manage jobs.

This class provides the ability to make remote calls to the backing service through method calls that map to API methods. Sample code to get started:


 try (JobControllerClient jobControllerClient = JobControllerClient.create()) {
   String projectId = "projectId-894832108";
   String region = "region-934795532";
   Job job = Job.newBuilder().build();
   Job response = jobControllerClient.submitJob(projectId, region, job);
 }
 

Note: close() needs to be called on the JobControllerClient object to clean up resources such as threads. In the example above, try-with-resources is used, which automatically calls close().

The surface of this class includes several types of Java methods for each of the API's methods:

  1. A "flattened" method. With this type of method, the fields of the request type have been converted into function parameters. It may be the case that not all fields are available as parameters, and not every API method will have a flattened method entry point.
  2. A "request object" method. This type of method only takes one parameter, a request object, which must be constructed before the call. Not every API method will have a request object method.
  3. A "callable" method. This type of method takes no parameters and returns an immutable API callable object, which can be used to initiate calls to the service.

See the individual methods for example code.

Many parameters require resource names to be formatted in a particular way. To assist with these names, this class includes a format method for each type of name, and additionally a parse method to extract the individual identifiers contained within names that are returned.

This class can be customized by passing in a custom instance of JobControllerSettings to create(). For example:

To customize credentials:


 JobControllerSettings jobControllerSettings =
     JobControllerSettings.newBuilder()
         .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
         .build();
 JobControllerClient jobControllerClient = JobControllerClient.create(jobControllerSettings);
 

To customize the endpoint:


 JobControllerSettings jobControllerSettings =
     JobControllerSettings.newBuilder().setEndpoint(myEndpoint).build();
 JobControllerClient jobControllerClient = JobControllerClient.create(jobControllerSettings);
 

Please refer to the GitHub repository's samples for more quickstart code snippets.

Inheritance

java.lang.Object > JobControllerClient

Implements

BackgroundResource

Static Methods

create()

public static final JobControllerClient create()

Constructs an instance of JobControllerClient with default settings.

Returns
TypeDescription
JobControllerClient
Exceptions
TypeDescription
IOException

create(JobControllerSettings settings)

public static final JobControllerClient create(JobControllerSettings settings)

Constructs an instance of JobControllerClient, using the given settings. The channels are created based on the settings passed in, or defaults for any settings that are not set.

Parameter
NameDescription
settingsJobControllerSettings
Returns
TypeDescription
JobControllerClient
Exceptions
TypeDescription
IOException

create(JobControllerStub stub)

public static final JobControllerClient create(JobControllerStub stub)

Constructs an instance of JobControllerClient, using the given stub for making calls. This is for advanced usage - prefer using create(JobControllerSettings).

Parameter
NameDescription
stubJobControllerStub
Returns
TypeDescription
JobControllerClient

Constructors

JobControllerClient(JobControllerSettings settings)

protected JobControllerClient(JobControllerSettings settings)

Constructs an instance of JobControllerClient, using the given settings. This is protected so that it is easy to make a subclass, but otherwise, the static factory methods should be preferred.

Parameter
NameDescription
settingsJobControllerSettings

JobControllerClient(JobControllerStub stub)

protected JobControllerClient(JobControllerStub stub)
Parameter
NameDescription
stubJobControllerStub

Methods

awaitTermination(long duration, TimeUnit unit)

public boolean awaitTermination(long duration, TimeUnit unit)
Parameters
NameDescription
durationlong
unitTimeUnit
Returns
TypeDescription
boolean
Exceptions
TypeDescription
InterruptedException

cancelJob(CancelJobRequest request)

public final Job cancelJob(CancelJobRequest request)

Starts a job cancellation request. To access the job resource after cancellation, call regions/{region}/jobs.list or regions/{region}/jobs.get.

Sample code:


 try (JobControllerClient jobControllerClient = JobControllerClient.create()) {
   CancelJobRequest request =
       CancelJobRequest.newBuilder()
           .setProjectId("projectId-894832108")
           .setRegion("region-934795532")
           .setJobId("jobId101296568")
           .build();
   Job response = jobControllerClient.cancelJob(request);
 }
 
Parameter
NameDescription
requestCancelJobRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
Job

cancelJob(String projectId, String region, String jobId)

public final Job cancelJob(String projectId, String region, String jobId)

Starts a job cancellation request. To access the job resource after cancellation, call regions/{region}/jobs.list or regions/{region}/jobs.get.

Sample code:


 try (JobControllerClient jobControllerClient = JobControllerClient.create()) {
   String projectId = "projectId-894832108";
   String region = "region-934795532";
   String jobId = "jobId101296568";
   Job response = jobControllerClient.cancelJob(projectId, region, jobId);
 }
 
Parameters
NameDescription
projectIdString

Required. The ID of the Google Cloud Platform project that the job belongs to.

regionString

Required. The Dataproc region in which to handle the request.

jobIdString

Required. The job ID.

Returns
TypeDescription
Job

cancelJobCallable()

public final UnaryCallable<CancelJobRequest,Job> cancelJobCallable()

Starts a job cancellation request. To access the job resource after cancellation, call regions/{region}/jobs.list or regions/{region}/jobs.get.

Sample code:


 try (JobControllerClient jobControllerClient = JobControllerClient.create()) {
   CancelJobRequest request =
       CancelJobRequest.newBuilder()
           .setProjectId("projectId-894832108")
           .setRegion("region-934795532")
           .setJobId("jobId101296568")
           .build();
   ApiFuture<Job> future = jobControllerClient.cancelJobCallable().futureCall(request);
   // Do something.
   Job response = future.get();
 }
 
Returns
TypeDescription
UnaryCallable<CancelJobRequest,Job>

close()

public final void close()

deleteJob(DeleteJobRequest request)

public final void deleteJob(DeleteJobRequest request)

Deletes the job from the project. If the job is active, the delete fails, and the response returns FAILED_PRECONDITION.

Sample code:


 try (JobControllerClient jobControllerClient = JobControllerClient.create()) {
   DeleteJobRequest request =
       DeleteJobRequest.newBuilder()
           .setProjectId("projectId-894832108")
           .setRegion("region-934795532")
           .setJobId("jobId101296568")
           .build();
   jobControllerClient.deleteJob(request);
 }
 
Parameter
NameDescription
requestDeleteJobRequest

The request object containing all of the parameters for the API call.

deleteJob(String projectId, String region, String jobId)

public final void deleteJob(String projectId, String region, String jobId)

Deletes the job from the project. If the job is active, the delete fails, and the response returns FAILED_PRECONDITION.

Sample code:


 try (JobControllerClient jobControllerClient = JobControllerClient.create()) {
   String projectId = "projectId-894832108";
   String region = "region-934795532";
   String jobId = "jobId101296568";
   jobControllerClient.deleteJob(projectId, region, jobId);
 }
 
Parameters
NameDescription
projectIdString

Required. The ID of the Google Cloud Platform project that the job belongs to.

regionString

Required. The Dataproc region in which to handle the request.

jobIdString

Required. The job ID.

deleteJobCallable()

public final UnaryCallable<DeleteJobRequest,Empty> deleteJobCallable()

Deletes the job from the project. If the job is active, the delete fails, and the response returns FAILED_PRECONDITION.

Sample code:


 try (JobControllerClient jobControllerClient = JobControllerClient.create()) {
   DeleteJobRequest request =
       DeleteJobRequest.newBuilder()
           .setProjectId("projectId-894832108")
           .setRegion("region-934795532")
           .setJobId("jobId101296568")
           .build();
   ApiFuture<Empty> future = jobControllerClient.deleteJobCallable().futureCall(request);
   // Do something.
   future.get();
 }
 
Returns
TypeDescription
UnaryCallable<DeleteJobRequest,Empty>

getJob(GetJobRequest request)

public final Job getJob(GetJobRequest request)

Gets the resource representation for a job in a project.

Sample code:


 try (JobControllerClient jobControllerClient = JobControllerClient.create()) {
   GetJobRequest request =
       GetJobRequest.newBuilder()
           .setProjectId("projectId-894832108")
           .setRegion("region-934795532")
           .setJobId("jobId101296568")
           .build();
   Job response = jobControllerClient.getJob(request);
 }
 
Parameter
NameDescription
requestGetJobRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
Job

getJob(String projectId, String region, String jobId)

public final Job getJob(String projectId, String region, String jobId)

Gets the resource representation for a job in a project.

Sample code:


 try (JobControllerClient jobControllerClient = JobControllerClient.create()) {
   String projectId = "projectId-894832108";
   String region = "region-934795532";
   String jobId = "jobId101296568";
   Job response = jobControllerClient.getJob(projectId, region, jobId);
 }
 
Parameters
NameDescription
projectIdString

Required. The ID of the Google Cloud Platform project that the job belongs to.

regionString

Required. The Dataproc region in which to handle the request.

jobIdString

Required. The job ID.

Returns
TypeDescription
Job

getJobCallable()

public final UnaryCallable<GetJobRequest,Job> getJobCallable()

Gets the resource representation for a job in a project.

Sample code:


 try (JobControllerClient jobControllerClient = JobControllerClient.create()) {
   GetJobRequest request =
       GetJobRequest.newBuilder()
           .setProjectId("projectId-894832108")
           .setRegion("region-934795532")
           .setJobId("jobId101296568")
           .build();
   ApiFuture<Job> future = jobControllerClient.getJobCallable().futureCall(request);
   // Do something.
   Job response = future.get();
 }
 
Returns
TypeDescription
UnaryCallable<GetJobRequest,Job>

getOperationsClient()

public final OperationsClient getOperationsClient()

Returns the OperationsClient that can be used to query the status of a long-running operation returned by another API method call.

Returns
TypeDescription
OperationsClient

getSettings()

public final JobControllerSettings getSettings()
Returns
TypeDescription
JobControllerSettings

getStub()

public JobControllerStub getStub()
Returns
TypeDescription
JobControllerStub

isShutdown()

public boolean isShutdown()
Returns
TypeDescription
boolean

isTerminated()

public boolean isTerminated()
Returns
TypeDescription
boolean

listJobs(ListJobsRequest request)

public final JobControllerClient.ListJobsPagedResponse listJobs(ListJobsRequest request)

Lists regions/{region}/jobs in a project.

Sample code:


 try (JobControllerClient jobControllerClient = JobControllerClient.create()) {
   ListJobsRequest request =
       ListJobsRequest.newBuilder()
           .setProjectId("projectId-894832108")
           .setRegion("region-934795532")
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .setClusterName("clusterName-1141738587")
           .setFilter("filter-1274492040")
           .build();
   for (Job element : jobControllerClient.listJobs(request).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameter
NameDescription
requestListJobsRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
JobControllerClient.ListJobsPagedResponse

listJobs(String projectId, String region)

public final JobControllerClient.ListJobsPagedResponse listJobs(String projectId, String region)

Lists regions/{region}/jobs in a project.

Sample code:


 try (JobControllerClient jobControllerClient = JobControllerClient.create()) {
   String projectId = "projectId-894832108";
   String region = "region-934795532";
   for (Job element : jobControllerClient.listJobs(projectId, region).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameters
NameDescription
projectIdString

Required. The ID of the Google Cloud Platform project that the job belongs to.

regionString

Required. The Dataproc region in which to handle the request.

Returns
TypeDescription
JobControllerClient.ListJobsPagedResponse

listJobs(String projectId, String region, String filter)

public final JobControllerClient.ListJobsPagedResponse listJobs(String projectId, String region, String filter)

Lists regions/{region}/jobs in a project.

Sample code:


 try (JobControllerClient jobControllerClient = JobControllerClient.create()) {
   String projectId = "projectId-894832108";
   String region = "region-934795532";
   String filter = "filter-1274492040";
   for (Job element : jobControllerClient.listJobs(projectId, region, filter).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameters
NameDescription
projectIdString

Required. The ID of the Google Cloud Platform project that the job belongs to.

regionString

Required. The Dataproc region in which to handle the request.

filterString

Optional. A filter constraining the jobs to list. Filters are case-sensitive and have the following syntax:

[field = value] AND [field [= value]] ...

where **field** is status.state or labels.[KEY], and [KEY] is a label key. **value** can be * to match all values. status.state can be either ACTIVE or NON_ACTIVE. Only the logical AND operator is supported; space-separated items are treated as having an implicit AND operator.

Example filter:

status.state = ACTIVE AND labels.env = staging AND labels.starred = *

Returns
TypeDescription
JobControllerClient.ListJobsPagedResponse

listJobsCallable()

public final UnaryCallable<ListJobsRequest,ListJobsResponse> listJobsCallable()

Lists regions/{region}/jobs in a project.

Sample code:


 try (JobControllerClient jobControllerClient = JobControllerClient.create()) {
   ListJobsRequest request =
       ListJobsRequest.newBuilder()
           .setProjectId("projectId-894832108")
           .setRegion("region-934795532")
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .setClusterName("clusterName-1141738587")
           .setFilter("filter-1274492040")
           .build();
   while (true) {
     ListJobsResponse response = jobControllerClient.listJobsCallable().call(request);
     for (Job element : response.getResponsesList()) {
       // doThingsWith(element);
     }
     String nextPageToken = response.getNextPageToken();
     if (!Strings.isNullOrEmpty(nextPageToken)) {
       request = request.toBuilder().setPageToken(nextPageToken).build();
     } else {
       break;
     }
   }
 }
 
Returns
TypeDescription
UnaryCallable<ListJobsRequest,ListJobsResponse>

listJobsPagedCallable()

public final UnaryCallable<ListJobsRequest,JobControllerClient.ListJobsPagedResponse> listJobsPagedCallable()

Lists regions/{region}/jobs in a project.

Sample code:


 try (JobControllerClient jobControllerClient = JobControllerClient.create()) {
   ListJobsRequest request =
       ListJobsRequest.newBuilder()
           .setProjectId("projectId-894832108")
           .setRegion("region-934795532")
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .setClusterName("clusterName-1141738587")
           .setFilter("filter-1274492040")
           .build();
   ApiFuture<Job> future = jobControllerClient.listJobsPagedCallable().futureCall(request);
   // Do something.
   for (Job element : future.get().iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Returns
TypeDescription
UnaryCallable<ListJobsRequest,ListJobsPagedResponse>

shutdown()

public void shutdown()

shutdownNow()

public void shutdownNow()

submitJob(SubmitJobRequest request)

public final Job submitJob(SubmitJobRequest request)

Submits a job to a cluster.

Sample code:


 try (JobControllerClient jobControllerClient = JobControllerClient.create()) {
   SubmitJobRequest request =
       SubmitJobRequest.newBuilder()
           .setProjectId("projectId-894832108")
           .setRegion("region-934795532")
           .setJob(Job.newBuilder().build())
           .setRequestId("requestId693933066")
           .build();
   Job response = jobControllerClient.submitJob(request);
 }
 
Parameter
NameDescription
requestSubmitJobRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
Job

submitJob(String projectId, String region, Job job)

public final Job submitJob(String projectId, String region, Job job)

Submits a job to a cluster.

Sample code:


 try (JobControllerClient jobControllerClient = JobControllerClient.create()) {
   String projectId = "projectId-894832108";
   String region = "region-934795532";
   Job job = Job.newBuilder().build();
   Job response = jobControllerClient.submitJob(projectId, region, job);
 }
 
Parameters
NameDescription
projectIdString

Required. The ID of the Google Cloud Platform project that the job belongs to.

regionString

Required. The Dataproc region in which to handle the request.

jobJob

Required. The job resource.

Returns
TypeDescription
Job

submitJobAsOperationAsync(SubmitJobRequest request)

public final OperationFuture<Job,JobMetadata> submitJobAsOperationAsync(SubmitJobRequest request)

Submits job to a cluster.

Sample code:


 try (JobControllerClient jobControllerClient = JobControllerClient.create()) {
   SubmitJobRequest request =
       SubmitJobRequest.newBuilder()
           .setProjectId("projectId-894832108")
           .setRegion("region-934795532")
           .setJob(Job.newBuilder().build())
           .setRequestId("requestId693933066")
           .build();
   Job response = jobControllerClient.submitJobAsOperationAsync(request).get();
 }
 
Parameter
NameDescription
requestSubmitJobRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
OperationFuture<Job,JobMetadata>

submitJobAsOperationAsync(String projectId, String region, Job job)

public final OperationFuture<Job,JobMetadata> submitJobAsOperationAsync(String projectId, String region, Job job)

Submits job to a cluster.

Sample code:


 try (JobControllerClient jobControllerClient = JobControllerClient.create()) {
   String projectId = "projectId-894832108";
   String region = "region-934795532";
   Job job = Job.newBuilder().build();
   Job response = jobControllerClient.submitJobAsOperationAsync(projectId, region, job).get();
 }
 
Parameters
NameDescription
projectIdString

Required. The ID of the Google Cloud Platform project that the job belongs to.

regionString

Required. The Dataproc region in which to handle the request.

jobJob

Required. The job resource.

Returns
TypeDescription
OperationFuture<Job,JobMetadata>

submitJobAsOperationCallable()

public final UnaryCallable<SubmitJobRequest,Operation> submitJobAsOperationCallable()

Submits job to a cluster.

Sample code:


 try (JobControllerClient jobControllerClient = JobControllerClient.create()) {
   SubmitJobRequest request =
       SubmitJobRequest.newBuilder()
           .setProjectId("projectId-894832108")
           .setRegion("region-934795532")
           .setJob(Job.newBuilder().build())
           .setRequestId("requestId693933066")
           .build();
   ApiFuture<Operation> future =
       jobControllerClient.submitJobAsOperationCallable().futureCall(request);
   // Do something.
   Operation response = future.get();
 }
 
Returns
TypeDescription
UnaryCallable<SubmitJobRequest,Operation>

submitJobAsOperationOperationCallable()

public final OperationCallable<SubmitJobRequest,Job,JobMetadata> submitJobAsOperationOperationCallable()

Submits job to a cluster.

Sample code:


 try (JobControllerClient jobControllerClient = JobControllerClient.create()) {
   SubmitJobRequest request =
       SubmitJobRequest.newBuilder()
           .setProjectId("projectId-894832108")
           .setRegion("region-934795532")
           .setJob(Job.newBuilder().build())
           .setRequestId("requestId693933066")
           .build();
   OperationFuture<Job, JobMetadata> future =
       jobControllerClient.submitJobAsOperationOperationCallable().futureCall(request);
   // Do something.
   Job response = future.get();
 }
 
Returns
TypeDescription
OperationCallable<SubmitJobRequest,Job,JobMetadata>

submitJobCallable()

public final UnaryCallable<SubmitJobRequest,Job> submitJobCallable()

Submits a job to a cluster.

Sample code:


 try (JobControllerClient jobControllerClient = JobControllerClient.create()) {
   SubmitJobRequest request =
       SubmitJobRequest.newBuilder()
           .setProjectId("projectId-894832108")
           .setRegion("region-934795532")
           .setJob(Job.newBuilder().build())
           .setRequestId("requestId693933066")
           .build();
   ApiFuture<Job> future = jobControllerClient.submitJobCallable().futureCall(request);
   // Do something.
   Job response = future.get();
 }
 
Returns
TypeDescription
UnaryCallable<SubmitJobRequest,Job>

updateJob(UpdateJobRequest request)

public final Job updateJob(UpdateJobRequest request)

Updates a job in a project.

Sample code:


 try (JobControllerClient jobControllerClient = JobControllerClient.create()) {
   UpdateJobRequest request =
       UpdateJobRequest.newBuilder()
           .setProjectId("projectId-894832108")
           .setRegion("region-934795532")
           .setJobId("jobId101296568")
           .setJob(Job.newBuilder().build())
           .setUpdateMask(FieldMask.newBuilder().build())
           .build();
   Job response = jobControllerClient.updateJob(request);
 }
 
Parameter
NameDescription
requestUpdateJobRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
Job

updateJobCallable()

public final UnaryCallable<UpdateJobRequest,Job> updateJobCallable()

Updates a job in a project.

Sample code:


 try (JobControllerClient jobControllerClient = JobControllerClient.create()) {
   UpdateJobRequest request =
       UpdateJobRequest.newBuilder()
           .setProjectId("projectId-894832108")
           .setRegion("region-934795532")
           .setJobId("jobId101296568")
           .setJob(Job.newBuilder().build())
           .setUpdateMask(FieldMask.newBuilder().build())
           .build();
   ApiFuture<Job> future = jobControllerClient.updateJobCallable().futureCall(request);
   // Do something.
   Job response = future.get();
 }
 
Returns
TypeDescription
UnaryCallable<UpdateJobRequest,Job>