google-cloud-asset-v1 0.8.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -54,6 +54,12 @@ module Google
54
54
  # This indicates that the field may be set once in a request to create a
55
55
  # resource, but may not be changed thereafter.
56
56
  IMMUTABLE = 5
57
+
58
+ # Denotes that a (repeated) field is an unordered list.
59
+ # This indicates that the service may provide the elements of the list
60
+ # in any arbitrary order, rather than the order the user originally
61
+ # provided. Additionally, the list's order may or may not be stable.
62
+ UNORDERED_LIST = 6
57
63
  end
58
64
  end
59
65
  end
@@ -88,6 +88,75 @@ module Google
88
88
  extend ::Google::Protobuf::MessageExts::ClassMethods
89
89
  end
90
90
 
91
+ # ListAssets request.
92
+ # @!attribute [rw] parent
93
+ # @return [::String]
94
+ # Required. Name of the organization or project the assets belong to. Format:
95
+ # "organizations/[organization-number]" (such as "organizations/123"),
96
+ # "projects/[project-id]" (such as "projects/my-project-id"), or
97
+ # "projects/[project-number]" (such as "projects/12345").
98
+ # @!attribute [rw] read_time
99
+ # @return [::Google::Protobuf::Timestamp]
100
+ # Timestamp to take an asset snapshot. This can only be set to a timestamp
101
+ # between the current time and the current time minus 35 days (inclusive).
102
+ # If not specified, the current time will be used. Due to delays in resource
103
+ # data collection and indexing, there is a volatile window during which
104
+ # running the same query may get different results.
105
+ # @!attribute [rw] asset_types
106
+ # @return [::Array<::String>]
107
+ # A list of asset types to take a snapshot for. For example:
108
+ # "compute.googleapis.com/Disk".
109
+ #
110
+ # Regular expression is also supported. For example:
111
+ #
112
+ # * "compute.googleapis.com.*" snapshots resources whose asset type starts
113
+ # with "compute.googleapis.com".
114
+ # * ".*Instance" snapshots resources whose asset type ends with "Instance".
115
+ # * ".*Instance.*" snapshots resources whose asset type contains "Instance".
116
+ #
117
+ # See [RE2](https://github.com/google/re2/wiki/Syntax) for all supported
118
+ # regular expression syntax. If the regular expression does not match any
119
+ # supported asset type, an INVALID_ARGUMENT error will be returned.
120
+ #
121
+ # If specified, only matching assets will be returned, otherwise, it will
122
+ # snapshot all asset types. See [Introduction to Cloud Asset
123
+ # Inventory](https://cloud.google.com/asset-inventory/docs/overview)
124
+ # for all supported asset types.
125
+ # @!attribute [rw] content_type
126
+ # @return [::Google::Cloud::Asset::V1::ContentType]
127
+ # Asset content type. If not specified, no content but the asset name will
128
+ # be returned.
129
+ # @!attribute [rw] page_size
130
+ # @return [::Integer]
131
+ # The maximum number of assets to be returned in a single response. Default
132
+ # is 100, minimum is 1, and maximum is 1000.
133
+ # @!attribute [rw] page_token
134
+ # @return [::String]
135
+ # The `next_page_token` returned from the previous `ListAssetsResponse`, or
136
+ # unspecified for the first `ListAssetsRequest`. It is a continuation of a
137
+ # prior `ListAssets` call, and the API should return the next page of assets.
138
+ class ListAssetsRequest
139
+ include ::Google::Protobuf::MessageExts
140
+ extend ::Google::Protobuf::MessageExts::ClassMethods
141
+ end
142
+
143
+ # ListAssets response.
144
+ # @!attribute [rw] read_time
145
+ # @return [::Google::Protobuf::Timestamp]
146
+ # Time the snapshot was taken.
147
+ # @!attribute [rw] assets
148
+ # @return [::Array<::Google::Cloud::Asset::V1::Asset>]
149
+ # Assets.
150
+ # @!attribute [rw] next_page_token
151
+ # @return [::String]
152
+ # Token to retrieve the next page of results. It expires 72 hours after the
153
+ # page token for the first page is generated. Set to empty if there are no
154
+ # remaining results.
155
+ class ListAssetsResponse
156
+ include ::Google::Protobuf::MessageExts
157
+ extend ::Google::Protobuf::MessageExts::ClassMethods
158
+ end
159
+
91
160
  # Batch get assets history request.
