google-cloud-asset-v1 0.13.1 → 0.14.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b84592591b3ac9622dfb899c9c7afbd201810a2443909fb638a33bfb3111c773
4
- data.tar.gz: 2607739a8324d78c2ae8dd23248d59c7ae7b8113301e728877a4247c1f827ca8
3
+ metadata.gz: ffce1027ed7b1bca718ecdc5909b466a68077773da8e05d3681787a9e86871b3
4
+ data.tar.gz: 41ddd69285d6e161c159066e9bc36f6a67c1d05fd551a1d27a6deb729608ced7
5
5
  SHA512:
6
- metadata.gz: aa3b83337df9b54623a37e5902c73e2a6558f4d58f40c59247df7c3194313f343d846c3bd8f7060bb2c97623e08f14be096204148fe0782c8aff6074adfb92fa
7
- data.tar.gz: 4eee1f606949f044829b1bd742195dab427650abc2743995fd12f2d25e2775e87e9709f1779eb766aedc4fa76f74af08a017873c75009c0918bcd9286e443d04
6
+ metadata.gz: 16974de7eefcdd9bd1b8f569cb742b10c93a163ce458a10fecdc725b8f5785a5d20f71370b48015aa252c5326ad48e19436967840e6c1367b4f61e36bc6b1750
7
+ data.tar.gz: 8a0fdf4604057cc58331ab2e1285d6050f0e1b093b51133fa38dc130312cedacd854f7e2db50dfaab89d0d84fd87e0708871318242b7bb17fb2e0fdc8ab14dd1
@@ -893,7 +893,7 @@ module Google
893
893
  # @param options [::Gapic::CallOptions, ::Hash]
894
894
  # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
895
895
  #
896
- # @overload search_all_resources(scope: nil, query: nil, asset_types: nil, page_size: nil, page_token: nil, order_by: nil)
896
+ # @overload search_all_resources(scope: nil, query: nil, asset_types: nil, page_size: nil, page_token: nil, order_by: nil, read_mask: nil)
897
897
  # Pass arguments to `search_all_resources` via keyword arguments. Note that at
898
898
  # least one keyword argument is required. To specify no parameters, or to keep all
899
899
  # the default parameter values, pass an empty Hash as a request object (see above).
@@ -935,8 +935,8 @@ module Google
935
935
  # encryption key whose name contains the word "key".
936
936
  # * `state:ACTIVE` to find Cloud resources whose state contains "ACTIVE" as a
937
937
  # word.
938
- # * `NOT state:ACTIVE` to find \\{\\{gcp_name}} resources whose state
939
- # doesn't contain "ACTIVE" as a word.
938
+ # * `NOT state:ACTIVE` to find Cloud resources whose state doesn't contain
939
+ # "ACTIVE" as a word.
940
940
  # * `createTime<1609459200` to find Cloud resources that were created before
941
941
  # "2021-01-01 00:00:00 UTC". 1609459200 is the epoch timestamp of
942
942
  # "2021-01-01 00:00:00 UTC" in seconds.
@@ -982,6 +982,7 @@ module Google
982
982
  # to indicate descending order. Redundant space characters are ignored.
983
983
  # Example: "location DESC, name".
984
984
  # Only singular primitive fields in the response are sortable:
985
+ #
985
986
  # * name
986
987
  # * assetType
987
988
  # * project
@@ -994,9 +995,39 @@ module Google
994
995
  # * state
995
996
  # * parentFullResourceName
996
997
  # * parentAssetType
998
+ #
997
999
  # All the other fields such as repeated fields (e.g., `networkTags`), map
998
1000
  # fields (e.g., `labels`) and struct fields (e.g., `additionalAttributes`)
999
1001
  # are not supported.
1002
+ # @param read_mask [::Google::Protobuf::FieldMask, ::Hash]
1003
+ # Optional. A comma-separated list of fields specifying which fields to be returned in
1004
+ # ResourceSearchResult. Only '*' or combination of top level fields can be
1005
+ # specified. Field names of both snake_case and camelCase are supported.
1006
+ # Examples: `"*"`, `"name,location"`, `"name,versionedResources"`.
1007
+ #
1008
+ # The read_mask paths must be valid field paths listed but not limited to
1009
+ # (both snake_case and camelCase are supported):
1010
+ #
1011
+ # * name
1012
+ # * assetType
1013
+ # * project
1014
+ # * displayName
1015
+ # * description
1016
+ # * location
1017
+ # * labels
1018
+ # * networkTags
1019
+ # * kmsKey
1020
+ # * createTime
1021
+ # * updateTime
1022
+ # * state
1023
+ # * additionalAttributes
1024
+ # * versionedResources
1025
+ #
1026
+ # If read_mask is not specified, all fields except versionedResources will
1027
+ # be returned.
1028
+ # If only '*' is specified, all fields including versionedResources will be
1029
+ # returned.
1030
+ # Any invalid field path will trigger INVALID_ARGUMENT error.
1000
1031
  #
1001
1032
  # @yield [response, operation] Access the result along with the RPC operation
1002
1033
  # @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::Asset::V1::ResourceSearchResult>]
@@ -1293,7 +1324,7 @@ module Google
1293
1324
  # {::Google::Longrunning::Operation google.longrunning.Operation}, which allows you to track the operation
1294
1325
  # status. We recommend intervals of at least 2 seconds with exponential
1295
1326
  # backoff retry to poll the operation result. The metadata contains the
1296
- # request to help callers to map responses to requests.
1327
+ # metadata for the long-running operation.
1297
1328
  #
1298
1329
  # @overload analyze_iam_policy_longrunning(request, options = nil)
1299
1330
  # Pass arguments to `analyze_iam_policy_longrunning` via a request object, either of type
@@ -1361,6 +1392,88 @@ module Google
1361
1392
  raise ::Google::Cloud::Error.from_error(e)
1362
1393
  end
1363
1394
 
