Class RecommenderClient (2.1.5)

public class RecommenderClient implements BackgroundResource

Service Description: Provides insights and recommendations for cloud customers for various categories like performance optimization, cost savings, reliability, feature discovery, etc. Insights and recommendations are generated automatically based on analysis of user resources, configuration and monitoring metrics.

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 (RecommenderClient recommenderClient = RecommenderClient.create()) {
   InsightName name =
       InsightName.ofProjectLocationInsightTypeInsightName(
           "[PROJECT]", "[LOCATION]", "[INSIGHT_TYPE]", "[INSIGHT]");
   Insight response = recommenderClient.getInsight(name);
 }
 

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

To customize credentials:


 RecommenderSettings recommenderSettings =
     RecommenderSettings.newBuilder()
         .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
         .build();
 RecommenderClient recommenderClient = RecommenderClient.create(recommenderSettings);
 

To customize the endpoint:


 RecommenderSettings recommenderSettings =
     RecommenderSettings.newBuilder().setEndpoint(myEndpoint).build();
 RecommenderClient recommenderClient = RecommenderClient.create(recommenderSettings);
 

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

Inheritance

java.lang.Object > RecommenderClient

Implements

BackgroundResource

Constructors

RecommenderClient(RecommenderSettings settings)

protected RecommenderClient(RecommenderSettings settings)

Constructs an instance of RecommenderClient, 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
settingsRecommenderSettings

RecommenderClient(RecommenderStub stub)

protected RecommenderClient(RecommenderStub stub)
Parameter
NameDescription
stubRecommenderStub

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 RecommenderClient create()

Constructs an instance of RecommenderClient with default settings.

Returns
TypeDescription
RecommenderClient
Exceptions
TypeDescription
IOException

create(RecommenderSettings settings)

public static final RecommenderClient create(RecommenderSettings settings)

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

create(RecommenderStub stub)

public static final RecommenderClient create(RecommenderStub stub)

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

Parameter
NameDescription
stubRecommenderStub
Returns
TypeDescription
RecommenderClient

getInsight(GetInsightRequest request)

public final Insight getInsight(GetInsightRequest request)

Gets the requested insight. Requires the recommender.*.get IAM permission for the specified insight type.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   GetInsightRequest request =
       GetInsightRequest.newBuilder()
           .setName(
               InsightName.ofProjectLocationInsightTypeInsightName(
                       "[PROJECT]", "[LOCATION]", "[INSIGHT_TYPE]", "[INSIGHT]")
                   .toString())
           .build();
   Insight response = recommenderClient.getInsight(request);
 }
 
Parameter
NameDescription
requestGetInsightRequest

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

Returns
TypeDescription
Insight

getInsight(InsightName name)

public final Insight getInsight(InsightName name)

Gets the requested insight. Requires the recommender.*.get IAM permission for the specified insight type.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   InsightName name =
       InsightName.ofProjectLocationInsightTypeInsightName(
           "[PROJECT]", "[LOCATION]", "[INSIGHT_TYPE]", "[INSIGHT]");
   Insight response = recommenderClient.getInsight(name);
 }
 
Parameter
NameDescription
nameInsightName

Required. Name of the insight.

Returns
TypeDescription
Insight

getInsight(String name)

public final Insight getInsight(String name)

Gets the requested insight. Requires the recommender.*.get IAM permission for the specified insight type.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   String name =
       InsightName.ofProjectLocationInsightTypeInsightName(
               "[PROJECT]", "[LOCATION]", "[INSIGHT_TYPE]", "[INSIGHT]")
           .toString();
   Insight response = recommenderClient.getInsight(name);
 }
 
Parameter
NameDescription
nameString

Required. Name of the insight.

Returns
TypeDescription
Insight

getInsightCallable()

public final UnaryCallable<GetInsightRequest,Insight> getInsightCallable()

Gets the requested insight. Requires the recommender.*.get IAM permission for the specified insight type.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   GetInsightRequest request =
       GetInsightRequest.newBuilder()
           .setName(
               InsightName.ofProjectLocationInsightTypeInsightName(
                       "[PROJECT]", "[LOCATION]", "[INSIGHT_TYPE]", "[INSIGHT]")
                   .toString())
           .build();
   ApiFuture<Insight> future = recommenderClient.getInsightCallable().futureCall(request);
   // Do something.
   Insight response = future.get();
 }
 