92
161
  # @!attribute [rw] parent
93
162
  # @return [::String]
@@ -253,6 +322,10 @@ module Google
253
322
  # Editing Object
254
323
  # Metadata](https://cloud.google.com/storage/docs/viewing-editing-metadata)
255
324
  # for more information.
325
+ #
326
+ # If the specified Cloud Storage object already exists and there is no
327
+ # [hold](https://cloud.google.com/storage/docs/object-holds), it will be
328
+ # overwritten with the exported result.
256
329
  # @!attribute [rw] uri_prefix
257
330
  # @return [::String]
258
331
  # The uri prefix of all generated Cloud Storage objects. Example:
@@ -292,7 +365,7 @@ module Google
292
365
  # [partition_spec] determines whether to export to partitioned table(s) and
293
366
  # how to partition the data.
294
367
  #
295
- # If [partition_spec] is unset or [partition_spec.partion_key] is unset or
368
+ # If [partition_spec] is unset or [partition_spec.partition_key] is unset or
296
369
  # `PARTITION_KEY_UNSPECIFIED`, the snapshot results will be exported to
297
370
  # non-partitioned table(s). [force] will decide whether to overwrite existing
298
371
  # table(s).
@@ -457,7 +530,7 @@ module Google
457
530
  # @return [::String]
458
531
  # Required. A scope can be a project, a folder, or an organization. The search is
459
532
  # limited to the resources within the `scope`. The caller must be granted the
460
- # [`cloudasset.assets.searchAllResources`](http://cloud.google.com/asset-inventory/docs/access-control#required_permissions)
533
+ # [`cloudasset.assets.searchAllResources`](https://cloud.google.com/asset-inventory/docs/access-control#required_permissions)
461
534
  # permission on the desired scope.
462
535
  #
463
536
  # The allowed values are:
@@ -469,36 +542,41 @@ module Google
469
542
  # @!attribute [rw] query
470
543
  # @return [::String]
471
544
  # Optional. The query statement. See [how to construct a
472
- # query](http://cloud.google.com/asset-inventory/docs/searching-resources#how_to_construct_a_query)
545
+ # query](https://cloud.google.com/asset-inventory/docs/searching-resources#how_to_construct_a_query)
473
546
  # for more information. If not specified or empty, it will search all the
474
- # resources within the specified `scope`. Note that the query string is
475
- # compared against each Cloud IAM policy binding, including its members,
476
- # roles, and Cloud IAM conditions. The returned Cloud IAM policies will only
477
- # contain the bindings that match your query. To learn more about the IAM
478
- # policy structure, see [IAM policy
479
- # doc](https://cloud.google.com/iam/docs/policies#structure).
547
+ # resources within the specified `scope`.
480
548
  #
481
549
  # Examples:
482
550
  #
483
551
  # * `name:Important` to find Cloud resources whose name contains
484
552
  # "Important" as a word.
553
+ # * `name=Important` to find the Cloud resource whose name is exactly
554
+ # "Important".
485
555
  # * `displayName:Impor*` to find Cloud resources whose display name
486
- # contains "Impor" as a prefix.
487
- # * `description:*por*` to find Cloud resources whose description
488
- # contains "por" as a substring.
489
- # * `location:us-west*` to find Cloud resources whose location is
490
- # prefixed with "us-west".
556
+ # contains "Impor" as a prefix of any word in the field.
557
+ # * `location:us-west*` to find Cloud resources whose location contains both
558
+ # "us" and "west" as prefixes.
491
559
  # * `labels:prod` to find Cloud resources whose labels contain "prod" as
