Class AssetServiceClient (3.2.17)

public class AssetServiceClient implements BackgroundResource

Service Description: Asset service definition.

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 (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   BatchGetAssetsHistoryRequest request =
       BatchGetAssetsHistoryRequest.newBuilder()
           .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString())
           .addAllAssetNames(new ArrayList<String>())
           .setContentType(ContentType.forNumber(0))
           .setReadTimeWindow(TimeWindow.newBuilder().build())
           .addAllRelationshipTypes(new ArrayList<String>())
           .build();
   BatchGetAssetsHistoryResponse response = assetServiceClient.batchGetAssetsHistory(request);
 }
 

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

To customize credentials:


 AssetServiceSettings assetServiceSettings =
     AssetServiceSettings.newBuilder()
         .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
         .build();
 AssetServiceClient assetServiceClient = AssetServiceClient.create(assetServiceSettings);
 

To customize the endpoint:


 AssetServiceSettings assetServiceSettings =
     AssetServiceSettings.newBuilder().setEndpoint(myEndpoint).build();
 AssetServiceClient assetServiceClient = AssetServiceClient.create(assetServiceSettings);
 

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

Inheritance

java.lang.Object > AssetServiceClient

Implements

BackgroundResource

Static Methods

create()

public static final AssetServiceClient create()

Constructs an instance of AssetServiceClient with default settings.

Returns
Type Description
AssetServiceClient
Exceptions
Type Description
IOException

create(AssetServiceSettings settings)

public static final AssetServiceClient create(AssetServiceSettings settings)

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

Parameter
Name Description
settings AssetServiceSettings
Returns
Type Description
AssetServiceClient
Exceptions
Type Description
IOException

create(AssetServiceStub stub)

public static final AssetServiceClient create(AssetServiceStub stub)

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

Parameter
Name Description
stub AssetServiceStub
Returns
Type Description
AssetServiceClient

Constructors

AssetServiceClient(AssetServiceSettings settings)

protected AssetServiceClient(AssetServiceSettings settings)

Constructs an instance of AssetServiceClient, 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
Name Description
settings AssetServiceSettings

AssetServiceClient(AssetServiceStub stub)

protected AssetServiceClient(AssetServiceStub stub)
Parameter
Name Description
stub AssetServiceStub

Methods

analyzeIamPolicy(AnalyzeIamPolicyRequest request)

public final AnalyzeIamPolicyResponse analyzeIamPolicy(AnalyzeIamPolicyRequest request)

Analyzes IAM policies to answer which identities have what accesses on which resources.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   AnalyzeIamPolicyRequest request =
       AnalyzeIamPolicyRequest.newBuilder()
           .setAnalysisQuery(IamPolicyAnalysisQuery.newBuilder().build())
           .setExecutionTimeout(Duration.newBuilder().build())
           .build();
   AnalyzeIamPolicyResponse response = assetServiceClient.analyzeIamPolicy(request);
 }
 
Parameter
Name Description
request AnalyzeIamPolicyRequest

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

Returns
Type Description
AnalyzeIamPolicyResponse

analyzeIamPolicyCallable()

public final UnaryCallable<AnalyzeIamPolicyRequest,AnalyzeIamPolicyResponse> analyzeIamPolicyCallable()

Analyzes IAM policies to answer which identities have what accesses on which resources.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   AnalyzeIamPolicyRequest request =
       AnalyzeIamPolicyRequest.newBuilder()
           .setAnalysisQuery(IamPolicyAnalysisQuery.newBuilder().build())
           .setExecutionTimeout(Duration.newBuilder().build())
           .build();
   ApiFuture<AnalyzeIamPolicyResponse> future =
       assetServiceClient.analyzeIamPolicyCallable().futureCall(request);
   // Do something.
   AnalyzeIamPolicyResponse response = future.get();
 }
 
Returns
Type Description
UnaryCallable<AnalyzeIamPolicyRequest,AnalyzeIamPolicyResponse>

analyzeIamPolicyLongrunningAsync(AnalyzeIamPolicyLongrunningRequest request)

public final OperationFuture<AnalyzeIamPolicyLongrunningResponse,AnalyzeIamPolicyLongrunningMetadata> analyzeIamPolicyLongrunningAsync(AnalyzeIamPolicyLongrunningRequest request)

Analyzes IAM policies asynchronously to answer which identities have what accesses on which resources, and writes the analysis results to a Google Cloud Storage or a BigQuery destination. For Cloud Storage destination, the output format is the JSON format that represents a AnalyzeIamPolicyResponse. This method implements the google.longrunning.Operation, which allows you to track the operation status. We recommend intervals of at least 2 seconds with exponential backoff retry to poll the operation result. The metadata contains the metadata for the long-running operation.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   AnalyzeIamPolicyLongrunningRequest request =
       AnalyzeIamPolicyLongrunningRequest.newBuilder()
           .setAnalysisQuery(IamPolicyAnalysisQuery.newBuilder().build())
           .setOutputConfig(IamPolicyAnalysisOutputConfig.newBuilder().build())
           .build();
   AnalyzeIamPolicyLongrunningResponse response =
       assetServiceClient.analyzeIamPolicyLongrunningAsync(request).get();
 }
 
Parameter
Name Description
request AnalyzeIamPolicyLongrunningRequest

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