1395
+ ##
1396
+ # Analyze moving a resource to a specified destination without kicking off
1397
+ # the actual move. The analysis is best effort depending on the user's
1398
+ # permissions of viewing different hierarchical policies and configurations.
1399
+ # The policies and configuration are subject to change before the actual
1400
+ # resource migration takes place.
1401
+ #
1402
+ # @overload analyze_move(request, options = nil)
1403
+ # Pass arguments to `analyze_move` via a request object, either of type
1404
+ # {::Google::Cloud::Asset::V1::AnalyzeMoveRequest} or an equivalent Hash.
1405
+ #
1406
+ # @param request [::Google::Cloud::Asset::V1::AnalyzeMoveRequest, ::Hash]
1407
+ # A request object representing the call parameters. Required. To specify no
1408
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
1409
+ # @param options [::Gapic::CallOptions, ::Hash]
1410
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
1411
+ #
1412
+ # @overload analyze_move(resource: nil, destination_parent: nil, view: nil)
1413
+ # Pass arguments to `analyze_move` via keyword arguments. Note that at
1414
+ # least one keyword argument is required. To specify no parameters, or to keep all
1415
+ # the default parameter values, pass an empty Hash as a request object (see above).
1416
+ #
1417
+ # @param resource [::String]
1418
+ # Required. Name of the resource to perform the analysis against.
1419
+ # Only GCP Project are supported as of today. Hence, this can only be Project
1420
+ # ID (such as "projects/my-project-id") or a Project Number (such as
1421
+ # "projects/12345").
1422
+ # @param destination_parent [::String]
1423
+ # Required. Name of the GCP Folder or Organization to reparent the target
1424
+ # resource. The analysis will be performed against hypothetically moving the
1425
+ # resource to this specified desitination parent. This can only be a Folder
1426
+ # number (such as "folders/123") or an Organization number (such as
1427
+ # "organizations/123").
1428
+ # @param view [::Google::Cloud::Asset::V1::AnalyzeMoveRequest::AnalysisView]
1429
+ # Analysis view indicating what information should be included in the
1430
+ # analysis response. If unspecified, the default view is FULL.
1431
+ #
1432
+ # @yield [response, operation] Access the result along with the RPC operation
1433
+ # @yieldparam response [::Google::Cloud::Asset::V1::AnalyzeMoveResponse]
1434
+ # @yieldparam operation [::GRPC::ActiveCall::Operation]
1435
+ #
1436
+ # @return [::Google::Cloud::Asset::V1::AnalyzeMoveResponse]
1437
+ #
1438
+ # @raise [::Google::Cloud::Error] if the RPC is aborted.
1439
+ #
1440
+ def analyze_move request, options = nil
1441
+ raise ::ArgumentError, "request must be provided" if request.nil?
1442
+
1443
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Asset::V1::AnalyzeMoveRequest
1444
+
1445
+ # Converts hash and nil to an options object
1446
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
1447
+
1448
+ # Customize the options with defaults
1449
+ metadata = @config.rpcs.analyze_move.metadata.to_h
1450
+
1451
+ # Set x-goog-api-client and x-goog-user-project headers
1452
+ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
1453
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
1454
+ gapic_version: ::Google::Cloud::Asset::V1::VERSION
1455
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
1456
+
1457
+ header_params = {
1458
+ "resource" => request.resource
1459
+ }
1460
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
1461
+ metadata[:"x-goog-request-params"] ||= request_params_header
1462
+
1463
+ options.apply_defaults timeout: @config.rpcs.analyze_move.timeout,
1464
+ metadata: metadata,
1465
+ retry_policy: @config.rpcs.analyze_move.retry_policy
1466
+ options.apply_defaults metadata: @config.metadata,
1467
+ retry_policy: @config.retry_policy
1468
+
1469
+ @asset_service_stub.call_rpc :analyze_move, request, options: options do |response, operation|
1470
+ yield response, operation if block_given?
1471
+ return response
1472
+ end
1473
+ rescue ::GRPC::BadStatus => e
1474
+ raise ::Google::Cloud::Error.from_error(e)
1475
+ end
1476
+
1364
1477
  ##
1365
1478
  # Configuration class for the AssetService API.
1366
1479
  #
@@ -1557,6 +1670,11 @@ module Google
1557
1670
  # @return [::Gapic::Config::Method]
1558
1671
  #
1559
1672
  attr_reader :analyze_iam_policy_longrunning
1673
+ ##
1674
+ # RPC-specific configuration for `analyze_move`
1675
+ # @return [::Gapic::Config::Method]
1676
+ #
1677
+ attr_reader :analyze_move
1560
1678
 
1561
1679
  # @private
1562
1680
  def initialize parent_rpcs = nil
@@ -1584,6 +1702,8 @@ module Google
1584
1702
  @analyze_iam_policy = ::Gapic::Config::Method.new analyze_iam_policy_config
1585
1703
  analyze_iam_policy_longrunning_config = parent_rpcs.analyze_iam_policy_longrunning if parent_rpcs.respond_to? :analyze_iam_policy_longrunning
1586
1704
  @analyze_iam_policy_longrunning = ::Gapic::Config::Method.new analyze_iam_policy_longrunning_config
1705
+ analyze_move_config = parent_rpcs.analyze_move if parent_rpcs.respond_to? :analyze_move
1706
+ @analyze_move = ::Gapic::Config::Method.new analyze_move_config
1587
1707
 
1588
1708
  yield self if block_given?
1589
1709
  end
@@ -14,9 +14,13 @@ require 'google/protobuf/empty_pb'
14
14
  require 'google/protobuf/field_mask_pb'
15
15
  require 'google/protobuf/struct_pb'
16
16
  require 'google/protobuf/timestamp_pb'
17
+ require 'google/rpc/status_pb'
17
18
  require 'google/type/expr_pb'
18
19
  Google::Protobuf::DescriptorPool.generated_pool.build do
19
20
  add_file("google/cloud/asset/v1/asset_service.proto", :syntax => :proto3) do
21
+ add_message "google.cloud.asset.v1.AnalyzeIamPolicyLongrunningMetadata" do
22
+ optional :create_time, :message, 1, "google.protobuf.Timestamp"
23
+ end
20
24
  add_message "google.cloud.asset.v1.ExportAssetsRequest" do
21
25
  optional :parent, :string, 1
22
26
  optional :read_time, :message, 2, "google.protobuf.Timestamp"
@@ -130,6 +134,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
130
134
  optional :page_size, :int32, 4
131
135
  optional :page_token, :string, 5
132
136
  optional :order_by, :string, 6
137
+ optional :read_mask, :message, 8, "google.protobuf.FieldMask"
133
138
  end
134
139
  add_message "google.cloud.asset.v1.SearchAllResourcesResponse" do
135
140
  repeated :results, :message, 1, "google.cloud.asset.v1.ResourceSearchResult"
@@ -218,6 +223,33 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
218
223
  end
219
224
  add_message "google.cloud.asset.v1.AnalyzeIamPolicyLongrunningResponse" do
220
225
  end
226
+ add_message "google.cloud.asset.v1.AnalyzeMoveRequest" do
227
+ optional :resource, :string, 1
228
+ optional :destination_parent, :string, 2
229
+ optional :view, :enum, 3, "google.cloud.asset.v1.AnalyzeMoveRequest.AnalysisView"
230
+ end
231
+ add_enum "google.cloud.asset.v1.AnalyzeMoveRequest.AnalysisView" do
232
+ value :ANALYSIS_VIEW_UNSPECIFIED, 0
233
+ value :FULL, 1
234
+ value :BASIC, 2
235
+ end
236
+ add_message "google.cloud.asset.v1.AnalyzeMoveResponse" do
237
+ repeated :move_analysis, :message, 1, "google.cloud.asset.v1.MoveAnalysis"
238
+ end
239
+ add_message "google.cloud.asset.v1.MoveAnalysis" do
240
+ optional :display_name, :string, 1
241
+ oneof :result do
242
+ optional :analysis, :message, 2, "google.cloud.asset.v1.MoveAnalysisResult"
243
+ optional :error, :message, 3, "google.rpc.Status"
244
+ end
245
+ end
246
+ add_message "google.cloud.asset.v1.MoveAnalysisResult" do
247
+ repeated :blockers, :message, 1, "google.cloud.asset.v1.MoveImpact"
248
+ repeated :warnings, :message, 2, "google.cloud.asset.v1.MoveImpact"
249
+ end
250
+ add_message "google.cloud.asset.v1.MoveImpact" do
251
+ optional :detail, :string, 1
252
+ end
221
253
  add_enum "google.cloud.asset.v1.ContentType" do