Returns
TypeDescription
UnaryCallable<GetInsightRequest,Insight>

getRecommendation(GetRecommendationRequest request)

public final Recommendation getRecommendation(GetRecommendationRequest request)

Gets the requested recommendation. Requires the recommender.*.get IAM permission for the specified recommender.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   GetRecommendationRequest request =
       GetRecommendationRequest.newBuilder()
           .setName(
               RecommendationName.ofProjectLocationRecommenderRecommendationName(
                       "[PROJECT]", "[LOCATION]", "[RECOMMENDER]", "[RECOMMENDATION]")
                   .toString())
           .build();
   Recommendation response = recommenderClient.getRecommendation(request);
 }
 
Parameter
NameDescription
requestGetRecommendationRequest

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

Returns
TypeDescription
Recommendation

getRecommendation(RecommendationName name)

public final Recommendation getRecommendation(RecommendationName name)

Gets the requested recommendation. Requires the recommender.*.get IAM permission for the specified recommender.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   RecommendationName name =
       RecommendationName.ofProjectLocationRecommenderRecommendationName(
           "[PROJECT]", "[LOCATION]", "[RECOMMENDER]", "[RECOMMENDATION]");
   Recommendation response = recommenderClient.getRecommendation(name);
 }
 
Parameter
NameDescription
nameRecommendationName

Required. Name of the recommendation.

Returns
TypeDescription
Recommendation

getRecommendation(String name)

public final Recommendation getRecommendation(String name)

Gets the requested recommendation. Requires the recommender.*.get IAM permission for the specified recommender.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   String name =
       RecommendationName.ofProjectLocationRecommenderRecommendationName(
               "[PROJECT]", "[LOCATION]", "[RECOMMENDER]", "[RECOMMENDATION]")
           .toString();
   Recommendation response = recommenderClient.getRecommendation(name);
 }
 
Parameter
NameDescription
nameString

Required. Name of the recommendation.

Returns
TypeDescription
Recommendation

getRecommendationCallable()

public final UnaryCallable<GetRecommendationRequest,Recommendation> getRecommendationCallable()

Gets the requested recommendation. Requires the recommender.*.get IAM permission for the specified recommender.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   GetRecommendationRequest request =
       GetRecommendationRequest.newBuilder()
           .setName(
               RecommendationName.ofProjectLocationRecommenderRecommendationName(
                       "[PROJECT]", "[LOCATION]", "[RECOMMENDER]", "[RECOMMENDATION]")
                   .toString())
           .build();
   ApiFuture<Recommendation> future =
       recommenderClient.getRecommendationCallable().futureCall(request);
   // Do something.
   Recommendation response = future.get();
 }
 
Returns
TypeDescription
UnaryCallable<GetRecommendationRequest,Recommendation>

getSettings()

public final RecommenderSettings getSettings()
Returns
TypeDescription
RecommenderSettings

getStub()

public RecommenderStub getStub()
Returns
TypeDescription
RecommenderStub

isShutdown()

public boolean isShutdown()
Returns
TypeDescription
boolean

isTerminated()

public boolean isTerminated()
Returns
TypeDescription
boolean

listInsights(InsightTypeName parent)

public final RecommenderClient.ListInsightsPagedResponse listInsights(InsightTypeName parent)

