Class SpecialistPoolServiceClient (2.4.0)

public class SpecialistPoolServiceClient implements BackgroundResource

Service Description: A service for creating and managing Customer SpecialistPools. When customers start Data Labeling jobs, they can reuse/create Specialist Pools to bring their own Specialists to label the data. Customers can add/remove Managers for the Specialist Pool on Cloud console, then Managers will get email notifications to manage Specialists and tasks on CrowdCompute console.

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 (SpecialistPoolServiceClient specialistPoolServiceClient =
     SpecialistPoolServiceClient.create()) {
   SpecialistPoolName name =
       SpecialistPoolName.of("[PROJECT]", "[LOCATION]", "[SPECIALIST_POOL]");
   SpecialistPool response = specialistPoolServiceClient.getSpecialistPool(name);
 }
 

Note: close() needs to be called on the SpecialistPoolServiceClient 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 SpecialistPoolServiceSettings to create(). For example:

To customize credentials:


 SpecialistPoolServiceSettings specialistPoolServiceSettings =
     SpecialistPoolServiceSettings.newBuilder()
         .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
         .build();
 SpecialistPoolServiceClient specialistPoolServiceClient =
     SpecialistPoolServiceClient.create(specialistPoolServiceSettings);
 

To customize the endpoint:


 SpecialistPoolServiceSettings specialistPoolServiceSettings =
     SpecialistPoolServiceSettings.newBuilder().setEndpoint(myEndpoint).build();
 SpecialistPoolServiceClient specialistPoolServiceClient =
     SpecialistPoolServiceClient.create(specialistPoolServiceSettings);
 

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

Inheritance

java.lang.Object > SpecialistPoolServiceClient

Implements

BackgroundResource

Constructors

SpecialistPoolServiceClient(SpecialistPoolServiceSettings settings)

protected SpecialistPoolServiceClient(SpecialistPoolServiceSettings settings)

Constructs an instance of SpecialistPoolServiceClient, 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
settingsSpecialistPoolServiceSettings

SpecialistPoolServiceClient(SpecialistPoolServiceStub stub)

protected SpecialistPoolServiceClient(SpecialistPoolServiceStub stub)
Parameter
NameDescription
stubSpecialistPoolServiceStub

Methods

awaitTermination(long duration, TimeUnit unit)

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

close()

public final void close()

create()

public static final SpecialistPoolServiceClient create()

Constructs an instance of SpecialistPoolServiceClient with default settings.

Returns
TypeDescription
SpecialistPoolServiceClient
Exceptions
TypeDescription
IOException

create(SpecialistPoolServiceSettings settings)

public static final SpecialistPoolServiceClient create(SpecialistPoolServiceSettings settings)

Constructs an instance of SpecialistPoolServiceClient, 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
settingsSpecialistPoolServiceSettings
Returns
TypeDescription
SpecialistPoolServiceClient
Exceptions
TypeDescription
IOException

create(SpecialistPoolServiceStub stub)

public static final SpecialistPoolServiceClient create(SpecialistPoolServiceStub stub)

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

Parameter
NameDescription
stubSpecialistPoolServiceStub
Returns
TypeDescription
SpecialistPoolServiceClient

createSpecialistPoolAsync(CreateSpecialistPoolRequest request)

public final OperationFuture<SpecialistPool,CreateSpecialistPoolOperationMetadata> createSpecialistPoolAsync(CreateSpecialistPoolRequest request)

Creates a SpecialistPool.

Sample code:


 try (SpecialistPoolServiceClient specialistPoolServiceClient =
     SpecialistPoolServiceClient.create()) {
   CreateSpecialistPoolRequest request =
       CreateSpecialistPoolRequest.newBuilder()
           .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString())
           .setSpecialistPool(SpecialistPool.newBuilder().build())
           .build();
   SpecialistPool response =
       specialistPoolServiceClient.createSpecialistPoolAsync(request).get();
 }
 
Parameter
NameDescription
requestCreateSpecialistPoolRequest

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

Returns
TypeDescription
OperationFuture<SpecialistPool,CreateSpecialistPoolOperationMetadata>

createSpecialistPoolAsync(LocationName parent, SpecialistPool specialistPool)

public final OperationFuture<SpecialistPool,CreateSpecialistPoolOperationMetadata> createSpecialistPoolAsync(LocationName parent, SpecialistPool specialistPool)

Creates a SpecialistPool.

Sample code:


 try (SpecialistPoolServiceClient specialistPoolServiceClient =
     SpecialistPoolServiceClient.create()) {
   LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
   SpecialistPool specialistPool = SpecialistPool.newBuilder().build();
   SpecialistPool response =
       specialistPoolServiceClient.createSpecialistPoolAsync(parent, specialistPool).get();
 }
 