222
254
  value :CONTENT_TYPE_UNSPECIFIED, 0
223
255
  value :RESOURCE, 1
@@ -233,6 +265,7 @@ module Google
233
265
  module Cloud
234
266
  module Asset
235
267
  module V1
268
+ AnalyzeIamPolicyLongrunningMetadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.AnalyzeIamPolicyLongrunningMetadata").msgclass
236
269
  ExportAssetsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.ExportAssetsRequest").msgclass
237
270
  ExportAssetsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.ExportAssetsResponse").msgclass
238
271
  ListAssetsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.ListAssetsRequest").msgclass
@@ -274,6 +307,12 @@ module Google
274
307
  IamPolicyAnalysisOutputConfig::BigQueryDestination::PartitionKey = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.IamPolicyAnalysisOutputConfig.BigQueryDestination.PartitionKey").enummodule
275
308
  AnalyzeIamPolicyLongrunningRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.AnalyzeIamPolicyLongrunningRequest").msgclass
276
309
  AnalyzeIamPolicyLongrunningResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.AnalyzeIamPolicyLongrunningResponse").msgclass
310
+ AnalyzeMoveRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.AnalyzeMoveRequest").msgclass
311
+ AnalyzeMoveRequest::AnalysisView = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.AnalyzeMoveRequest.AnalysisView").enummodule
312
+ AnalyzeMoveResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.AnalyzeMoveResponse").msgclass
313
+ MoveAnalysis = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.MoveAnalysis").msgclass
314
+ MoveAnalysisResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.MoveAnalysisResult").msgclass
315
+ MoveImpact = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.MoveImpact").msgclass
277
316
  ContentType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.ContentType").enummodule
278
317
  end
279
318
  end
@@ -87,8 +87,14 @@ module Google
87
87
  # [google.longrunning.Operation][google.longrunning.Operation], which allows you to track the operation
88
88
  # status. We recommend intervals of at least 2 seconds with exponential
89
89
  # backoff retry to poll the operation result. The metadata contains the
90
- # request to help callers to map responses to requests.
90
+ # metadata for the long-running operation.
91
91
  rpc :AnalyzeIamPolicyLongrunning, ::Google::Cloud::Asset::V1::AnalyzeIamPolicyLongrunningRequest, ::Google::Longrunning::Operation
92
+ # Analyze moving a resource to a specified destination without kicking off
93
+ # the actual move. The analysis is best effort depending on the user's
94
+ # permissions of viewing different hierarchical policies and configurations.
95
+ # The policies and configuration are subject to change before the actual
96
+ # resource migration takes place.
97
+ rpc :AnalyzeMove, ::Google::Cloud::Asset::V1::AnalyzeMoveRequest, ::Google::Cloud::Asset::V1::AnalyzeMoveResponse
92
98
  end
93
99
 
94
100
  Stub = Service.rpc_stub_class
@@ -10,11 +10,9 @@ require 'google/identity/accesscontextmanager/v1/access_level_pb'
10
10
  require 'google/identity/accesscontextmanager/v1/access_policy_pb'
11
11
  require 'google/cloud/osconfig/v1/inventory_pb'
12
12
  require 'google/identity/accesscontextmanager/v1/service_perimeter_pb'
13
- require 'google/protobuf/any_pb'
14
13
  require 'google/protobuf/struct_pb'
15
14
  require 'google/protobuf/timestamp_pb'
16
15
  require 'google/rpc/code_pb'
17
- require 'google/api/annotations_pb'
18
16
  Google::Protobuf::DescriptorPool.generated_pool.build do
19
17
  add_file("google/cloud/asset/v1/assets.proto", :syntax => :proto3) do
20
18
  add_message "google.cloud.asset.v1.TemporalAsset" do
@@ -76,8 +74,18 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
76
74
  optional :state, :string, 13
77
75
  optional :additional_attributes, :message, 9, "google.protobuf.Struct"
78
76
  optional :parent_full_resource_name, :string, 19
77
+ repeated :versioned_resources, :message, 16, "google.cloud.asset.v1.VersionedResource"
78
+ repeated :attached_resources, :message, 20, "google.cloud.asset.v1.AttachedResource"
79
79
  optional :parent_asset_type, :string, 103
80
80
  end
81
+ add_message "google.cloud.asset.v1.VersionedResource" do
82
+ optional :version, :string, 1
83
+ optional :resource, :message, 2, "google.protobuf.Struct"
84
+ end
85
+ add_message "google.cloud.asset.v1.AttachedResource" do
86
+ optional :asset_type, :string, 1
87
+ repeated :versioned_resources, :message, 3, "google.cloud.asset.v1.VersionedResource"
88
+ end
81
89
  add_message "google.cloud.asset.v1.IamPolicySearchResult" do
82
90
  optional :resource, :string, 1
83
91
  optional :asset_type, :string, 5
@@ -155,6 +163,8 @@ module Google
155
163
  Asset = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.Asset").msgclass
156
164
  Resource = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.Resource").msgclass
157
165
  ResourceSearchResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.ResourceSearchResult").msgclass
166
+ VersionedResource = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.VersionedResource").msgclass
167
+ AttachedResource = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.AttachedResource").msgclass
158
168
  IamPolicySearchResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.IamPolicySearchResult").msgclass
159
169
  IamPolicySearchResult::Explanation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.IamPolicySearchResult.Explanation").msgclass
160
170
  IamPolicySearchResult::Explanation::Permissions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.asset.v1.IamPolicySearchResult.Explanation.Permissions").msgclass
@@ -21,7 +21,7 @@ module Google
21
21
  module Cloud
22
22
  module Asset
23
23
  module V1
24
- VERSION = "0.13.1"
24
+ VERSION = "0.14.0"
25
25
  end
26
26
  end
27
27
  end
@@ -3,6 +3,7 @@
3
3
 
4
4
  require 'google/protobuf'
5
5
 
6
+ require 'google/api/resource_pb'
6
7
  require 'google/identity/accesscontextmanager/type/device_resources_pb'
7
8
  require 'google/protobuf/timestamp_pb'
8
9
  require 'google/type/expr_pb'
@@ -3,6 +3,7 @@
3
3
 
4
4
  require 'google/protobuf'
5
5
 
6
+ require 'google/api/resource_pb'
6
7
  require 'google/protobuf/timestamp_pb'
7
8
  require 'google/api/annotations_pb'
8
9
  Google::Protobuf::DescriptorPool.generated_pool.build do