492
560
  # a key or value.
493
561
  # * `labels.env:prod` to find Cloud resources that have a label "env"
494
562
  # and its value is "prod".
495
563
  # * `labels.env:*` to find Cloud resources that have a label "env".
564
+ # * `kmsKey:key` to find Cloud resources encrypted with a customer-managed
565
+ # encryption key whose name contains the word "key".
566
+ # * `state:ACTIVE` to find Cloud resources whose state contains "ACTIVE" as a
567
+ # word.
568
+ # * `NOT state:ACTIVE` to find \\{\\{gcp_name}} resources whose state
569
+ # doesn't contain "ACTIVE" as a word.
570
+ # * `createTime<1609459200` to find Cloud resources that were created before
571
+ # "2021-01-01 00:00:00 UTC". 1609459200 is the epoch timestamp of
572
+ # "2021-01-01 00:00:00 UTC" in seconds.
573
+ # * `updateTime>1609459200` to find Cloud resources that were updated after
574
+ # "2021-01-01 00:00:00 UTC". 1609459200 is the epoch timestamp of
575
+ # "2021-01-01 00:00:00 UTC" in seconds.
496
576
  # * `Important` to find Cloud resources that contain "Important" as a word
497
577
  # in any of the searchable fields.
498
- # * `Impor*` to find Cloud resources that contain "Impor" as a prefix
499
- # in any of the searchable fields.
500
- # * `*por*` to find Cloud resources that contain "por" as a substring in
501
- # any of the searchable fields.
578
+ # * `Impor*` to find Cloud resources that contain "Impor" as a prefix of any
579
+ # word in any of the searchable fields.
502
580
  # * `Important location:(us-west1 OR global)` to find Cloud
503
581
  # resources that contain "Important" as a word in any of the searchable
504
582
  # fields and are also located in the "us-west1" region or the "global"
@@ -508,6 +586,17 @@ module Google
508
586
  # Optional. A list of asset types that this request searches for. If empty, it will
509
587
  # search all the [searchable asset
510
588
  # types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types).
589
+ #
590
+ # Regular expressions are also supported. For example:
591
+ #
592
+ # * "compute.googleapis.com.*" snapshots resources whose asset type starts
593
+ # with "compute.googleapis.com".
594
+ # * ".*Instance" snapshots resources whose asset type ends with "Instance".
595
+ # * ".*Instance.*" snapshots resources whose asset type contains "Instance".
596
+ #
597
+ # See [RE2](https://github.com/google/re2/wiki/Syntax) for all supported
598
+ # regular expression syntax. If the regular expression does not match any
599
+ # supported asset type, an INVALID_ARGUMENT error will be returned.
511
600
  # @!attribute [rw] page_size
512
601
  # @return [::Integer]
513
602
  # Optional. The page size for search result pagination. Page size is capped at 500 even
@@ -522,12 +611,24 @@ module Google
522
611
  # identical to those in the previous call.
523
612
  # @!attribute [rw] order_by
524
613
  # @return [::String]
525
- # Optional. A comma separated list of fields specifying the sorting order of the
614
+ # Optional. A comma-separated list of fields specifying the sorting order of the
526
615
  # results. The default order is ascending. Add " DESC" after the field name
527
616
  # to indicate descending order. Redundant space characters are ignored.
528
- # Example: "location DESC, name". Only string fields in the response are
529
- # sortable, including `name`, `displayName`, `description`, `location`. All
530
- # the other fields such as repeated fields (e.g., `networkTags`), map
617
+ # Example: "location DESC, name".
618
+ # Only singular primitive fields in the response are sortable:
619
+ # * name
620
+ # * assetType
621
+ # * project
622
+ # * displayName
623
+ # * description
624
+ # * location
625
+ # * kmsKey
626
+ # * createTime
627
+ # * updateTime
628
+ # * state
629
+ # * parentFullResourceName
630
+ # * parentAssetType
631
+ # All the other fields such as repeated fields (e.g., `networkTags`), map
531
632
  # fields (e.g., `labels`) and struct fields (e.g., `additionalAttributes`)
