google-cloud-asset 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (28) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/lib/google/cloud/asset.rb +2 -2
  4. data/lib/google/cloud/asset/v1.rb +138 -0
  5. data/lib/google/cloud/asset/v1/asset_service_client.rb +385 -0
  6. data/lib/google/cloud/asset/v1/asset_service_client_config.json +36 -0
  7. data/lib/google/cloud/asset/v1/asset_service_pb.rb +63 -0
  8. data/lib/google/cloud/asset/v1/asset_service_services_pb.rb +58 -0
  9. data/lib/google/cloud/asset/v1/assets_pb.rb +49 -0
  10. data/lib/google/cloud/asset/v1/credentials.rb +41 -0
  11. data/lib/google/cloud/asset/v1/doc/google/cloud/asset/v1/asset_service.rb +129 -0
  12. data/lib/google/cloud/asset/v1/doc/google/cloud/asset/v1/assets.rb +108 -0
  13. data/lib/google/cloud/asset/v1/doc/google/iam/v1/policy.rb +104 -0
  14. data/lib/google/cloud/asset/v1/doc/google/longrunning/operations.rb +51 -0
  15. data/lib/google/cloud/asset/v1/doc/google/protobuf/any.rb +130 -0
  16. data/lib/google/cloud/asset/v1/doc/google/protobuf/struct.rb +74 -0
  17. data/lib/google/cloud/asset/v1/doc/google/protobuf/timestamp.rb +109 -0
  18. data/lib/google/cloud/asset/v1/doc/google/rpc/status.rb +87 -0
  19. data/lib/google/cloud/asset/v1/helpers.rb +29 -0
  20. data/lib/google/cloud/asset/v1beta1.rb +1 -0
  21. data/lib/google/cloud/asset/v1beta1/asset_service_client.rb +9 -7
  22. data/lib/google/cloud/asset/v1beta1/asset_service_services_pb.rb +3 -2
  23. data/lib/google/cloud/asset/v1beta1/doc/google/cloud/asset/v1beta1/asset_service.rb +6 -3
  24. data/lib/google/cloud/asset/v1beta1/doc/google/cloud/asset/v1beta1/assets.rb +10 -6
  25. data/lib/google/cloud/asset/v1beta1/doc/google/longrunning/operations.rb +1 -1
  26. data/lib/google/cloud/asset/v1beta1/doc/google/rpc/status.rb +17 -14
  27. data/lib/google/cloud/asset/v1beta1/helpers.rb +29 -0
  28. metadata +22 -6
