google-cloud-security_center-v1 0.1.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.
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