532
633
  # are not supported.
533
634
  class SearchAllResourcesRequest
@@ -556,7 +657,7 @@ module Google
556
657
  # Required. A scope can be a project, a folder, or an organization. The search is
557
658
  # limited to the IAM policies within the `scope`. The caller must be granted
558
659
  # the
559
- # [`cloudasset.assets.searchAllIamPolicies`](http://cloud.google.com/asset-inventory/docs/access-control#required_permissions)
660
+ # [`cloudasset.assets.searchAllIamPolicies`](https://cloud.google.com/asset-inventory/docs/access-control#required_permissions)
560
661
  # permission on the desired scope.
561
662
  #
562
663
  # The allowed values are:
@@ -570,7 +671,12 @@ module Google
570
671
  # Optional. The query statement. See [how to construct a
571
672
  # query](https://cloud.google.com/asset-inventory/docs/searching-iam-policies#how_to_construct_a_query)
572
673
  # for more information. If not specified or empty, it will search all the
573
- # IAM policies within the specified `scope`.
674
+ # IAM policies within the specified `scope`. Note that the query string is
675
+ # compared against each Cloud IAM policy binding, including its members,
676
+ # roles, and Cloud IAM conditions. The returned Cloud IAM policies will only
677
+ # contain the bindings that match your query. To learn more about the IAM
678
+ # policy structure, see [IAM policy
679
+ # doc](https://cloud.google.com/iam/docs/policies#structure).
574
680
  #
575
681
  # Examples:
576
682
  #
@@ -578,18 +684,25 @@ module Google
578
684
  # "amy@gmail.com".
579
685
  # * `policy:roles/compute.admin` to find IAM policy bindings that specify
580
686
  # the Compute Admin role.
687
+ # * `policy:comp*` to find IAM policy bindings that contain "comp" as a
688
+ # prefix of any word in the binding.
581
689
  # * `policy.role.permissions:storage.buckets.update` to find IAM policy
582
690
  # bindings that specify a role containing "storage.buckets.update"
583
691
  # permission. Note that if callers don't have `iam.roles.get` access to a
584
692
  # role's included permissions, policy bindings that specify this role will
585
693
  # be dropped from the search results.
694
+ # * `policy.role.permissions:upd*` to find IAM policy bindings that specify a
695
+ # role containing "upd" as a prefix of any word in the role permission.
696
+ # Note that if callers don't have `iam.roles.get` access to a role's
697
+ # included permissions, policy bindings that specify this role will be
698
+ # dropped from the search results.
586
699
  # * `resource:organizations/123456` to find IAM policy bindings
587
700
  # that are set on "organizations/123456".
701
+ # * `resource=//cloudresourcemanager.googleapis.com/projects/myproject` to
702
+ # find IAM policy bindings that are set on the project named "myproject".
588
703
  # * `Important` to find IAM policy bindings that contain "Important" as a
589
704
  # word in any of the searchable fields (except for the included
590
705
  # permissions).
591
- # * `*por*` to find IAM policy bindings that contain "por" as a substring
592
- # in any of the searchable fields (except for the included permissions).
593
706
  # * `resource:(instance1 OR instance2) policy:amy` to find
594
707
  # IAM policy bindings that are set on resources "instance1" or
595
708
  # "instance2" and also specify user "amy".
@@ -625,7 +738,7 @@ module Google
625
738
  extend ::Google::Protobuf::MessageExts::ClassMethods
626
739
  end
627
740
 
628
- # IAM policy analysis query message.
741
+ # ## IAM policy analysis query message.
629
742
  # @!attribute [rw] scope
630
743
  # @return [::String]
631
744
  # Required. The relative name of the root asset. Only resources and IAM policies within
