google-cloud-security_center-v1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +12 -0
  3. data/AUTHENTICATION.md +169 -0
  4. data/LICENSE.md +203 -0
  5. data/README.md +71 -0
  6. data/lib/google/cloud/common_resources_pb.rb +15 -0
  7. data/lib/google/cloud/security_center/v1/security_center/client.rb +2673 -0
  8. data/lib/google/cloud/security_center/v1/security_center/credentials.rb +51 -0
  9. data/lib/google/cloud/security_center/v1/security_center/operations.rb +564 -0
  10. data/lib/google/cloud/security_center/v1/security_center/paths.rb +172 -0
  11. data/lib/google/cloud/security_center/v1/security_center.rb +50 -0
  12. data/lib/google/cloud/security_center/v1/version.rb +28 -0
  13. data/lib/google/cloud/security_center/v1.rb +35 -0
  14. data/lib/google/cloud/securitycenter/v1/asset_pb.rb +48 -0
  15. data/lib/google/cloud/securitycenter/v1/finding_pb.rb +43 -0
  16. data/lib/google/cloud/securitycenter/v1/notification_config_pb.rb +35 -0
  17. data/lib/google/cloud/securitycenter/v1/notification_message_pb.rb +27 -0
  18. data/lib/google/cloud/securitycenter/v1/organization_settings_pb.rb +37 -0
  19. data/lib/google/cloud/securitycenter/v1/run_asset_discovery_response_pb.rb +32 -0
  20. data/lib/google/cloud/securitycenter/v1/security_marks_pb.rb +25 -0
  21. data/lib/google/cloud/securitycenter/v1/securitycenter_service_pb.rb +237 -0
  22. data/lib/google/cloud/securitycenter/v1/securitycenter_service_services_pb.rb +105 -0
  23. data/lib/google/cloud/securitycenter/v1/source_pb.rb +26 -0
  24. data/lib/google-cloud-security_center-v1.rb +21 -0
  25. data/proto_docs/README.md +4 -0
  26. data/proto_docs/google/api/field_behavior.rb +59 -0
  27. data/proto_docs/google/api/resource.rb +247 -0
  28. data/proto_docs/google/cloud/securitycenter/v1/asset.rb +127 -0
  29. data/proto_docs/google/cloud/securitycenter/v1/finding.rb +113 -0
  30. data/proto_docs/google/cloud/securitycenter/v1/notification_config.rb +85 -0
  31. data/proto_docs/google/cloud/securitycenter/v1/notification_message.rb +39 -0
  32. data/proto_docs/google/cloud/securitycenter/v1/organization_settings.rb +82 -0
  33. data/proto_docs/google/cloud/securitycenter/v1/run_asset_discovery_response.rb +54 -0
  34. data/proto_docs/google/cloud/securitycenter/v1/security_marks.rb +61 -0
  35. data/proto_docs/google/cloud/securitycenter/v1/securitycenter_service.rb +1015 -0
  36. data/proto_docs/google/cloud/securitycenter/v1/source.rb +57 -0
  37. data/proto_docs/google/iam/v1/iam_policy.rb +80 -0
  38. data/proto_docs/google/iam/v1/options.rb +40 -0
  39. data/proto_docs/google/iam/v1/policy.rb +248 -0
  40. data/proto_docs/google/longrunning/operations.rb +150 -0
  41. data/proto_docs/google/protobuf/any.rb +138 -0
  42. data/proto_docs/google/protobuf/duration.rb +98 -0
  43. data/proto_docs/google/protobuf/empty.rb +36 -0
  44. data/proto_docs/google/protobuf/field_mask.rb +229 -0
  45. data/proto_docs/google/protobuf/struct.rb +96 -0
  46. data/proto_docs/google/protobuf/timestamp.rb +120 -0
  47. data/proto_docs/google/rpc/status.rb +46 -0
  48. data/proto_docs/google/type/expr.rb +52 -0
  49. metadata +222 -0