Returns
Type Description
OperationFuture<AnalyzeIamPolicyLongrunningResponse,AnalyzeIamPolicyLongrunningMetadata>

analyzeIamPolicyLongrunningCallable()

public final UnaryCallable<AnalyzeIamPolicyLongrunningRequest,Operation> analyzeIamPolicyLongrunningCallable()

Analyzes IAM policies asynchronously to answer which identities have what accesses on which resources, and writes the analysis results to a Google Cloud Storage or a BigQuery destination. For Cloud Storage destination, the output format is the JSON format that represents a AnalyzeIamPolicyResponse. This method implements the google.longrunning.Operation, which allows you to track the operation status. We recommend intervals of at least 2 seconds with exponential backoff retry to poll the operation result. The metadata contains the metadata for the long-running operation.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   AnalyzeIamPolicyLongrunningRequest request =
       AnalyzeIamPolicyLongrunningRequest.newBuilder()
           .setAnalysisQuery(IamPolicyAnalysisQuery.newBuilder().build())
           .setOutputConfig(IamPolicyAnalysisOutputConfig.newBuilder().build())
           .build();
   ApiFuture<Operation> future =
       assetServiceClient.analyzeIamPolicyLongrunningCallable().futureCall(request);
   // Do something.
   Operation response = future.get();
 }
 
Returns
Type Description
UnaryCallable<AnalyzeIamPolicyLongrunningRequest,Operation>

analyzeIamPolicyLongrunningOperationCallable()

public final OperationCallable<AnalyzeIamPolicyLongrunningRequest,AnalyzeIamPolicyLongrunningResponse,AnalyzeIamPolicyLongrunningMetadata> analyzeIamPolicyLongrunningOperationCallable()

Analyzes IAM policies asynchronously to answer which identities have what accesses on which resources, and writes the analysis results to a Google Cloud Storage or a BigQuery destination. For Cloud Storage destination, the output format is the JSON format that represents a AnalyzeIamPolicyResponse. This method implements the google.longrunning.Operation, which allows you to track the operation status. We recommend intervals of at least 2 seconds with exponential backoff retry to poll the operation result. The metadata contains the metadata for the long-running operation.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   AnalyzeIamPolicyLongrunningRequest request =
       AnalyzeIamPolicyLongrunningRequest.newBuilder()
           .setAnalysisQuery(IamPolicyAnalysisQuery.newBuilder().build())
           .setOutputConfig(IamPolicyAnalysisOutputConfig.newBuilder().build())
           .build();
   OperationFuture<AnalyzeIamPolicyLongrunningResponse, AnalyzeIamPolicyLongrunningMetadata>
       future =
           assetServiceClient.analyzeIamPolicyLongrunningOperationCallable().futureCall(request);
   // Do something.
   AnalyzeIamPolicyLongrunningResponse response = future.get();
 }
 
Returns
Type Description
OperationCallable<AnalyzeIamPolicyLongrunningRequest,AnalyzeIamPolicyLongrunningResponse,AnalyzeIamPolicyLongrunningMetadata>

analyzeMove(AnalyzeMoveRequest request)

public final AnalyzeMoveResponse analyzeMove(AnalyzeMoveRequest request)

Analyze moving a resource to a specified destination without kicking off the actual move. The analysis is best effort depending on the user's permissions of viewing different hierarchical policies and configurations. The policies and configuration are subject to change before the actual resource migration takes place.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   AnalyzeMoveRequest request =
       AnalyzeMoveRequest.newBuilder()
           .setResource("resource-341064690")
           .setDestinationParent("destinationParent-1733659048")
           .build();
   AnalyzeMoveResponse response = assetServiceClient.analyzeMove(request);
 }
 
Parameter
Name Description
request AnalyzeMoveRequest

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

Returns
Type Description
AnalyzeMoveResponse

analyzeMoveCallable()

public final UnaryCallable<AnalyzeMoveRequest,AnalyzeMoveResponse> analyzeMoveCallable()

Analyze moving a resource to a specified destination without kicking off the actual move. The analysis is best effort depending on the user's permissions of viewing different hierarchical policies and configurations. The policies and configuration are subject to change before the actual resource migration takes place.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   AnalyzeMoveRequest request =
       AnalyzeMoveRequest.newBuilder()
           .setResource("resource-341064690")
           .setDestinationParent("destinationParent-1733659048")
           .build();
   ApiFuture<AnalyzeMoveResponse> future =
       assetServiceClient.analyzeMoveCallable().futureCall(request);
   // Do something.
   AnalyzeMoveResponse response = future.get();
 }
 
Returns
Type Description
UnaryCallable<AnalyzeMoveRequest,AnalyzeMoveResponse>

awaitTermination(long duration, TimeUnit unit)

public boolean awaitTermination(long duration, TimeUnit unit)
Parameters
Name Description
duration long
unit TimeUnit
Returns
Type Description
boolean
Exceptions
Type Description
InterruptedException

batchGetAssetsHistory(BatchGetAssetsHistoryRequest request)

public final BatchGetAssetsHistoryResponse batchGetAssetsHistory(BatchGetAssetsHistoryRequest request)