@@ -3,6 +3,7 @@
3
3
 
4
4
  require 'google/protobuf'
5
5
 
6
+ require 'google/api/resource_pb'
6
7
  require 'google/protobuf/timestamp_pb'
7
8
  require 'google/api/annotations_pb'
8
9
  Google::Protobuf::DescriptorPool.generated_pool.build do
@@ -27,11 +28,60 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
27
28
  repeated :access_levels, :string, 2
28
29
  repeated :restricted_services, :string, 4
29
30
  optional :vpc_accessible_services, :message, 10, "google.identity.accesscontextmanager.v1.ServicePerimeterConfig.VpcAccessibleServices"
31
+ repeated :ingress_policies, :message, 8, "google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy"
32
+ repeated :egress_policies, :message, 9, "google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy"
30
33
  end
31
34
  add_message "google.identity.accesscontextmanager.v1.ServicePerimeterConfig.VpcAccessibleServices" do
32
35
  optional :enable_restriction, :bool, 1
33
36
  repeated :allowed_services, :string, 2
34
37
  end
38
+ add_message "google.identity.accesscontextmanager.v1.ServicePerimeterConfig.MethodSelector" do
39
+ oneof :kind do
40
+ optional :method, :string, 1
41
+ optional :permission, :string, 2
42
+ end
43
+ end
44
+ add_message "google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation" do
45
+ optional :service_name, :string, 1
46
+ repeated :method_selectors, :message, 2, "google.identity.accesscontextmanager.v1.ServicePerimeterConfig.MethodSelector"
47
+ end
48
+ add_message "google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressSource" do
49
+ oneof :source do
50
+ optional :access_level, :string, 1
51
+ optional :resource, :string, 2
52
+ end
53
+ end
54
+ add_message "google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressTo" do
55
+ repeated :resources, :string, 1
56
+ repeated :operations, :message, 2, "google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation"
57
+ end
58
+ add_message "google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressFrom" do
59
+ repeated :sources, :message, 1, "google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressSource"
60
+ repeated :identities, :string, 2
61
+ optional :identity_type, :enum, 3, "google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IdentityType"
62
+ end
63
+ add_message "google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressTo" do
64
+ repeated :operations, :message, 1, "google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation"
65
+ repeated :resources, :string, 2
66
+ end
67
+ add_message "google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy" do
68
+ optional :ingress_from, :message, 1, "google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressFrom"
69
+ optional :ingress_to, :message, 2, "google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressTo"
70
+ end
71
+ add_message "google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy" do
72
+ optional :egress_from, :message, 1, "google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressFrom"
73
+ optional :egress_to, :message, 2, "google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressTo"
74
+ end
75
+ add_message "google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressFrom" do
76
+ repeated :identities, :string, 1
77
+ optional :identity_type, :enum, 2, "google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IdentityType"
78
+ end
79
+ add_enum "google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IdentityType" do
80
+ value :IDENTITY_TYPE_UNSPECIFIED, 0
81
+ value :ANY_IDENTITY, 1
82
+ value :ANY_USER_ACCOUNT, 2
83
+ value :ANY_SERVICE_ACCOUNT, 3
84
+ end
35
85
  end
36
86
  end
37
87
 
@@ -43,6 +93,16 @@ module Google
43
93
  ServicePerimeter::PerimeterType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.identity.accesscontextmanager.v1.ServicePerimeter.PerimeterType").enummodule
44
94
  ServicePerimeterConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.identity.accesscontextmanager.v1.ServicePerimeterConfig").msgclass
45
95
  ServicePerimeterConfig::VpcAccessibleServices = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.identity.accesscontextmanager.v1.ServicePerimeterConfig.VpcAccessibleServices").msgclass
96
+ ServicePerimeterConfig::MethodSelector = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.identity.accesscontextmanager.v1.ServicePerimeterConfig.MethodSelector").msgclass
97
+ ServicePerimeterConfig::ApiOperation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation").msgclass
98
+ ServicePerimeterConfig::IngressSource = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressSource").msgclass
99
+ ServicePerimeterConfig::EgressTo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressTo").msgclass
100
+ ServicePerimeterConfig::IngressFrom = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressFrom").msgclass
101
+ ServicePerimeterConfig::IngressTo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressTo").msgclass
102
+ ServicePerimeterConfig::IngressPolicy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy").msgclass
103
+ ServicePerimeterConfig::EgressPolicy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy").msgclass
104
+ ServicePerimeterConfig::EgressFrom = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressFrom").msgclass
105
+ ServicePerimeterConfig::IdentityType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IdentityType").enummodule
46
106
  end
47
107
  end
48
108
  end
@@ -21,6 +21,16 @@ module Google
21
21
  module Cloud
22
22
  module Asset
23
23
  module V1
24
+ # Represents the metadata of the longrunning operation for the
25
+ # AnalyzeIamPolicyLongrunning rpc.
26
+ # @!attribute [r] create_time
27
+ # @return [::Google::Protobuf::Timestamp]
28
+ # The time the operation was created.
29
+ class AnalyzeIamPolicyLongrunningMetadata
30
+ include ::Google::Protobuf::MessageExts
31
+ extend ::Google::Protobuf::MessageExts::ClassMethods
32
+ end
33
+
24
34
  # Export asset request.
25
35
  # @!attribute [rw] parent
26
36
  # @return [::String]
@@ -518,7 +528,7 @@ module Google
518
528
  # optional.
519
529
  #
520
530
  # See our [user
521
- # guide](https://cloud.google.com/asset-inventory/docs/monitoring-asset-changes#feed_with_condition)
531
+ # guide](https://cloud.google.com/asset-inventory/docs/monitoring-asset-changes-with-condition)
522
532
  # for detailed instructions.
523
533
  class Feed
524
534
  include ::Google::Protobuf::MessageExts
@@ -565,8 +575,8 @@ module Google
565
575
  # encryption key whose name contains the word "key".
566
576
  # * `state:ACTIVE` to find Cloud resources whose state contains "ACTIVE" as a
567
577
  # word.
568
- # * `NOT state:ACTIVE` to find \\{\\{gcp_name}} resources whose state
569
- # doesn't contain "ACTIVE" as a word.
578
+ # * `NOT state:ACTIVE` to find Cloud resources whose state doesn't contain
579
+ # "ACTIVE" as a word.
570
580
  # * `createTime<1609459200` to find Cloud resources that were created before
571
581
  # "2021-01-01 00:00:00 UTC". 1609459200 is the epoch timestamp of
572
582
  # "2021-01-01 00:00:00 UTC" in seconds.
@@ -616,6 +626,7 @@ module Google
616
626
  # to indicate descending order. Redundant space characters are ignored.
617
627
  # Example: "location DESC, name".
618
628
  # Only singular primitive fields in the response are sortable:
629
+ #
619
630
  # * name
620
631
  # * assetType
621
632
  # * project
@@ -628,9 +639,40 @@ module Google
628
639
  # * state