@@ -652,6 +765,9 @@ module Google
652
765
  # @!attribute [rw] options
653
766
  # @return [::Google::Cloud::Asset::V1::IamPolicyAnalysisQuery::Options]
654
767
  # Optional. The query options.
768
+ # @!attribute [rw] condition_context
769
+ # @return [::Google::Cloud::Asset::V1::IamPolicyAnalysisQuery::ConditionContext]
770
+ # Optional. The hypothetical context for IAM conditions evaluation.
655
771
  class IamPolicyAnalysisQuery
656
772
  include ::Google::Protobuf::MessageExts
657
773
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -791,6 +907,17 @@ module Google
791
907
  include ::Google::Protobuf::MessageExts
792
908
  extend ::Google::Protobuf::MessageExts::ClassMethods
793
909
  end
910
+
911
+ # The IAM conditions context.
912
+ # @!attribute [rw] access_time
913
+ # @return [::Google::Protobuf::Timestamp]
914
+ # The hypothetical access timestamp to evaluate IAM conditions. Note that
915
+ # this value must not be earlier than the current time; otherwise, an
916
+ # INVALID_ARGUMENT error will be returned.
917
+ class ConditionContext
918
+ include ::Google::Protobuf::MessageExts
919
+ extend ::Google::Protobuf::MessageExts::ClassMethods
920
+ end
794
921
  end
795
922
 
796
923
  # A request message for {::Google::Cloud::Asset::V1::AssetService::Client#analyze_iam_policy AssetService.AnalyzeIamPolicy}.
@@ -868,9 +995,14 @@ module Google
868
995
  # @!attribute [rw] uri
869
996
  # @return [::String]
870
997
  # Required. The uri of the Cloud Storage object. It's the same uri that is used by
871
- # gsutil. For example: "gs://bucket_name/object_name". See
872
- # [Quickstart: Using the gsutil tool]
873
- # (https://cloud.google.com/storage/docs/quickstart-gsutil) for examples.
998
+ # gsutil. Example: "gs://bucket_name/object_name". See [Viewing and
999
+ # Editing Object
1000
+ # Metadata](https://cloud.google.com/storage/docs/viewing-editing-metadata)
1001
+ # for more information.
1002
+ #
1003
+ # If the specified Cloud Storage object already exists and there is no
1004
+ # [hold](https://cloud.google.com/storage/docs/object-holds), it will be
1005
+ # overwritten with the analysis result.
874
1006
  class GcsDestination
875
1007
  include ::Google::Protobuf::MessageExts
876
1008
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -964,6 +1096,9 @@ module Google
964
1096
 
965
1097
  # The Cloud Access context manager Policy set on an asset.
966
1098
  ACCESS_POLICY = 5
1099
+
1100
+ # The runtime OS Inventory information.
1101
+ OS_INVENTORY = 6
967
1102
  end
968
1103
  end
969
1104
  end
@@ -79,7 +79,8 @@ module Google
79
79
  # [resource
80
80
  # hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy),
81
81
  # a resource outside the Google Cloud resource hierarchy (such as Google
82
- # Kubernetes Engine clusters and objects), or a policy (e.g. Cloud IAM policy).
82
+ # Kubernetes Engine clusters and objects), or a policy (e.g. Cloud IAM policy),
83
+ # or a relationship (e.g. an INSTANCE_TO_INSTANCEGROUP relationship).
83
84
  # See [Supported asset
84
85
  # types](https://cloud.google.com/asset-inventory/docs/supported-asset-types)
85
86
  # for more information.
@@ -134,6 +135,11 @@ module Google
134
135
  # @return [::Google::Identity::AccessContextManager::V1::ServicePerimeter]
135
136
  # Please also refer to the [service perimeter user
136
137
  # guide](https://cloud.google.com/vpc-service-controls/docs/overview).