Batch gets the update history of assets that overlap a time window. For IAM_POLICY content, this API outputs history when the asset and its attached IAM POLICY both exist. This can create gaps in the output history. Otherwise, this API outputs history with asset in both non-delete or deleted status. If a specified asset does not exist, this API returns an INVALID_ARGUMENT error.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   BatchGetAssetsHistoryRequest request =
       BatchGetAssetsHistoryRequest.newBuilder()
           .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString())
           .addAllAssetNames(new ArrayList<String>())
           .setContentType(ContentType.forNumber(0))
           .setReadTimeWindow(TimeWindow.newBuilder().build())
           .addAllRelationshipTypes(new ArrayList<String>())
           .build();
   BatchGetAssetsHistoryResponse response = assetServiceClient.batchGetAssetsHistory(request);
 }
 
Parameter
Name Description
request BatchGetAssetsHistoryRequest

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

Returns
Type Description
BatchGetAssetsHistoryResponse

batchGetAssetsHistoryCallable()

public final UnaryCallable<BatchGetAssetsHistoryRequest,BatchGetAssetsHistoryResponse> batchGetAssetsHistoryCallable()

Batch gets the update history of assets that overlap a time window. For IAM_POLICY content, this API outputs history when the asset and its attached IAM POLICY both exist. This can create gaps in the output history. Otherwise, this API outputs history with asset in both non-delete or deleted status. If a specified asset does not exist, this API returns an INVALID_ARGUMENT error.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   BatchGetAssetsHistoryRequest request =
       BatchGetAssetsHistoryRequest.newBuilder()
           .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString())
           .addAllAssetNames(new ArrayList<String>())
           .setContentType(ContentType.forNumber(0))
           .setReadTimeWindow(TimeWindow.newBuilder().build())
           .addAllRelationshipTypes(new ArrayList<String>())
           .build();
   ApiFuture<BatchGetAssetsHistoryResponse> future =
       assetServiceClient.batchGetAssetsHistoryCallable().futureCall(request);
   // Do something.
   BatchGetAssetsHistoryResponse response = future.get();
 }
 
Returns
Type Description
UnaryCallable<BatchGetAssetsHistoryRequest,BatchGetAssetsHistoryResponse>

close()

public final void close()

createFeed(CreateFeedRequest request)

public final Feed createFeed(CreateFeedRequest request)

Creates a feed in a parent project/folder/organization to listen to its asset updates.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   CreateFeedRequest request =
       CreateFeedRequest.newBuilder()
           .setParent("parent-995424086")
           .setFeedId("feedId-1278410919")
           .setFeed(Feed.newBuilder().build())
           .build();
   Feed response = assetServiceClient.createFeed(request);
 }
 
Parameter
Name Description
request CreateFeedRequest

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

Returns
Type Description
Feed

createFeed(String parent)

public final Feed createFeed(String parent)

Creates a feed in a parent project/folder/organization to listen to its asset updates.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   String parent = "parent-995424086";
   Feed response = assetServiceClient.createFeed(parent);
 }
 
Parameter
Name Description
parent String

Required. The name of the project/folder/organization where this feed should be created in. It can only be an organization number (such as "organizations/123"), a folder number (such as "folders/123"), a project ID (such as "projects/my-project-id")", or a project number (such as "projects/12345").

Returns
Type Description
Feed

createFeedCallable()

public final UnaryCallable<CreateFeedRequest,Feed> createFeedCallable()

Creates a feed in a parent project/folder/organization to listen to its asset updates.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   CreateFeedRequest request =
       CreateFeedRequest.newBuilder()
           .setParent("parent-995424086")
           .setFeedId("feedId-1278410919")
           .setFeed(Feed.newBuilder().build())
           .build();
   ApiFuture<Feed> future = assetServiceClient.createFeedCallable().futureCall(request);
   // Do something.
   Feed response = future.get();
 }
 
Returns
Type Description
UnaryCallable<CreateFeedRequest,Feed>

deleteFeed(DeleteFeedRequest request)

public final void deleteFeed(DeleteFeedRequest request)

Deletes an asset feed.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   DeleteFeedRequest request =
       DeleteFeedRequest.newBuilder()
           .setName(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString())
           .build();
   assetServiceClient.deleteFeed(request);
 }
 
Parameter
Name Description
request DeleteFeedRequest

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

deleteFeed(FeedName name)

public final void deleteFeed(FeedName name)

Deletes an asset feed.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   FeedName name = FeedName.ofProjectFeedName("[PROJECT]", "[FEED]");
   assetServiceClient.deleteFeed(name);
 }
 
Parameter
Name Description
name FeedName

Required. The name of the feed and it must be in the format of: projects/project_number/feeds/feed_id folders/folder_number/feeds/feed_id organizations/organization_number/feeds/feed_id

deleteFeed(String name)

public final void deleteFeed(String name)

Deletes an asset feed.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   String name = FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString();
   assetServiceClient.deleteFeed(name);
 }
 
Parameter
Name Description
name String

Required. The name of the feed and it must be in the format of: projects/project_number/feeds/feed_id folders/folder_number/feeds/feed_id organizations/organization_number/feeds/feed_id

deleteFeedCallable()

public final UnaryCallable<DeleteFeedRequest,Empty> deleteFeedCallable()

Deletes an asset feed.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   DeleteFeedRequest request =
       DeleteFeedRequest.newBuilder()
           .setName(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString())
           .build();
   ApiFuture<Empty> future = assetServiceClient.deleteFeedCallable().futureCall(request);
   // Do something.
   future.get();
 }
 
