google-cloud-asset-v1 0.4.3 → 0.6.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.
- checksums.yaml +4 -4
- data/README.md +4 -0
- data/lib/google/cloud/asset/v1/asset_service/client.rb +357 -106
- data/lib/google/cloud/asset/v1/asset_service/operations.rb +1 -1
- data/lib/google/cloud/asset/v1/asset_service_pb.rb +120 -0
- data/lib/google/cloud/asset/v1/asset_service_services_pb.rb +39 -21
- data/lib/google/cloud/asset/v1/assets_pb.rb +59 -2
- data/lib/google/cloud/asset/v1/version.rb +1 -1
- data/proto_docs/google/cloud/asset/v1/asset_service.rb +593 -108
- data/proto_docs/google/cloud/asset/v1/assets.rb +258 -34
- data/proto_docs/google/protobuf/duration.rb +98 -0
- data/proto_docs/google/rpc/code.rb +185 -0
- data/proto_docs/google/rpc/status.rb +1 -1
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 47903709aadc0bfaa500654626a56c96aae048c5b901a5b0c60d79e6186ae997
|
4
|
+
data.tar.gz: 720eb8288342eb67e1d314ac048500bea99c7f8c6a71d1edd941048ecfac1134
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9eaef8da1ab7e67c1efa41f4f31c88587508eb2350e2d703833967a1cb66d10a2e44e30d6af121d290a5e6f97671b8cef4c1d020965674bcdef919edc31faa6a
|
7
|
+
data.tar.gz: 5aa1b26f56d54da1627fefc83a3d6bc2bd74ae9b058ec943aa162183f1624ba0b922b0c79a60869640545a43b67cec442d8e1d77048209e3f60f60150ff1520f
|
data/README.md
CHANGED
@@ -18,6 +18,7 @@ In order to use this library, you first need to go through the following steps:
|
|
18
18
|
|
19
19
|
1. [Select or create a Cloud Platform project.](https://console.cloud.google.com/project)
|
20
20
|
1. [Enable billing for your project.](https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project)
|
21
|
+
1. [Enable the API.](https://console.cloud.google.com/apis/library/cloudasset.googleapis.com)
|
21
22
|
1. {file:AUTHENTICATION.md Set up authentication.}
|
22
23
|
|
23
24
|
## Quick Start
|
@@ -33,6 +34,9 @@ response = client.export_assets request
|
|
33
34
|
View the [Client Library Documentation](https://googleapis.dev/ruby/google-cloud-asset-v1/latest)
|
34
35
|
for class and method documentation.
|
35
36
|
|
37
|
+
See also the [Product Documentation](https://cloud.google.com/asset-inventory/)
|
38
|
+
for general usage information.
|
39
|
+
|
36
40
|
## Enabling Logging
|
37
41
|
|
38
42
|
To enable logging for this library, set the logger for the underlying [gRPC](https://github.com/grpc/grpc/tree/master/src/ruby) library.
|
@@ -72,7 +72,35 @@ module Google
|
|
72
72
|
initial_delay: 0.1,
|
73
73
|
max_delay: 60.0,
|
74
74
|
multiplier: 1.3,
|
75
|
-
retry_codes: [
|
75
|
+
retry_codes: [4, 14]
|
76
|
+
}
|
77
|
+
|
78
|
+
default_config.rpcs.create_feed.timeout = 60.0
|
79
|
+
|
80
|
+
default_config.rpcs.get_feed.timeout = 60.0
|
81
|
+
default_config.rpcs.get_feed.retry_policy = {
|
82
|
+
initial_delay: 0.1,
|
83
|
+
max_delay: 60.0,
|
84
|
+
multiplier: 1.3,
|
85
|
+
retry_codes: [4, 14]
|
86
|
+
}
|
87
|
+
|
88
|
+
default_config.rpcs.list_feeds.timeout = 60.0
|
89
|
+
default_config.rpcs.list_feeds.retry_policy = {
|
90
|
+
initial_delay: 0.1,
|
91
|
+
max_delay: 60.0,
|
92
|
+
multiplier: 1.3,
|
93
|
+
retry_codes: [4, 14]
|
94
|
+
}
|
95
|
+
|
96
|
+
default_config.rpcs.update_feed.timeout = 60.0
|
97
|
+
|
98
|
+
default_config.rpcs.delete_feed.timeout = 60.0
|
99
|
+
default_config.rpcs.delete_feed.retry_policy = {
|
100
|
+
initial_delay: 0.1,
|
101
|
+
max_delay: 60.0,
|
102
|
+
multiplier: 1.3,
|
103
|
+
retry_codes: [4, 14]
|
76
104
|
}
|
77
105
|
|
78
106
|
default_config.rpcs.search_all_resources.timeout = 15.0
|
@@ -80,7 +108,7 @@ module Google
|
|
80
108
|
initial_delay: 0.1,
|
81
109
|
max_delay: 60.0,
|
82
110
|
multiplier: 1.3,
|
83
|
-
retry_codes: [
|
111
|
+
retry_codes: [4, 14]
|
84
112
|
}
|
85
113
|
|
86
114
|
default_config.rpcs.search_all_iam_policies.timeout = 15.0
|
@@ -88,9 +116,19 @@ module Google
|
|
88
116
|
initial_delay: 0.1,
|
89
117
|
max_delay: 60.0,
|
90
118
|
multiplier: 1.3,
|
91
|
-
retry_codes: [
|
119
|
+
retry_codes: [4, 14]
|
92
120
|
}
|
93
121
|
|
122
|
+
default_config.rpcs.analyze_iam_policy.timeout = 300.0
|
123
|
+
default_config.rpcs.analyze_iam_policy.retry_policy = {
|
124
|
+
initial_delay: 0.1,
|
125
|
+
max_delay: 60.0,
|
126
|
+
multiplier: 1.3,
|
127
|
+
retry_codes: [14]
|
128
|
+
}
|
129
|
+
|
130
|
+
default_config.rpcs.export_iam_policy_analysis.timeout = 60.0
|
131
|
+
|
94
132
|
default_config
|
95
133
|
end
|
96
134
|
yield @configure if block_given?
|
@@ -184,10 +222,15 @@ module Google
|
|
184
222
|
|
185
223
|
##
|
186
224
|
# Exports assets with time and resource types to a given Cloud Storage
|
187
|
-
# location.
|
188
|
-
#
|
189
|
-
# {::Google::
|
190
|
-
#
|
225
|
+
# location/BigQuery table. For Cloud Storage location destinations, the
|
226
|
+
# output format is newline-delimited JSON. Each line represents a
|
227
|
+
# {::Google::Cloud::Asset::V1::Asset google.cloud.asset.v1.Asset} in the JSON format; for BigQuery table
|
228
|
+
# destinations, the output table stores the fields in asset proto as columns.
|
229
|
+
# This API implements the {::Google::Longrunning::Operation google.longrunning.Operation} API
|
230
|
+
# , which allows you to keep track of the export. We recommend intervals of
|
231
|
+
# at least 2 seconds with exponential retry to poll the export operation
|
232
|
+
# result. For regular-size resource parent, the export operation usually
|
233
|
+
# finishes within 5 minutes.
|
191
234
|
#
|
192
235
|
# @overload export_assets(request, options = nil)
|
193
236
|
# Pass arguments to `export_assets` via a request object, either of type
|
@@ -216,17 +259,29 @@ module Google
|
|
216
259
|
# data collection and indexing, there is a volatile window during which
|
217
260
|
# running the same query may get different results.
|
218
261
|
# @param asset_types [::Array<::String>]
|
219
|
-
# A list of asset types
|
220
|
-
# "compute.googleapis.com/Disk".
|
221
|
-
#
|
262
|
+
# A list of asset types to take a snapshot for. For example:
|
263
|
+
# "compute.googleapis.com/Disk".
|
264
|
+
#
|
265
|
+
# Regular expressions are also supported. For example:
|
266
|
+
#
|
267
|
+
# * "compute.googleapis.com.*" snapshots resources whose asset type starts
|
268
|
+
# with "compute.googleapis.com".
|
269
|
+
# * ".*Instance" snapshots resources whose asset type ends with "Instance".
|
270
|
+
# * ".*Instance.*" snapshots resources whose asset type contains "Instance".
|
271
|
+
#
|
272
|
+
# See [RE2](https://github.com/google/re2/wiki/Syntax) for all supported
|
273
|
+
# regular expression syntax. If the regular expression does not match any
|
274
|
+
# supported asset type, an INVALID_ARGUMENT error will be returned.
|
275
|
+
#
|
276
|
+
# If specified, only matching assets will be returned, otherwise, it will
|
277
|
+
# snapshot all asset types. See [Introduction to Cloud Asset
|
222
278
|
# Inventory](https://cloud.google.com/asset-inventory/docs/overview)
|
223
279
|
# for all supported asset types.
|
224
280
|
# @param content_type [::Google::Cloud::Asset::V1::ContentType]
|
225
281
|
# Asset content type. If not specified, no content but the asset name will be
|
226
282
|
# returned.
|
227
283
|
# @param output_config [::Google::Cloud::Asset::V1::OutputConfig, ::Hash]
|
228
|
-
# Required. Output configuration indicating where the results will be output
|
229
|
-
# to. All results will be in newline delimited JSON format.
|
284
|
+
# Required. Output configuration indicating where the results will be output to.
|
230
285
|
#
|
231
286
|
# @yield [response, operation] Access the result along with the RPC operation
|
232
287
|
# @yieldparam response [::Gapic::Operation]
|
@@ -276,10 +331,10 @@ module Google
|
|
276
331
|
|
277
332
|
##
|
278
333
|
# Batch gets the update history of assets that overlap a time window.
|
279
|
-
# For RESOURCE content, this API outputs history with asset in both
|
280
|
-
# non-delete or deleted status.
|
281
334
|
# For IAM_POLICY content, this API outputs history when the asset and its
|
282
335
|
# attached IAM POLICY both exist. This can create gaps in the output history.
|
336
|
+
# Otherwise, this API outputs history with asset in both non-delete or
|
337
|
+
# deleted status.
|
283
338
|
# If a specified asset does not exist, this API returns an INVALID_ARGUMENT
|
284
339
|
# error.
|
285
340
|
#
|
@@ -303,13 +358,11 @@ module Google
|
|
303
358
|
# organization number (such as "organizations/123"), a project ID (such as
|
304
359
|
# "projects/my-project-id")", or a project number (such as "projects/12345").
|
305
360
|
# @param asset_names [::Array<::String>]
|
306
|
-
# A list of the full names of the assets.
|
361
|
+
# A list of the full names of the assets.
|
362
|
+
# See: https://cloud.google.com/asset-inventory/docs/resource-name-format
|
363
|
+
# Example:
|
364
|
+
#
|
307
365
|
# `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1`.
|
308
|
-
# See [Resource
|
309
|
-
# Names](https://cloud.google.com/apis/design/resource_names#full_resource_name)
|
310
|
-
# and [Resource Name
|
311
|
-
# Format](https://cloud.google.com/asset-inventory/docs/resource-name-format)
|
312
|
-
# for more info.
|
313
366
|
#
|
314
367
|
# The request becomes a no-op if the asset name list is empty, and the max
|
315
368
|
# size of the asset name list is 100 in one request.
|
@@ -397,8 +450,9 @@ module Google
|
|
397
450
|
# Required. This is the client-assigned asset feed identifier and it needs to
|
398
451
|
# be unique under a specific parent project/folder/organization.
|
399
452
|
# @param feed [::Google::Cloud::Asset::V1::Feed, ::Hash]
|
400
|
-
# Required. The feed details. The field `name` must be empty and it will be
|
401
|
-
#
|
453
|
+
# Required. The feed details. The field `name` must be empty and it will be generated
|
454
|
+
# in the format of:
|
455
|
+
# projects/project_number/feeds/feed_id
|
402
456
|
# folders/folder_number/feeds/feed_id
|
403
457
|
# organizations/organization_number/feeds/feed_id
|
404
458
|
#
|
@@ -603,8 +657,8 @@ module Google
|
|
603
657
|
# the default parameter values, pass an empty Hash as a request object (see above).
|
604
658
|
#
|
605
659
|
# @param feed [::Google::Cloud::Asset::V1::Feed, ::Hash]
|
606
|
-
# Required. The new values of feed details. It must match an existing feed
|
607
|
-
#
|
660
|
+
# Required. The new values of feed details. It must match an existing feed and the
|
661
|
+
# field `name` must be in the format of:
|
608
662
|
# projects/project_number/feeds/feed_id or
|
609
663
|
# folders/folder_number/feeds/feed_id or
|
610
664
|
# organizations/organization_number/feeds/feed_id.
|
@@ -728,9 +782,9 @@ module Google
|
|
728
782
|
end
|
729
783
|
|
730
784
|
##
|
731
|
-
# Searches all
|
732
|
-
#
|
733
|
-
#
|
785
|
+
# Searches all Cloud resources within the specified scope, such as a project,
|
786
|
+
# folder, or organization. The caller must be granted the
|
787
|
+
# `cloudasset.assets.searchAllResources` permission on the desired scope,
|
734
788
|
# otherwise the request will be rejected.
|
735
789
|
#
|
736
790
|
# @overload search_all_resources(request, options = nil)
|
@@ -749,70 +803,76 @@ module Google
|
|
749
803
|
# the default parameter values, pass an empty Hash as a request object (see above).
|
750
804
|
#
|
751
805
|
# @param scope [::String]
|
752
|
-
# Required. A scope can be a project, a folder or an organization. The search
|
753
|
-
#
|
806
|
+
# Required. A scope can be a project, a folder, or an organization. The search is
|
807
|
+
# limited to the resources within the `scope`. The caller must be granted the
|
808
|
+
# [`cloudasset.assets.searchAllResources`](http://cloud.google.com/asset-inventory/docs/access-control#required_permissions)
|
809
|
+
# permission on the desired scope.
|
754
810
|
#
|
755
811
|
# The allowed values are:
|
756
812
|
#
|
757
|
-
# * projects/\\{PROJECT_ID}
|
758
|
-
# * projects/\\{PROJECT_NUMBER}
|
759
|
-
# * folders/\\{FOLDER_NUMBER}
|
760
|
-
# * organizations/\\{ORGANIZATION_NUMBER}
|
813
|
+
# * projects/\\{PROJECT_ID} (e.g., "projects/foo-bar")
|
814
|
+
# * projects/\\{PROJECT_NUMBER} (e.g., "projects/12345678")
|
815
|
+
# * folders/\\{FOLDER_NUMBER} (e.g., "folders/1234567")
|
816
|
+
# * organizations/\\{ORGANIZATION_NUMBER} (e.g., "organizations/123456")
|
761
817
|
# @param query [::String]
|
762
|
-
# Optional. The query statement.
|
763
|
-
#
|
818
|
+
# Optional. The query statement. See [how to construct a
|
819
|
+
# query](http://cloud.google.com/asset-inventory/docs/searching-resources#how_to_construct_a_query)
|
820
|
+
# for more information. If not specified or empty, it will search all the
|
821
|
+
# resources within the specified `scope`. Note that the query string is
|
822
|
+
# compared against each Cloud IAM policy binding, including its members,
|
823
|
+
# roles, and Cloud IAM conditions. The returned Cloud IAM policies will only
|
824
|
+
# contain the bindings that match your query. To learn more about the IAM
|
825
|
+
# policy structure, see [IAM policy
|
826
|
+
# doc](https://cloud.google.com/iam/docs/policies#structure).
|
764
827
|
#
|
765
828
|
# Examples:
|
766
829
|
#
|
767
|
-
# * `name
|
830
|
+
# * `name:Important` to find Cloud resources whose name contains
|
768
831
|
# "Important" as a word.
|
769
|
-
# * `displayName
|
770
|
-
# contains "Impor" as a
|
771
|
-
# * `description
|
832
|
+
# * `displayName:Impor*` to find Cloud resources whose display name
|
833
|
+
# contains "Impor" as a prefix.
|
834
|
+
# * `description:*por*` to find Cloud resources whose description
|
772
835
|
# contains "por" as a substring.
|
773
|
-
# * `location
|
836
|
+
# * `location:us-west*` to find Cloud resources whose location is
|
774
837
|
# prefixed with "us-west".
|
775
|
-
# * `labels
|
838
|
+
# * `labels:prod` to find Cloud resources whose labels contain "prod" as
|
776
839
|
# a key or value.
|
777
|
-
# * `labels.env
|
840
|
+
# * `labels.env:prod` to find Cloud resources that have a label "env"
|
778
841
|
# and its value is "prod".
|
779
|
-
# * `labels.env
|
780
|
-
# * `
|
842
|
+
# * `labels.env:*` to find Cloud resources that have a label "env".
|
843
|
+
# * `Important` to find Cloud resources that contain "Important" as a word
|
781
844
|
# in any of the searchable fields.
|
782
|
-
# * `
|
845
|
+
# * `Impor*` to find Cloud resources that contain "Impor" as a prefix
|
783
846
|
# in any of the searchable fields.
|
784
|
-
# *
|
847
|
+
# * `*por*` to find Cloud resources that contain "por" as a substring in
|
785
848
|
# any of the searchable fields.
|
786
|
-
# * `
|
787
|
-
# resources
|
849
|
+
# * `Important location:(us-west1 OR global)` to find Cloud
|
850
|
+
# resources that contain "Important" as a word in any of the searchable
|
788
851
|
# fields and are also located in the "us-west1" region or the "global"
|
789
852
|
# location.
|
790
|
-
#
|
791
|
-
# See [how to construct a
|
792
|
-
# query](https://cloud.google.com/asset-inventory/docs/searching-resources#how_to_construct_a_query)
|
793
|
-
# for more details.
|
794
853
|
# @param asset_types [::Array<::String>]
|
795
|
-
# Optional. A list of asset types that this request searches for. If empty,
|
796
|
-
#
|
854
|
+
# Optional. A list of asset types that this request searches for. If empty, it will
|
855
|
+
# search all the [searchable asset
|
797
856
|
# types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types).
|
798
857
|
# @param page_size [::Integer]
|
799
|
-
# Optional. The page size for search result pagination. Page size is capped
|
800
|
-
#
|
801
|
-
#
|
802
|
-
#
|
803
|
-
# returned.
|
858
|
+
# Optional. The page size for search result pagination. Page size is capped at 500 even
|
859
|
+
# if a larger value is given. If set to zero, server will pick an appropriate
|
860
|
+
# default. Returned results may be fewer than requested. When this happens,
|
861
|
+
# there could be more results as long as `next_page_token` is returned.
|
804
862
|
# @param page_token [::String]
|
805
|
-
# Optional. If present, then retrieve the next batch of results from the
|
806
|
-
#
|
807
|
-
#
|
808
|
-
#
|
863
|
+
# Optional. If present, then retrieve the next batch of results from the preceding call
|
864
|
+
# to this method. `page_token` must be the value of `next_page_token` from
|
865
|
+
# the previous response. The values of all other method parameters, must be
|
866
|
+
# identical to those in the previous call.
|
809
867
|
# @param order_by [::String]
|
810
|
-
# Optional. A comma separated list of fields specifying the sorting order of
|
811
|
-
#
|
812
|
-
#
|
813
|
-
# Example: "location DESC, name".
|
814
|
-
#
|
815
|
-
#
|
868
|
+
# Optional. A comma separated list of fields specifying the sorting order of the
|
869
|
+
# results. The default order is ascending. Add " DESC" after the field name
|
870
|
+
# to indicate descending order. Redundant space characters are ignored.
|
871
|
+
# Example: "location DESC, name". Only string fields in the response are
|
872
|
+
# sortable, including `name`, `displayName`, `description`, `location`. All
|
873
|
+
# the other fields such as repeated fields (e.g., `networkTags`), map
|
874
|
+
# fields (e.g., `labels`) and struct fields (e.g., `additionalAttributes`)
|
875
|
+
# are not supported.
|
816
876
|
#
|
817
877
|
# @yield [response, operation] Access the result along with the RPC operation
|
818
878
|
# @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::Asset::V1::ResourceSearchResult>]
|
@@ -861,9 +921,9 @@ module Google
|
|
861
921
|
end
|
862
922
|
|
863
923
|
##
|
864
|
-
# Searches all
|
865
|
-
#
|
866
|
-
#
|
924
|
+
# Searches all IAM policies within the specified scope, such as a project,
|
925
|
+
# folder, or organization. The caller must be granted the
|
926
|
+
# `cloudasset.assets.searchAllIamPolicies` permission on the desired scope,
|
867
927
|
# otherwise the request will be rejected.
|
868
928
|
#
|
869
929
|
# @overload search_all_iam_policies(request, options = nil)
|
@@ -882,48 +942,55 @@ module Google
|
|
882
942
|
# the default parameter values, pass an empty Hash as a request object (see above).
|
883
943
|
#
|
884
944
|
# @param scope [::String]
|
885
|
-
# Required. A scope can be a project, a folder or an organization. The search
|
886
|
-
#
|
945
|
+
# Required. A scope can be a project, a folder, or an organization. The search is
|
946
|
+
# limited to the IAM policies within the `scope`. The caller must be granted
|
947
|
+
# the
|
948
|
+
# [`cloudasset.assets.searchAllIamPolicies`](http://cloud.google.com/asset-inventory/docs/access-control#required_permissions)
|
949
|
+
# permission on the desired scope.
|
887
950
|
#
|
888
951
|
# The allowed values are:
|
889
952
|
#
|
890
|
-
# * projects/\\{PROJECT_ID}
|
891
|
-
# * projects/\\{PROJECT_NUMBER}
|
892
|
-
# * folders/\\{FOLDER_NUMBER}
|
893
|
-
# * organizations/\\{ORGANIZATION_NUMBER}
|
953
|
+
# * projects/\\{PROJECT_ID} (e.g., "projects/foo-bar")
|
954
|
+
# * projects/\\{PROJECT_NUMBER} (e.g., "projects/12345678")
|
955
|
+
# * folders/\\{FOLDER_NUMBER} (e.g., "folders/1234567")
|
956
|
+
# * organizations/\\{ORGANIZATION_NUMBER} (e.g., "organizations/123456")
|
894
957
|
# @param query [::String]
|
895
|
-
# Optional. The query statement.
|
896
|
-
#
|
958
|
+
# Optional. The query statement. See [how to construct a
|
959
|
+
# query](https://cloud.google.com/asset-inventory/docs/searching-iam-policies#how_to_construct_a_query)
|
960
|
+
# for more information. If not specified or empty, it will search all the
|
961
|
+
# IAM policies within the specified `scope`.
|
897
962
|
#
|
898
963
|
# Examples:
|
899
964
|
#
|
900
|
-
# * `policy
|
901
|
-
#
|
902
|
-
# * `policy
|
903
|
-
#
|
904
|
-
# * `policy.role.permissions
|
905
|
-
#
|
906
|
-
# permission.
|
907
|
-
#
|
908
|
-
#
|
909
|
-
# * `
|
910
|
-
#
|
911
|
-
#
|
912
|
-
#
|
913
|
-
#
|
914
|
-
#
|
915
|
-
#
|
965
|
+
# * `policy:amy@gmail.com` to find IAM policy bindings that specify user
|
966
|
+
# "amy@gmail.com".
|
967
|
+
# * `policy:roles/compute.admin` to find IAM policy bindings that specify
|
968
|
+
# the Compute Admin role.
|
969
|
+
# * `policy.role.permissions:storage.buckets.update` to find IAM policy
|
970
|
+
# bindings that specify a role containing "storage.buckets.update"
|
971
|
+
# permission. Note that if callers don't have `iam.roles.get` access to a
|
972
|
+
# role's included permissions, policy bindings that specify this role will
|
973
|
+
# be dropped from the search results.
|
974
|
+
# * `resource:organizations/123456` to find IAM policy bindings
|
975
|
+
# that are set on "organizations/123456".
|
976
|
+
# * `Important` to find IAM policy bindings that contain "Important" as a
|
977
|
+
# word in any of the searchable fields (except for the included
|
978
|
+
# permissions).
|
979
|
+
# * `*por*` to find IAM policy bindings that contain "por" as a substring
|
980
|
+
# in any of the searchable fields (except for the included permissions).
|
981
|
+
# * `resource:(instance1 OR instance2) policy:amy` to find
|
982
|
+
# IAM policy bindings that are set on resources "instance1" or
|
983
|
+
# "instance2" and also specify user "amy".
|
916
984
|
# @param page_size [::Integer]
|
917
|
-
# Optional. The page size for search result pagination. Page size is capped
|
918
|
-
#
|
919
|
-
#
|
920
|
-
#
|
921
|
-
# returned.
|
985
|
+
# Optional. The page size for search result pagination. Page size is capped at 500 even
|
986
|
+
# if a larger value is given. If set to zero, server will pick an appropriate
|
987
|
+
# default. Returned results may be fewer than requested. When this happens,
|
988
|
+
# there could be more results as long as `next_page_token` is returned.
|
922
989
|
# @param page_token [::String]
|
923
|
-
# Optional. If present, retrieve the next batch of results from the preceding
|
924
|
-
#
|
925
|
-
#
|
926
|
-
#
|
990
|
+
# Optional. If present, retrieve the next batch of results from the preceding call to
|
991
|
+
# this method. `page_token` must be the value of `next_page_token` from the
|
992
|
+
# previous response. The values of all other method parameters must be
|
993
|
+
# identical to those in the previous call.
|
927
994
|
#
|
928
995
|
# @yield [response, operation] Access the result along with the RPC operation
|
929
996
|
# @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::Asset::V1::IamPolicySearchResult>]
|
@@ -971,6 +1038,176 @@ module Google
|
|
971
1038
|
raise ::Google::Cloud::Error.from_error(e)
|
972
1039
|
end
|
973
1040
|
|
1041
|
+
##
|
1042
|
+
# Analyzes IAM policies to answer which identities have what accesses on
|
1043
|
+
# which resources.
|
1044
|
+
#
|
1045
|
+
# @overload analyze_iam_policy(request, options = nil)
|
1046
|
+
# Pass arguments to `analyze_iam_policy` via a request object, either of type
|
1047
|
+
# {::Google::Cloud::Asset::V1::AnalyzeIamPolicyRequest} or an equivalent Hash.
|
1048
|
+
#
|
1049
|
+
# @param request [::Google::Cloud::Asset::V1::AnalyzeIamPolicyRequest, ::Hash]
|
1050
|
+
# A request object representing the call parameters. Required. To specify no
|
1051
|
+
# parameters, or to keep all the default parameter values, pass an empty Hash.
|
1052
|
+
# @param options [::Gapic::CallOptions, ::Hash]
|
1053
|
+
# Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
|
1054
|
+
#
|
1055
|
+
# @overload analyze_iam_policy(analysis_query: nil, execution_timeout: nil)
|
1056
|
+
# Pass arguments to `analyze_iam_policy` via keyword arguments. Note that at
|
1057
|
+
# least one keyword argument is required. To specify no parameters, or to keep all
|
1058
|
+
# the default parameter values, pass an empty Hash as a request object (see above).
|
1059
|
+
#
|
1060
|
+
# @param analysis_query [::Google::Cloud::Asset::V1::IamPolicyAnalysisQuery, ::Hash]
|
1061
|
+
# The request query.
|
1062
|
+
# @param execution_timeout [::Google::Protobuf::Duration, ::Hash]
|
1063
|
+
# Amount of time executable has to complete. See JSON representation of
|
1064
|
+
# [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json).
|
1065
|
+
#
|
1066
|
+
# If this field is set with a value less than the RPC deadline, and the
|
1067
|
+
# execution of your query hasn't finished in the specified
|
1068
|
+
# execution timeout, you will get a response with partial result.
|
1069
|
+
# Otherwise, your query's execution will continue until the RPC deadline.
|
1070
|
+
# If it's not finished until then, you will get a DEADLINE_EXCEEDED error.
|
1071
|
+
#
|
1072
|
+
# Default is empty.
|
1073
|
+
#
|
1074
|
+
# (-- We had discussion of whether we should have this field in the --)
|
1075
|
+
# (-- request or use the RPC deadline instead. We finally choose this --)
|
1076
|
+
# (-- approach for the following reasons (detailed in --)
|
1077
|
+
# (-- go/analyze-iam-policy-deadlines): --)
|
1078
|
+
# (-- * HTTP clients have very limited support of the RPC deadline. --)
|
1079
|
+
# (-- There is an X-Server-Timeout header introduced in 2019/09, but --)
|
1080
|
+
# (-- only implemented in the C++ HTTP server library. --)
|
1081
|
+
# (-- * The purpose of the RPC deadline is for RPC clients to --)
|
1082
|
+
# (-- communicate its max waiting time to the server. This deadline --)
|
1083
|
+
# (-- could be further propagated to the downstream servers. It is --)
|
1084
|
+
# (-- mainly used for servers to cancel the request processing --)
|
1085
|
+
# (-- to avoid resource wasting. Overloading the RPC deadline for --)
|
1086
|
+
# (-- other purposes could make our backend system harder to reason --)
|
1087
|
+
# (-- about. --)
|
1088
|
+
#
|
1089
|
+
# @yield [response, operation] Access the result along with the RPC operation
|
1090
|
+
# @yieldparam response [::Google::Cloud::Asset::V1::AnalyzeIamPolicyResponse]
|
1091
|
+
# @yieldparam operation [::GRPC::ActiveCall::Operation]
|
1092
|
+
#
|
1093
|
+
# @return [::Google::Cloud::Asset::V1::AnalyzeIamPolicyResponse]
|
1094
|
+
#
|
1095
|
+
# @raise [::Google::Cloud::Error] if the RPC is aborted.
|
1096
|
+
#
|
1097
|
+
def analyze_iam_policy request, options = nil
|
1098
|
+
raise ::ArgumentError, "request must be provided" if request.nil?
|
1099
|
+
|
1100
|
+
request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Asset::V1::AnalyzeIamPolicyRequest
|
1101
|
+
|
1102
|
+
# Converts hash and nil to an options object
|
1103
|
+
options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
|
1104
|
+
|
1105
|
+
# Customize the options with defaults
|
1106
|
+
metadata = @config.rpcs.analyze_iam_policy.metadata.to_h
|
1107
|
+
|
1108
|
+
# Set x-goog-api-client and x-goog-user-project headers
|
1109
|
+
metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
|
1110
|
+
lib_name: @config.lib_name, lib_version: @config.lib_version,
|
1111
|
+
gapic_version: ::Google::Cloud::Asset::V1::VERSION
|
1112
|
+
metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
|
1113
|
+
|
1114
|
+
header_params = {
|
1115
|
+
"analysis_query.scope" => request.analysis_query.scope
|
1116
|
+
}
|
1117
|
+
request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
|
1118
|
+
metadata[:"x-goog-request-params"] ||= request_params_header
|
1119
|
+
|
1120
|
+
options.apply_defaults timeout: @config.rpcs.analyze_iam_policy.timeout,
|
1121
|
+
metadata: metadata,
|
1122
|
+
retry_policy: @config.rpcs.analyze_iam_policy.retry_policy
|
1123
|
+
options.apply_defaults metadata: @config.metadata,
|
1124
|
+
retry_policy: @config.retry_policy
|
1125
|
+
|
1126
|
+
@asset_service_stub.call_rpc :analyze_iam_policy, request, options: options do |response, operation|
|
1127
|
+
yield response, operation if block_given?
|
1128
|
+
return response
|
1129
|
+
end
|
1130
|
+
rescue ::GRPC::BadStatus => e
|
1131
|
+
raise ::Google::Cloud::Error.from_error(e)
|
1132
|
+
end
|
1133
|
+
|
1134
|
+
##
|
1135
|
+
# Exports the answers of which identities have what accesses on which
|
1136
|
+
# resources to a Google Cloud Storage or a BigQuery destination. For Cloud
|
1137
|
+
# Storage destination, the output format is the JSON format that represents a
|
1138
|
+
# {::Google::Cloud::Asset::V1::AnalyzeIamPolicyResponse google.cloud.asset.v1.AnalyzeIamPolicyResponse}.
|
1139
|
+
# This method implements the
|
1140
|
+
# {::Google::Longrunning::Operation google.longrunning.Operation}, which allows
|
1141
|
+
# you to track the export status. We recommend intervals of at least 2
|
1142
|
+
# seconds with exponential retry to poll the export operation result. The
|
1143
|
+
# metadata contains the request to help callers to map responses to requests.
|
1144
|
+
#
|
1145
|
+
# @overload export_iam_policy_analysis(request, options = nil)
|
1146
|
+
# Pass arguments to `export_iam_policy_analysis` via a request object, either of type
|
1147
|
+
# {::Google::Cloud::Asset::V1::ExportIamPolicyAnalysisRequest} or an equivalent Hash.
|
1148
|
+
#
|
1149
|
+
# @param request [::Google::Cloud::Asset::V1::ExportIamPolicyAnalysisRequest, ::Hash]
|
1150
|
+
# A request object representing the call parameters. Required. To specify no
|
1151
|
+
# parameters, or to keep all the default parameter values, pass an empty Hash.
|
1152
|
+
# @param options [::Gapic::CallOptions, ::Hash]
|
1153
|
+
# Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
|
1154
|
+
#
|
1155
|
+
# @overload export_iam_policy_analysis(analysis_query: nil, output_config: nil)
|
1156
|
+
# Pass arguments to `export_iam_policy_analysis` via keyword arguments. Note that at
|
1157
|
+
# least one keyword argument is required. To specify no parameters, or to keep all
|
1158
|
+
# the default parameter values, pass an empty Hash as a request object (see above).
|
1159
|
+
#
|
1160
|
+
# @param analysis_query [::Google::Cloud::Asset::V1::IamPolicyAnalysisQuery, ::Hash]
|
1161
|
+
# The request query.
|
1162
|
+
# @param output_config [::Google::Cloud::Asset::V1::IamPolicyAnalysisOutputConfig, ::Hash]
|
1163
|
+
# Output configuration indicating where the results will be output to.
|
1164
|
+
#
|
1165
|
+
# @yield [response, operation] Access the result along with the RPC operation
|
1166
|
+
# @yieldparam response [::Gapic::Operation]
|
1167
|
+
# @yieldparam operation [::GRPC::ActiveCall::Operation]
|
1168
|
+
#
|
1169
|
+
# @return [::Gapic::Operation]
|
1170
|
+
#
|
1171
|
+
# @raise [::Google::Cloud::Error] if the RPC is aborted.
|
1172
|
+
#
|
1173
|
+
def export_iam_policy_analysis request, options = nil
|
1174
|
+
raise ::ArgumentError, "request must be provided" if request.nil?
|
1175
|
+
|
1176
|
+
request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Asset::V1::ExportIamPolicyAnalysisRequest
|
1177
|
+
|
1178
|
+
# Converts hash and nil to an options object
|
1179
|
+
options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
|
1180
|
+
|
1181
|
+
# Customize the options with defaults
|
1182
|
+
metadata = @config.rpcs.export_iam_policy_analysis.metadata.to_h
|
1183
|
+
|
1184
|
+
# Set x-goog-api-client and x-goog-user-project headers
|
1185
|
+
metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
|
1186
|
+
lib_name: @config.lib_name, lib_version: @config.lib_version,
|
1187
|
+
gapic_version: ::Google::Cloud::Asset::V1::VERSION
|
1188
|
+
metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
|
1189
|
+
|
1190
|
+
header_params = {
|
1191
|
+
"analysis_query.scope" => request.analysis_query.scope
|
1192
|
+
}
|
1193
|
+
request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
|
1194
|
+
metadata[:"x-goog-request-params"] ||= request_params_header
|
1195
|
+
|
1196
|
+
options.apply_defaults timeout: @config.rpcs.export_iam_policy_analysis.timeout,
|
1197
|
+
metadata: metadata,
|
1198
|
+
retry_policy: @config.rpcs.export_iam_policy_analysis.retry_policy
|
1199
|
+
options.apply_defaults metadata: @config.metadata,
|
1200
|
+
retry_policy: @config.retry_policy
|
1201
|
+
|
1202
|
+
@asset_service_stub.call_rpc :export_iam_policy_analysis, request, options: options do |response, operation|
|
1203
|
+
response = ::Gapic::Operation.new response, @operations_client, options: options
|
1204
|
+
yield response, operation if block_given?
|
1205
|
+
return response
|
1206
|
+
end
|
1207
|
+
rescue ::GRPC::BadStatus => e
|
1208
|
+
raise ::Google::Cloud::Error.from_error(e)
|
1209
|
+
end
|
1210
|
+
|
974
1211
|
##
|
975
1212
|
# Configuration class for the AssetService API.
|
976
1213
|
#
|
@@ -1056,7 +1293,7 @@ module Google
|
|
1056
1293
|
|
1057
1294
|
config_attr :endpoint, "cloudasset.googleapis.com", ::String
|
1058
1295
|
config_attr :credentials, nil do |value|
|
1059
|
-
allowed = [::String, ::Hash, ::Proc, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
|
1296
|
+
allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
|
1060
1297
|
allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC
|
1061
1298
|
allowed.any? { |klass| klass === value }
|
1062
1299
|
end
|
@@ -1152,6 +1389,16 @@ module Google
|
|
1152
1389
|
# @return [::Gapic::Config::Method]
|
1153
1390
|
#
|
1154
1391
|
attr_reader :search_all_iam_policies
|
1392
|
+
##
|
1393
|
+
# RPC-specific configuration for `analyze_iam_policy`
|
1394
|
+
# @return [::Gapic::Config::Method]
|
1395
|
+
#
|
1396
|
+
attr_reader :analyze_iam_policy
|
1397
|
+
##
|
1398
|
+
# RPC-specific configuration for `export_iam_policy_analysis`
|
1399
|
+
# @return [::Gapic::Config::Method]
|
1400
|
+
#
|
1401
|
+
attr_reader :export_iam_policy_analysis
|
1155
1402
|
|
1156
1403
|
# @private
|
1157
1404
|
def initialize parent_rpcs = nil
|
@@ -1173,6 +1420,10 @@ module Google
|
|
1173
1420
|
@search_all_resources = ::Gapic::Config::Method.new search_all_resources_config
|
1174
1421
|
search_all_iam_policies_config = parent_rpcs&.search_all_iam_policies if parent_rpcs&.respond_to? :search_all_iam_policies
|
1175
1422
|
@search_all_iam_policies = ::Gapic::Config::Method.new search_all_iam_policies_config
|
1423
|
+
analyze_iam_policy_config = parent_rpcs&.analyze_iam_policy if parent_rpcs&.respond_to? :analyze_iam_policy
|
1424
|
+
@analyze_iam_policy = ::Gapic::Config::Method.new analyze_iam_policy_config
|
1425
|
+
export_iam_policy_analysis_config = parent_rpcs&.export_iam_policy_analysis if parent_rpcs&.respond_to? :export_iam_policy_analysis
|
1426
|
+
@export_iam_policy_analysis = ::Gapic::Config::Method.new export_iam_policy_analysis_config
|
1176
1427
|
|
1177
1428
|
yield self if block_given?
|
1178
1429
|
end
|