@@ -37,12 +37,14 @@ option php_namespace = "Google\\Cloud\\Asset\\V1";
37
37
// Asset service definition.
38
38
service AssetService {
39
39
option (google.api.default_host ) = "cloudasset.googleapis.com" ;
40
- option (google.api.oauth_scopes ) = "https://www.googleapis.com/auth/cloud-platform" ;
40
+ option (google.api.oauth_scopes ) =
41
+ "https://www.googleapis.com/auth/cloud-platform" ;
41
42
42
43
// Exports assets with time and resource types to a given Cloud Storage
43
44
// location. The output format is newline-delimited JSON.
44
- // This API implements the [google.longrunning.Operation][google.longrunning.Operation] API allowing you
45
- // to keep track of the export.
45
+ // This API implements the
46
+ // [google.longrunning.Operation][google.longrunning.Operation] API allowing
47
+ // you to keep track of the export.
46
48
rpc ExportAssets (ExportAssetsRequest ) returns (google .longrunning .Operation ) {
47
49
option (google.api.http ) = {
48
50
post : "/v1/{parent=*/*}:exportAssets"
@@ -61,7 +63,8 @@ service AssetService {
61
63
// attached IAM POLICY both exist. This can create gaps in the output history.
62
64
// If a specified asset does not exist, this API returns an INVALID_ARGUMENT
63
65
// error.
64
- rpc BatchGetAssetsHistory (BatchGetAssetsHistoryRequest ) returns (BatchGetAssetsHistoryResponse ) {
66
+ rpc BatchGetAssetsHistory (BatchGetAssetsHistoryRequest )
67
+ returns (BatchGetAssetsHistoryResponse ) {
65
68
option (google.api.http ) = {
66
69
get : "/v1/{parent=*/*}:batchGetAssetsHistory"
67
70
};
@@ -109,6 +112,30 @@ service AssetService {
109
112
};
110
113
option (google.api.method_signature ) = "name" ;
111
114
}
115
+
116
+ // Searches all the resources within the given accessible scope (e.g., a
117
+ // project, a folder or an organization). Callers should have
118
+ // cloud.assets.SearchAllResources permission upon the requested scope,
119
+ // otherwise the request will be rejected.
120
+ rpc SearchAllResources (SearchAllResourcesRequest )
121
+ returns (SearchAllResourcesResponse ) {
122
+ option (google.api.http ) = {
123
+ get : "/v1/{scope=*/*}:searchAllResources"
124
+ };
125
+ option (google.api.method_signature ) = "scope,query,asset_types" ;
126
+ }
127
+
128
+ // Searches all the IAM policies within the given accessible scope (e.g., a
129
+ // project, a folder or an organization). Callers should have
130
+ // cloud.assets.SearchAllIamPolicies permission upon the requested scope,
131
+ // otherwise the request will be rejected.
132
+ rpc SearchAllIamPolicies (SearchAllIamPoliciesRequest )
133
+ returns (SearchAllIamPoliciesResponse ) {
134
+ option (google.api.http ) = {
135
+ get : "/v1/{scope=*/*}:searchAllIamPolicies"
136
+ };
137
+ option (google.api.method_signature ) = "scope,query" ;
138
+ }
112
139
}
113
140
114
141
// Export asset request.
@@ -148,8 +175,10 @@ message ExportAssetsRequest {
148
175
}
149
176
150
177
// The export asset response. This message is returned by the
151
- // [google.longrunning.Operations.GetOperation][google.longrunning.Operations.GetOperation] method in the returned
152
- // [google.longrunning.Operation.response][google.longrunning.Operation.response] field.
178
+ // [google.longrunning.Operations.GetOperation][google.longrunning.Operations.GetOperation]
179
+ // method in the returned
180
+ // [google.longrunning.Operation.response][google.longrunning.Operation.response]
181
+ // field.
153
182
message ExportAssetsResponse {
154
183
// Time the snapshot was taken.
155
184
google.protobuf.Timestamp read_time = 1 ;
@@ -214,9 +243,8 @@ message CreateFeedRequest {
214
243
// be unique under a specific parent project/folder/organization.
215
244
string feed_id = 2 [(google.api.field_behavior ) = REQUIRED ];
216
245
217
- // Required. The feed details. The field `name` must be empty and it will be generated
218
- // in the format of:
219
- // projects/project_number/feeds/feed_id
246
+ // Required. The feed details. The field `name` must be empty and it will be
247
+ // generated in the format of: projects/project_number/feeds/feed_id
220
248
// folders/folder_number/feeds/feed_id
221
249
// organizations/organization_number/feeds/feed_id
222
250
Feed feed = 3 [(google.api.field_behavior ) = REQUIRED ];
@@ -230,9 +258,7 @@ message GetFeedRequest {
230
258
// organizations/organization_number/feeds/feed_id
231
259
string name = 1 [
232
260
(google.api.field_behavior ) = REQUIRED ,
233
- (google.api.resource_reference ) = {
234
- type : "cloudasset.googleapis.com/Feed"
235
- }
261
+ (google.api.resource_reference ) = { type : "cloudasset.googleapis.com/Feed" }
236
262
];
237
263
}
238
264
@@ -251,8 +277,8 @@ message ListFeedsResponse {
251
277
252
278
// Update asset feed request.
253
279
message UpdateFeedRequest {
254
- // Required. The new values of feed details. It must match an existing feed and the
255
- // field `name` must be in the format of:
280
+ // Required. The new values of feed details. It must match an existing feed
281
+ // and the field `name` must be in the format of:
256
282
// projects/project_number/feeds/feed_id or
257
283
// folders/folder_number/feeds/feed_id or
258
284
// organizations/organization_number/feeds/feed_id.
@@ -261,7 +287,8 @@ message UpdateFeedRequest {
261
287
// Required. Only updates the `feed` fields indicated by this mask.
262
288
// The field mask must not be empty, and it must not contain fields that
263
289
// are immutable or only set by the server.
264
- google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior ) = REQUIRED ];
290
+ google.protobuf.FieldMask update_mask = 2
291
+ [(google.api.field_behavior ) = REQUIRED ];
265
292
}
266
293
267
294
message DeleteFeedRequest {
@@ -271,9 +298,7 @@ message DeleteFeedRequest {
271
298
// organizations/organization_number/feeds/feed_id
272
299
string name = 1 [
273
300
(google.api.field_behavior ) = REQUIRED ,
274
- (google.api.resource_reference ) = {
275
- type : "cloudasset.googleapis.com/Feed"
276
- }
301
+ (google.api.resource_reference ) = { type : "cloudasset.googleapis.com/Feed" }
277
302
];
278
303
}
279
304
@@ -401,7 +426,156 @@ message Feed {
401
426
402
427
// Required. Feed output configuration defining where the asset updates are
403
428
// published to.
404
- FeedOutputConfig feed_output_config = 5 [(google.api.field_behavior ) = REQUIRED ];
429
+ FeedOutputConfig feed_output_config = 5
430
+ [(google.api.field_behavior ) = REQUIRED ];
431
+ }
432
+
433
+ // Search all resources request.
434
+ message SearchAllResourcesRequest {
435
+ // Required. A scope can be a project, a folder or an organization. The search
436
+ // is limited to the resources within the `scope`.
437
+ //
438
+ // The allowed values are:
439
+ //
440
+ // * projects/{PROJECT_ID}
441
+ // * projects/{PROJECT_NUMBER}
442
+ // * folders/{FOLDER_NUMBER}
443
+ // * organizations/{ORGANIZATION_NUMBER}
444
+ string scope = 1 [(google.api.field_behavior ) = REQUIRED ];
445
+
446
+ // Optional. The query statement. An empty query can be specified to search
447
+ // all the resources of certain `asset_types` within the given `scope`.
448
+ //
449
+ // Examples:
450
+ //
451
+ // * `name : "Important"` to find Cloud resources whose name contains
452
+ // "Important" as a word.
453
+ // * `displayName : "Impor*"` to find Cloud resources whose display name
454
+ // contains "Impor" as a word prefix.
455
+ // * `description : "*por*"` to find Cloud resources whose description
456
+ // contains "por" as a substring.
457
+ // * `location : "us-west*"` to find Cloud resources whose location is
458
+ // prefixed with "us-west".
459
+ // * `labels : "prod"` to find Cloud resources whose labels contain "prod" as
460
+ // a key or value.
461
+ // * `labels.env : "prod"` to find Cloud resources which have a label "env"
462
+ // and its value is "prod".
463
+ // * `labels.env : *` to find Cloud resources which have a label "env".
464
+ // * `"Important"` to find Cloud resources which contain "Important" as a word
465
+ // in any of the searchable fields.
466
+ // * `"Impor*"` to find Cloud resources which contain "Impor" as a word prefix
467
+ // in any of the searchable fields.
468
+ // * `"*por*"` to find Cloud resources which contain "por" as a substring in
469
+ // any of the searchable fields.
470
+ // * `("Important" AND location : ("us-west1" OR "global"))` to find Cloud
471
+ // resources which contain "Important" as a word in any of the searchable
472
+ // fields and are also located in the "us-west1" region or the "global"
473
+ // location.
474
+ //
475
+ // See [how to construct a
476
+ // query](https://cloud.google.com/asset-inventory/docs/searching-resources#how_to_construct_a_query)
477
+ // for more details.
478
+ string query = 2 [(google.api.field_behavior ) = OPTIONAL ];
479
+
480
+ // Optional. A list of asset types that this request searches for. If empty,
481
+ // it will search all the [searchable asset
482
+ // types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types).
483
+ repeated string asset_types = 3 [(google.api.field_behavior ) = OPTIONAL ];
484
+
485
+ // Optional. The page size for search result pagination. Page size is capped
486
+ // at 500 even if a larger value is given. If set to zero, server will pick an
487
+ // appropriate default. Returned results may be fewer than requested. When
488
+ // this happens, there could be more results as long as `next_page_token` is
489
+ // returned.
490
+ int32 page_size = 4 [(google.api.field_behavior ) = OPTIONAL ];
491
+
492
+ // Optional. If present, then retrieve the next batch of results from the
493
+ // preceding call to this method. `page_token` must be the value of
494
+ // `next_page_token` from the previous response. The values of all other
495
+ // method parameters, must be identical to those in the previous call.
496
+ string page_token = 5 [(google.api.field_behavior ) = OPTIONAL ];
497
+
498
+ // Optional. A comma separated list of fields specifying the sorting order of
499
+ // the results. The default order is ascending. Add " DESC" after the field
500
+ // name to indicate descending order. Redundant space characters are ignored.
501
+ // Example: "location DESC, name". See [supported resource metadata
502
+ // fields](https://cloud.google.com/asset-inventory/docs/searching-resources#query_on_resource_metadata_fields)
503
+ // for more details.
504
+ string order_by = 6 [(google.api.field_behavior ) = OPTIONAL ];
505
+ }
506
+
507
+ // Search all resources response.
508
+ message SearchAllResourcesResponse {
509
+ // A list of Resources that match the search query. It contains the resource
510
+ // standard metadata information.
511
+ repeated ResourceSearchResult results = 1 ;
512
+
513
+ // If there are more results than those appearing in this response, then
514
+ // `next_page_token` is included. To get the next set of results, call this
515
+ // method again using the value of `next_page_token` as `page_token`.
516
+ string next_page_token = 2 ;
517
+ }
518
+
519
+ // Search all IAM policies request.
520
+ message SearchAllIamPoliciesRequest {
521
+ // Required. A scope can be a project, a folder or an organization. The search
522
+ // is limited to the IAM policies within the `scope`.
523
+ //
524
+ // The allowed values are:
525
+ //
526
+ // * projects/{PROJECT_ID}
527
+ // * projects/{PROJECT_NUMBER}
528
+ // * folders/{FOLDER_NUMBER}
529
+ // * organizations/{ORGANIZATION_NUMBER}
530
+ string scope = 1 [(google.api.field_behavior ) = REQUIRED ];
531
+
532
+ // Optional. The query statement. An empty query can be specified to search
533
+ // all the IAM policies within the given `scope`.
534
+ //
535
+ // Examples:
536
+ //
537
+ // * `policy : "[email protected] "` to find Cloud IAM policy bindings that
538
+ // specify user "[email protected] ".
539
+ // * `policy : "roles/compute.admin"` to find Cloud IAM policy bindings that
540
+ // specify the Compute Admin role.
541
+ // * `policy.role.permissions : "storage.buckets.update"` to find Cloud IAM
542
+ // policy bindings that specify a role containing "storage.buckets.update"
543
+ // permission.
544
+ // * `resource : "organizations/123"` to find Cloud IAM policy bindings that
545
+ // are set on "organizations/123".
546
+ // * `(resource : ("organizations/123" OR "folders/1234") AND policy : "amy")`
547
+ // to find Cloud IAM policy bindings that are set on "organizations/123" or
548
+ // "folders/1234", and also specify user "amy".
549
+ //
550
+ // See [how to construct a
551
+ // query](https://cloud.google.com/asset-inventory/docs/searching-iam-policies#how_to_construct_a_query)
552
+ // for more details.
553
+ string query = 2 [(google.api.field_behavior ) = OPTIONAL ];
554
+
555
+ // Optional. The page size for search result pagination. Page size is capped
556
+ // at 500 even if a larger value is given. If set to zero, server will pick an
557
+ // appropriate default. Returned results may be fewer than requested. When
558
+ // this happens, there could be more results as long as `next_page_token` is
559
+ // returned.
560
+ int32 page_size = 3 [(google.api.field_behavior ) = OPTIONAL ];
561
+
562
+ // Optional. If present, retrieve the next batch of results from the preceding
563
+ // call to this method. `page_token` must be the value of `next_page_token`
564
+ // from the previous response. The values of all other method parameters must
565
+ // be identical to those in the previous call.
566
+ string page_token = 4 [(google.api.field_behavior ) = OPTIONAL ];
567
+ }
568
+
569
+ // Search all IAM policies response.
570
+ message SearchAllIamPoliciesResponse {
571
+ // A list of IamPolicy that match the search query. Related information such
572
+ // as the associated resource is returned along with the policy.
573
+ repeated IamPolicySearchResult results = 1 ;
574
+
575
+ // Set if there are more results than those appearing in this response; to get
576
+ // the next set of results, call this method again, using this value as the
577
+ // `page_token`.
578
+ string next_page_token = 2 ;
405
579
}
406
580
407
581
// Asset content type.
0 commit comments