Returns
Type Description
UnaryCallable<DeleteFeedRequest,Empty>

exportAssetsAsync(ExportAssetsRequest request)

public final OperationFuture<ExportAssetsResponse,ExportAssetsRequest> exportAssetsAsync(ExportAssetsRequest request)

Exports assets with time and resource types to a given Cloud Storage location/BigQuery table. For Cloud Storage location destinations, the output format is newline-delimited JSON. Each line represents a google.cloud.asset.v1.Asset in the JSON format; for BigQuery table destinations, the output table stores the fields in asset proto as columns. This API implements the google.longrunning.Operation API , which allows you to keep track of the export. We recommend intervals of at least 2 seconds with exponential retry to poll the export operation result. For regular-size resource parent, the export operation usually finishes within 5 minutes.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   ExportAssetsRequest request =
       ExportAssetsRequest.newBuilder()
           .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString())
           .setReadTime(Timestamp.newBuilder().build())
           .addAllAssetTypes(new ArrayList<String>())
           .setContentType(ContentType.forNumber(0))
           .setOutputConfig(OutputConfig.newBuilder().build())
           .addAllRelationshipTypes(new ArrayList<String>())
           .build();
   ExportAssetsResponse response = assetServiceClient.exportAssetsAsync(request).get();
 }
 
Parameter
Name Description
request ExportAssetsRequest

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

Returns
Type Description
OperationFuture<ExportAssetsResponse,ExportAssetsRequest>

exportAssetsCallable()

public final UnaryCallable<ExportAssetsRequest,Operation> exportAssetsCallable()

Exports assets with time and resource types to a given Cloud Storage location/BigQuery table. For Cloud Storage location destinations, the output format is newline-delimited JSON. Each line represents a google.cloud.asset.v1.Asset in the JSON format; for BigQuery table destinations, the output table stores the fields in asset proto as columns. This API implements the google.longrunning.Operation API , which allows you to keep track of the export. We recommend intervals of at least 2 seconds with exponential retry to poll the export operation result. For regular-size resource parent, the export operation usually finishes within 5 minutes.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   ExportAssetsRequest request =
       ExportAssetsRequest.newBuilder()
           .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString())
           .setReadTime(Timestamp.newBuilder().build())
           .addAllAssetTypes(new ArrayList<String>())
           .setContentType(ContentType.forNumber(0))
           .setOutputConfig(OutputConfig.newBuilder().build())
           .addAllRelationshipTypes(new ArrayList<String>())
           .build();
   ApiFuture<Operation> future = assetServiceClient.exportAssetsCallable().futureCall(request);
   // Do something.
   Operation response = future.get();
 }
 
Returns
Type Description
UnaryCallable<ExportAssetsRequest,Operation>

exportAssetsOperationCallable()

public final OperationCallable<ExportAssetsRequest,ExportAssetsResponse,ExportAssetsRequest> exportAssetsOperationCallable()

Exports assets with time and resource types to a given Cloud Storage location/BigQuery table. For Cloud Storage location destinations, the output format is newline-delimited JSON. Each line represents a google.cloud.asset.v1.Asset in the JSON format; for BigQuery table destinations, the output table stores the fields in asset proto as columns. This API implements the google.longrunning.Operation API , which allows you to keep track of the export. We recommend intervals of at least 2 seconds with exponential retry to poll the export operation result. For regular-size resource parent, the export operation usually finishes within 5 minutes.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   ExportAssetsRequest request =
       ExportAssetsRequest.newBuilder()
           .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString())
           .setReadTime(Timestamp.newBuilder().build())
           .addAllAssetTypes(new ArrayList<String>())
           .setContentType(ContentType.forNumber(0))
           .setOutputConfig(OutputConfig.newBuilder().build())
           .addAllRelationshipTypes(new ArrayList<String>())
           .build();
   OperationFuture<ExportAssetsResponse, ExportAssetsRequest> future =
       assetServiceClient.exportAssetsOperationCallable().futureCall(request);
   // Do something.
   ExportAssetsResponse response = future.get();
 }
 
Returns
Type Description
OperationCallable<ExportAssetsRequest,ExportAssetsResponse,ExportAssetsRequest>

getFeed(FeedName name)

public final Feed getFeed(FeedName name)

Gets details about an asset feed.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   FeedName name = FeedName.ofProjectFeedName("[PROJECT]", "[FEED]");
   Feed response = assetServiceClient.getFeed(name);
 }
 
Parameter
Name Description
name FeedName

Required. The name of the Feed and it must be in the format of: projects/project_number/feeds/feed_id folders/folder_number/feeds/feed_id organizations/organization_number/feeds/feed_id

Returns
Type Description
Feed

getFeed(GetFeedRequest request)

public final Feed getFeed(GetFeedRequest request)

Gets details about an asset feed.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   GetFeedRequest request =
       GetFeedRequest.newBuilder()
           .setName(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString())
           .build();
   Feed response = assetServiceClient.getFeed(request);
 }
 
Parameter
Name Description
request GetFeedRequest

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

Returns
Type Description
Feed

getFeed(String name)

public final Feed getFeed(String name)

Gets details about an asset feed.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   String name = FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString();
   Feed response = assetServiceClient.getFeed(name);
 }
 
Parameter
Name Description
name String