Lists insights for a Cloud project. Requires the recommender.*.list IAM permission for the specified insight type.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   InsightTypeName parent =
       InsightTypeName.ofProjectLocationInsightTypeName(
           "[PROJECT]", "[LOCATION]", "[INSIGHT_TYPE]");
   for (Insight element : recommenderClient.listInsights(parent).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameter
NameDescription
parentInsightTypeName

Required. The container resource on which to execute the request. Acceptable formats:

1. "projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]",

LOCATION here refers to GCP Locations: https://cloud.google.com/about/locations/ INSIGHT_TYPE_ID refers to supported insight types: https://cloud.google.com/recommender/docs/insights/insight-types.

Returns
TypeDescription
RecommenderClient.ListInsightsPagedResponse

listInsights(ListInsightsRequest request)

public final RecommenderClient.ListInsightsPagedResponse listInsights(ListInsightsRequest request)

Lists insights for a Cloud project. Requires the recommender.*.list IAM permission for the specified insight type.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   ListInsightsRequest request =
       ListInsightsRequest.newBuilder()
           .setParent(
               InsightTypeName.ofProjectLocationInsightTypeName(
                       "[PROJECT]", "[LOCATION]", "[INSIGHT_TYPE]")
                   .toString())
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .setFilter("filter-1274492040")
           .build();
   for (Insight element : recommenderClient.listInsights(request).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameter
NameDescription
requestListInsightsRequest

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

Returns
TypeDescription
RecommenderClient.ListInsightsPagedResponse

listInsights(String parent)

public final RecommenderClient.ListInsightsPagedResponse listInsights(String parent)

Lists insights for a Cloud project. Requires the recommender.*.list IAM permission for the specified insight type.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   String parent =
       InsightTypeName.ofProjectLocationInsightTypeName(
               "[PROJECT]", "[LOCATION]", "[INSIGHT_TYPE]")
           .toString();
   for (Insight element : recommenderClient.listInsights(parent).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameter
NameDescription
parentString

Required. The container resource on which to execute the request. Acceptable formats:

1. "projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]",

LOCATION here refers to GCP Locations: https://cloud.google.com/about/locations/ INSIGHT_TYPE_ID refers to supported insight types: https://cloud.google.com/recommender/docs/insights/insight-types.

Returns
TypeDescription
RecommenderClient.ListInsightsPagedResponse

listInsightsCallable()

public final UnaryCallable<ListInsightsRequest,ListInsightsResponse> listInsightsCallable()

Lists insights for a Cloud project. Requires the recommender.*.list IAM permission for the specified insight type.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   ListInsightsRequest request =
       ListInsightsRequest.newBuilder()
           .setParent(
               InsightTypeName.ofProjectLocationInsightTypeName(
                       "[PROJECT]", "[LOCATION]", "[INSIGHT_TYPE]")
                   .toString())
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .setFilter("filter-1274492040")
           .build();
   while (true) {
     ListInsightsResponse response = recommenderClient.listInsightsCallable().call(request);
     for (Insight element : response.getResponsesList()) {
       // doThingsWith(element);
     }
     String nextPageToken = response.getNextPageToken();
     if (!Strings.isNullOrEmpty(nextPageToken)) {
       request = request.toBuilder().setPageToken(nextPageToken).build();
     } else {
       break;
     }
   }
 }
 
Returns
TypeDescription
UnaryCallable<ListInsightsRequest,ListInsightsResponse>

listInsightsPagedCallable()

public final UnaryCallable<ListInsightsRequest,RecommenderClient.ListInsightsPagedResponse> listInsightsPagedCallable()

Lists insights for a Cloud project. Requires the recommender.*.list IAM permission for the specified insight type.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   ListInsightsRequest request =
       ListInsightsRequest.newBuilder()
           .setParent(
               InsightTypeName.ofProjectLocationInsightTypeName(
                       "[PROJECT]", "[LOCATION]", "[INSIGHT_TYPE]")
                   .toString())
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .setFilter("filter-1274492040")
           .build();
   ApiFuture<Insight> future = recommenderClient.listInsightsPagedCallable().futureCall(request);
   // Do something.
   for (Insight element : future.get().iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Returns
TypeDescription
UnaryCallable<ListInsightsRequest,ListInsightsPagedResponse>

listRecommendations(ListRecommendationsRequest request)

public final RecommenderClient.ListRecommendationsPagedResponse listRecommendations(ListRecommendationsRequest request)

Lists recommendations for a Cloud project. Requires the recommender.*.list IAM permission for the specified recommender.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   ListRecommendationsRequest request =
       ListRecommendationsRequest.newBuilder()
           .setParent(
               RecommenderName.ofProjectLocationRecommenderName(
                       "[PROJECT]", "[LOCATION]", "[RECOMMENDER]")
                   .toString())
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .setFilter("filter-1274492040")
           .build();
   for (Recommendation element : recommenderClient.listRecommendations(request).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameter
NameDescription
requestListRecommendationsRequest

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

Returns
TypeDescription
RecommenderClient.ListRecommendationsPagedResponse

listRecommendations(RecommenderName parent, String filter)

public final RecommenderClient.ListRecommendationsPagedResponse listRecommendations(RecommenderName parent, String filter)

Lists recommendations for a Cloud project. Requires the recommender.*.list IAM permission for the specified recommender.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   RecommenderName parent =
       RecommenderName.ofProjectLocationRecommenderName(
           "[PROJECT]", "[LOCATION]", "[RECOMMENDER]");
   String filter = "filter-1274492040";
   for (Recommendation element :
       recommenderClient.listRecommendations(parent, filter).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameters
NameDescription
parentRecommenderName

Required. The container resource on which to execute the request. Acceptable formats:

1. "projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]",

LOCATION here refers to GCP Locations: https://cloud.google.com/about/locations/ RECOMMENDER_ID refers to supported recommenders: https://cloud.google.com/recommender/docs/recommenders.

filterString

Filter expression to restrict the recommendations returned. Supported filter fields: state_info.state Eg: `state_info.state:"DISMISSED" or state_info.state:"FAILED"

Returns
TypeDescription
RecommenderClient.ListRecommendationsPagedResponse

listRecommendations(String parent, String filter)

public final RecommenderClient.ListRecommendationsPagedResponse listRecommendations(String parent, String filter)

Lists recommendations for a Cloud project. Requires the recommender.*.list IAM permission for the specified recommender.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   String parent =
       RecommenderName.ofProjectLocationRecommenderName(
               "[PROJECT]", "[LOCATION]", "[RECOMMENDER]")
           .toString();
   String filter = "filter-1274492040";
   for (Recommendation element :
       recommenderClient.listRecommendations(parent, filter).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameters
NameDescription
parentString

Required. The container resource on which to execute the request. Acceptable formats:

1. "projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]",

LOCATION here refers to GCP Locations: https://cloud.google.com/about/locations/ RECOMMENDER_ID refers to supported recommenders: https://cloud.google.com/recommender/docs/recommenders.

filterString

Filter expression to restrict the recommendations returned. Supported filter fields: state_info.state Eg: `state_info.state:"DISMISSED" or state_info.state:"FAILED"

Returns
TypeDescription
RecommenderClient.ListRecommendationsPagedResponse

listRecommendationsCallable()

public final UnaryCallable<ListRecommendationsRequest,ListRecommendationsResponse> listRecommendationsCallable()

Lists recommendations for a Cloud project. Requires the recommender.*.list IAM permission for the specified recommender.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   ListRecommendationsRequest request =
       ListRecommendationsRequest.newBuilder()
           .setParent(
               RecommenderName.ofProjectLocationRecommenderName(
                       "[PROJECT]", "[LOCATION]", "[RECOMMENDER]")
                   .toString())
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .setFilter("filter-1274492040")
           .build();
   while (true) {
     ListRecommendationsResponse response =
         recommenderClient.listRecommendationsCallable().call(request);
     for (Recommendation element : response.getResponsesList()) {
       // doThingsWith(element);
     }
     String nextPageToken = response.getNextPageToken();
     if (!Strings.isNullOrEmpty(nextPageToken)) {
       request = request.toBuilder().setPageToken(nextPageToken).build();
     } else {
       break;
     }
   }
 }
 
Returns
TypeDescription
UnaryCallable<ListRecommendationsRequest,ListRecommendationsResponse>

listRecommendationsPagedCallable()

public final UnaryCallable<ListRecommendationsRequest,RecommenderClient.ListRecommendationsPagedResponse> listRecommendationsPagedCallable()

Lists recommendations for a Cloud project. Requires the recommender.*.list IAM permission for the specified recommender.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   ListRecommendationsRequest request =
       ListRecommendationsRequest.newBuilder()
           .setParent(
               RecommenderName.ofProjectLocationRecommenderName(
                       "[PROJECT]", "[LOCATION]", "[RECOMMENDER]")
                   .toString())
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .setFilter("filter-1274492040")
           .build();
   ApiFuture<Recommendation> future =
       recommenderClient.listRecommendationsPagedCallable().futureCall(request);
   // Do something.
   for (Recommendation element : future.get().iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Returns
TypeDescription
UnaryCallable<ListRecommendationsRequest,ListRecommendationsPagedResponse>

markInsightAccepted(InsightName name, Map<String,String> stateMetadata, String etag)

public final Insight markInsightAccepted(InsightName name, Map<String,String> stateMetadata, String etag)

Marks the Insight State as Accepted. Users can use this method to indicate to the Recommender API that they have applied some action based on the insight. This stops the insight content from being updated.

MarkInsightAccepted can be applied to insights in ACTIVE state. Requires the recommender.*.update IAM permission for the specified insight.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   InsightName name =
       InsightName.ofProjectLocationInsightTypeInsightName(
           "[PROJECT]", "[LOCATION]", "[INSIGHT_TYPE]", "[INSIGHT]");
   Map
Parameters
NameDescription
nameInsightName

Required. Name of the insight.

stateMetadataMap<String,String>

Optional. State properties user wish to include with this state. Full replace of the current state_metadata.

etagString

Required. Fingerprint of the Insight. Provides optimistic locking.

Returns
TypeDescription
Insight

markInsightAccepted(MarkInsightAcceptedRequest request)

public final Insight markInsightAccepted(MarkInsightAcceptedRequest request)

Marks the Insight State as Accepted. Users can use this method to indicate to the Recommender API that they have applied some action based on the insight. This stops the insight content from being updated.

MarkInsightAccepted can be applied to insights in ACTIVE state. Requires the recommender.*.update IAM permission for the specified insight.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   MarkInsightAcceptedRequest request =
       MarkInsightAcceptedRequest.newBuilder()
           .setName(
               InsightName.ofProjectLocationInsightTypeInsightName(
                       "[PROJECT]", "[LOCATION]", "[INSIGHT_TYPE]", "[INSIGHT]")
                   .toString())
           .putAllStateMetadata(new HashMap
Parameter
NameDescription
requestMarkInsightAcceptedRequest

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

Returns
TypeDescription
Insight

markInsightAccepted(String name, Map<String,String> stateMetadata, String etag)

public final Insight markInsightAccepted(String name, Map<String,String> stateMetadata, String etag)

Marks the Insight State as Accepted. Users can use this method to indicate to the Recommender API that they have applied some action based on the insight. This stops the insight content from being updated.

MarkInsightAccepted can be applied to insights in ACTIVE state. Requires the recommender.*.update IAM permission for the specified insight.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   String name =
       InsightName.ofProjectLocationInsightTypeInsightName(
               "[PROJECT]", "[LOCATION]", "[INSIGHT_TYPE]", "[INSIGHT]")
           .toString();
   Map
Parameters
NameDescription
nameString

Required. Name of the insight.

stateMetadataMap<String,String>

Optional. State properties user wish to include with this state. Full replace of the current state_metadata.

etagString

Required. Fingerprint of the Insight. Provides optimistic locking.

Returns
TypeDescription
Insight

markInsightAcceptedCallable()

public final UnaryCallable<MarkInsightAcceptedRequest,Insight> markInsightAcceptedCallable()

Marks the Insight State as Accepted. Users can use this method to indicate to the Recommender API that they have applied some action based on the insight. This stops the insight content from being updated.

MarkInsightAccepted can be applied to insights in ACTIVE state. Requires the recommender.*.update IAM permission for the specified insight.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   MarkInsightAcceptedRequest request =
       MarkInsightAcceptedRequest.newBuilder()
           .setName(
               InsightName.ofProjectLocationInsightTypeInsightName(
                       "[PROJECT]", "[LOCATION]", "[INSIGHT_TYPE]", "[INSIGHT]")
                   .toString())
           .putAllStateMetadata(new HashMap
Returns
TypeDescription
UnaryCallable<MarkInsightAcceptedRequest,Insight>

markRecommendationClaimed(MarkRecommendationClaimedRequest request)

public final Recommendation markRecommendationClaimed(MarkRecommendationClaimedRequest request)

Marks the Recommendation State as Claimed. Users can use this method to indicate to the Recommender API that they are starting to apply the recommendation themselves. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state.

MarkRecommendationClaimed can be applied to recommendations in CLAIMED or ACTIVE state.

Requires the recommender.*.update IAM permission for the specified recommender.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   MarkRecommendationClaimedRequest request =
       MarkRecommendationClaimedRequest.newBuilder()
           .setName(
               RecommendationName.ofProjectLocationRecommenderRecommendationName(
                       "[PROJECT]", "[LOCATION]", "[RECOMMENDER]", "[RECOMMENDATION]")
                   .toString())
           .putAllStateMetadata(new HashMap
Parameter
NameDescription
requestMarkRecommendationClaimedRequest

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

Returns
TypeDescription
Recommendation

markRecommendationClaimed(RecommendationName name, Map<String,String> stateMetadata, String etag)

public final Recommendation markRecommendationClaimed(RecommendationName name, Map<String,String> stateMetadata, String etag)

Marks the Recommendation State as Claimed. Users can use this method to indicate to the Recommender API that they are starting to apply the recommendation themselves. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state.

MarkRecommendationClaimed can be applied to recommendations in CLAIMED or ACTIVE state.

Requires the recommender.*.update IAM permission for the specified recommender.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   RecommendationName name =
       RecommendationName.ofProjectLocationRecommenderRecommendationName(
           "[PROJECT]", "[LOCATION]", "[RECOMMENDER]", "[RECOMMENDATION]");
   Map
Parameters
NameDescription
nameRecommendationName

Required. Name of the recommendation.

stateMetadataMap<String,String>

State properties to include with this state. Overwrites any existing state_metadata. Keys must match the regex /^a-z0-9{0,62}$/. Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/.

etagString

Required. Fingerprint of the Recommendation. Provides optimistic locking.

Returns
TypeDescription
Recommendation

markRecommendationClaimed(String name, Map<String,String> stateMetadata, String etag)

public final Recommendation markRecommendationClaimed(String name, Map<String,String> stateMetadata, String etag)

Marks the Recommendation State as Claimed. Users can use this method to indicate to the Recommender API that they are starting to apply the recommendation themselves. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state.

MarkRecommendationClaimed can be applied to recommendations in CLAIMED or ACTIVE state.

Requires the recommender.*.update IAM permission for the specified recommender.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   String name =
       RecommendationName.ofProjectLocationRecommenderRecommendationName(
               "[PROJECT]", "[LOCATION]", "[RECOMMENDER]", "[RECOMMENDATION]")
           .toString();
   Map
Parameters
NameDescription
nameString

Required. Name of the recommendation.

stateMetadataMap<String,String>

State properties to include with this state. Overwrites any existing state_metadata. Keys must match the regex /^a-z0-9{0,62}$/. Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/.

etagString

Required. Fingerprint of the Recommendation. Provides optimistic locking.

Returns
TypeDescription
Recommendation

markRecommendationClaimedCallable()

public final UnaryCallable<MarkRecommendationClaimedRequest,Recommendation> markRecommendationClaimedCallable()

Marks the Recommendation State as Claimed. Users can use this method to indicate to the Recommender API that they are starting to apply the recommendation themselves. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state.

MarkRecommendationClaimed can be applied to recommendations in CLAIMED or ACTIVE state.

Requires the recommender.*.update IAM permission for the specified recommender.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   MarkRecommendationClaimedRequest request =
       MarkRecommendationClaimedRequest.newBuilder()
           .setName(
               RecommendationName.ofProjectLocationRecommenderRecommendationName(
                       "[PROJECT]", "[LOCATION]", "[RECOMMENDER]", "[RECOMMENDATION]")
                   .toString())
           .putAllStateMetadata(new HashMap
Returns
TypeDescription
UnaryCallable<MarkRecommendationClaimedRequest,Recommendation>

markRecommendationFailed(MarkRecommendationFailedRequest request)

public final Recommendation markRecommendationFailed(MarkRecommendationFailedRequest request)

Marks the Recommendation State as Failed. Users can use this method to indicate to the Recommender API that they have applied the recommendation themselves, and the operation failed. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state.

MarkRecommendationFailed can be applied to recommendations in ACTIVE, CLAIMED, SUCCEEDED, or FAILED state.

Requires the recommender.*.update IAM permission for the specified recommender.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   MarkRecommendationFailedRequest request =
       MarkRecommendationFailedRequest.newBuilder()
           .setName(
               RecommendationName.ofProjectLocationRecommenderRecommendationName(
                       "[PROJECT]", "[LOCATION]", "[RECOMMENDER]", "[RECOMMENDATION]")
                   .toString())
           .putAllStateMetadata(new HashMap
Parameter
NameDescription
requestMarkRecommendationFailedRequest

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

Returns
TypeDescription
Recommendation

markRecommendationFailed(RecommendationName name, Map<String,String> stateMetadata, String etag)

public final Recommendation markRecommendationFailed(RecommendationName name, Map<String,String> stateMetadata, String etag)

Marks the Recommendation State as Failed. Users can use this method to indicate to the Recommender API that they have applied the recommendation themselves, and the operation failed. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state.

MarkRecommendationFailed can be applied to recommendations in ACTIVE, CLAIMED, SUCCEEDED, or FAILED state.

Requires the recommender.*.update IAM permission for the specified recommender.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   RecommendationName name =
       RecommendationName.ofProjectLocationRecommenderRecommendationName(
           "[PROJECT]", "[LOCATION]", "[RECOMMENDER]", "[RECOMMENDATION]");
   Map
Parameters
NameDescription
nameRecommendationName

Required. Name of the recommendation.

stateMetadataMap<String,String>

State properties to include with this state. Overwrites any existing state_metadata. Keys must match the regex /^a-z0-9{0,62}$/. Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/.

etagString

Required. Fingerprint of the Recommendation. Provides optimistic locking.

Returns
TypeDescription
Recommendation

markRecommendationFailed(String name, Map<String,String> stateMetadata, String etag)

public final Recommendation markRecommendationFailed(String name, Map<String,String> stateMetadata, String etag)

Marks the Recommendation State as Failed. Users can use this method to indicate to the Recommender API that they have applied the recommendation themselves, and the operation failed. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state.

MarkRecommendationFailed can be applied to recommendations in ACTIVE, CLAIMED, SUCCEEDED, or FAILED state.

Requires the recommender.*.update IAM permission for the specified recommender.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   String name =
       RecommendationName.ofProjectLocationRecommenderRecommendationName(
               "[PROJECT]", "[LOCATION]", "[RECOMMENDER]", "[RECOMMENDATION]")
           .toString();
   Map
Parameters
NameDescription
nameString

Required. Name of the recommendation.

stateMetadataMap<String,String>

State properties to include with this state. Overwrites any existing state_metadata. Keys must match the regex /^a-z0-9{0,62}$/. Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/.

etagString

Required. Fingerprint of the Recommendation. Provides optimistic locking.

Returns
TypeDescription
Recommendation

markRecommendationFailedCallable()

public final UnaryCallable<MarkRecommendationFailedRequest,Recommendation> markRecommendationFailedCallable()

Marks the Recommendation State as Failed. Users can use this method to indicate to the Recommender API that they have applied the recommendation themselves, and the operation failed. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state.

MarkRecommendationFailed can be applied to recommendations in ACTIVE, CLAIMED, SUCCEEDED, or FAILED state.

Requires the recommender.*.update IAM permission for the specified recommender.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   MarkRecommendationFailedRequest request =
       MarkRecommendationFailedRequest.newBuilder()
           .setName(
               RecommendationName.ofProjectLocationRecommenderRecommendationName(
                       "[PROJECT]", "[LOCATION]", "[RECOMMENDER]", "[RECOMMENDATION]")
                   .toString())
           .putAllStateMetadata(new HashMap
Returns
TypeDescription
UnaryCallable<MarkRecommendationFailedRequest,Recommendation>

markRecommendationSucceeded(MarkRecommendationSucceededRequest request)

public final Recommendation markRecommendationSucceeded(MarkRecommendationSucceededRequest request)

Marks the Recommendation State as Succeeded. Users can use this method to indicate to the Recommender API that they have applied the recommendation themselves, and the operation was successful. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state.

MarkRecommendationSucceeded can be applied to recommendations in ACTIVE, CLAIMED, SUCCEEDED, or FAILED state.

Requires the recommender.*.update IAM permission for the specified recommender.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   MarkRecommendationSucceededRequest request =
       MarkRecommendationSucceededRequest.newBuilder()
           .setName(
               RecommendationName.ofProjectLocationRecommenderRecommendationName(
                       "[PROJECT]", "[LOCATION]", "[RECOMMENDER]", "[RECOMMENDATION]")
                   .toString())
           .putAllStateMetadata(new HashMap
Parameter
NameDescription
requestMarkRecommendationSucceededRequest

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

Returns
TypeDescription
Recommendation

markRecommendationSucceeded(RecommendationName name, Map<String,String> stateMetadata, String etag)

public final Recommendation markRecommendationSucceeded(RecommendationName name, Map<String,String> stateMetadata, String etag)

Marks the Recommendation State as Succeeded. Users can use this method to indicate to the Recommender API that they have applied the recommendation themselves, and the operation was successful. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state.

MarkRecommendationSucceeded can be applied to recommendations in ACTIVE, CLAIMED, SUCCEEDED, or FAILED state.

Requires the recommender.*.update IAM permission for the specified recommender.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   RecommendationName name =
       RecommendationName.ofProjectLocationRecommenderRecommendationName(
           "[PROJECT]", "[LOCATION]", "[RECOMMENDER]", "[RECOMMENDATION]");
   Map
Parameters
NameDescription
nameRecommendationName

Required. Name of the recommendation.

stateMetadataMap<String,String>

State properties to include with this state. Overwrites any existing state_metadata. Keys must match the regex /^a-z0-9{0,62}$/. Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/.

etagString

Required. Fingerprint of the Recommendation. Provides optimistic locking.

Returns
TypeDescription
Recommendation

markRecommendationSucceeded(String name, Map<String,String> stateMetadata, String etag)

public final Recommendation markRecommendationSucceeded(String name, Map<String,String> stateMetadata, String etag)

Marks the Recommendation State as Succeeded. Users can use this method to indicate to the Recommender API that they have applied the recommendation themselves, and the operation was successful. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state.

MarkRecommendationSucceeded can be applied to recommendations in ACTIVE, CLAIMED, SUCCEEDED, or FAILED state.

Requires the recommender.*.update IAM permission for the specified recommender.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   String name =
       RecommendationName.ofProjectLocationRecommenderRecommendationName(
               "[PROJECT]", "[LOCATION]", "[RECOMMENDER]", "[RECOMMENDATION]")
           .toString();
   Map
Parameters
NameDescription
nameString

Required. Name of the recommendation.

stateMetadataMap<String,String>

State properties to include with this state. Overwrites any existing state_metadata. Keys must match the regex /^a-z0-9{0,62}$/. Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/.

etagString

Required. Fingerprint of the Recommendation. Provides optimistic locking.

Returns
TypeDescription
Recommendation

markRecommendationSucceededCallable()

public final UnaryCallable<MarkRecommendationSucceededRequest,Recommendation> markRecommendationSucceededCallable()

Marks the Recommendation State as Succeeded. Users can use this method to indicate to the Recommender API that they have applied the recommendation themselves, and the operation was successful. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state.

MarkRecommendationSucceeded can be applied to recommendations in ACTIVE, CLAIMED, SUCCEEDED, or FAILED state.

Requires the recommender.*.update IAM permission for the specified recommender.

Sample code:


 try (RecommenderClient recommenderClient = RecommenderClient.create()) {
   MarkRecommendationSucceededRequest request =
       MarkRecommendationSucceededRequest.newBuilder()
           .setName(
               RecommendationName.ofProjectLocationRecommenderRecommendationName(
                       "[PROJECT]", "[LOCATION]", "[RECOMMENDER]", "[RECOMMENDATION]")
                   .toString())
           .putAllStateMetadata(new HashMap
Returns
TypeDescription
UnaryCallable<MarkRecommendationSucceededRequest,Recommendation>

shutdown()

public void shutdown()

shutdownNow()

public void shutdownNow()