google-cloud-security_center-v1 0.6.0 → 0.8.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/AUTHENTICATION.md +8 -8
- data/README.md +1 -1
- data/lib/google/cloud/security_center/v1/security_center/client.rb +67 -70
- data/lib/google/cloud/security_center/v1/security_center/operations.rb +4 -4
- data/lib/google/cloud/security_center/v1/security_center/paths.rb +174 -16
- data/lib/google/cloud/security_center/v1/version.rb +1 -1
- data/lib/google/cloud/securitycenter/v1/asset_pb.rb +4 -1
- data/lib/google/cloud/securitycenter/v1/finding_pb.rb +13 -1
- data/lib/google/cloud/securitycenter/v1/folder_pb.rb +24 -0
- data/lib/google/cloud/securitycenter/v1/indicator_pb.rb +24 -0
- data/lib/google/cloud/securitycenter/v1/notification_config_pb.rb +1 -1
- data/lib/google/cloud/securitycenter/v1/notification_message_pb.rb +1 -1
- data/lib/google/cloud/securitycenter/v1/organization_settings_pb.rb +2 -1
- data/lib/google/cloud/securitycenter/v1/resource_pb.rb +3 -0
- data/lib/google/cloud/securitycenter/v1/run_asset_discovery_response_pb.rb +1 -1
- data/lib/google/cloud/securitycenter/v1/security_marks_pb.rb +2 -1
- data/lib/google/cloud/securitycenter/v1/securitycenter_service_pb.rb +2 -0
- data/lib/google/cloud/securitycenter/v1/securitycenter_service_services_pb.rb +4 -1
- data/lib/google/cloud/securitycenter/v1/source_pb.rb +2 -1
- data/proto_docs/google/api/field_behavior.rb +7 -1
- data/proto_docs/google/cloud/securitycenter/v1/asset.rb +13 -2
- data/proto_docs/google/cloud/securitycenter/v1/finding.rb +40 -1
- data/proto_docs/google/cloud/securitycenter/v1/folder.rb +40 -0
- data/proto_docs/google/cloud/securitycenter/v1/indicator.rb +41 -0
- data/proto_docs/google/cloud/securitycenter/v1/organization_settings.rb +4 -0
- data/proto_docs/google/cloud/securitycenter/v1/resource.rb +5 -0
- data/proto_docs/google/cloud/securitycenter/v1/security_marks.rb +10 -0
- data/proto_docs/google/cloud/securitycenter/v1/securitycenter_service.rb +57 -24
- data/proto_docs/google/cloud/securitycenter/v1/source.rb +8 -0
- data/proto_docs/google/type/expr.rb +35 -12
- metadata +19 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d6cf0e3ef3cc8a50ab83356e628e5bdd41587b6f3b8f411716491013dcff25ab
|
4
|
+
data.tar.gz: feab623d462bf650c55eb957ff01dcf5b85c07cbb7539e1f688e2f9409f85e1a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3bbcbddb45342e566e0452fcc46dbccc8088eb1e9000d08928c21361ac5b655a564cbdff812286d2b651156f49a574ed6f77116c1da80f46aa665d4ddebd5865
|
7
|
+
data.tar.gz: 74b50f37bed033ce7c7dbc0c01e83541855f3ddfcdfde0c202e50c0214a357153896dda8bfbd142cd04c76f821ea66b9b6d72c90033486f3cc49b72e7bbc6d8b
|
data/AUTHENTICATION.md
CHANGED
@@ -66,11 +66,11 @@ The environment variables that google-cloud-security_center-v1
|
|
66
66
|
checks for credentials are configured on the service Credentials class (such as
|
67
67
|
{::Google::Cloud::SecurityCenter::V1::SecurityCenter::Credentials}):
|
68
68
|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
69
|
+
* `SECURITY_CENTER_CREDENTIALS` - Path to JSON file, or JSON contents
|
70
|
+
* `SECURITY_CENTER_KEYFILE` - Path to JSON file, or JSON contents
|
71
|
+
* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents
|
72
|
+
* `GOOGLE_CLOUD_KEYFILE` - Path to JSON file, or JSON contents
|
73
|
+
* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file
|
74
74
|
|
75
75
|
```ruby
|
76
76
|
require "google/cloud/security_center/v1"
|
@@ -82,8 +82,8 @@ client = ::Google::Cloud::SecurityCenter::V1::SecurityCenter::Client.new
|
|
82
82
|
|
83
83
|
### Configuration
|
84
84
|
|
85
|
-
The **Credentials JSON** can be configured instead of
|
86
|
-
environment
|
85
|
+
The path to the **Credentials JSON** file can be configured instead of storing
|
86
|
+
it in an environment variable. Either on an individual client initialization:
|
87
87
|
|
88
88
|
```ruby
|
89
89
|
require "google/cloud/security_center/v1"
|
@@ -93,7 +93,7 @@ client = ::Google::Cloud::SecurityCenter::V1::SecurityCenter::Client.new do |con
|
|
93
93
|
end
|
94
94
|
```
|
95
95
|
|
96
|
-
Or
|
96
|
+
Or globally for all clients:
|
97
97
|
|
98
98
|
```ruby
|
99
99
|
require "google/cloud/security_center/v1"
|
data/README.md
CHANGED
@@ -33,7 +33,7 @@ In order to use this library, you first need to go through the following steps:
|
|
33
33
|
require "google/cloud/security_center/v1"
|
34
34
|
|
35
35
|
client = ::Google::Cloud::SecurityCenter::V1::SecurityCenter::Client.new
|
36
|
-
request =
|
36
|
+
request = ::Google::Cloud::SecurityCenter::V1::CreateSourceRequest.new # (request fields as keyword arguments...)
|
37
37
|
response = client.create_source request
|
38
38
|
```
|
39
39
|
|
@@ -75,82 +75,52 @@ module Google
|
|
75
75
|
|
76
76
|
default_config.rpcs.get_iam_policy.timeout = 60.0
|
77
77
|
default_config.rpcs.get_iam_policy.retry_policy = {
|
78
|
-
initial_delay: 0.1,
|
79
|
-
max_delay: 60.0,
|
80
|
-
multiplier: 1.3,
|
81
|
-
retry_codes: [4, 14]
|
78
|
+
initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
|
82
79
|
}
|
83
80
|
|
84
81
|
default_config.rpcs.get_notification_config.timeout = 60.0
|
85
82
|
default_config.rpcs.get_notification_config.retry_policy = {
|
86
|
-
initial_delay: 0.1,
|
87
|
-
max_delay: 60.0,
|
88
|
-
multiplier: 1.3,
|
89
|
-
retry_codes: [4, 14]
|
83
|
+
initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
|
90
84
|
}
|
91
85
|
|
92
86
|
default_config.rpcs.get_organization_settings.timeout = 60.0
|
93
87
|
default_config.rpcs.get_organization_settings.retry_policy = {
|
94
|
-
initial_delay: 0.1,
|
95
|
-
max_delay: 60.0,
|
96
|
-
multiplier: 1.3,
|
97
|
-
retry_codes: [4, 14]
|
88
|
+
initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
|
98
89
|
}
|
99
90
|
|
100
91
|
default_config.rpcs.get_source.timeout = 60.0
|
101
92
|
default_config.rpcs.get_source.retry_policy = {
|
102
|
-
initial_delay: 0.1,
|
103
|
-
max_delay: 60.0,
|
104
|
-
multiplier: 1.3,
|
105
|
-
retry_codes: [4, 14]
|
93
|
+
initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
|
106
94
|
}
|
107
95
|
|
108
96
|
default_config.rpcs.group_assets.timeout = 480.0
|
109
97
|
default_config.rpcs.group_assets.retry_policy = {
|
110
|
-
initial_delay: 0.1,
|
111
|
-
max_delay: 60.0,
|
112
|
-
multiplier: 1.3,
|
113
|
-
retry_codes: [4, 14]
|
98
|
+
initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
|
114
99
|
}
|
115
100
|
|
116
101
|
default_config.rpcs.group_findings.timeout = 480.0
|
117
102
|
default_config.rpcs.group_findings.retry_policy = {
|
118
|
-
initial_delay: 0.1,
|
119
|
-
max_delay: 60.0,
|
120
|
-
multiplier: 1.3,
|
121
|
-
retry_codes: [4, 14]
|
103
|
+
initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
|
122
104
|
}
|
123
105
|
|
124
106
|
default_config.rpcs.list_assets.timeout = 480.0
|
125
107
|
default_config.rpcs.list_assets.retry_policy = {
|
126
|
-
initial_delay: 0.1,
|
127
|
-
max_delay: 60.0,
|
128
|
-
multiplier: 1.3,
|
129
|
-
retry_codes: [4, 14]
|
108
|
+
initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
|
130
109
|
}
|
131
110
|
|
132
111
|
default_config.rpcs.list_findings.timeout = 480.0
|
133
112
|
default_config.rpcs.list_findings.retry_policy = {
|
134
|
-
initial_delay: 0.1,
|
135
|
-
max_delay: 60.0,
|
136
|
-
multiplier: 1.3,
|
137
|
-
retry_codes: [4, 14]
|
113
|
+
initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
|
138
114
|
}
|
139
115
|
|
140
116
|
default_config.rpcs.list_notification_configs.timeout = 60.0
|
141
117
|
default_config.rpcs.list_notification_configs.retry_policy = {
|
142
|
-
initial_delay: 0.1,
|
143
|
-
max_delay: 60.0,
|
144
|
-
multiplier: 1.3,
|
145
|
-
retry_codes: [4, 14]
|
118
|
+
initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
|
146
119
|
}
|
147
120
|
|
148
121
|
default_config.rpcs.list_sources.timeout = 60.0
|
149
122
|
default_config.rpcs.list_sources.retry_policy = {
|
150
|
-
initial_delay: 0.1,
|
151
|
-
max_delay: 60.0,
|
152
|
-
multiplier: 1.3,
|
153
|
-
retry_codes: [4, 14]
|
123
|
+
initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
|
154
124
|
}
|
155
125
|
|
156
126
|
default_config.rpcs.run_asset_discovery.timeout = 60.0
|
@@ -161,10 +131,7 @@ module Google
|
|
161
131
|
|
162
132
|
default_config.rpcs.test_iam_permissions.timeout = 60.0
|
163
133
|
default_config.rpcs.test_iam_permissions.retry_policy = {
|
164
|
-
initial_delay: 0.1,
|
165
|
-
max_delay: 60.0,
|
166
|
-
multiplier: 1.3,
|
167
|
-
retry_codes: [4, 14]
|
134
|
+
initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
|
168
135
|
}
|
169
136
|
|
170
137
|
default_config.rpcs.update_finding.timeout = 60.0
|
@@ -245,7 +212,7 @@ module Google
|
|
245
212
|
!@config.endpoint.split(".").first.include?("-")
|
246
213
|
credentials ||= Credentials.default scope: @config.scope,
|
247
214
|
enable_self_signed_jwt: enable_self_signed_jwt
|
248
|
-
if credentials.is_a?(String) || credentials.is_a?(Hash)
|
215
|
+
if credentials.is_a?(::String) || credentials.is_a?(::Hash)
|
249
216
|
credentials = Credentials.new credentials, scope: @config.scope
|
250
217
|
end
|
251
218
|
@quota_project_id = @config.quota_project
|
@@ -853,7 +820,8 @@ module Google
|
|
853
820
|
#
|
854
821
|
# @param parent [::String]
|
855
822
|
# Required. Name of the organization to groupBy. Its format is
|
856
|
-
# "organizations/[organization_id]
|
823
|
+
# "organizations/[organization_id], folders/[folder_id], or
|
824
|
+
# projects/[project_id]".
|
857
825
|
# @param filter [::String]
|
858
826
|
# Expression that defines the filter to apply across assets.
|
859
827
|
# The expression is a list of zero or more restrictions combined via logical
|
@@ -1028,7 +996,9 @@ module Google
|
|
1028
996
|
# specified properties.
|
1029
997
|
#
|
1030
998
|
# To group across all sources provide a `-` as the source id.
|
1031
|
-
# Example: /v1/organizations/\\{organization_id}/sources/-/findings
|
999
|
+
# Example: /v1/organizations/\\{organization_id}/sources/-/findings,
|
1000
|
+
# /v1/folders/\\{folder_id}/sources/-/findings,
|
1001
|
+
# /v1/projects/\\{project_id}/sources/-/findings
|
1032
1002
|
#
|
1033
1003
|
# @overload group_findings(request, options = nil)
|
1034
1004
|
# Pass arguments to `group_findings` via a request object, either of type
|
@@ -1047,9 +1017,12 @@ module Google
|
|
1047
1017
|
#
|
1048
1018
|
# @param parent [::String]
|
1049
1019
|
# Required. Name of the source to groupBy. Its format is
|
1050
|
-
# "organizations/[organization_id]/sources/[source_id]"
|
1051
|
-
#
|
1052
|
-
#
|
1020
|
+
# "organizations/[organization_id]/sources/[source_id]",
|
1021
|
+
# folders/[folder_id]/sources/[source_id], or
|
1022
|
+
# projects/[project_id]/sources/[source_id]. To groupBy across all sources
|
1023
|
+
# provide a source_id of `-`. For example:
|
1024
|
+
# organizations/\\{organization_id}/sources/-, folders/\\{folder_id}/sources/-,
|
1025
|
+
# or projects/\\{project_id}/sources/-
|
1053
1026
|
# @param filter [::String]
|
1054
1027
|
# Expression that defines the filter to apply across findings.
|
1055
1028
|
# The expression is a list of one or more restrictions combined via logical
|
@@ -1084,23 +1057,32 @@ module Google
|
|
1084
1057
|
# * category: `=`, `:`
|
1085
1058
|
# * external_uri: `=`, `:`
|
1086
1059
|
# * event_time: `=`, `>`, `<`, `>=`, `<=`
|
1087
|
-
# * severity: `=`, `:`
|
1088
1060
|
#
|
1089
1061
|
# Usage: This should be milliseconds since epoch or an RFC3339 string.
|
1090
1062
|
# Examples:
|
1091
1063
|
# `event_time = "2019-06-10T16:07:18-07:00"`
|
1092
1064
|
# `event_time = 1560208038000`
|
1093
1065
|
#
|
1066
|
+
# * severity: `=`, `:`
|
1067
|
+
# * workflow_state: `=`, `:`
|
1094
1068
|
# * security_marks.marks: `=`, `:`
|
1095
1069
|
# * source_properties: `=`, `:`, `>`, `<`, `>=`, `<=`
|
1096
1070
|
#
|
1097
|
-
#
|
1071
|
+
# For example, `source_properties.size = 100` is a valid filter string.
|
1098
1072
|
#
|
1099
|
-
#
|
1100
|
-
#
|
1073
|
+
# Use a partial match on the empty string to filter based on a property
|
1074
|
+
# existing: `source_properties.my_property : ""`
|
1101
1075
|
#
|
1102
|
-
#
|
1103
|
-
#
|
1076
|
+
# Use a negated partial match on the empty string to filter based on a
|
1077
|
+
# property not existing: `-source_properties.my_property : ""`
|
1078
|
+
#
|
1079
|
+
# * resource:
|
1080
|
+
# * resource.name: `=`, `:`
|
1081
|
+
# * resource.parent_name: `=`, `:`
|
1082
|
+
# * resource.parent_display_name: `=`, `:`
|
1083
|
+
# * resource.project_name: `=`, `:`
|
1084
|
+
# * resource.project_display_name: `=`, `:`
|
1085
|
+
# * resource.type: `=`, `:`
|
1104
1086
|
# @param group_by [::String]
|
1105
1087
|
# Required. Expression that defines what assets fields to use for grouping (including
|
1106
1088
|
# `state_change`). The string value should follow SQL syntax: comma separated
|
@@ -1229,7 +1211,8 @@ module Google
|
|
1229
1211
|
#
|
1230
1212
|
# @param parent [::String]
|
1231
1213
|
# Required. Name of the organization assets should belong to. Its format is
|
1232
|
-
# "organizations/[organization_id]
|
1214
|
+
# "organizations/[organization_id], folders/[folder_id], or
|
1215
|
+
# projects/[project_id]".
|
1233
1216
|
# @param filter [::String]
|
1234
1217
|
# Expression that defines the filter to apply across assets.
|
1235
1218
|
# The expression is a list of zero or more restrictions combined via logical
|
@@ -1426,9 +1409,12 @@ module Google
|
|
1426
1409
|
#
|
1427
1410
|
# @param parent [::String]
|
1428
1411
|
# Required. Name of the source the findings belong to. Its format is
|
1429
|
-
# "organizations/[organization_id]/sources/[source_id]
|
1430
|
-
# sources
|
1431
|
-
#
|
1412
|
+
# "organizations/[organization_id]/sources/[source_id],
|
1413
|
+
# folders/[folder_id]/sources/[source_id], or
|
1414
|
+
# projects/[project_id]/sources/[source_id]". To list across all sources
|
1415
|
+
# provide a source_id of `-`. For example:
|
1416
|
+
# organizations/\\{organization_id}/sources/-, folders/\\{folder_id}/sources/- or
|
1417
|
+
# projects/\\{projects_id}/sources/-
|
1432
1418
|
# @param filter [::String]
|
1433
1419
|
# Expression that defines the filter to apply across findings.
|
1434
1420
|
# The expression is a list of one or more restrictions combined via logical
|
@@ -1463,23 +1449,33 @@ module Google
|
|
1463
1449
|
# * category: `=`, `:`
|
1464
1450
|
# * external_uri: `=`, `:`
|
1465
1451
|
# * event_time: `=`, `>`, `<`, `>=`, `<=`
|
1466
|
-
# * severity: `=`, `:`
|
1467
1452
|
#
|
1468
1453
|
# Usage: This should be milliseconds since epoch or an RFC3339 string.
|
1469
1454
|
# Examples:
|
1470
1455
|
# `event_time = "2019-06-10T16:07:18-07:00"`
|
1471
1456
|
# `event_time = 1560208038000`
|
1472
1457
|
#
|
1473
|
-
#
|
1474
|
-
#
|
1458
|
+
# * severity: `=`, `:`
|
1459
|
+
# * workflow_state: `=`, `:`
|
1460
|
+
# * security_marks.marks: `=`, `:`
|
1461
|
+
# * source_properties: `=`, `:`, `>`, `<`, `>=`, `<=`
|
1475
1462
|
#
|
1476
|
-
#
|
1463
|
+
# For example, `source_properties.size = 100` is a valid filter string.
|
1477
1464
|
#
|
1478
|
-
#
|
1479
|
-
#
|
1465
|
+
# Use a partial match on the empty string to filter based on a property
|
1466
|
+
# existing: `source_properties.my_property : ""`
|
1480
1467
|
#
|
1481
|
-
#
|
1482
|
-
#
|
1468
|
+
# Use a negated partial match on the empty string to filter based on a
|
1469
|
+
# property not existing: `-source_properties.my_property : ""`
|
1470
|
+
#
|
1471
|
+
# * resource:
|
1472
|
+
# * resource.name: `=`, `:`
|
1473
|
+
# * resource.parent_name: `=`, `:`
|
1474
|
+
# * resource.parent_display_name: `=`, `:`
|
1475
|
+
# * resource.project_name: `=`, `:`
|
1476
|
+
# * resource.project_display_name: `=`, `:`
|
1477
|
+
# * resource.type: `=`, `:`
|
1478
|
+
# * resource.folders.resource_folder: `=`, `:`
|
1483
1479
|
# @param order_by [::String]
|
1484
1480
|
# Expression that defines what fields and order to use for sorting. The
|
1485
1481
|
# string value should follow SQL syntax: comma separated list of fields. For
|
@@ -1686,8 +1682,9 @@ module Google
|
|
1686
1682
|
# the default parameter values, pass an empty Hash as a request object (see above).
|
1687
1683
|
#
|
1688
1684
|
# @param parent [::String]
|
1689
|
-
# Required. Resource name of the parent of sources to list. Its format should
|
1690
|
-
#
|
1685
|
+
# Required. Resource name of the parent of sources to list. Its format should be
|
1686
|
+
# "organizations/[organization_id], folders/[folder_id], or
|
1687
|
+
# projects/[project_id]".
|
1691
1688
|
# @param page_token [::String]
|
1692
1689
|
# The value returned by the last `ListSourcesResponse`; indicates
|
1693
1690
|
# that this is a continuation of a prior `ListSources` call, and
|
@@ -82,7 +82,7 @@ module Google
|
|
82
82
|
# Create credentials
|
83
83
|
credentials = @config.credentials
|
84
84
|
credentials ||= Credentials.default scope: @config.scope
|
85
|
-
if credentials.is_a?(String) || credentials.is_a?(Hash)
|
85
|
+
if credentials.is_a?(::String) || credentials.is_a?(::Hash)
|
86
86
|
credentials = Credentials.new credentials, scope: @config.scope
|
87
87
|
end
|
88
88
|
@quota_project_id = @config.quota_project
|
@@ -396,9 +396,9 @@ module Google
|
|
396
396
|
end
|
397
397
|
|
398
398
|
##
|
399
|
-
# Waits
|
400
|
-
#
|
401
|
-
#
|
399
|
+
# Waits until the specified long-running operation is done or reaches at most
|
400
|
+
# a specified timeout, returning the latest state. If the operation is
|
401
|
+
# already done, the latest state is immediately returned. If the timeout
|
402
402
|
# specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
|
403
403
|
# timeout is used. If the server does not support this method, it returns
|
404
404
|
# `google.rpc.Code.UNIMPLEMENTED`.
|
@@ -27,20 +27,73 @@ module Google
|
|
27
27
|
##
|
28
28
|
# Create a fully-qualified Finding resource string.
|
29
29
|
#
|
30
|
-
#
|
30
|
+
# @overload finding_path(organization:, source:, finding:)
|
31
|
+
# The resource will be in the following format:
|
31
32
|
#
|
32
|
-
#
|
33
|
+
# `organizations/{organization}/sources/{source}/findings/{finding}`
|
33
34
|
#
|
34
|
-
#
|
35
|
-
#
|
36
|
-
#
|
35
|
+
# @param organization [String]
|
36
|
+
# @param source [String]
|
37
|
+
# @param finding [String]
|
38
|
+
#
|
39
|
+
# @overload finding_path(folder:, source:, finding:)
|
40
|
+
# The resource will be in the following format:
|
41
|
+
#
|
42
|
+
# `folders/{folder}/sources/{source}/findings/{finding}`
|
43
|
+
#
|
44
|
+
# @param folder [String]
|
45
|
+
# @param source [String]
|
46
|
+
# @param finding [String]
|
47
|
+
#
|
48
|
+
# @overload finding_path(project:, source:, finding:)
|
49
|
+
# The resource will be in the following format:
|
50
|
+
#
|
51
|
+
# `projects/{project}/sources/{source}/findings/{finding}`
|
52
|
+
#
|
53
|
+
# @param project [String]
|
54
|
+
# @param source [String]
|
55
|
+
# @param finding [String]
|
37
56
|
#
|
38
57
|
# @return [::String]
|
39
|
-
def finding_path
|
40
|
-
|
41
|
-
|
58
|
+
def finding_path **args
|
59
|
+
resources = {
|
60
|
+
"finding:organization:source" => (proc do |organization:, source:, finding:|
|
61
|
+
raise ::ArgumentError, "organization cannot contain /" if organization.to_s.include? "/"
|
62
|
+
raise ::ArgumentError, "source cannot contain /" if source.to_s.include? "/"
|
63
|
+
|
64
|
+
"organizations/#{organization}/sources/#{source}/findings/#{finding}"
|
65
|
+
end),
|
66
|
+
"finding:folder:source" => (proc do |folder:, source:, finding:|
|
67
|
+
raise ::ArgumentError, "folder cannot contain /" if folder.to_s.include? "/"
|
68
|
+
raise ::ArgumentError, "source cannot contain /" if source.to_s.include? "/"
|
69
|
+
|
70
|
+
"folders/#{folder}/sources/#{source}/findings/#{finding}"
|
71
|
+
end),
|
72
|
+
"finding:project:source" => (proc do |project:, source:, finding:|
|
73
|
+
raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
|
74
|
+
raise ::ArgumentError, "source cannot contain /" if source.to_s.include? "/"
|
42
75
|
|
43
|
-
|
76
|
+
"projects/#{project}/sources/#{source}/findings/#{finding}"
|
77
|
+
end)
|
78
|
+
}
|
79
|
+
|
80
|
+
resource = resources[args.keys.sort.join(":")]
|
81
|
+
raise ::ArgumentError, "no resource found for values #{args.keys}" if resource.nil?
|
82
|
+
resource.call(**args)
|
83
|
+
end
|
84
|
+
|
85
|
+
##
|
86
|
+
# Create a fully-qualified Folder resource string.
|
87
|
+
#
|
88
|
+
# The resource will be in the following format:
|
89
|
+
#
|
90
|
+
# `folders/{folder}`
|
91
|
+
#
|
92
|
+
# @param folder [String]
|
93
|
+
#
|
94
|
+
# @return [::String]
|
95
|
+
def folder_path folder:
|
96
|
+
"folders/#{folder}"
|
44
97
|
end
|
45
98
|
|
46
99
|
##
|
@@ -88,6 +141,20 @@ module Google
|
|
88
141
|
"organizations/#{organization}/organizationSettings"
|
89
142
|
end
|
90
143
|
|
144
|
+
##
|
145
|
+
# Create a fully-qualified Project resource string.
|
146
|
+
#
|
147
|
+
# The resource will be in the following format:
|
148
|
+
#
|
149
|
+
# `projects/{project}`
|
150
|
+
#
|
151
|
+
# @param project [String]
|
152
|
+
#
|
153
|
+
# @return [::String]
|
154
|
+
def project_path project:
|
155
|
+
"projects/#{project}"
|
156
|
+
end
|
157
|
+
|
91
158
|
##
|
92
159
|
# Create a fully-qualified SecurityMarks resource string.
|
93
160
|
#
|
@@ -108,6 +175,40 @@ module Google
|
|
108
175
|
# @param source [String]
|
109
176
|
# @param finding [String]
|
110
177
|
#
|
178
|
+
# @overload security_marks_path(folder:, asset:)
|
179
|
+
# The resource will be in the following format:
|
180
|
+
#
|
181
|
+
# `folders/{folder}/assets/{asset}/securityMarks`
|
182
|
+
#
|
183
|
+
# @param folder [String]
|
184
|
+
# @param asset [String]
|
185
|
+
#
|
186
|
+
# @overload security_marks_path(project:, asset:)
|
187
|
+
# The resource will be in the following format:
|
188
|
+
#
|
189
|
+
# `projects/{project}/assets/{asset}/securityMarks`
|
190
|
+
#
|
191
|
+
# @param project [String]
|
192
|
+
# @param asset [String]
|
193
|
+
#
|
194
|
+
# @overload security_marks_path(folder:, source:, finding:)
|
195
|
+
# The resource will be in the following format:
|
196
|
+
#
|
197
|
+
# `folders/{folder}/sources/{source}/findings/{finding}/securityMarks`
|
198
|
+
#
|
199
|
+
# @param folder [String]
|
200
|
+
# @param source [String]
|
201
|
+
# @param finding [String]
|
202
|
+
#
|
203
|
+
# @overload security_marks_path(project:, source:, finding:)
|
204
|
+
# The resource will be in the following format:
|
205
|
+
#
|
206
|
+
# `projects/{project}/sources/{source}/findings/{finding}/securityMarks`
|
207
|
+
#
|
208
|
+
# @param project [String]
|
209
|
+
# @param source [String]
|
210
|
+
# @param finding [String]
|
211
|
+
#
|
111
212
|
# @return [::String]
|
112
213
|
def security_marks_path **args
|
113
214
|
resources = {
|
@@ -121,6 +222,28 @@ module Google
|
|
121
222
|
raise ::ArgumentError, "source cannot contain /" if source.to_s.include? "/"
|
122
223
|
|
123
224
|
"organizations/#{organization}/sources/#{source}/findings/#{finding}/securityMarks"
|
225
|
+
end),
|
226
|
+
"asset:folder" => (proc do |folder:, asset:|
|
227
|
+
raise ::ArgumentError, "folder cannot contain /" if folder.to_s.include? "/"
|
228
|
+
|
229
|
+
"folders/#{folder}/assets/#{asset}/securityMarks"
|
230
|
+
end),
|
231
|
+
"asset:project" => (proc do |project:, asset:|
|
232
|
+
raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
|
233
|
+
|
234
|
+
"projects/#{project}/assets/#{asset}/securityMarks"
|
235
|
+
end),
|
236
|
+
"finding:folder:source" => (proc do |folder:, source:, finding:|
|
237
|
+
raise ::ArgumentError, "folder cannot contain /" if folder.to_s.include? "/"
|
238
|
+
raise ::ArgumentError, "source cannot contain /" if source.to_s.include? "/"
|
239
|
+
|
240
|
+
"folders/#{folder}/sources/#{source}/findings/#{finding}/securityMarks"
|
241
|
+
end),
|
242
|
+
"finding:project:source" => (proc do |project:, source:, finding:|
|
243
|
+
raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
|
244
|
+
raise ::ArgumentError, "source cannot contain /" if source.to_s.include? "/"
|
245
|
+
|
246
|
+
"projects/#{project}/sources/#{source}/findings/#{finding}/securityMarks"
|
124
247
|
end)
|
125
248
|
}
|
126
249
|
|
@@ -132,18 +255,53 @@ module Google
|
|
132
255
|
##
|
133
256
|
# Create a fully-qualified Source resource string.
|
134
257
|
#
|
135
|
-
#
|
258
|
+
# @overload source_path(organization:, source:)
|
259
|
+
# The resource will be in the following format:
|
136
260
|
#
|
137
|
-
#
|
261
|
+
# `organizations/{organization}/sources/{source}`
|
138
262
|
#
|
139
|
-
#
|
140
|
-
#
|
263
|
+
# @param organization [String]
|
264
|
+
# @param source [String]
|
265
|
+
#
|
266
|
+
# @overload source_path(folder:, source:)
|
267
|
+
# The resource will be in the following format:
|
268
|
+
#
|
269
|
+
# `folders/{folder}/sources/{source}`
|
270
|
+
#
|
271
|
+
# @param folder [String]
|
272
|
+
# @param source [String]
|
273
|
+
#
|
274
|
+
# @overload source_path(project:, source:)
|
275
|
+
# The resource will be in the following format:
|
276
|
+
#
|
277
|
+
# `projects/{project}/sources/{source}`
|
278
|
+
#
|
279
|
+
# @param project [String]
|
280
|
+
# @param source [String]
|
141
281
|
#
|
142
282
|
# @return [::String]
|
143
|
-
def source_path
|
144
|
-
|
283
|
+
def source_path **args
|
284
|
+
resources = {
|
285
|
+
"organization:source" => (proc do |organization:, source:|
|
286
|
+
raise ::ArgumentError, "organization cannot contain /" if organization.to_s.include? "/"
|
287
|
+
|
288
|
+
"organizations/#{organization}/sources/#{source}"
|
289
|
+
end),
|
290
|
+
"folder:source" => (proc do |folder:, source:|
|
291
|
+
raise ::ArgumentError, "folder cannot contain /" if folder.to_s.include? "/"
|
292
|
+
|
293
|
+
"folders/#{folder}/sources/#{source}"
|
294
|
+
end),
|
295
|
+
"project:source" => (proc do |project:, source:|
|
296
|
+
raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
|
297
|
+
|
298
|
+
"projects/#{project}/sources/#{source}"
|
299
|
+
end)
|
300
|
+
}
|
145
301
|
|
146
|
-
"
|
302
|
+
resource = resources[args.keys.sort.join(":")]
|
303
|
+
raise ::ArgumentError, "no resource found for values #{args.keys}" if resource.nil?
|
304
|
+
resource.call(**args)
|
147
305
|
end
|
148
306
|
|
149
307
|
##
|