Required. The name of the Feed and it must be in the format of: projects/project_number/feeds/feed_id folders/folder_number/feeds/feed_id organizations/organization_number/feeds/feed_id

Returns
Type Description
Feed

getFeedCallable()

public final UnaryCallable<GetFeedRequest,Feed> getFeedCallable()

Gets details about an asset feed.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   GetFeedRequest request =
       GetFeedRequest.newBuilder()
           .setName(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString())
           .build();
   ApiFuture<Feed> future = assetServiceClient.getFeedCallable().futureCall(request);
   // Do something.
   Feed response = future.get();
 }
 
Returns
Type Description
UnaryCallable<GetFeedRequest,Feed>

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
Type Description
OperationsClient

getSettings()

public final AssetServiceSettings getSettings()
Returns
Type Description
AssetServiceSettings

getStub()

public AssetServiceStub getStub()
Returns
Type Description
AssetServiceStub

isShutdown()

public boolean isShutdown()
Returns
Type Description
boolean

isTerminated()

public boolean isTerminated()
Returns
Type Description
boolean

listAssets(ResourceName parent)

public final AssetServiceClient.ListAssetsPagedResponse listAssets(ResourceName parent)

Lists assets with time and resource types and returns paged results in response.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   ResourceName parent = FeedName.ofProjectFeedName("[PROJECT]", "[FEED]");
   for (Asset element : assetServiceClient.listAssets(parent).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameter
Name Description
parent com.google.api.resourcenames.ResourceName

Required. Name of the organization or project the assets belong to. Format: "organizations/[organization-number]" (such as "organizations/123"), "projects/[project-id]" (such as "projects/my-project-id"), or "projects/[project-number]" (such as "projects/12345").

Returns
Type Description
AssetServiceClient.ListAssetsPagedResponse

listAssets(ListAssetsRequest request)

public final AssetServiceClient.ListAssetsPagedResponse listAssets(ListAssetsRequest request)

Lists assets with time and resource types and returns paged results in response.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   ListAssetsRequest request =
       ListAssetsRequest.newBuilder()
           .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString())
           .setReadTime(Timestamp.newBuilder().build())
           .addAllAssetTypes(new ArrayList<String>())
           .setContentType(ContentType.forNumber(0))
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .addAllRelationshipTypes(new ArrayList<String>())
           .build();
   for (Asset element : assetServiceClient.listAssets(request).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameter
Name Description
request ListAssetsRequest

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

Returns
Type Description
AssetServiceClient.ListAssetsPagedResponse

listAssets(String parent)

public final AssetServiceClient.ListAssetsPagedResponse listAssets(String parent)

Lists assets with time and resource types and returns paged results in response.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   String parent = FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString();
   for (Asset element : assetServiceClient.listAssets(parent).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameter
Name Description
parent String

Required. Name of the organization or project the assets belong to. Format: "organizations/[organization-number]" (such as "organizations/123"), "projects/[project-id]" (such as "projects/my-project-id"), or "projects/[project-number]" (such as "projects/12345").

Returns
Type Description
AssetServiceClient.ListAssetsPagedResponse

listAssetsCallable()

public final UnaryCallable<ListAssetsRequest,ListAssetsResponse> listAssetsCallable()

Lists assets with time and resource types and returns paged results in response.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   ListAssetsRequest request =
       ListAssetsRequest.newBuilder()
           .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString())
           .setReadTime(Timestamp.newBuilder().build())
           .addAllAssetTypes(new ArrayList<String>())
           .setContentType(ContentType.forNumber(0))
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .addAllRelationshipTypes(new ArrayList<String>())
           .build();
   while (true) {
     ListAssetsResponse response = assetServiceClient.listAssetsCallable().call(request);
     for (Asset element : response.getResponsesList()) {
       // doThingsWith(element);
     }
     String nextPageToken = response.getNextPageToken();
     if (!Strings.isNullOrEmpty(nextPageToken)) {
       request = request.toBuilder().setPageToken(nextPageToken).build();
     } else {
       break;
     }
   }
 }
 
Returns
Type Description
UnaryCallable<ListAssetsRequest,ListAssetsResponse>

listAssetsPagedCallable()

public final UnaryCallable<ListAssetsRequest,AssetServiceClient.ListAssetsPagedResponse> listAssetsPagedCallable()

Lists assets with time and resource types and returns paged results in response.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   ListAssetsRequest request =
       ListAssetsRequest.newBuilder()
           .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString())
           .setReadTime(Timestamp.newBuilder().build())
           .addAllAssetTypes(new ArrayList<String>())
           .setContentType(ContentType.forNumber(0))
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .addAllRelationshipTypes(new ArrayList<String>())
           .build();
   ApiFuture<Asset> future = assetServiceClient.listAssetsPagedCallable().futureCall(request);
   // Do something.
   for (Asset element : future.get().iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Returns
Type Description
UnaryCallable<ListAssetsRequest,ListAssetsPagedResponse>

listFeeds(ListFeedsRequest request)

public final ListFeedsResponse listFeeds(ListFeedsRequest request)

Lists all asset feeds in a parent project/folder/organization.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   ListFeedsRequest request =
       ListFeedsRequest.newBuilder().setParent("parent-995424086").build();
   ListFeedsResponse response = assetServiceClient.listFeeds(request);
 }
 