138
+ # @!attribute [rw] os_inventory
139
+ # @return [::Google::Cloud::OsConfig::V1::Inventory]
140
+ # A representation of runtime OS Inventory information. See [this
141
+ # topic](https://cloud.google.com/compute/docs/instances/os-inventory-management)
142
+ # for more information.
137
143
  # @!attribute [rw] ancestors
138
144
  # @return [::Array<::String>]
139
145
  # The ancestry path of an asset in Google Cloud [resource
@@ -225,14 +231,40 @@ module Google
225
231
  # @!attribute [rw] project
226
232
  # @return [::String]
227
233
  # The project that this resource belongs to, in the form of
228
- # projects/\\{PROJECT_NUMBER}.
234
+ # projects/\\{PROJECT_NUMBER}. This field is available when the resource
235
+ # belongs to a project.
229
236
  #
230
- # To search against the `project`:
237
+ # To search against `project`:
231
238
  #
239
+ # * use a field query. Example: `project:12345`
240
+ # * use a free text query. Example: `12345`
232
241
  # * specify the `scope` field as this project in your search request.
242
+ # @!attribute [rw] folders
243
+ # @return [::Array<::String>]
244
+ # The folder(s) that this resource belongs to, in the form of
245
+ # folders/\\{FOLDER_NUMBER}. This field is available when the resource
246
+ # belongs to one or more folders.
247
+ #
248
+ # To search against `folders`:
249
+ #
250
+ # * use a field query. Example: `folders:(123 OR 456)`
251
+ # * use a free text query. Example: `123`
252
+ # * specify the `scope` field as this folder in your search request.
253
+ # @!attribute [rw] organization
254
+ # @return [::String]
255
+ # The organization that this resource belongs to, in the form of
256
+ # organizations/\\{ORGANIZATION_NUMBER}. This field is available when the
257
+ # resource belongs to an organization.
258
+ #
259
+ # To search against `organization`:
260
+ #
261
+ # * use a field query. Example: `organization:123`
262
+ # * use a free text query. Example: `123`
263
+ # * specify the `scope` field as this organization in your search request.
233
264
  # @!attribute [rw] display_name
234
265
  # @return [::String]
235
- # The display name of this resource.
266
+ # The display name of this resource. This field is available only when the
267
+ # resource's proto contains it.
236
268
  #
237
269
  # To search against the `display_name`:
238
270
  #
@@ -241,16 +273,18 @@ module Google
241
273
  # @!attribute [rw] description
242
274
  # @return [::String]
243
275
  # One or more paragraphs of text description of this resource. Maximum length
244
- # could be up to 1M bytes.
276
+ # could be up to 1M bytes. This field is available only when the resource's
277
+ # proto contains it.
245
278
  #
246
279
  # To search against the `description`:
247
280
  #
248
- # * use a field query. Example: `description:"*important instance*"`
249
- # * use a free text query. Example: `"*important instance*"`
281
+ # * use a field query. Example: `description:"important instance"`
282
+ # * use a free text query. Example: `"important instance"`
250
283
  # @!attribute [rw] location
251
284
  # @return [::String]
252
285
  # Location can be `global`, regional like `us-east1`, or zonal like
253
- # `us-west1-b`.
286
+ # `us-west1-b`. This field is available only when the resource's proto
287
+ # contains it.
254
288
  #
255
289
  # To search against the `location`:
256
290
  #
@@ -260,7 +294,8 @@ module Google
260
294
  # @return [::Google::Protobuf::Map{::String => ::String}]
261
295
  # Labels associated with this resource. See [Labelling and grouping GCP
262
296
  # resources](https://cloud.google.com/blog/products/gcp/labelling-and-grouping-your-google-cloud-platform-resources)
263
- # for more information.
297
+ # for more information. This field is available only when the resource's
298
+ # proto contains it.
264
299
  #
265
300
  # To search against the `labels`:
266
301
  #
@@ -274,12 +309,73 @@ module Google
274
309
  # Network tags associated with this resource. Like labels, network tags are a
275
310
  # type of annotations used to group GCP resources. See [Labelling GCP