Parameters
NameDescription
parentLocationName

Required. The parent Project name for the new SpecialistPool. The form is projects/{project}/locations/{location}.

specialistPoolSpecialistPool

Required. The SpecialistPool to create.

Returns
TypeDescription
OperationFuture<SpecialistPool,CreateSpecialistPoolOperationMetadata>

createSpecialistPoolAsync(String parent, SpecialistPool specialistPool)

public final OperationFuture<SpecialistPool,CreateSpecialistPoolOperationMetadata> createSpecialistPoolAsync(String parent, SpecialistPool specialistPool)

Creates a SpecialistPool.

Sample code:


 try (SpecialistPoolServiceClient specialistPoolServiceClient =
     SpecialistPoolServiceClient.create()) {
   String parent = LocationName.of("[PROJECT]", "[LOCATION]").toString();
   SpecialistPool specialistPool = SpecialistPool.newBuilder().build();
   SpecialistPool response =
       specialistPoolServiceClient.createSpecialistPoolAsync(parent, specialistPool).get();
 }
 
Parameters
NameDescription
parentString

Required. The parent Project name for the new SpecialistPool. The form is projects/{project}/locations/{location}.

specialistPoolSpecialistPool

Required. The SpecialistPool to create.

Returns
TypeDescription
OperationFuture<SpecialistPool,CreateSpecialistPoolOperationMetadata>

createSpecialistPoolCallable()

public final UnaryCallable<CreateSpecialistPoolRequest,Operation> createSpecialistPoolCallable()

Creates a SpecialistPool.

Sample code:


 try (SpecialistPoolServiceClient specialistPoolServiceClient =
     SpecialistPoolServiceClient.create()) {
   CreateSpecialistPoolRequest request =
       CreateSpecialistPoolRequest.newBuilder()
           .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString())
           .setSpecialistPool(SpecialistPool.newBuilder().build())
           .build();
   ApiFuture
Returns
TypeDescription
UnaryCallable<CreateSpecialistPoolRequest,Operation>

createSpecialistPoolOperationCallable()

public final OperationCallable<CreateSpecialistPoolRequest,SpecialistPool,CreateSpecialistPoolOperationMetadata> createSpecialistPoolOperationCallable()

Creates a SpecialistPool.

Sample code:


 try (SpecialistPoolServiceClient specialistPoolServiceClient =
     SpecialistPoolServiceClient.create()) {
   CreateSpecialistPoolRequest request =
       CreateSpecialistPoolRequest.newBuilder()
           .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString())
           .setSpecialistPool(SpecialistPool.newBuilder().build())
           .build();
   OperationFuture
Returns
TypeDescription
OperationCallable<CreateSpecialistPoolRequest,SpecialistPool,CreateSpecialistPoolOperationMetadata>

deleteSpecialistPoolAsync(DeleteSpecialistPoolRequest request)

public final OperationFuture<Empty,DeleteOperationMetadata> deleteSpecialistPoolAsync(DeleteSpecialistPoolRequest request)

Deletes a SpecialistPool as well as all Specialists in the pool.

Sample code:


 try (SpecialistPoolServiceClient specialistPoolServiceClient =
     SpecialistPoolServiceClient.create()) {
   DeleteSpecialistPoolRequest request =
       DeleteSpecialistPoolRequest.newBuilder()
           .setName(
               SpecialistPoolName.of("[PROJECT]", "[LOCATION]", "[SPECIALIST_POOL]").toString())
           .setForce(true)
           .build();
   specialistPoolServiceClient.deleteSpecialistPoolAsync(request).get();
 }
 
Parameter
NameDescription
requestDeleteSpecialistPoolRequest

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

Returns
TypeDescription
OperationFuture<Empty,DeleteOperationMetadata>

deleteSpecialistPoolAsync(SpecialistPoolName name)

public final OperationFuture<Empty,DeleteOperationMetadata> deleteSpecialistPoolAsync(SpecialistPoolName name)

Deletes a SpecialistPool as well as all Specialists in the pool.

Sample code:


 try (SpecialistPoolServiceClient specialistPoolServiceClient =
     SpecialistPoolServiceClient.create()) {
   SpecialistPoolName name =
       SpecialistPoolName.of("[PROJECT]", "[LOCATION]", "[SPECIALIST_POOL]");
   specialistPoolServiceClient.deleteSpecialistPoolAsync(name).get();
 }
 
Parameter
NameDescription
nameSpecialistPoolName