Parameter
Name Description
request ListFeedsRequest

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

Returns
Type Description
ListFeedsResponse

listFeeds(String parent)

public final ListFeedsResponse listFeeds(String parent)

Lists all asset feeds in a parent project/folder/organization.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   String parent = "parent-995424086";
   ListFeedsResponse response = assetServiceClient.listFeeds(parent);
 }
 
Parameter
Name Description
parent String

Required. The parent project/folder/organization whose feeds are to be listed. It can only be using project/folder/organization number (such as "folders/12345")", or a project ID (such as "projects/my-project-id").

Returns
Type Description
ListFeedsResponse

listFeedsCallable()

public final UnaryCallable<ListFeedsRequest,ListFeedsResponse> listFeedsCallable()

Lists all asset feeds in a parent project/folder/organization.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   ListFeedsRequest request =
       ListFeedsRequest.newBuilder().setParent("parent-995424086").build();
   ApiFuture<ListFeedsResponse> future =
       assetServiceClient.listFeedsCallable().futureCall(request);
   // Do something.
   ListFeedsResponse response = future.get();
 }
 
Returns
Type Description
UnaryCallable<ListFeedsRequest,ListFeedsResponse>

searchAllIamPolicies(SearchAllIamPoliciesRequest request)

public final AssetServiceClient.SearchAllIamPoliciesPagedResponse searchAllIamPolicies(SearchAllIamPoliciesRequest request)