276
311
  # resources](https://cloud.google.com/blog/products/gcp/labelling-and-grouping-your-google-cloud-platform-resources)
277
- # for more information.
312
+ # for more information. This field is available only when the resource's
313
+ # proto contains it.
278
314
  #
279
315
  # To search against the `network_tags`:
280
316
  #
281
317
  # * use a field query. Example: `networkTags:internal`
282
318
  # * use a free text query. Example: `internal`
319
+ # @!attribute [rw] kms_key
320
+ # @return [::String]
321
+ # The Cloud KMS
322
+ # [CryptoKey](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys?hl=en)
323
+ # name or
324
+ # [CryptoKeyVersion](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys.cryptoKeyVersions?hl=en)
325
+ # name. This field is available only when the resource's proto contains it.
326
+ #
327
+ # To search against the `kms_key`:
328
+ #
329
+ # * use a field query. Example: `kmsKey:key`
330
+ # * use a free text query. Example: `key`
331
+ # @!attribute [rw] create_time
332
+ # @return [::Google::Protobuf::Timestamp]
333
+ # The create timestamp of this resource, at which the resource was created.
334
+ # The granularity is in seconds. Timestamp.nanos will always be 0. This field
335
+ # is available only when the resource's proto contains it.
336
+ #
337
+ # To search against `create_time`:
338
+ #
339
+ # * use a field query.
340
+ # - value in seconds since unix epoch. Example: `createTime > 1609459200`
341
+ # - value in date string. Example: `createTime > 2021-01-01`
342
+ # - value in date-time string (must be quoted). Example: `createTime >
343
+ # "2021-01-01T00:00:00"`
344
+ # @!attribute [rw] update_time
345
+ # @return [::Google::Protobuf::Timestamp]
346
+ # The last update timestamp of this resource, at which the resource was last
347
+ # modified or deleted. The granularity is in seconds. Timestamp.nanos will
348
+ # always be 0. This field is available only when the resource's proto
349
+ # contains it.
350
+ #
351
+ # To search against `update_time`:
352
+ #
353
+ # * use a field query.
354
+ # - value in seconds since unix epoch. Example: `updateTime < 1609459200`
355
+ # - value in date string. Example: `updateTime < 2021-01-01`
356
+ # - value in date-time string (must be quoted). Example: `updateTime <
357
+ # "2021-01-01T00:00:00"`
358
+ # @!attribute [rw] state
359
+ # @return [::String]
360
+ # The state of this resource. Different resources types have different state
361
+ # definitions that are mapped from various fields of different resource
362
+ # types. This field is available only when the resource's proto contains it.
363
+ #
364
+ # Example:
365
+ # If the resource is an instance provided by Compute Engine,
366
+ # its state will include PROVISIONING, STAGING, RUNNING, STOPPING,
367
+ # SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. See `status` definition
368
+ # in [API
369
+ # Reference](https://cloud.google.com/compute/docs/reference/rest/v1/instances).
370
+ # If the resource is a project provided by Cloud Resource Manager, its state
371
+ # will include LIFECYCLE_STATE_UNSPECIFIED, ACTIVE, DELETE_REQUESTED and
372
+ # DELETE_IN_PROGRESS. See `lifecycleState` definition in [API
373
+ # Reference](https://cloud.google.com/resource-manager/reference/rest/v1/projects).
374
+ #
375
+ # To search against the `state`:
376
+ #
377
+ # * use a field query. Example: `state:RUNNING`
378
+ # * use a free text query. Example: `RUNNING`
283
379
  # @!attribute [rw] additional_attributes
284
380
  # @return [::Google::Protobuf::Struct]
285
381
  # The additional searchable attributes of this resource. The attributes may
@@ -289,7 +385,7 @@ module Google
289
385
  # corresponding GCP service (e.g., Compute Engine). see [API references and
290
386
  # supported searchable
291
387
  # attributes](https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types)