Required. The resource name of the SpecialistPool to delete. Format: projects/{project}/locations/{location}/specialistPools/{specialist_pool}

Returns
TypeDescription
OperationFuture<Empty,DeleteOperationMetadata>

deleteSpecialistPoolAsync(String name)

public final OperationFuture<Empty,DeleteOperationMetadata> deleteSpecialistPoolAsync(String name)

Deletes a SpecialistPool as well as all Specialists in the pool.

Sample code:


 try (SpecialistPoolServiceClient specialistPoolServiceClient =
     SpecialistPoolServiceClient.create()) {
   String name =
       SpecialistPoolName.of("[PROJECT]", "[LOCATION]", "[SPECIALIST_POOL]").toString();
   specialistPoolServiceClient.deleteSpecialistPoolAsync(name).get();
 }
 
Parameter
NameDescription
nameString

Required. The resource name of the SpecialistPool to delete. Format: projects/{project}/locations/{location}/specialistPools/{specialist_pool}

Returns
TypeDescription
OperationFuture<Empty,DeleteOperationMetadata>

deleteSpecialistPoolCallable()

public final UnaryCallable<DeleteSpecialistPoolRequest,Operation> deleteSpecialistPoolCallable()

Deletes a SpecialistPool as well as all Specialists in the pool.