Searches all IAM policies within the specified scope, such as a project, folder, or organization. The caller must be granted the cloudasset.assets.searchAllIamPolicies permission on the desired scope, otherwise the request will be rejected.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   SearchAllIamPoliciesRequest request =
       SearchAllIamPoliciesRequest.newBuilder()
           .setScope("scope109264468")
           .setQuery("query107944136")
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .addAllAssetTypes(new ArrayList<String>())
           .setOrderBy("orderBy-1207110587")
           .build();
   for (IamPolicySearchResult element :
       assetServiceClient.searchAllIamPolicies(request).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameter
Name Description
request SearchAllIamPoliciesRequest

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

Returns
Type Description
AssetServiceClient.SearchAllIamPoliciesPagedResponse

searchAllIamPolicies(String scope, String query)

public final AssetServiceClient.SearchAllIamPoliciesPagedResponse searchAllIamPolicies(String scope, String query)

Searches all IAM policies within the specified scope, such as a project, folder, or organization. The caller must be granted the cloudasset.assets.searchAllIamPolicies permission on the desired scope, otherwise the request will be rejected.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   String scope = "scope109264468";
   String query = "query107944136";
   for (IamPolicySearchResult element :
       assetServiceClient.searchAllIamPolicies(scope, query).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameters
Name Description
scope String

Required. A scope can be a project, a folder, or an organization. The search is limited to the IAM policies within the scope. The caller must be granted the cloudasset.assets.searchAllIamPolicies permission on the desired scope.

The allowed values are:

  • projects/{PROJECT_ID} (e.g., "projects/foo-bar")
  • projects/{PROJECT_NUMBER} (e.g., "projects/12345678")
  • folders/{FOLDER_NUMBER} (e.g., "folders/1234567")
  • organizations/{ORGANIZATION_NUMBER} (e.g., "organizations/123456")

query String

Optional. The query statement. See how to construct a query for more information. If not specified or empty, it will search all the IAM policies within the specified scope. Note that the query string is compared against each Cloud IAM policy binding, including its members, roles, and Cloud IAM conditions. The returned Cloud IAM policies will only contain the bindings that match your query. To learn more about the IAM policy structure, see IAM policy doc.

Examples:

  • policy:amy@gmail.com to find IAM policy bindings that specify user "amy@gmail.com".
  • policy:roles/compute.admin to find IAM policy bindings that specify the Compute Admin role.
  • policy:comp* to find IAM policy bindings that contain "comp" as a prefix of any word in the binding.
  • policy.role.permissions:storage.buckets.update to find IAM policy bindings that specify a role containing "storage.buckets.update" permission. Note that if callers don't have iam.roles.get access to a role's included permissions, policy bindings that specify this role will be dropped from the search results.
  • policy.role.permissions:upd* to find IAM policy bindings that specify a role containing "upd" as a prefix of any word in the role permission. Note that if callers don't have iam.roles.get access to a role's included permissions, policy bindings that specify this role will be dropped from the search results.
  • resource:organizations/123456 to find IAM policy bindings that are set on "organizations/123456".
  • resource=//cloudresourcemanager.googleapis.com/projects/myproject to find IAM policy bindings that are set on the project named "myproject".
  • Important to find IAM policy bindings that contain "Important" as a word in any of the searchable fields (except for the included permissions).
  • resource:(instance1 OR instance2) policy:amy to find IAM policy bindings that are set on resources "instance1" or "instance2" and also specify user "amy".
  • roles:roles/compute.admin to find IAM policy bindings that specify the Compute Admin role.
  • memberTypes:user to find IAM policy bindings that contain the "user" member type.

Returns
Type Description
AssetServiceClient.SearchAllIamPoliciesPagedResponse

searchAllIamPoliciesCallable()

public final UnaryCallable<SearchAllIamPoliciesRequest,SearchAllIamPoliciesResponse> searchAllIamPoliciesCallable()

Searches all IAM policies within the specified scope, such as a project, folder, or organization. The caller must be granted the cloudasset.assets.searchAllIamPolicies permission on the desired scope, otherwise the request will be rejected.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   SearchAllIamPoliciesRequest request =
       SearchAllIamPoliciesRequest.newBuilder()
           .setScope("scope109264468")
           .setQuery("query107944136")
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .addAllAssetTypes(new ArrayList<String>())
           .setOrderBy("orderBy-1207110587")
           .build();
   while (true) {
     SearchAllIamPoliciesResponse response =
         assetServiceClient.searchAllIamPoliciesCallable().call(request);
     for (IamPolicySearchResult element : response.getResponsesList()) {
       // doThingsWith(element);
     }
     String nextPageToken = response.getNextPageToken();
     if (!Strings.isNullOrEmpty(nextPageToken)) {
       request = request.toBuilder().setPageToken(nextPageToken).build();
     } else {
       break;
     }
   }
 }
 
Returns
Type Description
UnaryCallable<SearchAllIamPoliciesRequest,SearchAllIamPoliciesResponse>

searchAllIamPoliciesPagedCallable()

public final UnaryCallable<SearchAllIamPoliciesRequest,AssetServiceClient.SearchAllIamPoliciesPagedResponse> searchAllIamPoliciesPagedCallable()

Searches all IAM policies within the specified scope, such as a project, folder, or organization. The caller must be granted the cloudasset.assets.searchAllIamPolicies permission on the desired scope, otherwise the request will be rejected.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   SearchAllIamPoliciesRequest request =
       SearchAllIamPoliciesRequest.newBuilder()
           .setScope("scope109264468")
           .setQuery("query107944136")
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .addAllAssetTypes(new ArrayList<String>())
           .setOrderBy("orderBy-1207110587")
           .build();
   ApiFuture<IamPolicySearchResult> future =
       assetServiceClient.searchAllIamPoliciesPagedCallable().futureCall(request);
   // Do something.
   for (IamPolicySearchResult element : future.get().iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Returns
Type Description
UnaryCallable<SearchAllIamPoliciesRequest,SearchAllIamPoliciesPagedResponse>

searchAllResources(SearchAllResourcesRequest request)

public final AssetServiceClient.SearchAllResourcesPagedResponse searchAllResources(SearchAllResourcesRequest request)

Searches all Cloud resources within the specified scope, such as a project, folder, or organization. The caller must be granted the cloudasset.assets.searchAllResources permission on the desired scope, otherwise the request will be rejected.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   SearchAllResourcesRequest request =
       SearchAllResourcesRequest.newBuilder()
           .setScope("scope109264468")
           .setQuery("query107944136")
           .addAllAssetTypes(new ArrayList<String>())
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .setOrderBy("orderBy-1207110587")
           .setReadMask(FieldMask.newBuilder().build())
           .build();
   for (ResourceSearchResult element :
       assetServiceClient.searchAllResources(request).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameter
Name Description
request SearchAllResourcesRequest

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

Returns
Type Description
AssetServiceClient.SearchAllResourcesPagedResponse

searchAllResources(String scope, String query, List<String> assetTypes)

public final AssetServiceClient.SearchAllResourcesPagedResponse searchAllResources(String scope, String query, List<String> assetTypes)

Searches all Cloud resources within the specified scope, such as a project, folder, or organization. The caller must be granted the cloudasset.assets.searchAllResources permission on the desired scope, otherwise the request will be rejected.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   String scope = "scope109264468";
   String query = "query107944136";
   List<String> assetTypes = new ArrayList<>();
   for (ResourceSearchResult element :
       assetServiceClient.searchAllResources(scope, query, assetTypes).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameters
Name Description
scope String

Required. A scope can be a project, a folder, or an organization. The search is limited to the resources within the scope. The caller must be granted the cloudasset.assets.searchAllResources permission on the desired scope.

The allowed values are:

  • projects/{PROJECT_ID} (e.g., "projects/foo-bar")
  • projects/{PROJECT_NUMBER} (e.g., "projects/12345678")
  • folders/{FOLDER_NUMBER} (e.g., "folders/1234567")
  • organizations/{ORGANIZATION_NUMBER} (e.g., "organizations/123456")

query String

Optional. The query statement. See how to construct a query for more information. If not specified or empty, it will search all the resources within the specified scope.

Examples:

  • name:Important to find Cloud resources whose name contains "Important" as a word.
  • name=Important to find the Cloud resource whose name is exactly "Important".
  • displayName:Impor* to find Cloud resources whose display name contains "Impor" as a prefix of any word in the field.
  • location:us-west* to find Cloud resources whose location contains both "us" and "west" as prefixes.
  • labels:prod to find Cloud resources whose labels contain "prod" as a key or value.
  • labels.env:prod to find Cloud resources that have a label "env" and its value is "prod".
  • labels.env:* to find Cloud resources that have a label "env".
  • kmsKey:key to find Cloud resources encrypted with a customer-managed encryption key whose name contains the word "key".
  • state:ACTIVE to find Cloud resources whose state contains "ACTIVE" as a word.
  • NOT state:ACTIVE to find Cloud resources whose state doesn't contain "ACTIVE" as a word.
  • createTime<1609459200 to find Cloud resources that were created before "2021-01-01 00:00:00 UTC". 1609459200 is the epoch timestamp of "2021-01-01 00:00:00 UTC" in seconds.
  • updateTime>1609459200 to find Cloud resources that were updated after "2021-01-01 00:00:00 UTC". 1609459200 is the epoch timestamp of "2021-01-01 00:00:00 UTC" in seconds.
  • Important to find Cloud resources that contain "Important" as a word in any of the searchable fields.
  • Impor* to find Cloud resources that contain "Impor" as a prefix of any word in any of the searchable fields.
  • Important location:(us-west1 OR global) to find Cloud resources that contain "Important" as a word in any of the searchable fields and are also located in the "us-west1" region or the "global" location.

assetTypes List<String>

Optional. A list of asset types that this request searches for. If empty, it will search all the searchable asset types.

Regular expressions are also supported. For example:

  • "compute.googleapis.com.*" snapshots resources whose asset type starts with "compute.googleapis.com".
  • ".*Instance" snapshots resources whose asset type ends with "Instance".
  • ".*Instance.*" snapshots resources whose asset type contains "Instance".

See RE2 for all supported regular expression syntax. If the regular expression does not match any supported asset type, an INVALID_ARGUMENT error will be returned.

Returns
Type Description
AssetServiceClient.SearchAllResourcesPagedResponse

searchAllResourcesCallable()

public final UnaryCallable<SearchAllResourcesRequest,SearchAllResourcesResponse> searchAllResourcesCallable()

Searches all Cloud resources within the specified scope, such as a project, folder, or organization. The caller must be granted the cloudasset.assets.searchAllResources permission on the desired scope, otherwise the request will be rejected.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   SearchAllResourcesRequest request =
       SearchAllResourcesRequest.newBuilder()
           .setScope("scope109264468")
           .setQuery("query107944136")
           .addAllAssetTypes(new ArrayList<String>())
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .setOrderBy("orderBy-1207110587")
           .setReadMask(FieldMask.newBuilder().build())
           .build();
   while (true) {
     SearchAllResourcesResponse response =
         assetServiceClient.searchAllResourcesCallable().call(request);
     for (ResourceSearchResult element : response.getResponsesList()) {
       // doThingsWith(element);
     }
     String nextPageToken = response.getNextPageToken();
     if (!Strings.isNullOrEmpty(nextPageToken)) {
       request = request.toBuilder().setPageToken(nextPageToken).build();
     } else {
       break;
     }
   }
 }
 
Returns
Type Description
UnaryCallable<SearchAllResourcesRequest,SearchAllResourcesResponse>

searchAllResourcesPagedCallable()

public final UnaryCallable<SearchAllResourcesRequest,AssetServiceClient.SearchAllResourcesPagedResponse> searchAllResourcesPagedCallable()

Searches all Cloud resources within the specified scope, such as a project, folder, or organization. The caller must be granted the cloudasset.assets.searchAllResources permission on the desired scope, otherwise the request will be rejected.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   SearchAllResourcesRequest request =
       SearchAllResourcesRequest.newBuilder()
           .setScope("scope109264468")
           .setQuery("query107944136")
           .addAllAssetTypes(new ArrayList<String>())
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .setOrderBy("orderBy-1207110587")
           .setReadMask(FieldMask.newBuilder().build())
           .build();
   ApiFuture<ResourceSearchResult> future =
       assetServiceClient.searchAllResourcesPagedCallable().futureCall(request);
   // Do something.
   for (ResourceSearchResult element : future.get().iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Returns
Type Description
UnaryCallable<SearchAllResourcesRequest,SearchAllResourcesPagedResponse>

shutdown()

public void shutdown()

shutdownNow()

public void shutdownNow()

updateFeed(Feed feed)

public final Feed updateFeed(Feed feed)

Updates an asset feed configuration.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   Feed feed = Feed.newBuilder().build();
   Feed response = assetServiceClient.updateFeed(feed);
 }
 
Parameter
Name Description
feed Feed

Required. The new values of feed details. It must match an existing feed and the field name must be in the format of: projects/project_number/feeds/feed_id or folders/folder_number/feeds/feed_id or organizations/organization_number/feeds/feed_id.

Returns
Type Description
Feed

updateFeed(UpdateFeedRequest request)

public final Feed updateFeed(UpdateFeedRequest request)

Updates an asset feed configuration.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   UpdateFeedRequest request =
       UpdateFeedRequest.newBuilder()
           .setFeed(Feed.newBuilder().build())
           .setUpdateMask(FieldMask.newBuilder().build())
           .build();
   Feed response = assetServiceClient.updateFeed(request);
 }
 
Parameter
Name Description
request UpdateFeedRequest

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

Returns
Type Description
Feed

updateFeedCallable()

public final UnaryCallable<UpdateFeedRequest,Feed> updateFeedCallable()

Updates an asset feed configuration.

Sample code:


 try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
   UpdateFeedRequest request =
       UpdateFeedRequest.newBuilder()
           .setFeed(Feed.newBuilder().build())
           .setUpdateMask(FieldMask.newBuilder().build())
           .build();
   ApiFuture<Feed> future = assetServiceClient.updateFeedCallable().futureCall(request);
   // Do something.
   Feed response = future.get();
 }
 
Returns
Type Description
UnaryCallable<UpdateFeedRequest,Feed>