@@ -0,0 +1,36 @@
1
+ {
2
+ "interfaces": {
3
+ "google.cloud.asset.v1.AssetService": {
4
+ "retry_codes": {
5
+ "idempotent": [
6
+ "DEADLINE_EXCEEDED",
7
+ "UNAVAILABLE"
8
+ ],
9
+ "non_idempotent": []
10
+ },
11
+ "retry_params": {
12
+ "default": {
13
+ "initial_retry_delay_millis": 100,
14
+ "retry_delay_multiplier": 1.3,
15
+ "max_retry_delay_millis": 60000,
16
+ "initial_rpc_timeout_millis": 20000,
17
+ "rpc_timeout_multiplier": 1.0,
18
+ "max_rpc_timeout_millis": 20000,
19
+ "total_timeout_millis": 600000
20
+ }
21
+ },
22
+ "methods": {
23
+ "ExportAssets": {
24
+ "timeout_millis": 600000,
25
+ "retry_codes_name": "non_idempotent",
26
+ "retry_params_name": "default"
27
+ },
28
+ "BatchGetAssetsHistory": {
29
+ "timeout_millis": 600000,
30
+ "retry_codes_name": "idempotent",
31
+ "retry_params_name": "default"
32
+ }
33
+ }
34
+ }
35
+ }
36
+ }
@@ -0,0 +1,63 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # source: google/cloud/asset/v1/asset_service.proto
3
+
4
+
5
+ require 'google/protobuf'
6
+
7
+ require 'google/api/annotations_pb'
8
+ require 'google/cloud/asset/v1/assets_pb'
9
+ require 'google/longrunning/operations_pb'
10
+ require 'google/protobuf/timestamp_pb'
11
+ Google::Protobuf::DescriptorPool.generated_pool.build do
12
+ add_message "google.cloud.asset.v1.ExportAssetsRequest" do
13
+ optional :parent, :string, 1
14
+ optional :read_time, :message, 2, "google.protobuf.Timestamp"
15
+ repeated :asset_types, :string, 3
16
+ optional :content_type, :enum, 4, "google.cloud.asset.v1.ContentType"
17
+ optional :output_config, :message, 5, "google.cloud.asset.v1.OutputConfig"
18
+ end
19
+ add_message "google.cloud.asset.v1.ExportAssetsResponse" do
20
+ optional :read_time, :message, 1, "google.protobuf.Timestamp"
21
+ optional :output_config, :message, 2, "google.cloud.asset.v1.OutputConfig"
22
+ end
23
+ add_message "google.cloud.asset.v1.BatchGetAssetsHistoryRequest" do
24
+ optional :parent, :string, 1
25
+ repeated :asset_names, :string, 2
26
+ optional :content_type, :enum, 3, "google.cloud.asset.v1.ContentType"
27
+ optional :read_time_window, :message, 4, "google.cloud.asset.v1.TimeWindow"
28
+ end
29
+ add_message "google.cloud.asset.v1.BatchGetAssetsHistoryResponse" do
30
+ repeated :assets, :message, 1, "google.cloud.asset.v1.TemporalAsset"
31
+ end
32
+ add_message "google.cloud.asset.v1.OutputConfig" do
33
+ oneof :destination do
34
+ optional :gcs_destination, :message, 1, "google.cloud.asset.v1.GcsDestination"
35
+ end
36
+ end
37
+ add_message "google.cloud.asset.v1.GcsDestination" do
38
+ oneof :object_uri do
39
+ optional :uri, :string, 1
40
+ end
41
+ end
42
+ add_enum "google.cloud.asset.v1.ContentType" do
43
+ value :CONTENT_TYPE_UNSPECIFIED, 0
44
+ value :RESOURCE, 1
45
+ value :IAM_POLICY, 2
46
+ end
47
+ end
48
+
49
+ module Google
50
+ module Cloud
51
+ module Asset
52
+ module V1
53
+ ExportAssetsRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.ExportAssetsRequest").msgclass
54
+ ExportAssetsResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.ExportAssetsResponse").msgclass
55
+ BatchGetAssetsHistoryRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.BatchGetAssetsHistoryRequest").msgclass
56
+ BatchGetAssetsHistoryResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.BatchGetAssetsHistoryResponse").msgclass
57
+ OutputConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.OutputConfig").msgclass
58
+ GcsDestination = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.GcsDestination").msgclass
59
+ ContentType = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.ContentType").enummodule
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,58 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # Source: google/cloud/asset/v1/asset_service.proto for package 'google.cloud.asset.v1'
3
+ # Original file comments:
4
+ # Copyright 2019 Google LLC.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+ #
19
+
20
+
21
+ require 'grpc'
22
+ require 'google/cloud/asset/v1/asset_service_pb'
23
+
24
+ module Google
25
+ module Cloud
26
+ module Asset
27
+ module V1
28
+ module AssetService
29
+ # Asset service definition.
30
+ class Service
31
+
32
+ include GRPC::GenericService
33
+
34
+ self.marshal_class_method = :encode
35
+ self.unmarshal_class_method = :decode
36
+ self.service_name = 'google.cloud.asset.v1.AssetService'
37
+
38
+ # Exports assets with time and resource types to a given Cloud Storage
39
+ # location. The output format is newline-delimited JSON.
40
+ # This API implements the [google.longrunning.Operation][google.longrunning.Operation] API allowing you
41
+ # to keep track of the export.
42
+ rpc :ExportAssets, ExportAssetsRequest, Google::Longrunning::Operation
43
+ # Batch gets the update history of assets that overlap a time window.
44
+ # For RESOURCE content, this API outputs history with asset in both
45
+ # non-delete or deleted status.
46
+ # For IAM_POLICY content, this API outputs history when the asset and its
47
+ # attached IAM POLICY both exist. This can create gaps in the output history.
48
+ # If a specified asset does not exist, this API returns an INVALID_ARGUMENT
49
+ # error.
50
+ rpc :BatchGetAssetsHistory, BatchGetAssetsHistoryRequest, BatchGetAssetsHistoryResponse
51
+ end
52
+
53
+ Stub = Service.rpc_stub_class
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,49 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # source: google/cloud/asset/v1/assets.proto
3
+
4
+
5
+ require 'google/protobuf'
6
+
7
+ require 'google/api/annotations_pb'
8
+ require 'google/iam/v1/policy_pb'
9
+ require 'google/protobuf/any_pb'
10
+ require 'google/protobuf/struct_pb'
11
+ require 'google/protobuf/timestamp_pb'
12
+ Google::Protobuf::DescriptorPool.generated_pool.build do
13
+ add_message "google.cloud.asset.v1.TemporalAsset" do
14
+ optional :window, :message, 1, "google.cloud.asset.v1.TimeWindow"
15
+ optional :deleted, :bool, 2
16
+ optional :asset, :message, 3, "google.cloud.asset.v1.Asset"
17
+ end
18
+ add_message "google.cloud.asset.v1.TimeWindow" do
19
+ optional :start_time, :message, 1, "google.protobuf.Timestamp"
20
+ optional :end_time, :message, 2, "google.protobuf.Timestamp"
21
+ end
22
+ add_message "google.cloud.asset.v1.Asset" do
23
+ optional :name, :string, 1
24
+ optional :asset_type, :string, 2
25
+ optional :resource, :message, 3, "google.cloud.asset.v1.Resource"
26
+ optional :iam_policy, :message, 4, "google.iam.v1.Policy"
27
+ end
28
+ add_message "google.cloud.asset.v1.Resource" do
29
+ optional :version, :string, 1
30
+ optional :discovery_document_uri, :string, 2
31
+ optional :discovery_name, :string, 3
32
+ optional :resource_url, :string, 4
33
+ optional :parent, :string, 5
34
+ optional :data, :message, 6, "google.protobuf.Struct"
35
+ end
36
+ end
37
+
38
+ module Google
39
+ module Cloud
40
+ module Asset
41
+ module V1
42
+ TemporalAsset = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.TemporalAsset").msgclass
43
+ TimeWindow = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.TimeWindow").msgclass
44
+ Asset = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.Asset").msgclass
45
+ Resource = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.Resource").msgclass
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,41 @@
1
+ # Copyright 2019 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+
16
+ require "googleauth"
17
+
18
+ module Google
19
+ module Cloud
20
+ module Asset
21
+ module V1
22
+ class Credentials < Google::Auth::Credentials
23
+ SCOPE = [
24
+ "https://www.googleapis.com/auth/cloud-platform"
25
+ ].freeze
26
+ PATH_ENV_VARS = %w(ASSET_CREDENTIALS
27
+ ASSET_KEYFILE
28
+ GOOGLE_CLOUD_CREDENTIALS
29
+ GOOGLE_CLOUD_KEYFILE
30
+ GCLOUD_KEYFILE)
31
+ JSON_ENV_VARS = %w(ASSET_CREDENTIALS_JSON
32
+ ASSET_KEYFILE_JSON
33
+ GOOGLE_CLOUD_CREDENTIALS_JSON
34
+ GOOGLE_CLOUD_KEYFILE_JSON
35
+ GCLOUD_KEYFILE_JSON)
36
+ DEFAULT_PATHS = ["~/.config/gcloud/application_default_credentials.json"]
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,129 @@
1
+ # Copyright 2019 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+
16
+ module Google
17
+ module Cloud
18
+ module Asset
19
+ module V1
20
+ # Export asset request.
21
+ # @!attribute [rw] parent
22
+ # @return [String]
23
+ # Required. The relative name of the root asset. This can only be an
24
+ # organization number (such as "organizations/123"), a project ID (such as
25
+ # "projects/my-project-id"), or a project number (such as "projects/12345"),
26
+ # or a folder number (such as "folders/123").
27
+ # @!attribute [rw] read_time
28
+ # @return [Google::Protobuf::Timestamp]
29
+ # Timestamp to take an asset snapshot. This can only be set to a timestamp
30
+ # between 2018-10-02 UTC (inclusive) and the current time. If not specified,
31
+ # the current time will be used. Due to delays in resource data collection
32
+ # and indexing, there is a volatile window during which running the same
33
+ # query may get different results.
34
+ # @!attribute [rw] asset_types
35
+ # @return [Array<String>]
36
+ # A list of asset types of which to take a snapshot for. For example:
37
+ # "compute.googleapis.com/Disk". If specified, only matching assets will be returned.
38
+ # See [Introduction to Cloud Asset
39
+ # Inventory](https://cloud.google.com/resource-manager/docs/cloud-asset-inventory/overview)
40
+ # for all supported asset types.
41
+ # @!attribute [rw] content_type
42
+ # @return [Google::Cloud::Asset::V1::ContentType]
43
+ # Asset content type. If not specified, no content but the asset name will be
44
+ # returned.
45
+ # @!attribute [rw] output_config
46
+ # @return [Google::Cloud::Asset::V1::OutputConfig]
47
+ # Required. Output configuration indicating where the results will be output
48
+ # to. All results will be in newline delimited JSON format.
49
+ class ExportAssetsRequest; end
50
+
51
+ # The export asset response. This message is returned by the
52
+ # {Google::Longrunning::Operations::GetOperation} method in the returned
53
+ # {Google::Longrunning::Operation#response} field.
54
+ # @!attribute [rw] read_time
55
+ # @return [Google::Protobuf::Timestamp]
56
+ # Time the snapshot was taken.
57
+ # @!attribute [rw] output_config
58
+ # @return [Google::Cloud::Asset::V1::OutputConfig]
59
+ # Output configuration indicating where the results were output to.
60
+ # All results are in JSON format.
61
+ class ExportAssetsResponse; end
62
+
63
+ # Batch get assets history request.
64
+ # @!attribute [rw] parent
65
+ # @return [String]
66
+ # Required. The relative name of the root asset. It can only be an
67
+ # organization number (such as "organizations/123"), a project ID (such as
68
+ # "projects/my-project-id")", or a project number (such as "projects/12345").
69
+ # @!attribute [rw] asset_names
70
+ # @return [Array<String>]
71
+ # A list of the full names of the assets. For example:
72
+ # `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1`.
73
+ # See [Resource
74
+ # Names](https://cloud.google.com/apis/design/resource_names#full_resource_name)
75
+ # and [Resource Name Format](https://cloud.google.com/resource-manager/docs/cloud-asset-inventory/resource-name-format)
76
+ # for more info.
77
+ #
78
+ # The request becomes a no-op if the asset name list is empty, and the max
79
+ # size of the asset name list is 100 in one request.
80
+ # @!attribute [rw] content_type
81
+ # @return [Google::Cloud::Asset::V1::ContentType]
82
+ # Required. The content type.
83
+ # @!attribute [rw] read_time_window
84
+ # @return [Google::Cloud::Asset::V1::TimeWindow]
85
+ # Optional. The time window for the asset history. Both start_time and
86
+ # end_time are optional and if set, it must be after 2018-10-02 UTC. If
87
+ # end_time is not set, it is default to current timestamp. If start_time is
88
+ # not set, the snapshot of the assets at end_time will be returned. The
89
+ # returned results contain all temporal assets whose time window overlap with
90
+ # read_time_window.
91
+ class BatchGetAssetsHistoryRequest; end
92
+
93
+ # Batch get assets history response.
94
+ # @!attribute [rw] assets
95
+ # @return [Array<Google::Cloud::Asset::V1::TemporalAsset>]
96
+ # A list of assets with valid time windows.
97
+ class BatchGetAssetsHistoryResponse; end
98
+
99
+ # Output configuration for export assets destination.
100
+ # @!attribute [rw] gcs_destination
101
+ # @return [Google::Cloud::Asset::V1::GcsDestination]
102
+ # Destination on Cloud Storage.
103
+ class OutputConfig; end
104
+
105
+ # A Cloud Storage location.
106
+ # @!attribute [rw] uri
107
+ # @return [String]
108
+ # The uri of the Cloud Storage object. It's the same uri that is used by
109
+ # gsutil. For example: "gs://bucket_name/object_name". See [Viewing and
110
+ # Editing Object
111
+ # Metadata](https://cloud.google.com/storage/docs/viewing-editing-metadata)
112
+ # for more information.
113
+ class GcsDestination; end
114
+
115
+ # Asset content type.
116
+ module ContentType
117
+ # Unspecified content type.
118
+ CONTENT_TYPE_UNSPECIFIED = 0
119
+
120
+ # Resource metadata.
121
+ RESOURCE = 1
122
+
123
+ # The actual IAM policy set on a resource.
124
+ IAM_POLICY = 2
125
+ end
126
+ end
127
+ end
128
+ end
129
+ end
@@ -0,0 +1,108 @@
1
+ # Copyright 2019 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+
16
+ module Google
17
+ module Cloud
18
+ module Asset
19
+ module V1
20
+ # Temporal asset. In addition to the asset, the temporal asset includes the
21
+ # status of the asset and valid from and to time of it.
22
+ # @!attribute [rw] window
23
+ # @return [Google::Cloud::Asset::V1::TimeWindow]
24
+ # The time window when the asset data and state was observed.
25
+ # @!attribute [rw] deleted
26
+ # @return [true, false]
27
+ # If the asset is deleted or not.
28
+ # @!attribute [rw] asset
29
+ # @return [Google::Cloud::Asset::V1::Asset]
30
+ # Asset.
31
+ class TemporalAsset; end
32
+
33
+ # A time window of (start_time, end_time].
34
+ # @!attribute [rw] start_time
35
+ # @return [Google::Protobuf::Timestamp]
36
+ # Start time of the time window (exclusive).
37
+ # @!attribute [rw] end_time
38
+ # @return [Google::Protobuf::Timestamp]
39
+ # End time of the time window (inclusive).
40
+ # Current timestamp if not specified.
41
+ class TimeWindow; end
42
+
43
+ # Cloud asset. This includes all Google Cloud Platform resources,
44
+ # Cloud IAM policies, and other non-GCP assets.
45
+ # @!attribute [rw] name
46
+ # @return [String]
47
+ # The full name of the asset. For example:
48
+ # `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1`.
49
+ # See [Resource
50
+ # Names](https://cloud.google.com/apis/design/resource_names#full_resource_name)
51
+ # for more information.
52
+ # @!attribute [rw] asset_type
53
+ # @return [String]
54
+ # Type of the asset. Example: "compute.googleapis.com/Disk".
55
+ # @!attribute [rw] resource
56
+ # @return [Google::Cloud::Asset::V1::Resource]
57
+ # Representation of the resource.
58
+ # @!attribute [rw] iam_policy
59
+ # @return [Google::Iam::V1::Policy]
60
+ # Representation of the actual Cloud IAM policy set on a cloud resource. For
61
+ # each resource, there must be at most one Cloud IAM policy set on it.
62
+ class Asset; end
63
+
64
+ # Representation of a cloud resource.
65
+ # @!attribute [rw] version
66
+ # @return [String]
67
+ # The API version. Example: "v1".
68
+ # @!attribute [rw] discovery_document_uri
69
+ # @return [String]
70
+ # The URL of the discovery document containing the resource's JSON schema.
71
+ # For example:
72
+ # `"https://www.googleapis.com/discovery/v1/apis/compute/v1/rest"`.
73
+ # It will be left unspecified for resources without a discovery-based API,
74
+ # such as Cloud Bigtable.
75
+ # @!attribute [rw] discovery_name
76
+ # @return [String]
77
+ # The JSON schema name listed in the discovery document.
78
+ # Example: "Project". It will be left unspecified for resources (such as
79
+ # Cloud Bigtable) without a discovery-based API.
80
+ # @!attribute [rw] resource_url
81
+ # @return [String]
82
+ # The REST URL for accessing the resource. An HTTP GET operation using this
83
+ # URL returns the resource itself.
84
+ # Example:
85
+ # `https://cloudresourcemanager.googleapis.com/v1/projects/my-project-123`.
86
+ # It will be left unspecified for resources without a REST API.
87
+ # @!attribute [rw] parent
88
+ # @return [String]
89
+ # The full name of the immediate parent of this resource. See
90
+ # [Resource
91
+ # Names](https://cloud.google.com/apis/design/resource_names#full_resource_name)
92
+ # for more information.
93
+ #
94
+ # For GCP assets, it is the parent resource defined in the [Cloud IAM policy
95
+ # hierarchy](https://cloud.google.com/iam/docs/overview#policy_hierarchy).
96
+ # For example:
97
+ # `"//cloudresourcemanager.googleapis.com/projects/my_project_123"`.
98
+ #
99
+ # For third-party assets, it is up to the users to define.
100
+ # @!attribute [rw] data
101
+ # @return [Google::Protobuf::Struct]
102
+ # The content of the resource, in which some sensitive fields are scrubbed
103
+ # away and may not be present.
104
+ class Resource; end
105
+ end
106
+ end
107
+ end
108
+ end