629
640
  # * parentFullResourceName
630
641
  # * parentAssetType
642
+ #
631
643
  # All the other fields such as repeated fields (e.g., `networkTags`), map
632
644
  # fields (e.g., `labels`) and struct fields (e.g., `additionalAttributes`)
633
645
  # are not supported.
646
+ # @!attribute [rw] read_mask
647
+ # @return [::Google::Protobuf::FieldMask]
648
+ # Optional. A comma-separated list of fields specifying which fields to be returned in
649
+ # ResourceSearchResult. Only '*' or combination of top level fields can be
650
+ # specified. Field names of both snake_case and camelCase are supported.
651
+ # Examples: `"*"`, `"name,location"`, `"name,versionedResources"`.
652
+ #
653
+ # The read_mask paths must be valid field paths listed but not limited to
654
+ # (both snake_case and camelCase are supported):
655
+ #
656
+ # * name
657
+ # * assetType
658
+ # * project
659
+ # * displayName
660
+ # * description
661
+ # * location
662
+ # * labels
663
+ # * networkTags
664
+ # * kmsKey
665
+ # * createTime
666
+ # * updateTime
667
+ # * state
668
+ # * additionalAttributes
669
+ # * versionedResources
670
+ #
671
+ # If read_mask is not specified, all fields except versionedResources will
672
+ # be returned.
673
+ # If only '*' is specified, all fields including versionedResources will be
674
+ # returned.
675
+ # Any invalid field path will trigger INVALID_ARGUMENT error.
634
676
  class SearchAllResourcesRequest
635
677
  include ::Google::Protobuf::MessageExts
636
678
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1114,6 +1156,94 @@ module Google
1114
1156
  extend ::Google::Protobuf::MessageExts::ClassMethods
1115
1157
  end
1116
1158
 
1159
+ # The request message for performing resource move analysis.
1160
+ # @!attribute [rw] resource
1161
+ # @return [::String]
1162
+ # Required. Name of the resource to perform the analysis against.
1163
+ # Only GCP Project are supported as of today. Hence, this can only be Project
1164
+ # ID (such as "projects/my-project-id") or a Project Number (such as
1165
+ # "projects/12345").
1166
+ # @!attribute [rw] destination_parent
1167
+ # @return [::String]
1168
+ # Required. Name of the GCP Folder or Organization to reparent the target
1169
+ # resource. The analysis will be performed against hypothetically moving the
1170
+ # resource to this specified desitination parent. This can only be a Folder
1171
+ # number (such as "folders/123") or an Organization number (such as
1172
+ # "organizations/123").
1173
+ # @!attribute [rw] view
1174
+ # @return [::Google::Cloud::Asset::V1::AnalyzeMoveRequest::AnalysisView]
1175
+ # Analysis view indicating what information should be included in the
1176
+ # analysis response. If unspecified, the default view is FULL.
1177
+ class AnalyzeMoveRequest
1178
+ include ::Google::Protobuf::MessageExts
1179
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1180
+
1181
+ # View enum for supporting partial analysis responses.
1182
+ module AnalysisView
1183
+ # The default/unset value.
1184
+ # The API will default to the FULL view.
1185
+ ANALYSIS_VIEW_UNSPECIFIED = 0
1186
+
1187
+ # Full analysis including all level of impacts of the specified resource
1188
+ # move.
1189
+ FULL = 1
1190
+
1191
+ # Basic analysis only including blockers which will prevent the specified
1192
+ # resource move at runtime.
1193
+ BASIC = 2
1194
+ end
1195
+ end
1196
+
1197
+ # The response message for resource move analysis.
1198
+ # @!attribute [rw] move_analysis
1199
+ # @return [::Array<::Google::Cloud::Asset::V1::MoveAnalysis>]
1200
+ # The list of analyses returned from performing the intended resource move
1201
+ # analysis. The analysis is grouped by different Cloud services.
1202
+ class AnalyzeMoveResponse
1203
+ include ::Google::Protobuf::MessageExts
1204
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1205
+ end
1206
+
1207
+ # A message to group the analysis information.
1208
+ # @!attribute [rw] display_name
1209
+ # @return [::String]
1210
+ # The user friendly display name of the analysis. E.g. IAM, Organization
1211
+ # Policy etc.
1212
+ # @!attribute [rw] analysis
1213
+ # @return [::Google::Cloud::Asset::V1::MoveAnalysisResult]
1214
+ # Analysis result of moving the target resource.
1215
+ # @!attribute [rw] error
1216
+ # @return [::Google::Rpc::Status]
1217
+ # Description of error encountered when performing the analysis.
1218
+ class MoveAnalysis
1219
+ include ::Google::Protobuf::MessageExts
1220
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1221
+ end
1222
+
1223
+ # An analysis result including blockers and warnings.
1224
+ # @!attribute [rw] blockers
1225
+ # @return [::Array<::Google::Cloud::Asset::V1::MoveImpact>]
1226
+ # Blocking information that would prevent the target resource from moving
1227
+ # to the specified destination at runtime.
1228
+ # @!attribute [rw] warnings
1229
+ # @return [::Array<::Google::Cloud::Asset::V1::MoveImpact>]
1230
+ # Warning information indicating that moving the target resource to the
1231
+ # specified destination might be unsafe. This can include important policy
1232
+ # information and configuration changes, but will not block moves at runtime.
1233
+ class MoveAnalysisResult
1234
+ include ::Google::Protobuf::MessageExts
1235
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1236
+ end
1237
+
1238
+ # A message to group impacts of moving the target resource.
1239
+ # @!attribute [rw] detail
1240
+ # @return [::String]
1241
+ # User friendly impact detail in a free form message.
1242
+ class MoveImpact
1243
+ include ::Google::Protobuf::MessageExts
1244
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1245
+ end
1246
+
1117
1247
  # Asset content type.
1118
1248
  module ContentType
1119
1249
  # Unspecified content type.
@@ -406,6 +406,24 @@ module Google
406
406
  # `parentFullResourceName:"project-name"`
407
407
  # * use a free text query. Example:
408
408
  # `project-name`
409
+ # @!attribute [rw] versioned_resources
410
+ # @return [::Array<::Google::Cloud::Asset::V1::VersionedResource>]
411
+ # Versioned resource representations of this resource. This is repeated
412
+ # because there could be multiple versions of resource representations during
413
+ # version migration.
414
+ #
415
+ # This `versioned_resources` field is not searchable. Some attributes of the
416
+ # resource representations are exposed in `additional_attributes` field, so
417
+ # as to allow users to search on them.
418
+ # @!attribute [rw] attached_resources
419
+ # @return [::Array<::Google::Cloud::Asset::V1::AttachedResource>]
420
+ # Attached resources of this resource. For example, an OSConfig
421
+ # Inventory is an attached resource of a Compute Instance. This field is
422
+ # repeated because a resource could have multiple attached resources.
423
+ #
424
+ # This `attached_resources` field is not searchable. Some attributes
425
+ # of the attached resources are exposed in `additional_attributes` field, so
426
+ # as to allow users to search on them.
409
427
  # @!attribute [rw] parent_asset_type