@@ -0,0 +1,1015 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2020 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Cloud
22
+ module SecurityCenter
23
+ module V1
24
+ # Request message for creating a finding.
25
+ # @!attribute [rw] parent
26
+ # @return [String]
27
+ # Required. Resource name of the new finding's parent. Its format should be
28
+ # "organizations/[organization_id]/sources/[source_id]".
29
+ # @!attribute [rw] finding_id
30
+ # @return [String]
31
+ # Required. Unique identifier provided by the client within the parent scope.
32
+ # It must be alphanumeric and less than or equal to 32 characters and
33
+ # greater than 0 characters in length.
34
+ # @!attribute [rw] finding
35
+ # @return [Google::Cloud::SecurityCenter::V1::Finding]
36
+ # Required. The Finding being created. The name and security_marks will be
37
+ # ignored as they are both output only fields on this resource.
38
+ class CreateFindingRequest
39
+ include Google::Protobuf::MessageExts
40
+ extend Google::Protobuf::MessageExts::ClassMethods
41
+ end
42
+
43
+ # Request message for creating a notification config.
44
+ # @!attribute [rw] parent
45
+ # @return [String]
46
+ # Required. Resource name of the new notification config's parent. Its format
47
+ # is "organizations/[organization_id]".
48
+ # @!attribute [rw] config_id
49
+ # @return [String]
50
+ # Required.
51
+ # Unique identifier provided by the client within the parent scope.
52
+ # It must be between 1 and 128 characters, and contains alphanumeric
53
+ # characters, underscores or hyphens only.
54
+ # @!attribute [rw] notification_config
55
+ # @return [Google::Cloud::SecurityCenter::V1::NotificationConfig]
56
+ # Required. The notification config being created. The name and the service
57
+ # account will be ignored as they are both output only fields on this
58
+ # resource.
59
+ class CreateNotificationConfigRequest
60
+ include Google::Protobuf::MessageExts
61
+ extend Google::Protobuf::MessageExts::ClassMethods
62
+ end
63
+
64
+ # Request message for creating a source.
65
+ # @!attribute [rw] parent
66
+ # @return [String]
67
+ # Required. Resource name of the new source's parent. Its format should be
68
+ # "organizations/[organization_id]".
69
+ # @!attribute [rw] source
70
+ # @return [Google::Cloud::SecurityCenter::V1::Source]
71
+ # Required. The Source being created, only the display_name and description
72
+ # will be used. All other fields will be ignored.
73
+ class CreateSourceRequest
74
+ include Google::Protobuf::MessageExts
75
+ extend Google::Protobuf::MessageExts::ClassMethods
76
+ end
77
+
78
+ # Request message for deleting a notification config.
79
+ # @!attribute [rw] name
80
+ # @return [String]
81
+ # Required. Name of the notification config to delete. Its format is
82
+ # "organizations/[organization_id]/notificationConfigs/[config_id]".
83
+ class DeleteNotificationConfigRequest
84
+ include Google::Protobuf::MessageExts
85
+ extend Google::Protobuf::MessageExts::ClassMethods
86
+ end
87
+
88
+ # Request message for getting a notification config.
89
+ # @!attribute [rw] name
90
+ # @return [String]
91
+ # Required. Name of the notification config to get. Its format is
92
+ # "organizations/[organization_id]/notificationConfigs/[config_id]".
93
+ class GetNotificationConfigRequest
94
+ include Google::Protobuf::MessageExts
95
+ extend Google::Protobuf::MessageExts::ClassMethods
96
+ end
97
+
98
+ # Request message for getting organization settings.
99
+ # @!attribute [rw] name
100
+ # @return [String]
101
+ # Required. Name of the organization to get organization settings for. Its
102
+ # format is "organizations/[organization_id]/organizationSettings".
103
+ class GetOrganizationSettingsRequest
104
+ include Google::Protobuf::MessageExts
105
+ extend Google::Protobuf::MessageExts::ClassMethods
106
+ end
107
+
108
+ # Request message for getting a source.
109
+ # @!attribute [rw] name
110
+ # @return [String]
111
+ # Required. Relative resource name of the source. Its format is
112
+ # "organizations/[organization_id]/source/[source_id]".
113
+ class GetSourceRequest
114
+ include Google::Protobuf::MessageExts
115
+ extend Google::Protobuf::MessageExts::ClassMethods
116
+ end
117
+
118
+ # Request message for grouping by assets.
119
+ # @!attribute [rw] parent
120
+ # @return [String]
121
+ # Required. Name of the organization to groupBy. Its format is
122
+ # "organizations/[organization_id]".
123
+ # @!attribute [rw] filter
124
+ # @return [String]
125
+ # Expression that defines the filter to apply across assets.
126
+ # The expression is a list of zero or more restrictions combined via logical
127
+ # operators `AND` and `OR`.
128
+ # Parentheses are supported, and `OR` has higher precedence than `AND`.
129
+ #
130
+ # Restrictions have the form `<field> <operator> <value>` and may have a `-`
131
+ # character in front of them to indicate negation. The fields map to those
132
+ # defined in the Asset resource. Examples include:
133
+ #
134
+ # * name
135
+ # * security_center_properties.resource_name
136
+ # * resource_properties.a_property
137
+ # * security_marks.marks.marka
138
+ #
139
+ # The supported operators are:
140
+ #
141
+ # * `=` for all value types.
142
+ # * `>`, `<`, `>=`, `<=` for integer values.
143
+ # * `:`, meaning substring matching, for strings.
144
+ #
145
+ # The supported value types are:
146
+ #
147
+ # * string literals in quotes.
148
+ # * integer literals without quotes.
149
+ # * boolean literals `true` and `false` without quotes.
150
+ #
151
+ # The following field and operator combinations are supported:
152
+ #
153
+ # * name: `=`
154
+ # * update_time: `=`, `>`, `<`, `>=`, `<=`
155
+ #
156
+ # Usage: This should be milliseconds since epoch or an RFC3339 string.
157
+ # Examples:
158
+ # "update_time = \"2019-06-10T16:07:18-07:00\""
159
+ # "update_time = 1560208038000"
160
+ #
161
+ # * create_time: `=`, `>`, `<`, `>=`, `<=`
162
+ #
163
+ # Usage: This should be milliseconds since epoch or an RFC3339 string.
164
+ # Examples:
165
+ # "create_time = \"2019-06-10T16:07:18-07:00\""
166
+ # "create_time = 1560208038000"
167
+ #
168
+ # * iam_policy.policy_blob: `=`, `:`
169
+ # * resource_properties: `=`, `:`, `>`, `<`, `>=`, `<=`
170
+ # * security_marks.marks: `=`, `:`
171
+ # * security_center_properties.resource_name: `=`, `:`
172
+ # * security_center_properties.resource_display_name: `=`, `:`
173
+ # * security_center_properties.resource_type: `=`, `:`
174
+ # * security_center_properties.resource_parent: `=`, `:`
175
+ # * security_center_properties.resource_parent_display_name: `=`, `:`
176
+ # * security_center_properties.resource_project: `=`, `:`
177
+ # * security_center_properties.resource_project_display_name: `=`, `:`
178
+ # * security_center_properties.resource_owners: `=`, `:`
179
+ #
180
+ # For example, `resource_properties.size = 100` is a valid filter string.
181
+ # @!attribute [rw] group_by
182
+ # @return [String]
183
+ # Required. Expression that defines what assets fields to use for grouping.
184
+ # The string value should follow SQL syntax: comma separated list of fields.
185
+ # For example:
186
+ # "security_center_properties.resource_project,security_center_properties.project".
187
+ #
188
+ # The following fields are supported when compare_duration is not set:
189
+ #
190
+ # * security_center_properties.resource_project
191
+ # * security_center_properties.resource_project_display_name
192
+ # * security_center_properties.resource_type
193
+ # * security_center_properties.resource_parent
194
+ # * security_center_properties.resource_parent_display_name
195
+ #
196
+ # The following fields are supported when compare_duration is set:
197
+ #
198
+ # * security_center_properties.resource_type
199
+ # * security_center_properties.resource_project_display_name
200
+ # * security_center_properties.resource_parent_display_name
201
+ # @!attribute [rw] compare_duration
202
+ # @return [Google::Protobuf::Duration]
203
+ # When compare_duration is set, the GroupResult's "state_change" property is
204
+ # updated to indicate whether the asset was added, removed, or remained
205
+ # present during the compare_duration period of time that precedes the
206
+ # read_time. This is the time between (read_time - compare_duration) and
207
+ # read_time.
208
+ #
209
+ # The state change value is derived based on the presence of the asset at the
210
+ # two points in time. Intermediate state changes between the two times don't
211
+ # affect the result. For example, the results aren't affected if the asset is
212
+ # removed and re-created again.
213
+ #
214
+ # Possible "state_change" values when compare_duration is specified:
215
+ #
216
+ # * "ADDED": indicates that the asset was not present at the start of
217
+ # compare_duration, but present at reference_time.
218
+ # * "REMOVED": indicates that the asset was present at the start of
219
+ # compare_duration, but not present at reference_time.
220
+ # * "ACTIVE": indicates that the asset was present at both the
221
+ # start and the end of the time period defined by
222
+ # compare_duration and reference_time.
223
+ #
224
+ # If compare_duration is not specified, then the only possible state_change
225
+ # is "UNUSED", which will be the state_change set for all assets present at
226
+ # read_time.
227
+ #
228
+ # If this field is set then `state_change` must be a specified field in
229
+ # `group_by`.
230
+ # @!attribute [rw] read_time
231
+ # @return [Google::Protobuf::Timestamp]
232
+ # Time used as a reference point when filtering assets. The filter is limited
233
+ # to assets existing at the supplied time and their values are those at that
234
+ # specific time. Absence of this field will default to the API's version of
235
+ # NOW.
236
+ # @!attribute [rw] page_token
237
+ # @return [String]
238
+ # The value returned by the last `GroupAssetsResponse`; indicates
239
+ # that this is a continuation of a prior `GroupAssets` call, and that the
240
+ # system should return the next page of data.
241
+ # @!attribute [rw] page_size
242
+ # @return [Integer]
243
+ # The maximum number of results to return in a single response. Default is
244
+ # 10, minimum is 1, maximum is 1000.
245
+ class GroupAssetsRequest
246
+ include Google::Protobuf::MessageExts
247
+ extend Google::Protobuf::MessageExts::ClassMethods
248
+ end
249
+
250
+ # Response message for grouping by assets.
251
+ # @!attribute [rw] group_by_results
252
+ # @return [Array<Google::Cloud::SecurityCenter::V1::GroupResult>]
253
+ # Group results. There exists an element for each existing unique
254
+ # combination of property/values. The element contains a count for the number
255
+ # of times those specific property/values appear.
256
+ # @!attribute [rw] read_time
257
+ # @return [Google::Protobuf::Timestamp]
258
+ # Time used for executing the groupBy request.
259
+ # @!attribute [rw] next_page_token
260
+ # @return [String]
261
+ # Token to retrieve the next page of results, or empty if there are no more
262
+ # results.
263
+ # @!attribute [rw] total_size
264
+ # @return [Integer]
265
+ # The total number of results matching the query.
266
+ class GroupAssetsResponse
267
+ include Google::Protobuf::MessageExts
268
+ extend Google::Protobuf::MessageExts::ClassMethods
269
+ end
270
+
271
+ # Request message for grouping by findings.
272
+ # @!attribute [rw] parent
273
+ # @return [String]
274
+ # Required. Name of the source to groupBy. Its format is
275
+ # "organizations/[organization_id]/sources/[source_id]". To groupBy across
276
+ # all sources provide a source_id of `-`. For example:
277
+ # organizations/\\{organization_id}/sources/-
278
+ # @!attribute [rw] filter
279
+ # @return [String]
280
+ # Expression that defines the filter to apply across findings.
281
+ # The expression is a list of one or more restrictions combined via logical
282
+ # operators `AND` and `OR`.
283
+ # Parentheses are supported, and `OR` has higher precedence than `AND`.
284
+ #
285
+ # Restrictions have the form `<field> <operator> <value>` and may have a `-`
286
+ # character in front of them to indicate negation. Examples include:
287
+ #
288
+ # * name
289
+ # * source_properties.a_property
290
+ # * security_marks.marks.marka
291
+ #
292
+ # The supported operators are:
293
+ #
294
+ # * `=` for all value types.
295
+ # * `>`, `<`, `>=`, `<=` for integer values.
296
+ # * `:`, meaning substring matching, for strings.
297
+ #
298
+ # The supported value types are:
299
+ #
300
+ # * string literals in quotes.
301
+ # * integer literals without quotes.
302
+ # * boolean literals `true` and `false` without quotes.
303
+ #
304
+ # The following field and operator combinations are supported:
305
+ #
306
+ # * name: `=`
307
+ # * parent: `=`, `:`
308
+ # * resource_name: `=`, `:`
309
+ # * state: `=`, `:`
310
+ # * category: `=`, `:`
311
+ # * external_uri: `=`, `:`
312
+ # * event_time: `=`, `>`, `<`, `>=`, `<=`
313
+ #
314
+ # Usage: This should be milliseconds since epoch or an RFC3339 string.
315
+ # Examples:
316
+ # "event_time = \"2019-06-10T16:07:18-07:00\""
317
+ # "event_time = 1560208038000"
318
+ #
319
+ # * security_marks.marks: `=`, `:`
320
+ # * source_properties: `=`, `:`, `>`, `<`, `>=`, `<=`
321
+ #
322
+ # For example, `source_properties.size = 100` is a valid filter string.
323
+ # @!attribute [rw] group_by
324
+ # @return [String]
325
+ # Required. Expression that defines what assets fields to use for grouping
326
+ # (including `state_change`). The string value should follow SQL syntax:
327
+ # comma separated list of fields. For example: "parent,resource_name".
328
+ #
329
+ # The following fields are supported:
330
+ #
331
+ # * resource_name
332
+ # * category
333
+ # * state
334
+ # * parent
335
+ #
336
+ # The following fields are supported when compare_duration is set:
337
+ #
338
+ # * state_change
339
+ # @!attribute [rw] read_time
340
+ # @return [Google::Protobuf::Timestamp]
341
+ # Time used as a reference point when filtering findings. The filter is
342
+ # limited to findings existing at the supplied time and their values are
343
+ # those at that specific time. Absence of this field will default to the
344
+ # API's version of NOW.
345
+ # @!attribute [rw] compare_duration
346
+ # @return [Google::Protobuf::Duration]
347
+ # When compare_duration is set, the GroupResult's "state_change" attribute is
348
+ # updated to indicate whether the finding had its state changed, the
349
+ # finding's state remained unchanged, or if the finding was added during the
350
+ # compare_duration period of time that precedes the read_time. This is the
351
+ # time between (read_time - compare_duration) and read_time.
352
+ #
353
+ # The state_change value is derived based on the presence and state of the
354
+ # finding at the two points in time. Intermediate state changes between the
355
+ # two times don't affect the result. For example, the results aren't affected
356
+ # if the finding is made inactive and then active again.
357
+ #
358
+ # Possible "state_change" values when compare_duration is specified:
359
+ #
360
+ # * "CHANGED": indicates that the finding was present and matched the given
361
+ # filter at the start of compare_duration, but changed its
362
+ # state at read_time.
363
+ # * "UNCHANGED": indicates that the finding was present and matched the given
364
+ # filter at the start of compare_duration and did not change
365
+ # state at read_time.
366
+ # * "ADDED": indicates that the finding did not match the given filter or
367
+ # was not present at the start of compare_duration, but was
368
+ # present at read_time.
369
+ # * "REMOVED": indicates that the finding was present and matched the
370
+ # filter at the start of compare_duration, but did not match
371
+ # the filter at read_time.
372
+ #
373
+ # If compare_duration is not specified, then the only possible state_change
374
+ # is "UNUSED", which will be the state_change set for all findings present
375
+ # at read_time.
376
+ #
377
+ # If this field is set then `state_change` must be a specified field in
378
+ # `group_by`.
379
+ # @!attribute [rw] page_token
380
+ # @return [String]
381
+ # The value returned by the last `GroupFindingsResponse`; indicates
382
+ # that this is a continuation of a prior `GroupFindings` call, and
383
+ # that the system should return the next page of data.
384
+ # @!attribute [rw] page_size
385
+ # @return [Integer]
386
+ # The maximum number of results to return in a single response. Default is
387
+ # 10, minimum is 1, maximum is 1000.
388
+ class GroupFindingsRequest
389
+ include Google::Protobuf::MessageExts
390
+ extend Google::Protobuf::MessageExts::ClassMethods
391
+ end
392
+
393
+ # Response message for group by findings.
394
+ # @!attribute [rw] group_by_results
395
+ # @return [Array<Google::Cloud::SecurityCenter::V1::GroupResult>]
396
+ # Group results. There exists an element for each existing unique
397
+ # combination of property/values. The element contains a count for the number
398
+ # of times those specific property/values appear.
399
+ # @!attribute [rw] read_time
400
+ # @return [Google::Protobuf::Timestamp]
401
+ # Time used for executing the groupBy request.
402
+ # @!attribute [rw] next_page_token
403
+ # @return [String]
404
+ # Token to retrieve the next page of results, or empty if there are no more
405
+ # results.
406
+ # @!attribute [rw] total_size
407
+ # @return [Integer]
408
+ # The total number of results matching the query.
409
+ class GroupFindingsResponse
410
+ include Google::Protobuf::MessageExts
411
+ extend Google::Protobuf::MessageExts::ClassMethods
412
+ end
413
+
414
+ # Result containing the properties and count of a groupBy request.
415
+ # @!attribute [rw] properties
416
+ # @return [Google::Protobuf::Map{String => Google::Protobuf::Value}]
417
+ # Properties matching the groupBy fields in the request.
418
+ # @!attribute [rw] count
419
+ # @return [Integer]
420
+ # Total count of resources for the given properties.
421
+ class GroupResult
422
+ include Google::Protobuf::MessageExts
423
+ extend Google::Protobuf::MessageExts::ClassMethods
424
+
425
+ # @!attribute [rw] key
426
+ # @return [String]
427
+ # @!attribute [rw] value
428
+ # @return [Google::Protobuf::Value]
429
+ class PropertiesEntry
430
+ include Google::Protobuf::MessageExts
431
+ extend Google::Protobuf::MessageExts::ClassMethods
432
+ end
433
+ end
434
+
435
+ # Request message for listing notification configs.
436
+ # @!attribute [rw] parent
437
+ # @return [String]
438
+ # Required. Name of the organization to list notification configs.
439
+ # Its format is "organizations/[organization_id]".
440
+ # @!attribute [rw] page_token
441
+ # @return [String]
442
+ # The value returned by the last `ListNotificationConfigsResponse`; indicates
443
+ # that this is a continuation of a prior `ListNotificationConfigs` call, and
444
+ # that the system should return the next page of data.
445
+ # @!attribute [rw] page_size
446
+ # @return [Integer]
447
+ # The maximum number of results to return in a single response. Default is
448
+ # 10, minimum is 1, maximum is 1000.
449
+ class ListNotificationConfigsRequest
450
+ include Google::Protobuf::MessageExts
451
+ extend Google::Protobuf::MessageExts::ClassMethods
452
+ end
453
+
454
+ # Response message for listing notification configs.
455
+ # @!attribute [rw] notification_configs
456
+ # @return [Array<Google::Cloud::SecurityCenter::V1::NotificationConfig>]
457
+ # Notification configs belonging to the requested parent.
458
+ # @!attribute [rw] next_page_token
459
+ # @return [String]
460
+ # Token to retrieve the next page of results, or empty if there are no more
461
+ # results.
462
+ class ListNotificationConfigsResponse
463
+ include Google::Protobuf::MessageExts
464
+ extend Google::Protobuf::MessageExts::ClassMethods
465
+ end
466
+
467
+ # Request message for listing sources.
468
+ # @!attribute [rw] parent
469
+ # @return [String]
470
+ # Required. Resource name of the parent of sources to list. Its format should
471
+ # be "organizations/[organization_id]".
472
+ # @!attribute [rw] page_token
473
+ # @return [String]
474
+ # The value returned by the last `ListSourcesResponse`; indicates
475
+ # that this is a continuation of a prior `ListSources` call, and
476
+ # that the system should return the next page of data.
477
+ # @!attribute [rw] page_size
478
+ # @return [Integer]
479
+ # The maximum number of results to return in a single response. Default is
480
+ # 10, minimum is 1, maximum is 1000.
481
+ class ListSourcesRequest
482
+ include Google::Protobuf::MessageExts
483
+ extend Google::Protobuf::MessageExts::ClassMethods
484
+ end
485
+
486
+ # Response message for listing sources.
487
+ # @!attribute [rw] sources
488
+ # @return [Array<Google::Cloud::SecurityCenter::V1::Source>]
489
+ # Sources belonging to the requested parent.
490
+ # @!attribute [rw] next_page_token
491
+ # @return [String]
492
+ # Token to retrieve the next page of results, or empty if there are no more
493
+ # results.
494
+ class ListSourcesResponse
495
+ include Google::Protobuf::MessageExts
496
+ extend Google::Protobuf::MessageExts::ClassMethods
497
+ end
498
+
499
+ # Request message for listing assets.
500
+ # @!attribute [rw] parent
501
+ # @return [String]
502
+ # Required. Name of the organization assets should belong to. Its format is
503
+ # "organizations/[organization_id]".
504
+ # @!attribute [rw] filter
505
+ # @return [String]
506
+ # Expression that defines the filter to apply across assets.
507
+ # The expression is a list of zero or more restrictions combined via logical
508
+ # operators `AND` and `OR`.
509
+ # Parentheses are supported, and `OR` has higher precedence than `AND`.
510
+ #
511
+ # Restrictions have the form `<field> <operator> <value>` and may have a `-`
512
+ # character in front of them to indicate negation. The fields map to those
513
+ # defined in the Asset resource. Examples include:
514
+ #
515
+ # * name
516
+ # * security_center_properties.resource_name
517
+ # * resource_properties.a_property
518
+ # * security_marks.marks.marka
519
+ #
520
+ # The supported operators are:
521
+ #
522
+ # * `=` for all value types.
523
+ # * `>`, `<`, `>=`, `<=` for integer values.
524
+ # * `:`, meaning substring matching, for strings.
525
+ #
526
+ # The supported value types are:
527
+ #
528
+ # * string literals in quotes.
529
+ # * integer literals without quotes.
530
+ # * boolean literals `true` and `false` without quotes.
531
+ #
532
+ # The following are the allowed field and operator combinations:
533
+ #
534
+ # * name: `=`
535
+ # * update_time: `=`, `>`, `<`, `>=`, `<=`
536
+ #
537
+ # Usage: This should be milliseconds since epoch or an RFC3339 string.
538
+ # Examples:
539
+ # "update_time = \"2019-06-10T16:07:18-07:00\""
540
+ # "update_time = 1560208038000"
541
+ #
542
+ # * create_time: `=`, `>`, `<`, `>=`, `<=`
543
+ #
544
+ # Usage: This should be milliseconds since epoch or an RFC3339 string.
545
+ # Examples:
546
+ # "create_time = \"2019-06-10T16:07:18-07:00\""
547
+ # "create_time = 1560208038000"
548
+ #
549
+ # * iam_policy.policy_blob: `=`, `:`
550
+ # * resource_properties: `=`, `:`, `>`, `<`, `>=`, `<=`
551
+ # * security_marks.marks: `=`, `:`
552
+ # * security_center_properties.resource_name: `=`, `:`
553
+ # * security_center_properties.resource_display_name: `=`, `:`
554
+ # * security_center_properties.resource_type: `=`, `:`
555
+ # * security_center_properties.resource_parent: `=`, `:`
556
+ # * security_center_properties.resource_parent_display_name: `=`, `:`
557
+ # * security_center_properties.resource_project: `=`, `:`
558
+ # * security_center_properties.resource_project_display_name: `=`, `:`
559
+ # * security_center_properties.resource_owners: `=`, `:`
560
+ #
561
+ # For example, `resource_properties.size = 100` is a valid filter string.
562
+ # @!attribute [rw] order_by
563
+ # @return [String]
564
+ # Expression that defines what fields and order to use for sorting. The
565
+ # string value should follow SQL syntax: comma separated list of fields. For
566
+ # example: "name,resource_properties.a_property". The default sorting order
567
+ # is ascending. To specify descending order for a field, a suffix " desc"
568
+ # should be appended to the field name. For example: "name
569
+ # desc,resource_properties.a_property". Redundant space characters in the
570
+ # syntax are insignificant. "name desc,resource_properties.a_property" and "
571
+ # name desc , resource_properties.a_property " are equivalent.
572
+ #
573
+ # The following fields are supported:
574
+ # name
575
+ # update_time
576
+ # resource_properties
577
+ # security_marks.marks
578
+ # security_center_properties.resource_name
579
+ # security_center_properties.resource_display_name
580
+ # security_center_properties.resource_parent
581
+ # security_center_properties.resource_parent_display_name
582
+ # security_center_properties.resource_project
583
+ # security_center_properties.resource_project_display_name
584
+ # security_center_properties.resource_type
585
+ # @!attribute [rw] read_time
586
+ # @return [Google::Protobuf::Timestamp]
587
+ # Time used as a reference point when filtering assets. The filter is limited
588
+ # to assets existing at the supplied time and their values are those at that
589
+ # specific time. Absence of this field will default to the API's version of
590
+ # NOW.
591
+ # @!attribute [rw] compare_duration
592
+ # @return [Google::Protobuf::Duration]
593
+ # When compare_duration is set, the ListAssetsResult's "state_change"
594
+ # attribute is updated to indicate whether the asset was added, removed, or
595
+ # remained present during the compare_duration period of time that precedes
596
+ # the read_time. This is the time between (read_time - compare_duration) and
597
+ # read_time.
598
+ #
599
+ # The state_change value is derived based on the presence of the asset at the
600
+ # two points in time. Intermediate state changes between the two times don't
601
+ # affect the result. For example, the results aren't affected if the asset is
602
+ # removed and re-created again.
603
+ #
604
+ # Possible "state_change" values when compare_duration is specified:
605
+ #
606
+ # * "ADDED": indicates that the asset was not present at the start of
607
+ # compare_duration, but present at read_time.
608
+ # * "REMOVED": indicates that the asset was present at the start of
609
+ # compare_duration, but not present at read_time.
610
+ # * "ACTIVE": indicates that the asset was present at both the
611
+ # start and the end of the time period defined by
612
+ # compare_duration and read_time.
613
+ #
614
+ # If compare_duration is not specified, then the only possible state_change
615
+ # is "UNUSED", which will be the state_change set for all assets present at
616
+ # read_time.
617
+ # @!attribute [rw] field_mask
618
+ # @return [Google::Protobuf::FieldMask]
619
+ # Optional. A field mask to specify the ListAssetsResult fields to be listed
620
+ # in the response. An empty field mask will list all fields.
621
+ # @!attribute [rw] page_token
622
+ # @return [String]
623
+ # The value returned by the last `ListAssetsResponse`; indicates
624
+ # that this is a continuation of a prior `ListAssets` call, and
625
+ # that the system should return the next page of data.
626
+ # @!attribute [rw] page_size
627
+ # @return [Integer]
628
+ # The maximum number of results to return in a single response. Default is
629
+ # 10, minimum is 1, maximum is 1000.
630
+ class ListAssetsRequest
631
+ include Google::Protobuf::MessageExts
632
+ extend Google::Protobuf::MessageExts::ClassMethods
633
+ end
634
+
635
+ # Response message for listing assets.
636
+ # @!attribute [rw] list_assets_results
637
+ # @return [Array<Google::Cloud::SecurityCenter::V1::ListAssetsResponse::ListAssetsResult>]
638
+ # Assets matching the list request.
639
+ # @!attribute [rw] read_time
640
+ # @return [Google::Protobuf::Timestamp]
641
+ # Time used for executing the list request.
642
+ # @!attribute [rw] next_page_token
643
+ # @return [String]
644
+ # Token to retrieve the next page of results, or empty if there are no more
645
+ # results.
646
+ # @!attribute [rw] total_size
647
+ # @return [Integer]
648
+ # The total number of assets matching the query.
649
+ class ListAssetsResponse
650
+ include Google::Protobuf::MessageExts
651
+ extend Google::Protobuf::MessageExts::ClassMethods
652
+
653
+ # Result containing the Asset and its State.
654
+ # @!attribute [rw] asset
655
+ # @return [Google::Cloud::SecurityCenter::V1::Asset]
656
+ # Asset matching the search request.
657
+ # @!attribute [rw] state_change
658
+ # @return [Google::Cloud::SecurityCenter::V1::ListAssetsResponse::ListAssetsResult::StateChange]
659
+ # State change of the asset between the points in time.
660
+ class ListAssetsResult
661
+ include Google::Protobuf::MessageExts
662
+ extend Google::Protobuf::MessageExts::ClassMethods
663
+
664
+ # The change in state of the asset.
665
+ #
666
+ # When querying across two points in time this describes
667
+ # the change between the two points: ADDED, REMOVED, or ACTIVE.
668
+ # If there was no compare_duration supplied in the request the state change
669
+ # will be: UNUSED
670
+ module StateChange
671
+ # State change is unused, this is the canonical default for this enum.
672
+ UNUSED = 0
673
+
674
+ # Asset was added between the points in time.
675
+ ADDED = 1
676
+
677
+ # Asset was removed between the points in time.
678
+ REMOVED = 2
679
+
680
+ # Asset was present at both point(s) in time.
681
+ ACTIVE = 3
682
+ end
683
+ end
684
+ end
685
+
686
+ # Request message for listing findings.
687
+ # @!attribute [rw] parent
688
+ # @return [String]
689
+ # Required. Name of the source the findings belong to. Its format is
690
+ # "organizations/[organization_id]/sources/[source_id]". To list across all
691
+ # sources provide a source_id of `-`. For example:
692
+ # organizations/\\{organization_id}/sources/-
693
+ # @!attribute [rw] filter
694
+ # @return [String]
695
+ # Expression that defines the filter to apply across findings.
696
+ # The expression is a list of one or more restrictions combined via logical
697
+ # operators `AND` and `OR`.
698
+ # Parentheses are supported, and `OR` has higher precedence than `AND`.
699
+ #
700
+ # Restrictions have the form `<field> <operator> <value>` and may have a `-`
701
+ # character in front of them to indicate negation. Examples include:
702
+ #
703
+ # * name
704
+ # * source_properties.a_property
705
+ # * security_marks.marks.marka
706
+ #
707
+ # The supported operators are:
708
+ #
709
+ # * `=` for all value types.
710
+ # * `>`, `<`, `>=`, `<=` for integer values.
711
+ # * `:`, meaning substring matching, for strings.
712
+ #
713
+ # The supported value types are:
714
+ #
715
+ # * string literals in quotes.
716
+ # * integer literals without quotes.
717
+ # * boolean literals `true` and `false` without quotes.
718
+ #
719
+ # The following field and operator combinations are supported:
720
+ #
721
+ # name: `=`
722
+ # parent: `=`, `:`
723
+ # resource_name: `=`, `:`
724
+ # state: `=`, `:`
725
+ # category: `=`, `:`
726
+ # external_uri: `=`, `:`
727
+ # event_time: `=`, `>`, `<`, `>=`, `<=`
728
+ #
729
+ # Usage: This should be milliseconds since epoch or an RFC3339 string.
730
+ # Examples:
731
+ # "event_time = \"2019-06-10T16:07:18-07:00\""
732
+ # "event_time = 1560208038000"
733
+ #
734
+ # security_marks.marks: `=`, `:`
735
+ # source_properties: `=`, `:`, `>`, `<`, `>=`, `<=`
736
+ #
737
+ # For example, `source_properties.size = 100` is a valid filter string.
738
+ # @!attribute [rw] order_by
739
+ # @return [String]
740
+ # Expression that defines what fields and order to use for sorting. The
741
+ # string value should follow SQL syntax: comma separated list of fields. For
742
+ # example: "name,resource_properties.a_property". The default sorting order
743
+ # is ascending. To specify descending order for a field, a suffix " desc"
744
+ # should be appended to the field name. For example: "name
745
+ # desc,source_properties.a_property". Redundant space characters in the
746
+ # syntax are insignificant. "name desc,source_properties.a_property" and "
747
+ # name desc , source_properties.a_property " are equivalent.
748
+ #
749
+ # The following fields are supported:
750
+ # name
751
+ # parent
752
+ # state
753
+ # category
754
+ # resource_name
755
+ # event_time
756
+ # source_properties
757
+ # security_marks.marks
758
+ # @!attribute [rw] read_time
759
+ # @return [Google::Protobuf::Timestamp]
760
+ # Time used as a reference point when filtering findings. The filter is
761
+ # limited to findings existing at the supplied time and their values are
762
+ # those at that specific time. Absence of this field will default to the
763
+ # API's version of NOW.
764
+ # @!attribute [rw] compare_duration
765
+ # @return [Google::Protobuf::Duration]
766
+ # When compare_duration is set, the ListFindingsResult's "state_change"
767
+ # attribute is updated to indicate whether the finding had its state changed,
768
+ # the finding's state remained unchanged, or if the finding was added in any
769
+ # state during the compare_duration period of time that precedes the
770
+ # read_time. This is the time between (read_time - compare_duration) and
771
+ # read_time.
772
+ #
773
+ # The state_change value is derived based on the presence and state of the
774
+ # finding at the two points in time. Intermediate state changes between the
775
+ # two times don't affect the result. For example, the results aren't affected
776
+ # if the finding is made inactive and then active again.
777
+ #
778
+ # Possible "state_change" values when compare_duration is specified:
779
+ #
780
+ # * "CHANGED": indicates that the finding was present and matched the given
781
+ # filter at the start of compare_duration, but changed its
782
+ # state at read_time.
783
+ # * "UNCHANGED": indicates that the finding was present and matched the given
784
+ # filter at the start of compare_duration and did not change
785
+ # state at read_time.
786
+ # * "ADDED": indicates that the finding did not match the given filter or
787
+ # was not present at the start of compare_duration, but was
788
+ # present at read_time.
789
+ # * "REMOVED": indicates that the finding was present and matched the
790
+ # filter at the start of compare_duration, but did not match
791
+ # the filter at read_time.
792
+ #
793
+ # If compare_duration is not specified, then the only possible state_change
794
+ # is "UNUSED", which will be the state_change set for all findings present at
795
+ # read_time.
796
+ # @!attribute [rw] field_mask
797
+ # @return [Google::Protobuf::FieldMask]
798
+ # Optional. A field mask to specify the Finding fields to be listed in the
799
+ # response. An empty field mask will list all fields.
800
+ # @!attribute [rw] page_token
801
+ # @return [String]
802
+ # The value returned by the last `ListFindingsResponse`; indicates
803
+ # that this is a continuation of a prior `ListFindings` call, and
804
+ # that the system should return the next page of data.
805
+ # @!attribute [rw] page_size
806
+ # @return [Integer]
807
+ # The maximum number of results to return in a single response. Default is
808
+ # 10, minimum is 1, maximum is 1000.
809
+ class ListFindingsRequest
810
+ include Google::Protobuf::MessageExts
811
+ extend Google::Protobuf::MessageExts::ClassMethods
812
+ end
813
+
814
+ # Response message for listing findings.
815
+ # @!attribute [rw] list_findings_results
816
+ # @return [Array<Google::Cloud::SecurityCenter::V1::ListFindingsResponse::ListFindingsResult>]
817
+ # Findings matching the list request.
818
+ # @!attribute [rw] read_time
819
+ # @return [Google::Protobuf::Timestamp]
820
+ # Time used for executing the list request.
821
+ # @!attribute [rw] next_page_token
822
+ # @return [String]
823
+ # Token to retrieve the next page of results, or empty if there are no more
824
+ # results.
825
+ # @!attribute [rw] total_size
826
+ # @return [Integer]
827
+ # The total number of findings matching the query.
828
+ class ListFindingsResponse
829
+ include Google::Protobuf::MessageExts
830
+ extend Google::Protobuf::MessageExts::ClassMethods
831
+
832
+ # Result containing the Finding and its StateChange.
833
+ # @!attribute [rw] finding
834
+ # @return [Google::Cloud::SecurityCenter::V1::Finding]
835
+ # Finding matching the search request.
836
+ # @!attribute [rw] state_change
837
+ # @return [Google::Cloud::SecurityCenter::V1::ListFindingsResponse::ListFindingsResult::StateChange]
838
+ # State change of the finding between the points in time.
839
+ # @!attribute [rw] resource
840
+ # @return [Google::Cloud::SecurityCenter::V1::ListFindingsResponse::ListFindingsResult::Resource]
841
+ # Output only. Resource that is associated with this finding.
842
+ class ListFindingsResult
843
+ include Google::Protobuf::MessageExts
844
+ extend Google::Protobuf::MessageExts::ClassMethods
845
+
846
+ # Information related to the Google Cloud Platform (GCP) resource that is
847
+ # associated with this finding.
848
+ # @!attribute [rw] name
849
+ # @return [String]
850
+ # The full resource name of the resource. See:
851
+ # https://cloud.google.com/apis/design/resource_names#full_resource_name
852
+ # @!attribute [rw] project_name
853
+ # @return [String]
854
+ # The full resource name of project that the resource belongs to.
855
+ # @!attribute [rw] project_display_name
856
+ # @return [String]
857
+ # The human readable name of project that the resource belongs to.
858
+ # @!attribute [rw] parent_name
859
+ # @return [String]
860
+ # The full resource name of resource's parent.
861
+ # @!attribute [rw] parent_display_name
862
+ # @return [String]
863
+ # The human readable name of resource's parent.
864
+ class Resource
865
+ include Google::Protobuf::MessageExts
866
+ extend Google::Protobuf::MessageExts::ClassMethods
867
+ end
868
+
869
+ # The change in state of the finding.
870
+ #
871
+ # When querying across two points in time this describes
872
+ # the change in the finding between the two points: CHANGED, UNCHANGED,
873
+ # ADDED, or REMOVED. Findings can not be deleted, so REMOVED implies that
874
+ # the finding at timestamp does not match the filter specified, but it did
875
+ # at timestamp - compare_duration. If there was no compare_duration
876
+ # supplied in the request the state change will be: UNUSED
877
+ module StateChange
878
+ # State change is unused, this is the canonical default for this enum.
879
+ UNUSED = 0
880
+
881
+ # The finding has changed state in some way between the points in time
882
+ # and existed at both points.
883
+ CHANGED = 1
884
+
885
+ # The finding has not changed state between the points in time and
886
+ # existed at both points.
887
+ UNCHANGED = 2
888
+
889
+ # The finding was created between the points in time.
890
+ ADDED = 3
891
+
892
+ # The finding at timestamp does not match the filter specified, but it
893
+ # did at timestamp - compare_duration.
894
+ REMOVED = 4
895
+ end
896
+ end
897
+ end
898
+
899
+ # Request message for updating a finding's state.
900
+ # @!attribute [rw] name
901
+ # @return [String]
902
+ # Required. The relative resource name of the finding. See:
903
+ # https://cloud.google.com/apis/design/resource_names#relative_resource_name
904
+ # Example:
905
+ # "organizations/\\{organization_id}/sources/\\{source_id}/finding/\\{finding_id}".
906
+ # @!attribute [rw] state
907
+ # @return [Google::Cloud::SecurityCenter::V1::Finding::State]
908
+ # Required. The desired State of the finding.
909
+ # @!attribute [rw] start_time
910
+ # @return [Google::Protobuf::Timestamp]
911
+ # Required. The time at which the updated state takes effect.
912
+ class SetFindingStateRequest
913
+ include Google::Protobuf::MessageExts
914
+ extend Google::Protobuf::MessageExts::ClassMethods
915
+ end
916
+
917
+ # Request message for running asset discovery for an organization.
918
+ # @!attribute [rw] parent
919
+ # @return [String]
920
+ # Required. Name of the organization to run asset discovery for. Its format
921
+ # is "organizations/[organization_id]".
922
+ class RunAssetDiscoveryRequest
923
+ include Google::Protobuf::MessageExts
924
+ extend Google::Protobuf::MessageExts::ClassMethods
925
+ end
926
+
927
+ # Request message for updating or creating a finding.
928
+ # @!attribute [rw] finding
929
+ # @return [Google::Cloud::SecurityCenter::V1::Finding]
930
+ # Required. The finding resource to update or create if it does not already
931
+ # exist. parent, security_marks, and update_time will be ignored.
932
+ #
933
+ # In the case of creation, the finding id portion of the name must be
934
+ # alphanumeric and less than or equal to 32 characters and greater than 0
935
+ # characters in length.
936
+ # @!attribute [rw] update_mask
937
+ # @return [Google::Protobuf::FieldMask]
938
+ # The FieldMask to use when updating the finding resource. This field should
939
+ # not be specified when creating a finding.
940
+ #
941
+ # When updating a finding, an empty mask is treated as updating all mutable
942
+ # fields and replacing source_properties. Individual source_properties can
943
+ # be added/updated by using "source_properties.<property key>" in the field
944
+ # mask.
945
+ class UpdateFindingRequest
946
+ include Google::Protobuf::MessageExts
947
+ extend Google::Protobuf::MessageExts::ClassMethods
948
+ end
949
+
950
+ # Request message for updating a notification config.
951
+ # @!attribute [rw] notification_config
952
+ # @return [Google::Cloud::SecurityCenter::V1::NotificationConfig]
953
+ # Required. The notification config to update.
954
+ # @!attribute [rw] update_mask
955
+ # @return [Google::Protobuf::FieldMask]
956
+ # The FieldMask to use when updating the notification config.
957
+ #
958
+ # If empty all mutable fields will be updated.
959
+ class UpdateNotificationConfigRequest
960
+ include Google::Protobuf::MessageExts
961
+ extend Google::Protobuf::MessageExts::ClassMethods
962
+ end
963
+
964
+ # Request message for updating an organization's settings.
965
+ # @!attribute [rw] organization_settings
966
+ # @return [Google::Cloud::SecurityCenter::V1::OrganizationSettings]
967
+ # Required. The organization settings resource to update.
968
+ # @!attribute [rw] update_mask
969
+ # @return [Google::Protobuf::FieldMask]
970
+ # The FieldMask to use when updating the settings resource.
971
+ #
972
+ # If empty all mutable fields will be updated.
973
+ class UpdateOrganizationSettingsRequest
974
+ include Google::Protobuf::MessageExts
975
+ extend Google::Protobuf::MessageExts::ClassMethods
976
+ end
977
+
978
+ # Request message for updating a source.
979
+ # @!attribute [rw] source
980
+ # @return [Google::Cloud::SecurityCenter::V1::Source]
981
+ # Required. The source resource to update.
982
+ # @!attribute [rw] update_mask
983
+ # @return [Google::Protobuf::FieldMask]
984
+ # The FieldMask to use when updating the source resource.
985
+ #
986
+ # If empty all mutable fields will be updated.
987
+ class UpdateSourceRequest
988
+ include Google::Protobuf::MessageExts
989
+ extend Google::Protobuf::MessageExts::ClassMethods
990
+ end
991
+
992
+ # Request message for updating a SecurityMarks resource.
993
+ # @!attribute [rw] security_marks
994
+ # @return [Google::Cloud::SecurityCenter::V1::SecurityMarks]
995
+ # Required. The security marks resource to update.
996
+ # @!attribute [rw] update_mask
997
+ # @return [Google::Protobuf::FieldMask]
998
+ # The FieldMask to use when updating the security marks resource.
999
+ #
1000
+ # The field mask must not contain duplicate fields.
1001
+ # If empty or set to "marks", all marks will be replaced. Individual
1002
+ # marks can be updated using "marks.<mark_key>".
1003
+ # @!attribute [rw] start_time
1004
+ # @return [Google::Protobuf::Timestamp]
1005
+ # The time at which the updated SecurityMarks take effect.
1006
+ # If not set uses current server time. Updates will be applied to the
1007
+ # SecurityMarks that are active immediately preceding this time.
1008
+ class UpdateSecurityMarksRequest
1009
+ include Google::Protobuf::MessageExts
1010
+ extend Google::Protobuf::MessageExts::ClassMethods
1011
+ end
1012
+ end
1013
+ end
1014
+ end
1015
+ end