292
- # for more information.
388
+ # to see which fields are included.
293
389
  #
294
390
  # You can search values of these fields through free text search. However,
295
391
  # you should not consume the field programically as the field names and
@@ -301,6 +397,25 @@ module Google
301
397
  # * use a free text query to match the attributes values. Example: to search
302
398
  # `additional_attributes = { dnsName: "foobar" }`, you can issue a query
303
399
  # `foobar`.
400
+ # @!attribute [rw] parent_full_resource_name
401
+ # @return [::String]
402
+ # The full resource name of this resource's parent, if it has one.
403
+ # To search against the `parent_full_resource_name`:
404
+ #
405
+ # * use a field query. Example:
406
+ # `parentFullResourceName:"project-name"`
407
+ # * use a free text query. Example:
408
+ # `project-name`
409
+ # @!attribute [rw] parent_asset_type
410
+ # @return [::String]
411
+ # The type of this resource's immediate parent, if there is one.
412
+ #
413
+ # To search against the `parent_asset_type`:
414
+ #
415
+ # * use a field query. Example:
416
+ # `parentAssetType:"cloudresourcemanager.googleapis.com/Project"`
417
+ # * use a free text query. Example:
418
+ # `cloudresourcemanager.googleapis.com/Project`
304
419
  class ResourceSearchResult
305
420
  include ::Google::Protobuf::MessageExts
306
421
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -334,7 +449,7 @@ module Google
334
449
  # projects/\\{PROJECT_NUMBER}. If an IAM policy is set on a resource (like VM
335
450
  # instance, Cloud Storage bucket), the project field will indicate the
336
451
  # project that contains the resource. If an IAM policy is set on a folder or
337
- # orgnization, the project field will be empty.
452
+ # orgnization, this field will be empty.
338
453
  #
339
454
  # To search against the `project`:
340
455
  #
@@ -415,6 +530,32 @@ module Google
415
530
  extend ::Google::Protobuf::MessageExts::ClassMethods
416
531
  end
417
532
 
533
+ # The Condition evaluation.
534
+ # @!attribute [rw] evaluation_value
535
+ # @return [::Google::Cloud::Asset::V1::ConditionEvaluation::EvaluationValue]
536
+ # The evaluation result.
537
+ class ConditionEvaluation
538
+ include ::Google::Protobuf::MessageExts
539
+ extend ::Google::Protobuf::MessageExts::ClassMethods
540
+
541
+ # Value of this expression.
542
+ module EvaluationValue
543
+ # Reserved for future use.
544
+ EVALUATION_VALUE_UNSPECIFIED = 0
545
+
546
+ # The evaluation result is `true`.
547
+ TRUE = 1
548
+
549
+ # The evaluation result is `false`.
550
+ FALSE = 2
551
+
552
+ # The evaluation result is `conditional` when the condition expression
553
+ # contains variables that are either missing input values or have not been
554
+ # supported by Analyzer yet.
555
+ CONDITIONAL = 3
556
+ end
557
+ end
558
+
418
559
  # IAM Policy analysis result, consisting of one IAM policy binding and derived
419
560
  # access control lists.
420
561
  # @!attribute [rw] attached_resource_full_name
@@ -537,6 +678,10 @@ module Google
537
678
  # the full resource name of a parent resource and {::Google::Cloud::Asset::V1::IamPolicyAnalysisResult::Edge#target_node Edge.target_node}
538
679
  # contains the full resource name of a child resource. This field is
539
680
  # present only if the output_resource_edges option is enabled in request.
681
+ # @!attribute [rw] condition_evaluation
682
+ # @return [::Google::Cloud::Asset::V1::ConditionEvaluation]
683
+ # Condition evaluation for this AccessControlList, if there is a condition
684
+ # defined in the above IAM policy binding.
540
685
  class AccessControlList
541
686
  include ::Google::Protobuf::MessageExts
542
687
  extend ::Google::Protobuf::MessageExts::ClassMethods