410
428
  # @return [::String]
411
429
  # The type of this resource's immediate parent, if there is one.
@@ -430,6 +448,56 @@ module Google
430
448
  end
431
449
  end
432
450
 
451
+ # Resource representation as defined by the corresponding service providing the
452
+ # resource for a given API version.
453
+ # @!attribute [rw] version
454
+ # @return [::String]
455
+ # API version of the resource.
456
+ #
457
+ # Example:
458
+ # If the resource is an instance provided by Compute Engine v1 API as defined
459
+ # in `https://cloud.google.com/compute/docs/reference/rest/v1/instances`,
460
+ # version will be "v1".
461
+ # @!attribute [rw] resource
462
+ # @return [::Google::Protobuf::Struct]
463
+ # JSON representation of the resource as defined by the corresponding
464
+ # service providing this resource.
465
+ #
466
+ # Example:
467
+ # If the resource is an instance provided by Compute Engine, this field will
468
+ # contain the JSON representation of the instance as defined by Compute
469
+ # Engine:
470
+ # `https://cloud.google.com/compute/docs/reference/rest/v1/instances`.
471
+ #
472
+ # You can find the resource definition for each supported resource type in
473
+ # this table:
474
+ # `https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types`
475
+ class VersionedResource
476
+ include ::Google::Protobuf::MessageExts
477
+ extend ::Google::Protobuf::MessageExts::ClassMethods
478
+ end
479
+
480
+ # Attached resource representation, which is defined by the corresponding
481
+ # service provider. It represents an attached resource's payload.
482
+ # @!attribute [rw] asset_type
483
+ # @return [::String]
484
+ # The type of this attached resource.
485
+ #
486
+ # Example: `osconfig.googleapis.com/Inventory`
487
+ #
488
+ # You can find the supported attached asset types of each resource in this
489
+ # table:
490
+ # `https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types`
491
+ # @!attribute [rw] versioned_resources
492
+ # @return [::Array<::Google::Cloud::Asset::V1::VersionedResource>]
493
+ # Versioned resource representations of this attached resource. This is
494
+ # repeated because there could be multiple versions of the attached resource
495
+ # representations during version migration.
496
+ class AttachedResource
497
+ include ::Google::Protobuf::MessageExts
498
+ extend ::Google::Protobuf::MessageExts::ClassMethods
499
+ end
500
+
433
501
  # A result of IAM Policy search, containing information of an IAM policy.
434
502
  # @!attribute [rw] resource
435
503
  # @return [::String]
@@ -28,8 +28,8 @@ module Google
28
28
  # @return [::String]
29
29
  # Required. Resource name for the Access Level. The `short_name` component
30
30
  # must begin with a letter and only include alphanumeric and '_'. Format:
31
- # `accessPolicies/{policy_id}/accessLevels/{short_name}`. The maximum length
32
- # of the `short_name` component is 50 characters.
31
+ # `accessPolicies/{access_policy}/accessLevels/{access_level}`. The maximum
32
+ # length of the `access_level` component is 50 characters.
33
33
  # @!attribute [rw] title
34
34
  # @return [::String]
35
35
  # Human readable title. Must be unique within the Policy.
@@ -29,7 +29,7 @@ module Google
29
29
  # @!attribute [rw] name
30
30
  # @return [::String]
31
31
  # Output only. Resource name of the `AccessPolicy`. Format:
32
- # `accessPolicies/{policy_id}`
32
+ # `accessPolicies/{access_policy}`
33
33
  # @!attribute [rw] parent
34
34
  # @return [::String]
35
35
  # Required. The parent of this `AccessPolicy` in the Cloud Resource
@@ -35,7 +35,8 @@ module Google
35
35
  # @return [::String]
36
36
  # Required. Resource name for the ServicePerimeter. The `short_name`
37
37
  # component must begin with a letter and only include alphanumeric and '_'.
38
- # Format: `accessPolicies/{policy_id}/servicePerimeters/{short_name}`
38
+ # Format:
39
+ # `accessPolicies/{access_policy}/servicePerimeters/{service_perimeter}`
39
40
  # @!attribute [rw] title
40
41
  # @return [::String]
41
42
  # Human readable title. Must be unique within the Policy.
@@ -133,6 +134,26 @@ module Google
133
134
  # @!attribute [rw] vpc_accessible_services
134
135
  # @return [::Google::Identity::AccessContextManager::V1::ServicePerimeterConfig::VpcAccessibleServices]
135
136
  # Configuration for APIs allowed within Perimeter.
137
+ # @!attribute [rw] ingress_policies
138
+ # @return [::Array<::Google::Identity::AccessContextManager::V1::ServicePerimeterConfig::IngressPolicy>]
139
+ # List of [IngressPolicies]
140
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
141
+ # to apply to the perimeter. A perimeter may have multiple [IngressPolicies]
142
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy],
143
+ # each of which is evaluated separately. Access is granted if any [Ingress
144
+ # Policy]
145
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
146
+ # grants it. Must be empty for a perimeter bridge.
147
+ # @!attribute [rw] egress_policies
148
+ # @return [::Array<::Google::Identity::AccessContextManager::V1::ServicePerimeterConfig::EgressPolicy>]
149
+ # List of [EgressPolicies]
150
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
151
+ # to apply to the perimeter. A perimeter may have multiple [EgressPolicies]
152
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy],
153
+ # each of which is evaluated separately. Access is granted if any
154
+ # [EgressPolicy]
155
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
156
+ # grants it. Must be empty for a perimeter bridge.
136
157
  class ServicePerimeterConfig
137
158
  include ::Google::Protobuf::MessageExts
138
159
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -146,11 +167,316 @@ module Google
146
167
  # @!attribute [rw] allowed_services
147
168
  # @return [::Array<::String>]
148
169
  # The list of APIs usable within the Service Perimeter. Must be empty
149
- # unless 'enable_restriction' is True.
170
+ # unless 'enable_restriction' is True. You can specify a list of individual
171
+ # services, as well as include the 'RESTRICTED-SERVICES' value, which
172
+ # automatically includes all of the services protected by the perimeter.
150
173
  class VpcAccessibleServices
151
174
  include ::Google::Protobuf::MessageExts
152
175
  extend ::Google::Protobuf::MessageExts::ClassMethods
153
176
  end