Sample code:


 try (SpecialistPoolServiceClient specialistPoolServiceClient =
     SpecialistPoolServiceClient.create()) {
   DeleteSpecialistPoolRequest request =
       DeleteSpecialistPoolRequest.newBuilder()
           .setName(
               SpecialistPoolName.of("[PROJECT]", "[LOCATION]", "[SPECIALIST_POOL]").toString())
           .setForce(true)
           .build();
   ApiFuture
Returns
TypeDescription
UnaryCallable<DeleteSpecialistPoolRequest,Operation>

deleteSpecialistPoolOperationCallable()

public final OperationCallable<DeleteSpecialistPoolRequest,Empty,DeleteOperationMetadata> deleteSpecialistPoolOperationCallable()

Deletes a SpecialistPool as well as all Specialists in the pool.

Sample code:


 try (SpecialistPoolServiceClient specialistPoolServiceClient =
     SpecialistPoolServiceClient.create()) {
   DeleteSpecialistPoolRequest request =
       DeleteSpecialistPoolRequest.newBuilder()
           .setName(
               SpecialistPoolName.of("[PROJECT]", "[LOCATION]", "[SPECIALIST_POOL]").toString())
           .setForce(true)
           .build();
   OperationFuture
Returns
TypeDescription
OperationCallable<DeleteSpecialistPoolRequest,Empty,DeleteOperationMetadata>

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 SpecialistPoolServiceSettings getSettings()
Returns
TypeDescription
SpecialistPoolServiceSettings

getSpecialistPool(GetSpecialistPoolRequest request)

public final SpecialistPool getSpecialistPool(GetSpecialistPoolRequest request)

Gets a SpecialistPool.

Sample code:


 try (SpecialistPoolServiceClient specialistPoolServiceClient =
     SpecialistPoolServiceClient.create()) {
   GetSpecialistPoolRequest request =
       GetSpecialistPoolRequest.newBuilder()
           .setName(
               SpecialistPoolName.of("[PROJECT]", "[LOCATION]", "[SPECIALIST_POOL]").toString())
           .build();
   SpecialistPool response = specialistPoolServiceClient.getSpecialistPool(request);
 }
 
Parameter
NameDescription
requestGetSpecialistPoolRequest

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

Returns
TypeDescription
SpecialistPool

getSpecialistPool(SpecialistPoolName name)

public final SpecialistPool getSpecialistPool(SpecialistPoolName name)

Gets a SpecialistPool.

Sample code:


 try (SpecialistPoolServiceClient specialistPoolServiceClient =
     SpecialistPoolServiceClient.create()) {
   SpecialistPoolName name =
       SpecialistPoolName.of("[PROJECT]", "[LOCATION]", "[SPECIALIST_POOL]");
   SpecialistPool response = specialistPoolServiceClient.getSpecialistPool(name);
 }
 
Parameter
NameDescription
nameSpecialistPoolName

Required. The name of the SpecialistPool resource. The form is projects/{project}/locations/{location}/specialistPools/{specialist_pool}.

Returns
TypeDescription
SpecialistPool

getSpecialistPool(String name)

public final SpecialistPool getSpecialistPool(String name)

Gets a SpecialistPool.

Sample code:


 try (SpecialistPoolServiceClient specialistPoolServiceClient =
     SpecialistPoolServiceClient.create()) {
   String name =
       SpecialistPoolName.of("[PROJECT]", "[LOCATION]", "[SPECIALIST_POOL]").toString();
   SpecialistPool response = specialistPoolServiceClient.getSpecialistPool(name);
 }
 
Parameter
NameDescription
nameString

Required. The name of the SpecialistPool resource. The form is projects/{project}/locations/{location}/specialistPools/{specialist_pool}.

Returns
TypeDescription
SpecialistPool

getSpecialistPoolCallable()

public final UnaryCallable<GetSpecialistPoolRequest,SpecialistPool> getSpecialistPoolCallable()

Gets a SpecialistPool.

Sample code:


 try (SpecialistPoolServiceClient specialistPoolServiceClient =
     SpecialistPoolServiceClient.create()) {
   GetSpecialistPoolRequest request =
       GetSpecialistPoolRequest.newBuilder()
           .setName(
               SpecialistPoolName.of("[PROJECT]", "[LOCATION]", "[SPECIALIST_POOL]").toString())
           .build();
   ApiFuture
Returns
TypeDescription
UnaryCallable<GetSpecialistPoolRequest,SpecialistPool>

getStub()

public SpecialistPoolServiceStub getStub()
Returns
TypeDescription
SpecialistPoolServiceStub

isShutdown()

public boolean isShutdown()
Returns
TypeDescription
boolean

isTerminated()

public boolean isTerminated()
Returns
TypeDescription
boolean

listSpecialistPools(ListSpecialistPoolsRequest request)

public final SpecialistPoolServiceClient.ListSpecialistPoolsPagedResponse listSpecialistPools(ListSpecialistPoolsRequest request)

Lists SpecialistPools in a Location.

Sample code:


 try (SpecialistPoolServiceClient specialistPoolServiceClient =
     SpecialistPoolServiceClient.create()) {
   ListSpecialistPoolsRequest request =
       ListSpecialistPoolsRequest.newBuilder()
           .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString())
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .setReadMask(FieldMask.newBuilder().build())
           .build();
   for (SpecialistPool element :
       specialistPoolServiceClient.listSpecialistPools(request).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameter
NameDescription
requestListSpecialistPoolsRequest

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

Returns
TypeDescription
SpecialistPoolServiceClient.ListSpecialistPoolsPagedResponse

listSpecialistPools(LocationName parent)

public final SpecialistPoolServiceClient.ListSpecialistPoolsPagedResponse listSpecialistPools(LocationName parent)

Lists SpecialistPools in a Location.

Sample code:


 try (SpecialistPoolServiceClient specialistPoolServiceClient =
     SpecialistPoolServiceClient.create()) {
   LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
   for (SpecialistPool element :
       specialistPoolServiceClient.listSpecialistPools(parent).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameter
NameDescription
parentLocationName

Required. The name of the SpecialistPool's parent resource. Format: projects/{project}/locations/{location}

Returns
TypeDescription
SpecialistPoolServiceClient.ListSpecialistPoolsPagedResponse

listSpecialistPools(String parent)

public final SpecialistPoolServiceClient.ListSpecialistPoolsPagedResponse listSpecialistPools(String parent)

Lists SpecialistPools in a Location.

Sample code:


 try (SpecialistPoolServiceClient specialistPoolServiceClient =
     SpecialistPoolServiceClient.create()) {
   String parent = LocationName.of("[PROJECT]", "[LOCATION]").toString();
   for (SpecialistPool element :
       specialistPoolServiceClient.listSpecialistPools(parent).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameter
NameDescription
parentString

Required. The name of the SpecialistPool's parent resource. Format: projects/{project}/locations/{location}

Returns
TypeDescription
SpecialistPoolServiceClient.ListSpecialistPoolsPagedResponse

listSpecialistPoolsCallable()

public final UnaryCallable<ListSpecialistPoolsRequest,ListSpecialistPoolsResponse> listSpecialistPoolsCallable()

Lists SpecialistPools in a Location.

Sample code:


 try (SpecialistPoolServiceClient specialistPoolServiceClient =
     SpecialistPoolServiceClient.create()) {
   ListSpecialistPoolsRequest request =
       ListSpecialistPoolsRequest.newBuilder()
           .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString())
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .setReadMask(FieldMask.newBuilder().build())
           .build();
   while (true) {
     ListSpecialistPoolsResponse response =
         specialistPoolServiceClient.listSpecialistPoolsCallable().call(request);
     for (SpecialistPool element : response.getResponsesList()) {
       // doThingsWith(element);
     }
     String nextPageToken = response.getNextPageToken();
     if (!Strings.isNullOrEmpty(nextPageToken)) {
       request = request.toBuilder().setPageToken(nextPageToken).build();
     } else {
       break;
     }
   }
 }
 
Returns
TypeDescription
UnaryCallable<ListSpecialistPoolsRequest,ListSpecialistPoolsResponse>

listSpecialistPoolsPagedCallable()

public final UnaryCallable<ListSpecialistPoolsRequest,SpecialistPoolServiceClient.ListSpecialistPoolsPagedResponse> listSpecialistPoolsPagedCallable()

Lists SpecialistPools in a Location.

Sample code:


 try (SpecialistPoolServiceClient specialistPoolServiceClient =
     SpecialistPoolServiceClient.create()) {
   ListSpecialistPoolsRequest request =
       ListSpecialistPoolsRequest.newBuilder()
           .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString())
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .setReadMask(FieldMask.newBuilder().build())
           .build();
   ApiFuture
Returns
TypeDescription
UnaryCallable<ListSpecialistPoolsRequest,ListSpecialistPoolsPagedResponse>

shutdown()

public void shutdown()

shutdownNow()

public void shutdownNow()

updateSpecialistPoolAsync(SpecialistPool specialistPool, FieldMask updateMask)

public final OperationFuture<SpecialistPool,UpdateSpecialistPoolOperationMetadata> updateSpecialistPoolAsync(SpecialistPool specialistPool, FieldMask updateMask)

Updates a SpecialistPool.

Sample code:


 try (SpecialistPoolServiceClient specialistPoolServiceClient =
     SpecialistPoolServiceClient.create()) {
   SpecialistPool specialistPool = SpecialistPool.newBuilder().build();
   FieldMask updateMask = FieldMask.newBuilder().build();
   SpecialistPool response =
       specialistPoolServiceClient.updateSpecialistPoolAsync(specialistPool, updateMask).get();
 }
 
Parameters
NameDescription
specialistPoolSpecialistPool

Required. The SpecialistPool which replaces the resource on the server.

updateMaskFieldMask

Required. The update mask applies to the resource.

Returns
TypeDescription
OperationFuture<SpecialistPool,UpdateSpecialistPoolOperationMetadata>

updateSpecialistPoolAsync(UpdateSpecialistPoolRequest request)

public final OperationFuture<SpecialistPool,UpdateSpecialistPoolOperationMetadata> updateSpecialistPoolAsync(UpdateSpecialistPoolRequest request)

Updates a SpecialistPool.

Sample code:


 try (SpecialistPoolServiceClient specialistPoolServiceClient =
     SpecialistPoolServiceClient.create()) {
   UpdateSpecialistPoolRequest request =
       UpdateSpecialistPoolRequest.newBuilder()
           .setSpecialistPool(SpecialistPool.newBuilder().build())
           .setUpdateMask(FieldMask.newBuilder().build())
           .build();
   SpecialistPool response =
       specialistPoolServiceClient.updateSpecialistPoolAsync(request).get();
 }
 
Parameter
NameDescription
requestUpdateSpecialistPoolRequest

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

Returns
TypeDescription
OperationFuture<SpecialistPool,UpdateSpecialistPoolOperationMetadata>

updateSpecialistPoolCallable()

public final UnaryCallable<UpdateSpecialistPoolRequest,Operation> updateSpecialistPoolCallable()

Updates a SpecialistPool.

Sample code:


 try (SpecialistPoolServiceClient specialistPoolServiceClient =
     SpecialistPoolServiceClient.create()) {
   UpdateSpecialistPoolRequest request =
       UpdateSpecialistPoolRequest.newBuilder()
           .setSpecialistPool(SpecialistPool.newBuilder().build())
           .setUpdateMask(FieldMask.newBuilder().build())
           .build();
   ApiFuture
Returns
TypeDescription
UnaryCallable<UpdateSpecialistPoolRequest,Operation>

updateSpecialistPoolOperationCallable()

public final OperationCallable<UpdateSpecialistPoolRequest,SpecialistPool,UpdateSpecialistPoolOperationMetadata> updateSpecialistPoolOperationCallable()

Updates a SpecialistPool.

Sample code:


 try (SpecialistPoolServiceClient specialistPoolServiceClient =
     SpecialistPoolServiceClient.create()) {
   UpdateSpecialistPoolRequest request =
       UpdateSpecialistPoolRequest.newBuilder()
           .setSpecialistPool(SpecialistPool.newBuilder().build())
           .setUpdateMask(FieldMask.newBuilder().build())
           .build();
   OperationFuture
Returns
TypeDescription
OperationCallable<UpdateSpecialistPoolRequest,SpecialistPool,UpdateSpecialistPoolOperationMetadata>