177
+
178
+ # An allowed method or permission of a service specified in [ApiOperation]
179
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation].
180
+ # @!attribute [rw] method
181
+ # @return [::String]
182
+ # Value for `method` should be a valid method name for the corresponding
183
+ # `service_name` in [ApiOperation]
184
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation].
185
+ # If `*` used as value for `method`, then ALL methods and permissions are
186
+ # allowed.
187
+ # @!attribute [rw] permission
188
+ # @return [::String]
189
+ # Value for `permission` should be a valid Cloud IAM permission for the
190
+ # corresponding `service_name` in [ApiOperation]
191
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation].
192
+ class MethodSelector
193
+ include ::Google::Protobuf::MessageExts
194
+ extend ::Google::Protobuf::MessageExts::ClassMethods
195
+ end
196
+
197
+ # Identification for an API Operation.
198
+ # @!attribute [rw] service_name
199
+ # @return [::String]
200
+ # The name of the API whose methods or permissions the [IngressPolicy]
201
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
202
+ # or [EgressPolicy]
203
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
204
+ # want to allow. A single [ApiOperation]
205
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation]
206
+ # with `service_name` field set to `*` will allow all methods AND
207
+ # permissions for all services.
208
+ # @!attribute [rw] method_selectors
209
+ # @return [::Array<::Google::Identity::AccessContextManager::V1::ServicePerimeterConfig::MethodSelector>]
210
+ # API methods or permissions to allow. Method or permission must belong to
211
+ # the service specified by `service_name` field. A single [MethodSelector]
212
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.MethodSelector]
213
+ # entry with `*` specified for the `method` field will allow all methods
214
+ # AND permissions for the service specified in `service_name`.
215
+ class ApiOperation
216
+ include ::Google::Protobuf::MessageExts
217
+ extend ::Google::Protobuf::MessageExts::ClassMethods
218
+ end
219
+
220
+ # The source that [IngressPolicy]
221
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
222
+ # authorizes access from.
223
+ # @!attribute [rw] access_level
224
+ # @return [::String]
225
+ # An [AccessLevel]
226
+ # [google.identity.accesscontextmanager.v1.AccessLevel] resource
227
+ # name that allow resources within the [ServicePerimeters]
228
+ # [google.identity.accesscontextmanager.v1.ServicePerimeter] to be
229
+ # accessed from the internet. [AccessLevels]
230
+ # [google.identity.accesscontextmanager.v1.AccessLevel] listed must
231
+ # be in the same policy as this [ServicePerimeter]
232
+ # [google.identity.accesscontextmanager.v1.ServicePerimeter].
233
+ # Referencing a nonexistent [AccessLevel]
234
+ # [google.identity.accesscontextmanager.v1.AccessLevel] will cause
235
+ # an error. If no [AccessLevel]
236
+ # [google.identity.accesscontextmanager.v1.AccessLevel] names are
237
+ # listed, resources within the perimeter can only be accessed via Google
238
+ # Cloud calls with request origins within the perimeter. Example:
239
+ # `accessPolicies/MY_POLICY/accessLevels/MY_LEVEL`. If a single `*` is
240
+ # specified for `access_level`, then all [IngressSources]
241
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressSource]
242
+ # will be allowed.
243
+ # @!attribute [rw] resource
244
+ # @return [::String]
245
+ # A Google Cloud resource that is allowed to ingress the perimeter.
246
+ # Requests from these resources will be allowed to access perimeter data.
247
+ # Currently only projects are allowed.
248
+ # Format: `projects/{project_number}`
249
+ # The project may be in any Google Cloud organization, not just the
250
+ # organization that the perimeter is defined in. `*` is not allowed, the
251
+ # case of allowing all Google Cloud resources only is not supported.
252
+ class IngressSource
253
+ include ::Google::Protobuf::MessageExts
254
+ extend ::Google::Protobuf::MessageExts::ClassMethods
255
+ end
256
+
257
+ # Defines the conditions under which an [EgressPolicy]
258
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
259
+ # matches a request. Conditions are based on information about the
260
+ # [ApiOperation]
261
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation]
262
+ # intended to be performed on the `resources` specified. Note that if the
263
+ # destination of the request is also protected by a [ServicePerimeter]
264
+ # [google.identity.accesscontextmanager.v1.ServicePerimeter], then that
265
+ # [ServicePerimeter]
266
+ # [google.identity.accesscontextmanager.v1.ServicePerimeter] must have
267
+ # an [IngressPolicy]
268
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
269
+ # which allows access in order for this request to succeed. The request must
270
+ # match `operations` AND `resources` fields in order to be allowed egress out
271
+ # of the perimeter.
272
+ # @!attribute [rw] resources
273
+ # @return [::Array<::String>]
274
+ # A list of resources, currently only projects in the form
275
+ # `projects/<projectnumber>`, that are allowed to be accessed by sources
276
+ # defined in the corresponding [EgressFrom]
277
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressFrom].
278
+ # A request matches if it contains a resource in this list. If `*` is
279
+ # specified for `resources`, then this [EgressTo]
280
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressTo]
281
+ # rule will authorize access to all resources outside the perimeter.
282
+ # @!attribute [rw] operations
283
+ # @return [::Array<::Google::Identity::AccessContextManager::V1::ServicePerimeterConfig::ApiOperation>]
284
+ # A list of [ApiOperations]
285
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation]
286
+ # allowed to be performed by the sources specified in the corresponding
287
+ # [EgressFrom]
288
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressFrom].
289
+ # A request matches if it uses an operation/service in this list.
290
+ class EgressTo
291
+ include ::Google::Protobuf::MessageExts
292
+ extend ::Google::Protobuf::MessageExts::ClassMethods
293
+ end
294
+
295
+ # Defines the conditions under which an [IngressPolicy]
296
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
297
+ # matches a request. Conditions are based on information about the source of
298
+ # the request. The request must satisfy what is defined in `sources` AND
299
+ # identity related fields in order to match.
300
+ # @!attribute [rw] sources
301
+ # @return [::Array<::Google::Identity::AccessContextManager::V1::ServicePerimeterConfig::IngressSource>]
302
+ # Sources that this [IngressPolicy]
303
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
304
+ # authorizes access from.
305
+ # @!attribute [rw] identities
306
+ # @return [::Array<::String>]
307
+ # A list of identities that are allowed access through this ingress
308
+ # policy. Should be in the format of email address. The email address
309
+ # should represent individual user or service account only.
310
+ # @!attribute [rw] identity_type
311
+ # @return [::Google::Identity::AccessContextManager::V1::ServicePerimeterConfig::IdentityType]
312
+ # Specifies the type of identities that are allowed access from outside the
313
+ # perimeter. If left unspecified, then members of `identities` field will
314
+ # be allowed access.
315
+ class IngressFrom
316
+ include ::Google::Protobuf::MessageExts
317
+ extend ::Google::Protobuf::MessageExts::ClassMethods
318
+ end
319
+
320
+ # Defines the conditions under which an [IngressPolicy]
321
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
322
+ # matches a request. Conditions are based on information about the
323
+ # [ApiOperation]
324
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation]
325
+ # intended to be performed on the target resource of the request. The request
326
+ # must satisfy what is defined in `operations` AND `resources` in order to
327
+ # match.
328
+ # @!attribute [rw] operations
329
+ # @return [::Array<::Google::Identity::AccessContextManager::V1::ServicePerimeterConfig::ApiOperation>]
330
+ # A list of [ApiOperations]
331
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation]
332
+ # allowed to be performed by the sources specified in corresponding
333
+ # [IngressFrom]
334
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressFrom]
335
+ # in this [ServicePerimeter]
336
+ # [google.identity.accesscontextmanager.v1.ServicePerimeter].
337
+ # @!attribute [rw] resources
338
+ # @return [::Array<::String>]
339
+ # A list of resources, currently only projects in the form
340
+ # `projects/<projectnumber>`, protected by this [ServicePerimeter]
341
+ # [google.identity.accesscontextmanager.v1.ServicePerimeter] that are
342
+ # allowed to be accessed by sources defined in the corresponding
343
+ # [IngressFrom]
344
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressFrom].
345
+ # If a single `*` is specified, then access to all resources inside the
346
+ # perimeter are allowed.
347
+ class IngressTo
348
+ include ::Google::Protobuf::MessageExts
349
+ extend ::Google::Protobuf::MessageExts::ClassMethods
350
+ end
351
+
352
+ # Policy for ingress into [ServicePerimeter]
353
+ # [google.identity.accesscontextmanager.v1.ServicePerimeter].
354
+ #
355
+ # [IngressPolicies]
356
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
357
+ # match requests based on `ingress_from` and `ingress_to` stanzas. For an
358
+ # ingress policy to match, both the `ingress_from` and `ingress_to` stanzas
359
+ # must be matched. If an [IngressPolicy]
360
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
361
+ # matches a request, the request is allowed through the perimeter boundary
362
+ # from outside the perimeter.
363
+ #
364
+ # For example, access from the internet can be allowed either
365
+ # based on an [AccessLevel]
366
+ # [google.identity.accesscontextmanager.v1.AccessLevel] or, for traffic
367
+ # hosted on Google Cloud, the project of the source network. For access from
368
+ # private networks, using the project of the hosting network is required.
369
+ #
370
+ # Individual ingress policies can be limited by restricting which
371
+ # services and/or actions they match using the `ingress_to` field.
372
+ # @!attribute [rw] ingress_from
373
+ # @return [::Google::Identity::AccessContextManager::V1::ServicePerimeterConfig::IngressFrom]
374
+ # Defines the conditions on the source of a request causing this
375
+ # [IngressPolicy]
376
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
377
+ # to apply.
378
+ # @!attribute [rw] ingress_to
379
+ # @return [::Google::Identity::AccessContextManager::V1::ServicePerimeterConfig::IngressTo]
380
+ # Defines the conditions on the [ApiOperation]
381
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation]
382
+ # and request destination that cause this [IngressPolicy]
383
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
384
+ # to apply.
385
+ class IngressPolicy
386
+ include ::Google::Protobuf::MessageExts
387
+ extend ::Google::Protobuf::MessageExts::ClassMethods
388
+ end
389
+
390
+ # Policy for egress from perimeter.
391
+ #
392
+ # [EgressPolicies]
393
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
394
+ # match requests based on `egress_from` and `egress_to` stanzas. For an
395
+ # [EgressPolicy]
396
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
397
+ # to match, both `egress_from` and `egress_to` stanzas must be matched. If an
398
+ # [EgressPolicy]
399
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
400
+ # matches a request, the request is allowed to span the [ServicePerimeter]
401
+ # [google.identity.accesscontextmanager.v1.ServicePerimeter] boundary.
402
+ # For example, an [EgressPolicy]
403
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
404
+ # can be used to allow VMs on networks within the [ServicePerimeter]
405
+ # [google.identity.accesscontextmanager.v1.ServicePerimeter] to access a
406
+ # defined set of projects outside the perimeter in certain contexts (e.g. to
407
+ # read data from a Cloud Storage bucket or query against a BigQuery dataset).
408
+ #
409
+ # [EgressPolicies]
410
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
411
+ # are concerned with the *resources* that a request relates as well as the
412
+ # API services and API actions being used. They do not related to the
413
+ # direction of data movement. More detailed documentation for this concept
414
+ # can be found in the descriptions of [EgressFrom]
415
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressFrom]
416
+ # and [EgressTo]
417
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressTo].
418
+ # @!attribute [rw] egress_from
419
+ # @return [::Google::Identity::AccessContextManager::V1::ServicePerimeterConfig::EgressFrom]
420
+ # Defines conditions on the source of a request causing this [EgressPolicy]
421
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
422
+ # to apply.
423
+ # @!attribute [rw] egress_to
424
+ # @return [::Google::Identity::AccessContextManager::V1::ServicePerimeterConfig::EgressTo]
425
+ # Defines the conditions on the [ApiOperation]
426
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation]
427
+ # and destination resources that cause this [EgressPolicy]
428
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
429
+ # to apply.
430
+ class EgressPolicy
431
+ include ::Google::Protobuf::MessageExts
432
+ extend ::Google::Protobuf::MessageExts::ClassMethods
433
+ end
434
+
435
+ # Defines the conditions under which an [EgressPolicy]
436
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
437
+ # matches a request. Conditions based on information about the source of the
438
+ # request. Note that if the destination of the request is also protected by a
439
+ # [ServicePerimeter]
440
+ # [google.identity.accesscontextmanager.v1.ServicePerimeter], then that
441
+ # [ServicePerimeter]
442
+ # [google.identity.accesscontextmanager.v1.ServicePerimeter] must have
443
+ # an [IngressPolicy]
444
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
445
+ # which allows access in order for this request to succeed.
446
+ # @!attribute [rw] identities
447
+ # @return [::Array<::String>]
448
+ # A list of identities that are allowed access through this [EgressPolicy].
449
+ # Should be in the format of email address. The email address should
450
+ # represent individual user or service account only.
451
+ # @!attribute [rw] identity_type
452
+ # @return [::Google::Identity::AccessContextManager::V1::ServicePerimeterConfig::IdentityType]
453
+ # Specifies the type of identities that are allowed access to outside the
454
+ # perimeter. If left unspecified, then members of `identities` field will
455
+ # be allowed access.
456
+ class EgressFrom
457
+ include ::Google::Protobuf::MessageExts
458
+ extend ::Google::Protobuf::MessageExts::ClassMethods
459
+ end
460
+
461
+ # Specifies the types of identities that are allowed access in either
462
+ # [IngressFrom]
463
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressFrom]
464
+ # or [EgressFrom]
465
+ # [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressFrom]
466
+ # rules.
467
+ module IdentityType
468
+ # No blanket identity group specified.
469
+ IDENTITY_TYPE_UNSPECIFIED = 0
470
+
471
+ # Authorize access from all identities outside the perimeter.
472
+ ANY_IDENTITY = 1
473
+
474
+ # Authorize access from all human users outside the perimeter.
475
+ ANY_USER_ACCOUNT = 2
476
+
477
+ # Authorize access from all service accounts outside the perimeter.
478
+ ANY_SERVICE_ACCOUNT = 3
479
+ end
154
480
  end
155
481
  end
156
482
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-asset-v1
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.1
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Google LLC
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-12 00:00:00.000000000 Z
11
+ date: 2021-07-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gapic-common