google-apis-securitycenter_v1beta2 0.58.0 → 0.60.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -186,6 +186,35 @@ module Google
186
186
  end
187
187
  end
188
188
 
189
+ # Represents an application associated with a finding.
190
+ class Application
191
+ include Google::Apis::Core::Hashable
192
+
193
+ # The base URI that identifies the network location of the application in which
194
+ # the vulnerability was detected. Examples: http://11.22.33.44, http://foo.com,
195
+ # http://11.22.33.44:8080
196
+ # Corresponds to the JSON property `baseUri`
197
+ # @return [String]
198
+ attr_accessor :base_uri
199
+
200
+ # The full URI with payload that can be used to reproduce the vulnerability.
201
+ # Example: http://11.22.33.44/reflected/parameter/attribute/singlequoted/js?p=
202
+ # aMmYgI6H
203
+ # Corresponds to the JSON property `fullUri`
204
+ # @return [String]
205
+ attr_accessor :full_uri
206
+
207
+ def initialize(**args)
208
+ update!(**args)
209
+ end
210
+
211
+ # Update properties of this object
212
+ def update!(**args)
213
+ @base_uri = args[:base_uri] if args.key?(:base_uri)
214
+ @full_uri = args[:full_uri] if args.key?(:full_uri)
215
+ end
216
+ end
217
+
189
218
  # An attack exposure contains the results of an attack path simulation run.
190
219
  class AttackExposure
191
220
  include Google::Apis::Core::Hashable
@@ -249,6 +278,103 @@ module Google
249
278
  end
250
279
  end
251
280
 
281
+ # Information related to Google Cloud Backup and DR Service findings.
282
+ class BackupDisasterRecovery
283
+ include Google::Apis::Core::Hashable
284
+
285
+ # The name of the Backup and DR appliance that captures, moves, and manages the
286
+ # lifecycle of backup data. For example, “backup-server-57137”.
287
+ # Corresponds to the JSON property `appliance`
288
+ # @return [String]
289
+ attr_accessor :appliance
290
+
291
+ # The names of Backup and DR applications. An application is a VM, database, or
292
+ # file system on a managed host monitored by a backup and recovery appliance.
293
+ # For example, “centos7-01-vol00”, “centos7-01-vol01”, “centos7-01-vol02”.
294
+ # Corresponds to the JSON property `applications`
295
+ # @return [Array<String>]
296
+ attr_accessor :applications
297
+
298
+ # The timestamp at which the Backup and DR backup was created.
299
+ # Corresponds to the JSON property `backupCreateTime`
300
+ # @return [String]
301
+ attr_accessor :backup_create_time
302
+
303
+ # The name of a Backup and DR template which comprises one or more backup
304
+ # policies. See the [Backup and DR documentation](https://cloud.google.com/
305
+ # backup-disaster-recovery/docs/concepts/backup-plan#temp) for more information.
306
+ # For example, “snap-ov”.
307
+ # Corresponds to the JSON property `backupTemplate`
308
+ # @return [String]
309
+ attr_accessor :backup_template
310
+
311
+ # The backup type of the Backup and DR image. For example, “Snapshot”, “Remote
312
+ # Snapshot”, “OnVault”.
313
+ # Corresponds to the JSON property `backupType`
314
+ # @return [String]
315
+ attr_accessor :backup_type
316
+
317
+ # The name of a Backup and DR host, which is managed by the backup and recovery
318
+ # appliance and known to the management console. The host can be of type Generic
319
+ # (for example, Compute Engine, SQL Server, Oracle DB, SMB file system, etc.),
320
+ # vCenter, or an ESX server. See the [Backup and DR documentation on hosts](
321
+ # https://cloud.google.com/backup-disaster-recovery/docs/configuration/manage-
322
+ # hosts-and-their-applications) for more information. For example, “centos7-01”.
323
+ # Corresponds to the JSON property `host`
324
+ # @return [String]
325
+ attr_accessor :host
326
+
327
+ # The names of Backup and DR policies that are associated with a template and
328
+ # that define when to run a backup, how frequently to run a backup, and how long
329
+ # to retain the backup image. For example, “onvaults”.
330
+ # Corresponds to the JSON property `policies`
331
+ # @return [Array<String>]
332
+ attr_accessor :policies
333
+
334
+ # The names of Backup and DR advanced policy options of a policy applying to an
335
+ # application. See the [Backup and DR documentation on policy options](https://
336
+ # cloud.google.com/backup-disaster-recovery/docs/create-plan/policy-settings).
337
+ # For example, “skipofflineappsincongrp, nounmap”.
338
+ # Corresponds to the JSON property `policyOptions`
339
+ # @return [Array<String>]
340
+ attr_accessor :policy_options
341
+
342
+ # The name of the Backup and DR resource profile that specifies the storage
343
+ # media for backups of application and VM data. See the [Backup and DR
344
+ # documentation on profiles](https://cloud.google.com/backup-disaster-recovery/
345
+ # docs/concepts/backup-plan#profile). For example, “GCP”.
346
+ # Corresponds to the JSON property `profile`
347
+ # @return [String]
348
+ attr_accessor :profile
349
+
350
+ # The name of the Backup and DR storage pool that the backup and recovery
351
+ # appliance is storing data in. The storage pool could be of type Cloud, Primary,
352
+ # Snapshot, or OnVault. See the [Backup and DR documentation on storage pools](
353
+ # https://cloud.google.com/backup-disaster-recovery/docs/concepts/storage-pools).
354
+ # For example, “DiskPoolOne”.
355
+ # Corresponds to the JSON property `storagePool`
356
+ # @return [String]
357
+ attr_accessor :storage_pool
358
+
359
+ def initialize(**args)
360
+ update!(**args)
361
+ end
362
+
363
+ # Update properties of this object
364
+ def update!(**args)
365
+ @appliance = args[:appliance] if args.key?(:appliance)
366
+ @applications = args[:applications] if args.key?(:applications)
367
+ @backup_create_time = args[:backup_create_time] if args.key?(:backup_create_time)
368
+ @backup_template = args[:backup_template] if args.key?(:backup_template)
369
+ @backup_type = args[:backup_type] if args.key?(:backup_type)
370
+ @host = args[:host] if args.key?(:host)
371
+ @policies = args[:policies] if args.key?(:policies)
372
+ @policy_options = args[:policy_options] if args.key?(:policy_options)
373
+ @profile = args[:profile] if args.key?(:profile)
374
+ @storage_pool = args[:storage_pool] if args.key?(:storage_pool)
375
+ end
376
+ end
377
+
252
378
  # The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated
253
379
  # with the finding.
254
380
  class CloudDlpDataProfile
@@ -392,68 +518,6 @@ module Google
392
518
  end
393
519
  end
394
520
 
395
- # Result containing the properties and count of a ComplianceSnapshot request.
396
- class ComplianceSnapshot
397
- include Google::Apis::Core::Hashable
398
-
399
- # The category of Findings matching.
400
- # Corresponds to the JSON property `category`
401
- # @return [String]
402
- attr_accessor :category
403
-
404
- # The compliance standard (ie CIS).
405
- # Corresponds to the JSON property `complianceStandard`
406
- # @return [String]
407
- attr_accessor :compliance_standard
408
-
409
- # The compliance version (ie 1.3) in CIS 1.3.
410
- # Corresponds to the JSON property `complianceVersion`
411
- # @return [String]
412
- attr_accessor :compliance_version
413
-
414
- # Total count of findings for the given properties.
415
- # Corresponds to the JSON property `count`
416
- # @return [Fixnum]
417
- attr_accessor :count
418
-
419
- # The leaf container resource name that is closest to the snapshot.
420
- # Corresponds to the JSON property `leafContainerResource`
421
- # @return [String]
422
- attr_accessor :leaf_container_resource
423
-
424
- # The compliance snapshot name. Format: //sources//complianceSnapshots/
425
- # Corresponds to the JSON property `name`
426
- # @return [String]
427
- attr_accessor :name
428
-
429
- # The CRM resource display name that is closest to the snapshot the Findings
430
- # belong to.
431
- # Corresponds to the JSON property `projectDisplayName`
432
- # @return [String]
433
- attr_accessor :project_display_name
434
-
435
- # The snapshot time of the snapshot.
436
- # Corresponds to the JSON property `snapshotTime`
437
- # @return [String]
438
- attr_accessor :snapshot_time
439
-
440
- def initialize(**args)
441
- update!(**args)
442
- end
443
-
444
- # Update properties of this object
445
- def update!(**args)
446
- @category = args[:category] if args.key?(:category)
447
- @compliance_standard = args[:compliance_standard] if args.key?(:compliance_standard)
448
- @compliance_version = args[:compliance_version] if args.key?(:compliance_version)
449
- @count = args[:count] if args.key?(:count)
450
- @leaf_container_resource = args[:leaf_container_resource] if args.key?(:leaf_container_resource)
451
- @name = args[:name] if args.key?(:name)
452
- @project_display_name = args[:project_display_name] if args.key?(:project_display_name)
453
- @snapshot_time = args[:snapshot_time] if args.key?(:snapshot_time)
454
- end
455
- end
456
-
457
521
  # Configuration of a module.
458
522
  class Config
459
523
  include Google::Apis::Core::Hashable
@@ -895,6 +959,33 @@ module Google
895
959
  end
896
960
  end
897
961
 
962
+ # Path of the file in terms of underlying disk/partition identifiers.
963
+ class DiskPath
964
+ include Google::Apis::Core::Hashable
965
+
966
+ # UUID of the partition (format https://wiki.archlinux.org/title/
967
+ # persistent_block_device_naming#by-uuid)
968
+ # Corresponds to the JSON property `partitionUuid`
969
+ # @return [String]
970
+ attr_accessor :partition_uuid
971
+
972
+ # Relative path of the file in the partition as a JSON encoded string. Example: /
973
+ # home/user1/executable_file.sh
974
+ # Corresponds to the JSON property `relativePath`
975
+ # @return [String]
976
+ attr_accessor :relative_path
977
+
978
+ def initialize(**args)
979
+ update!(**args)
980
+ end
981
+
982
+ # Update properties of this object
983
+ def update!(**args)
984
+ @partition_uuid = args[:partition_uuid] if args.key?(:partition_uuid)
985
+ @relative_path = args[:relative_path] if args.key?(:relative_path)
986
+ end
987
+ end
988
+
898
989
  # A name-value pair representing an environment variable used in an operating
899
990
  # system process.
900
991
  class EnvironmentVariable
@@ -1093,6 +1184,11 @@ module Google
1093
1184
  # @return [String]
1094
1185
  attr_accessor :contents
1095
1186
 
1187
+ # Path of the file in terms of underlying disk/partition identifiers.
1188
+ # Corresponds to the JSON property `diskPath`
1189
+ # @return [Google::Apis::SecuritycenterV1beta2::DiskPath]
1190
+ attr_accessor :disk_path
1191
+
1096
1192
  # The length in bytes of the file prefix that was hashed. If hashed_size == size,
1097
1193
  # any hashes reported represent the entire file.
1098
1194
  # Corresponds to the JSON property `hashedSize`
@@ -1128,6 +1224,7 @@ module Google
1128
1224
  # Update properties of this object
1129
1225
  def update!(**args)
1130
1226
  @contents = args[:contents] if args.key?(:contents)
1227
+ @disk_path = args[:disk_path] if args.key?(:disk_path)
1131
1228
  @hashed_size = args[:hashed_size] if args.key?(:hashed_size)
1132
1229
  @partially_hashed = args[:partially_hashed] if args.key?(:partially_hashed)
1133
1230
  @path = args[:path] if args.key?(:path)
@@ -1149,11 +1246,21 @@ module Google
1149
1246
  # @return [Google::Apis::SecuritycenterV1beta2::Access]
1150
1247
  attr_accessor :access
1151
1248
 
1249
+ # Represents an application associated with a finding.
1250
+ # Corresponds to the JSON property `application`
1251
+ # @return [Google::Apis::SecuritycenterV1beta2::Application]
1252
+ attr_accessor :application
1253
+
1152
1254
  # An attack exposure contains the results of an attack path simulation run.
1153
1255
  # Corresponds to the JSON property `attackExposure`
1154
1256
  # @return [Google::Apis::SecuritycenterV1beta2::AttackExposure]
1155
1257
  attr_accessor :attack_exposure
1156
1258
 
1259
+ # Information related to Google Cloud Backup and DR Service findings.
1260
+ # Corresponds to the JSON property `backupDisasterRecovery`
1261
+ # @return [Google::Apis::SecuritycenterV1beta2::BackupDisasterRecovery]
1262
+ attr_accessor :backup_disaster_recovery
1263
+
1157
1264
  # The canonical name of the finding. It's either "organizations/`organization_id`
1158
1265
  # /sources/`source_id`/findings/`finding_id`", "folders/`folder_id`/sources/`
1159
1266
  # source_id`/findings/`finding_id`" or "projects/`project_number`/sources/`
@@ -1430,7 +1537,9 @@ module Google
1430
1537
  # Update properties of this object
1431
1538
  def update!(**args)
1432
1539
  @access = args[:access] if args.key?(:access)
1540
+ @application = args[:application] if args.key?(:application)
1433
1541
  @attack_exposure = args[:attack_exposure] if args.key?(:attack_exposure)
1542
+ @backup_disaster_recovery = args[:backup_disaster_recovery] if args.key?(:backup_disaster_recovery)
1434
1543
  @canonical_name = args[:canonical_name] if args.key?(:canonical_name)
1435
1544
  @category = args[:category] if args.key?(:category)
1436
1545
  @cloud_dlp_data_profile = args[:cloud_dlp_data_profile] if args.key?(:cloud_dlp_data_profile)
@@ -2586,89 +2695,68 @@ module Google
2586
2695
  end
2587
2696
  end
2588
2697
 
2589
- # Represents an access event.
2590
- class GoogleCloudSecuritycenterV2Access
2698
+ # Represents a particular IAM binding, which captures a member's role addition,
2699
+ # removal, or state.
2700
+ class IamBinding
2591
2701
  include Google::Apis::Core::Hashable
2592
2702
 
2593
- # Caller's IP address, such as "1.1.1.1".
2594
- # Corresponds to the JSON property `callerIp`
2703
+ # The action that was performed on a Binding.
2704
+ # Corresponds to the JSON property `action`
2595
2705
  # @return [String]
2596
- attr_accessor :caller_ip
2597
-
2598
- # Represents a geographical location for a given access.
2599
- # Corresponds to the JSON property `callerIpGeo`
2600
- # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Geolocation]
2601
- attr_accessor :caller_ip_geo
2706
+ attr_accessor :action
2602
2707
 
2603
- # The method that the service account called, e.g. "SetIamPolicy".
2604
- # Corresponds to the JSON property `methodName`
2708
+ # A single identity requesting access for a Cloud Platform resource, for example,
2709
+ # "foo@google.com".
2710
+ # Corresponds to the JSON property `member`
2605
2711
  # @return [String]
2606
- attr_accessor :method_name
2712
+ attr_accessor :member
2607
2713
 
2608
- # Associated email, such as "foo@google.com". The email address of the
2609
- # authenticated user or a service account acting on behalf of a third party
2610
- # principal making the request. For third party identity callers, the `
2611
- # principal_subject` field is populated instead of this field. For privacy
2612
- # reasons, the principal email address is sometimes redacted. For more
2613
- # information, see [Caller identities in audit logs](https://cloud.google.com/
2614
- # logging/docs/audit#user-id).
2615
- # Corresponds to the JSON property `principalEmail`
2714
+ # Role that is assigned to "members". For example, "roles/viewer", "roles/editor"
2715
+ # , or "roles/owner".
2716
+ # Corresponds to the JSON property `role`
2616
2717
  # @return [String]
2617
- attr_accessor :principal_email
2718
+ attr_accessor :role
2618
2719
 
2619
- # A string that represents the principal_subject that is associated with the
2620
- # identity. Unlike `principal_email`, `principal_subject` supports principals
2621
- # that aren't associated with email addresses, such as third party principals.
2622
- # For most identities, the format is `principal://iam.googleapis.com/`identity
2623
- # pool name`/subject/`subject``. Some GKE identities, such as GKE_WORKLOAD,
2624
- # FREEFORM, and GKE_HUB_WORKLOAD, still use the legacy format `serviceAccount:`
2625
- # identity pool name`[`subject`]`.
2626
- # Corresponds to the JSON property `principalSubject`
2627
- # @return [String]
2628
- attr_accessor :principal_subject
2720
+ def initialize(**args)
2721
+ update!(**args)
2722
+ end
2629
2723
 
2630
- # The identity delegation history of an authenticated service account that made
2631
- # the request. The `serviceAccountDelegationInfo[]` object contains information
2632
- # about the real authorities that try to access Google Cloud resources by
2633
- # delegating on a service account. When multiple authorities are present, they
2634
- # are guaranteed to be sorted based on the original ordering of the identity
2635
- # delegation events.
2636
- # Corresponds to the JSON property `serviceAccountDelegationInfo`
2637
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2ServiceAccountDelegationInfo>]
2638
- attr_accessor :service_account_delegation_info
2724
+ # Update properties of this object
2725
+ def update!(**args)
2726
+ @action = args[:action] if args.key?(:action)
2727
+ @member = args[:member] if args.key?(:member)
2728
+ @role = args[:role] if args.key?(:role)
2729
+ end
2730
+ end
2639
2731
 
2640
- # The name of the service account key that was used to create or exchange
2641
- # credentials when authenticating the service account that made the request.
2642
- # This is a scheme-less URI full resource name. For example: "//iam.googleapis.
2643
- # com/projects/`PROJECT_ID`/serviceAccounts/`ACCOUNT`/keys/`key`".
2644
- # Corresponds to the JSON property `serviceAccountKeyName`
2645
- # @return [String]
2646
- attr_accessor :service_account_key_name
2732
+ # Represents what's commonly known as an _indicator of compromise_ (IoC) in
2733
+ # computer forensics. This is an artifact observed on a network or in an
2734
+ # operating system that, with high confidence, indicates a computer intrusion.
2735
+ # For more information, see [Indicator of compromise](https://en.wikipedia.org/
2736
+ # wiki/Indicator_of_compromise).
2737
+ class Indicator
2738
+ include Google::Apis::Core::Hashable
2647
2739
 
2648
- # This is the API service that the service account made a call to, e.g. "iam.
2649
- # googleapis.com"
2650
- # Corresponds to the JSON property `serviceName`
2651
- # @return [String]
2652
- attr_accessor :service_name
2740
+ # List of domains associated to the Finding.
2741
+ # Corresponds to the JSON property `domains`
2742
+ # @return [Array<String>]
2743
+ attr_accessor :domains
2653
2744
 
2654
- # The caller's user agent string associated with the finding.
2655
- # Corresponds to the JSON property `userAgent`
2656
- # @return [String]
2657
- attr_accessor :user_agent
2745
+ # The list of IP addresses that are associated with the finding.
2746
+ # Corresponds to the JSON property `ipAddresses`
2747
+ # @return [Array<String>]
2748
+ attr_accessor :ip_addresses
2658
2749
 
2659
- # Type of user agent associated with the finding. For example, an operating
2660
- # system shell or an embedded or standalone application.
2661
- # Corresponds to the JSON property `userAgentFamily`
2662
- # @return [String]
2663
- attr_accessor :user_agent_family
2750
+ # The list of matched signatures indicating that the given process is present in
2751
+ # the environment.
2752
+ # Corresponds to the JSON property `signatures`
2753
+ # @return [Array<Google::Apis::SecuritycenterV1beta2::ProcessSignature>]
2754
+ attr_accessor :signatures
2664
2755
 
2665
- # A string that represents a username. The username provided depends on the type
2666
- # of the finding and is likely not an IAM principal. For example, this can be a
2667
- # system username if the finding is related to a virtual machine, or it can be
2668
- # an application login username.
2669
- # Corresponds to the JSON property `userName`
2670
- # @return [String]
2671
- attr_accessor :user_name
2756
+ # The list of URIs associated to the Findings.
2757
+ # Corresponds to the JSON property `uris`
2758
+ # @return [Array<String>]
2759
+ attr_accessor :uris
2672
2760
 
2673
2761
  def initialize(**args)
2674
2762
  update!(**args)
@@ -2676,2506 +2764,27 @@ module Google
2676
2764
 
2677
2765
  # Update properties of this object
2678
2766
  def update!(**args)
2679
- @caller_ip = args[:caller_ip] if args.key?(:caller_ip)
2680
- @caller_ip_geo = args[:caller_ip_geo] if args.key?(:caller_ip_geo)
2681
- @method_name = args[:method_name] if args.key?(:method_name)
2682
- @principal_email = args[:principal_email] if args.key?(:principal_email)
2683
- @principal_subject = args[:principal_subject] if args.key?(:principal_subject)
2684
- @service_account_delegation_info = args[:service_account_delegation_info] if args.key?(:service_account_delegation_info)
2685
- @service_account_key_name = args[:service_account_key_name] if args.key?(:service_account_key_name)
2686
- @service_name = args[:service_name] if args.key?(:service_name)
2687
- @user_agent = args[:user_agent] if args.key?(:user_agent)
2688
- @user_agent_family = args[:user_agent_family] if args.key?(:user_agent_family)
2689
- @user_name = args[:user_name] if args.key?(:user_name)
2767
+ @domains = args[:domains] if args.key?(:domains)
2768
+ @ip_addresses = args[:ip_addresses] if args.key?(:ip_addresses)
2769
+ @signatures = args[:signatures] if args.key?(:signatures)
2770
+ @uris = args[:uris] if args.key?(:uris)
2690
2771
  end
2691
2772
  end
2692
2773
 
2693
- # Conveys information about a Kubernetes access review (such as one returned by
2694
- # a [`kubectl auth can-i`](https://kubernetes.io/docs/reference/access-authn-
2695
- # authz/authorization/#checking-api-access) command) that was involved in a
2696
- # finding.
2697
- class GoogleCloudSecuritycenterV2AccessReview
2774
+ # Kernel mode rootkit signatures.
2775
+ class KernelRootkit
2698
2776
  include Google::Apis::Core::Hashable
2699
2777
 
2700
- # The API group of the resource. "*" means all.
2701
- # Corresponds to the JSON property `group`
2702
- # @return [String]
2703
- attr_accessor :group
2704
-
2705
- # The name of the resource being requested. Empty means all.
2778
+ # Rootkit name, when available.
2706
2779
  # Corresponds to the JSON property `name`
2707
2780
  # @return [String]
2708
2781
  attr_accessor :name
2709
2782
 
2710
- # Namespace of the action being requested. Currently, there is no distinction
2711
- # between no namespace and all namespaces. Both are represented by "" (empty).
2712
- # Corresponds to the JSON property `ns`
2713
- # @return [String]
2714
- attr_accessor :ns
2715
-
2716
- # The optional resource type requested. "*" means all.
2717
- # Corresponds to the JSON property `resource`
2718
- # @return [String]
2719
- attr_accessor :resource
2720
-
2721
- # The optional subresource type.
2722
- # Corresponds to the JSON property `subresource`
2723
- # @return [String]
2724
- attr_accessor :subresource
2725
-
2726
- # A Kubernetes resource API verb, like get, list, watch, create, update, delete,
2727
- # proxy. "*" means all.
2728
- # Corresponds to the JSON property `verb`
2729
- # @return [String]
2730
- attr_accessor :verb
2731
-
2732
- # The API version of the resource. "*" means all.
2733
- # Corresponds to the JSON property `version`
2734
- # @return [String]
2735
- attr_accessor :version
2736
-
2737
- def initialize(**args)
2738
- update!(**args)
2739
- end
2740
-
2741
- # Update properties of this object
2742
- def update!(**args)
2743
- @group = args[:group] if args.key?(:group)
2744
- @name = args[:name] if args.key?(:name)
2745
- @ns = args[:ns] if args.key?(:ns)
2746
- @resource = args[:resource] if args.key?(:resource)
2747
- @subresource = args[:subresource] if args.key?(:subresource)
2748
- @verb = args[:verb] if args.key?(:verb)
2749
- @version = args[:version] if args.key?(:version)
2750
- end
2751
- end
2752
-
2753
- # An attack exposure contains the results of an attack path simulation run.
2754
- class GoogleCloudSecuritycenterV2AttackExposure
2755
- include Google::Apis::Core::Hashable
2756
-
2757
- # The resource name of the attack path simulation result that contains the
2758
- # details regarding this attack exposure score. Example: organizations/123/
2759
- # attackExposureResults/456
2760
- # Corresponds to the JSON property `attackExposureResult`
2761
- # @return [String]
2762
- attr_accessor :attack_exposure_result
2763
-
2764
- # The number of high value resources that are exposed as a result of this
2765
- # finding.
2766
- # Corresponds to the JSON property `exposedHighValueResourcesCount`
2767
- # @return [Fixnum]
2768
- attr_accessor :exposed_high_value_resources_count
2769
-
2770
- # The number of high value resources that are exposed as a result of this
2771
- # finding.
2772
- # Corresponds to the JSON property `exposedLowValueResourcesCount`
2773
- # @return [Fixnum]
2774
- attr_accessor :exposed_low_value_resources_count
2775
-
2776
- # The number of medium value resources that are exposed as a result of this
2777
- # finding.
2778
- # Corresponds to the JSON property `exposedMediumValueResourcesCount`
2779
- # @return [Fixnum]
2780
- attr_accessor :exposed_medium_value_resources_count
2781
-
2782
- # The most recent time the attack exposure was updated on this finding.
2783
- # Corresponds to the JSON property `latestCalculationTime`
2784
- # @return [String]
2785
- attr_accessor :latest_calculation_time
2786
-
2787
- # A number between 0 (inclusive) and infinity that represents how important this
2788
- # finding is to remediate. The higher the score, the more important it is to
2789
- # remediate.
2790
- # Corresponds to the JSON property `score`
2791
- # @return [Float]
2792
- attr_accessor :score
2793
-
2794
- # Output only. What state this AttackExposure is in. This captures whether or
2795
- # not an attack exposure has been calculated or not.
2796
- # Corresponds to the JSON property `state`
2797
- # @return [String]
2798
- attr_accessor :state
2799
-
2800
- def initialize(**args)
2801
- update!(**args)
2802
- end
2803
-
2804
- # Update properties of this object
2805
- def update!(**args)
2806
- @attack_exposure_result = args[:attack_exposure_result] if args.key?(:attack_exposure_result)
2807
- @exposed_high_value_resources_count = args[:exposed_high_value_resources_count] if args.key?(:exposed_high_value_resources_count)
2808
- @exposed_low_value_resources_count = args[:exposed_low_value_resources_count] if args.key?(:exposed_low_value_resources_count)
2809
- @exposed_medium_value_resources_count = args[:exposed_medium_value_resources_count] if args.key?(:exposed_medium_value_resources_count)
2810
- @latest_calculation_time = args[:latest_calculation_time] if args.key?(:latest_calculation_time)
2811
- @score = args[:score] if args.key?(:score)
2812
- @state = args[:state] if args.key?(:state)
2813
- end
2814
- end
2815
-
2816
- # Configures how to deliver Findings to BigQuery Instance.
2817
- class GoogleCloudSecuritycenterV2BigQueryExport
2818
- include Google::Apis::Core::Hashable
2819
-
2820
- # Output only. The time at which the BigQuery export was created. This field is
2821
- # set by the server and will be ignored if provided on export on creation.
2822
- # Corresponds to the JSON property `createTime`
2823
- # @return [String]
2824
- attr_accessor :create_time
2825
-
2826
- # The dataset to write findings' updates to. Its format is "projects/[project_id]
2827
- # /datasets/[bigquery_dataset_id]". BigQuery Dataset unique ID must contain only
2828
- # letters (a-z, A-Z), numbers (0-9), or underscores (_).
2829
- # Corresponds to the JSON property `dataset`
2830
- # @return [String]
2831
- attr_accessor :dataset
2832
-
2833
- # The description of the export (max of 1024 characters).
2834
- # Corresponds to the JSON property `description`
2835
- # @return [String]
2836
- attr_accessor :description
2837
-
2838
- # Expression that defines the filter to apply across create/update events of
2839
- # findings. The expression is a list of zero or more restrictions combined via
2840
- # logical operators `AND` and `OR`. Parentheses are supported, and `OR` has
2841
- # higher precedence than `AND`. Restrictions have the form ` ` and may have a `-`
2842
- # character in front of them to indicate negation. The fields map to those
2843
- # defined in the corresponding resource. The supported operators are: * `=` for
2844
- # all value types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning
2845
- # substring matching, for strings. The supported value types are: * string
2846
- # literals in quotes. * integer literals without quotes. * boolean literals `
2847
- # true` and `false` without quotes.
2848
- # Corresponds to the JSON property `filter`
2849
- # @return [String]
2850
- attr_accessor :filter
2851
-
2852
- # Output only. Email address of the user who last edited the BigQuery export.
2853
- # This field is set by the server and will be ignored if provided on export
2854
- # creation or update.
2855
- # Corresponds to the JSON property `mostRecentEditor`
2856
- # @return [String]
2857
- attr_accessor :most_recent_editor
2858
-
2859
- # The relative resource name of this export. See: https://cloud.google.com/apis/
2860
- # design/resource_names#relative_resource_name. The following list shows some
2861
- # examples: + `organizations/`organization_id`/locations/`location_id`/
2862
- # bigQueryExports/`export_id`` + `folders/`folder_id`/locations/`location_id`/
2863
- # bigQueryExports/`export_id`` + `projects/`project_id`/locations/`location_id`/
2864
- # bigQueryExports/`export_id`` This field is provided in responses, and is
2865
- # ignored when provided in create requests.
2866
- # Corresponds to the JSON property `name`
2867
- # @return [String]
2868
- attr_accessor :name
2869
-
2870
- # Output only. The service account that needs permission to create table and
2871
- # upload data to the BigQuery dataset.
2872
- # Corresponds to the JSON property `principal`
2873
- # @return [String]
2874
- attr_accessor :principal
2875
-
2876
- # Output only. The most recent time at which the BigQuery export was updated.
2877
- # This field is set by the server and will be ignored if provided on export
2878
- # creation or update.
2879
- # Corresponds to the JSON property `updateTime`
2880
- # @return [String]
2881
- attr_accessor :update_time
2882
-
2883
- def initialize(**args)
2884
- update!(**args)
2885
- end
2886
-
2887
- # Update properties of this object
2888
- def update!(**args)
2889
- @create_time = args[:create_time] if args.key?(:create_time)
2890
- @dataset = args[:dataset] if args.key?(:dataset)
2891
- @description = args[:description] if args.key?(:description)
2892
- @filter = args[:filter] if args.key?(:filter)
2893
- @most_recent_editor = args[:most_recent_editor] if args.key?(:most_recent_editor)
2894
- @name = args[:name] if args.key?(:name)
2895
- @principal = args[:principal] if args.key?(:principal)
2896
- @update_time = args[:update_time] if args.key?(:update_time)
2897
- end
2898
- end
2899
-
2900
- # Represents a Kubernetes RoleBinding or ClusterRoleBinding.
2901
- class GoogleCloudSecuritycenterV2Binding
2902
- include Google::Apis::Core::Hashable
2903
-
2904
- # Name for the binding.
2905
- # Corresponds to the JSON property `name`
2906
- # @return [String]
2907
- attr_accessor :name
2908
-
2909
- # Namespace for the binding.
2910
- # Corresponds to the JSON property `ns`
2911
- # @return [String]
2912
- attr_accessor :ns
2913
-
2914
- # Kubernetes Role or ClusterRole.
2915
- # Corresponds to the JSON property `role`
2916
- # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Role]
2917
- attr_accessor :role
2918
-
2919
- # Represents one or more subjects that are bound to the role. Not always
2920
- # available for PATCH requests.
2921
- # Corresponds to the JSON property `subjects`
2922
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Subject>]
2923
- attr_accessor :subjects
2924
-
2925
- def initialize(**args)
2926
- update!(**args)
2927
- end
2928
-
2929
- # Update properties of this object
2930
- def update!(**args)
2931
- @name = args[:name] if args.key?(:name)
2932
- @ns = args[:ns] if args.key?(:ns)
2933
- @role = args[:role] if args.key?(:role)
2934
- @subjects = args[:subjects] if args.key?(:subjects)
2935
- end
2936
- end
2937
-
2938
- # The response to a BulkMute request. Contains the LRO information.
2939
- class GoogleCloudSecuritycenterV2BulkMuteFindingsResponse
2940
- include Google::Apis::Core::Hashable
2941
-
2942
- def initialize(**args)
2943
- update!(**args)
2944
- end
2945
-
2946
- # Update properties of this object
2947
- def update!(**args)
2948
- end
2949
- end
2950
-
2951
- # The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated
2952
- # with the finding.
2953
- class GoogleCloudSecuritycenterV2CloudDlpDataProfile
2954
- include Google::Apis::Core::Hashable
2955
-
2956
- # Name of the data profile, for example, `projects/123/locations/europe/
2957
- # tableProfiles/8383929`.
2958
- # Corresponds to the JSON property `dataProfile`
2959
- # @return [String]
2960
- attr_accessor :data_profile
2961
-
2962
- # The resource hierarchy level at which the data profile was generated.
2963
- # Corresponds to the JSON property `parentType`
2964
- # @return [String]
2965
- attr_accessor :parent_type
2966
-
2967
- def initialize(**args)
2968
- update!(**args)
2969
- end
2970
-
2971
- # Update properties of this object
2972
- def update!(**args)
2973
- @data_profile = args[:data_profile] if args.key?(:data_profile)
2974
- @parent_type = args[:parent_type] if args.key?(:parent_type)
2975
- end
2976
- end
2977
-
2978
- # Details about the Cloud Data Loss Prevention (Cloud DLP) [inspection job](
2979
- # https://cloud.google.com/dlp/docs/concepts-job-triggers) that produced the
2980
- # finding.
2981
- class GoogleCloudSecuritycenterV2CloudDlpInspection
2982
- include Google::Apis::Core::Hashable
2983
-
2984
- # Whether Cloud DLP scanned the complete resource or a sampled subset.
2985
- # Corresponds to the JSON property `fullScan`
2986
- # @return [Boolean]
2987
- attr_accessor :full_scan
2988
- alias_method :full_scan?, :full_scan
2989
-
2990
- # The type of information (or *[infoType](https://cloud.google.com/dlp/docs/
2991
- # infotypes-reference)*) found, for example, `EMAIL_ADDRESS` or `STREET_ADDRESS`.
2992
- # Corresponds to the JSON property `infoType`
2993
- # @return [String]
2994
- attr_accessor :info_type
2995
-
2996
- # The number of times Cloud DLP found this infoType within this job and resource.
2997
- # Corresponds to the JSON property `infoTypeCount`
2998
- # @return [Fixnum]
2999
- attr_accessor :info_type_count
3000
-
3001
- # Name of the inspection job, for example, `projects/123/locations/europe/
3002
- # dlpJobs/i-8383929`.
3003
- # Corresponds to the JSON property `inspectJob`
3004
- # @return [String]
3005
- attr_accessor :inspect_job
3006
-
3007
- def initialize(**args)
3008
- update!(**args)
3009
- end
3010
-
3011
- # Update properties of this object
3012
- def update!(**args)
3013
- @full_scan = args[:full_scan] if args.key?(:full_scan)
3014
- @info_type = args[:info_type] if args.key?(:info_type)
3015
- @info_type_count = args[:info_type_count] if args.key?(:info_type_count)
3016
- @inspect_job = args[:inspect_job] if args.key?(:inspect_job)
3017
- end
3018
- end
3019
-
3020
- # Metadata taken from a [Cloud Logging LogEntry](https://cloud.google.com/
3021
- # logging/docs/reference/v2/rest/v2/LogEntry)
3022
- class GoogleCloudSecuritycenterV2CloudLoggingEntry
3023
- include Google::Apis::Core::Hashable
3024
-
3025
- # A unique identifier for the log entry.
3026
- # Corresponds to the JSON property `insertId`
3027
- # @return [String]
3028
- attr_accessor :insert_id
3029
-
3030
- # The type of the log (part of `log_name`. `log_name` is the resource name of
3031
- # the log to which this log entry belongs). For example: `cloudresourcemanager.
3032
- # googleapis.com/activity` Note that this field is not URL-encoded, unlike in `
3033
- # LogEntry`.
3034
- # Corresponds to the JSON property `logId`
3035
- # @return [String]
3036
- attr_accessor :log_id
3037
-
3038
- # The organization, folder, or project of the monitored resource that produced
3039
- # this log entry.
3040
- # Corresponds to the JSON property `resourceContainer`
3041
- # @return [String]
3042
- attr_accessor :resource_container
3043
-
3044
- # The time the event described by the log entry occurred.
3045
- # Corresponds to the JSON property `timestamp`
3046
- # @return [String]
3047
- attr_accessor :timestamp
3048
-
3049
- def initialize(**args)
3050
- update!(**args)
3051
- end
3052
-
3053
- # Update properties of this object
3054
- def update!(**args)
3055
- @insert_id = args[:insert_id] if args.key?(:insert_id)
3056
- @log_id = args[:log_id] if args.key?(:log_id)
3057
- @resource_container = args[:resource_container] if args.key?(:resource_container)
3058
- @timestamp = args[:timestamp] if args.key?(:timestamp)
3059
- end
3060
- end
3061
-
3062
- # Contains compliance information about a security standard indicating unmet
3063
- # recommendations.
3064
- class GoogleCloudSecuritycenterV2Compliance
3065
- include Google::Apis::Core::Hashable
3066
-
3067
- # Policies within the standard or benchmark, for example, A.12.4.1
3068
- # Corresponds to the JSON property `ids`
3069
- # @return [Array<String>]
3070
- attr_accessor :ids
3071
-
3072
- # Industry-wide compliance standards or benchmarks, such as CIS, PCI, and OWASP.
3073
- # Corresponds to the JSON property `standard`
3074
- # @return [String]
3075
- attr_accessor :standard
3076
-
3077
- # Version of the standard or benchmark, for example, 1.1
3078
- # Corresponds to the JSON property `version`
3079
- # @return [String]
3080
- attr_accessor :version
3081
-
3082
- def initialize(**args)
3083
- update!(**args)
3084
- end
3085
-
3086
- # Update properties of this object
3087
- def update!(**args)
3088
- @ids = args[:ids] if args.key?(:ids)
3089
- @standard = args[:standard] if args.key?(:standard)
3090
- @version = args[:version] if args.key?(:version)
3091
- end
3092
- end
3093
-
3094
- # Contains information about the IP connection associated with the finding.
3095
- class GoogleCloudSecuritycenterV2Connection
3096
- include Google::Apis::Core::Hashable
3097
-
3098
- # Destination IP address. Not present for sockets that are listening and not
3099
- # connected.
3100
- # Corresponds to the JSON property `destinationIp`
3101
- # @return [String]
3102
- attr_accessor :destination_ip
3103
-
3104
- # Destination port. Not present for sockets that are listening and not connected.
3105
- # Corresponds to the JSON property `destinationPort`
3106
- # @return [Fixnum]
3107
- attr_accessor :destination_port
3108
-
3109
- # IANA Internet Protocol Number such as TCP(6) and UDP(17).
3110
- # Corresponds to the JSON property `protocol`
3111
- # @return [String]
3112
- attr_accessor :protocol
3113
-
3114
- # Source IP address.
3115
- # Corresponds to the JSON property `sourceIp`
3116
- # @return [String]
3117
- attr_accessor :source_ip
3118
-
3119
- # Source port.
3120
- # Corresponds to the JSON property `sourcePort`
3121
- # @return [Fixnum]
3122
- attr_accessor :source_port
3123
-
3124
- def initialize(**args)
3125
- update!(**args)
3126
- end
3127
-
3128
- # Update properties of this object
3129
- def update!(**args)
3130
- @destination_ip = args[:destination_ip] if args.key?(:destination_ip)
3131
- @destination_port = args[:destination_port] if args.key?(:destination_port)
3132
- @protocol = args[:protocol] if args.key?(:protocol)
3133
- @source_ip = args[:source_ip] if args.key?(:source_ip)
3134
- @source_port = args[:source_port] if args.key?(:source_port)
3135
- end
3136
- end
3137
-
3138
- # The email address of a contact.
3139
- class GoogleCloudSecuritycenterV2Contact
3140
- include Google::Apis::Core::Hashable
3141
-
3142
- # An email address. For example, "`person123@company.com`".
3143
- # Corresponds to the JSON property `email`
3144
- # @return [String]
3145
- attr_accessor :email
3146
-
3147
- def initialize(**args)
3148
- update!(**args)
3149
- end
3150
-
3151
- # Update properties of this object
3152
- def update!(**args)
3153
- @email = args[:email] if args.key?(:email)
3154
- end
3155
- end
3156
-
3157
- # Details about specific contacts
3158
- class GoogleCloudSecuritycenterV2ContactDetails
3159
- include Google::Apis::Core::Hashable
3160
-
3161
- # A list of contacts
3162
- # Corresponds to the JSON property `contacts`
3163
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Contact>]
3164
- attr_accessor :contacts
3165
-
3166
- def initialize(**args)
3167
- update!(**args)
3168
- end
3169
-
3170
- # Update properties of this object
3171
- def update!(**args)
3172
- @contacts = args[:contacts] if args.key?(:contacts)
3173
- end
3174
- end
3175
-
3176
- # Container associated with the finding.
3177
- class GoogleCloudSecuritycenterV2Container
3178
- include Google::Apis::Core::Hashable
3179
-
3180
- # The time that the container was created.
3181
- # Corresponds to the JSON property `createTime`
3182
- # @return [String]
3183
- attr_accessor :create_time
3184
-
3185
- # Optional container image ID, if provided by the container runtime. Uniquely
3186
- # identifies the container image launched using a container image digest.
3187
- # Corresponds to the JSON property `imageId`
3188
- # @return [String]
3189
- attr_accessor :image_id
3190
-
3191
- # Container labels, as provided by the container runtime.
3192
- # Corresponds to the JSON property `labels`
3193
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Label>]
3194
- attr_accessor :labels
3195
-
3196
- # Name of the container.
3197
- # Corresponds to the JSON property `name`
3198
- # @return [String]
3199
- attr_accessor :name
3200
-
3201
- # Container image URI provided when configuring a pod or container. This string
3202
- # can identify a container image version using mutable tags.
3203
- # Corresponds to the JSON property `uri`
3204
- # @return [String]
3205
- attr_accessor :uri
3206
-
3207
- def initialize(**args)
3208
- update!(**args)
3209
- end
3210
-
3211
- # Update properties of this object
3212
- def update!(**args)
3213
- @create_time = args[:create_time] if args.key?(:create_time)
3214
- @image_id = args[:image_id] if args.key?(:image_id)
3215
- @labels = args[:labels] if args.key?(:labels)
3216
- @name = args[:name] if args.key?(:name)
3217
- @uri = args[:uri] if args.key?(:uri)
3218
- end
3219
- end
3220
-
3221
- # CVE stands for Common Vulnerabilities and Exposures. More information: https://
3222
- # cve.mitre.org
3223
- class GoogleCloudSecuritycenterV2Cve
3224
- include Google::Apis::Core::Hashable
3225
-
3226
- # Common Vulnerability Scoring System version 3.
3227
- # Corresponds to the JSON property `cvssv3`
3228
- # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Cvssv3]
3229
- attr_accessor :cvssv3
3230
-
3231
- # The unique identifier for the vulnerability. e.g. CVE-2021-34527
3232
- # Corresponds to the JSON property `id`
3233
- # @return [String]
3234
- attr_accessor :id
3235
-
3236
- # Additional information about the CVE. e.g. https://cve.mitre.org/cgi-bin/
3237
- # cvename.cgi?name=CVE-2021-34527
3238
- # Corresponds to the JSON property `references`
3239
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Reference>]
3240
- attr_accessor :references
3241
-
3242
- # Whether upstream fix is available for the CVE.
3243
- # Corresponds to the JSON property `upstreamFixAvailable`
3244
- # @return [Boolean]
3245
- attr_accessor :upstream_fix_available
3246
- alias_method :upstream_fix_available?, :upstream_fix_available
3247
-
3248
- def initialize(**args)
3249
- update!(**args)
3250
- end
3251
-
3252
- # Update properties of this object
3253
- def update!(**args)
3254
- @cvssv3 = args[:cvssv3] if args.key?(:cvssv3)
3255
- @id = args[:id] if args.key?(:id)
3256
- @references = args[:references] if args.key?(:references)
3257
- @upstream_fix_available = args[:upstream_fix_available] if args.key?(:upstream_fix_available)
3258
- end
3259
- end
3260
-
3261
- # Common Vulnerability Scoring System version 3.
3262
- class GoogleCloudSecuritycenterV2Cvssv3
3263
- include Google::Apis::Core::Hashable
3264
-
3265
- # This metric describes the conditions beyond the attacker's control that must
3266
- # exist in order to exploit the vulnerability.
3267
- # Corresponds to the JSON property `attackComplexity`
3268
- # @return [String]
3269
- attr_accessor :attack_complexity
3270
-
3271
- # Base Metrics Represents the intrinsic characteristics of a vulnerability that
3272
- # are constant over time and across user environments. This metric reflects the
3273
- # context by which vulnerability exploitation is possible.
3274
- # Corresponds to the JSON property `attackVector`
3275
- # @return [String]
3276
- attr_accessor :attack_vector
3277
-
3278
- # This metric measures the impact to the availability of the impacted component
3279
- # resulting from a successfully exploited vulnerability.
3280
- # Corresponds to the JSON property `availabilityImpact`
3281
- # @return [String]
3282
- attr_accessor :availability_impact
3283
-
3284
- # The base score is a function of the base metric scores.
3285
- # Corresponds to the JSON property `baseScore`
3286
- # @return [Float]
3287
- attr_accessor :base_score
3288
-
3289
- # This metric measures the impact to the confidentiality of the information
3290
- # resources managed by a software component due to a successfully exploited
3291
- # vulnerability.
3292
- # Corresponds to the JSON property `confidentialityImpact`
3293
- # @return [String]
3294
- attr_accessor :confidentiality_impact
3295
-
3296
- # This metric measures the impact to integrity of a successfully exploited
3297
- # vulnerability.
3298
- # Corresponds to the JSON property `integrityImpact`
3299
- # @return [String]
3300
- attr_accessor :integrity_impact
3301
-
3302
- # This metric describes the level of privileges an attacker must possess before
3303
- # successfully exploiting the vulnerability.
3304
- # Corresponds to the JSON property `privilegesRequired`
3305
- # @return [String]
3306
- attr_accessor :privileges_required
3307
-
3308
- # The Scope metric captures whether a vulnerability in one vulnerable component
3309
- # impacts resources in components beyond its security scope.
3310
- # Corresponds to the JSON property `scope`
3311
- # @return [String]
3312
- attr_accessor :scope
3313
-
3314
- # This metric captures the requirement for a human user, other than the attacker,
3315
- # to participate in the successful compromise of the vulnerable component.
3316
- # Corresponds to the JSON property `userInteraction`
3317
- # @return [String]
3318
- attr_accessor :user_interaction
3319
-
3320
- def initialize(**args)
3321
- update!(**args)
3322
- end
3323
-
3324
- # Update properties of this object
3325
- def update!(**args)
3326
- @attack_complexity = args[:attack_complexity] if args.key?(:attack_complexity)
3327
- @attack_vector = args[:attack_vector] if args.key?(:attack_vector)
3328
- @availability_impact = args[:availability_impact] if args.key?(:availability_impact)
3329
- @base_score = args[:base_score] if args.key?(:base_score)
3330
- @confidentiality_impact = args[:confidentiality_impact] if args.key?(:confidentiality_impact)
3331
- @integrity_impact = args[:integrity_impact] if args.key?(:integrity_impact)
3332
- @privileges_required = args[:privileges_required] if args.key?(:privileges_required)
3333
- @scope = args[:scope] if args.key?(:scope)
3334
- @user_interaction = args[:user_interaction] if args.key?(:user_interaction)
3335
- end
3336
- end
3337
-
3338
- # Represents database access information, such as queries. A database may be a
3339
- # sub-resource of an instance (as in the case of Cloud SQL instances or Cloud
3340
- # Spanner instances), or the database instance itself. Some database resources
3341
- # might not have the [full resource name](https://google.aip.dev/122#full-
3342
- # resource-names) populated because these resource types, such as Cloud SQL
3343
- # databases, are not yet supported by Cloud Asset Inventory. In these cases only
3344
- # the display name is provided.
3345
- class GoogleCloudSecuritycenterV2Database
3346
- include Google::Apis::Core::Hashable
3347
-
3348
- # The human-readable name of the database that the user connected to.
3349
- # Corresponds to the JSON property `displayName`
3350
- # @return [String]
3351
- attr_accessor :display_name
3352
-
3353
- # The target usernames, roles, or groups of an SQL privilege grant, which is not
3354
- # an IAM policy change.
3355
- # Corresponds to the JSON property `grantees`
3356
- # @return [Array<String>]
3357
- attr_accessor :grantees
3358
-
3359
- # Some database resources may not have the [full resource name](https://google.
3360
- # aip.dev/122#full-resource-names) populated because these resource types are
3361
- # not yet supported by Cloud Asset Inventory (e.g. Cloud SQL databases). In
3362
- # these cases only the display name will be provided. The [full resource name](
3363
- # https://google.aip.dev/122#full-resource-names) of the database that the user
3364
- # connected to, if it is supported by Cloud Asset Inventory.
3365
- # Corresponds to the JSON property `name`
3366
- # @return [String]
3367
- attr_accessor :name
3368
-
3369
- # The SQL statement that is associated with the database access.
3370
- # Corresponds to the JSON property `query`
3371
- # @return [String]
3372
- attr_accessor :query
3373
-
3374
- # The username used to connect to the database. The username might not be an IAM
3375
- # principal and does not have a set format.
3376
- # Corresponds to the JSON property `userName`
3377
- # @return [String]
3378
- attr_accessor :user_name
3379
-
3380
- # The version of the database, for example, POSTGRES_14. See [the complete list](
3381
- # https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1/SqlDatabaseVersion).
3382
- # Corresponds to the JSON property `version`
3383
- # @return [String]
3384
- attr_accessor :version
3385
-
3386
- def initialize(**args)
3387
- update!(**args)
3388
- end
3389
-
3390
- # Update properties of this object
3391
- def update!(**args)
3392
- @display_name = args[:display_name] if args.key?(:display_name)
3393
- @grantees = args[:grantees] if args.key?(:grantees)
3394
- @name = args[:name] if args.key?(:name)
3395
- @query = args[:query] if args.key?(:query)
3396
- @user_name = args[:user_name] if args.key?(:user_name)
3397
- @version = args[:version] if args.key?(:version)
3398
- end
3399
- end
3400
-
3401
- # Memory hash detection contributing to the binary family match.
3402
- class GoogleCloudSecuritycenterV2Detection
3403
- include Google::Apis::Core::Hashable
3404
-
3405
- # The name of the binary associated with the memory hash signature detection.
3406
- # Corresponds to the JSON property `binary`
3407
- # @return [String]
3408
- attr_accessor :binary
3409
-
3410
- # The percentage of memory page hashes in the signature that were matched.
3411
- # Corresponds to the JSON property `percentPagesMatched`
3412
- # @return [Float]
3413
- attr_accessor :percent_pages_matched
3414
-
3415
- def initialize(**args)
3416
- update!(**args)
3417
- end
3418
-
3419
- # Update properties of this object
3420
- def update!(**args)
3421
- @binary = args[:binary] if args.key?(:binary)
3422
- @percent_pages_matched = args[:percent_pages_matched] if args.key?(:percent_pages_matched)
3423
- end
3424
- end
3425
-
3426
- # A name-value pair representing an environment variable used in an operating
3427
- # system process.
3428
- class GoogleCloudSecuritycenterV2EnvironmentVariable
3429
- include Google::Apis::Core::Hashable
3430
-
3431
- # Environment variable name as a JSON encoded string.
3432
- # Corresponds to the JSON property `name`
3433
- # @return [String]
3434
- attr_accessor :name
3435
-
3436
- # Environment variable value as a JSON encoded string.
3437
- # Corresponds to the JSON property `val`
3438
- # @return [String]
3439
- attr_accessor :val
3440
-
3441
- def initialize(**args)
3442
- update!(**args)
3443
- end
3444
-
3445
- # Update properties of this object
3446
- def update!(**args)
3447
- @name = args[:name] if args.key?(:name)
3448
- @val = args[:val] if args.key?(:val)
3449
- end
3450
- end
3451
-
3452
- # Resource where data was exfiltrated from or exfiltrated to.
3453
- class GoogleCloudSecuritycenterV2ExfilResource
3454
- include Google::Apis::Core::Hashable
3455
-
3456
- # Subcomponents of the asset that was exfiltrated, like URIs used during
3457
- # exfiltration, table names, databases, and filenames. For example, multiple
3458
- # tables might have been exfiltrated from the same Cloud SQL instance, or
3459
- # multiple files might have been exfiltrated from the same Cloud Storage bucket.
3460
- # Corresponds to the JSON property `components`
3461
- # @return [Array<String>]
3462
- attr_accessor :components
3463
-
3464
- # The resource's [full resource name](https://cloud.google.com/apis/design/
3465
- # resource_names#full_resource_name).
3466
- # Corresponds to the JSON property `name`
3467
- # @return [String]
3468
- attr_accessor :name
3469
-
3470
- def initialize(**args)
3471
- update!(**args)
3472
- end
3473
-
3474
- # Update properties of this object
3475
- def update!(**args)
3476
- @components = args[:components] if args.key?(:components)
3477
- @name = args[:name] if args.key?(:name)
3478
- end
3479
- end
3480
-
3481
- # Exfiltration represents a data exfiltration attempt from one or more sources
3482
- # to one or more targets. The `sources` attribute lists the sources of the
3483
- # exfiltrated data. The `targets` attribute lists the destinations the data was
3484
- # copied to.
3485
- class GoogleCloudSecuritycenterV2Exfiltration
3486
- include Google::Apis::Core::Hashable
3487
-
3488
- # If there are multiple sources, then the data is considered "joined" between
3489
- # them. For instance, BigQuery can join multiple tables, and each table would be
3490
- # considered a source.
3491
- # Corresponds to the JSON property `sources`
3492
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2ExfilResource>]
3493
- attr_accessor :sources
3494
-
3495
- # If there are multiple targets, each target would get a complete copy of the "
3496
- # joined" source data.
3497
- # Corresponds to the JSON property `targets`
3498
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2ExfilResource>]
3499
- attr_accessor :targets
3500
-
3501
- # Total exfiltrated bytes processed for the entire job.
3502
- # Corresponds to the JSON property `totalExfiltratedBytes`
3503
- # @return [Fixnum]
3504
- attr_accessor :total_exfiltrated_bytes
3505
-
3506
- def initialize(**args)
3507
- update!(**args)
3508
- end
3509
-
3510
- # Update properties of this object
3511
- def update!(**args)
3512
- @sources = args[:sources] if args.key?(:sources)
3513
- @targets = args[:targets] if args.key?(:targets)
3514
- @total_exfiltrated_bytes = args[:total_exfiltrated_bytes] if args.key?(:total_exfiltrated_bytes)
3515
- end
3516
- end
3517
-
3518
- # Representation of third party SIEM/SOAR fields within SCC.
3519
- class GoogleCloudSecuritycenterV2ExternalSystem
3520
- include Google::Apis::Core::Hashable
3521
-
3522
- # References primary/secondary etc assignees in the external system.
3523
- # Corresponds to the JSON property `assignees`
3524
- # @return [Array<String>]
3525
- attr_accessor :assignees
3526
-
3527
- # The time when the case was last updated, as reported by the external system.
3528
- # Corresponds to the JSON property `externalSystemUpdateTime`
3529
- # @return [String]
3530
- attr_accessor :external_system_update_time
3531
-
3532
- # The identifier that's used to track the finding's corresponding case in the
3533
- # external system.
3534
- # Corresponds to the JSON property `externalUid`
3535
- # @return [String]
3536
- attr_accessor :external_uid
3537
-
3538
- # Full resource name of the external system. The following list shows some
3539
- # examples: + `organizations/1234/sources/5678/findings/123456/externalSystems/
3540
- # jira` + `organizations/1234/sources/5678/locations/us/findings/123456/
3541
- # externalSystems/jira` + `folders/1234/sources/5678/findings/123456/
3542
- # externalSystems/jira` + `folders/1234/sources/5678/locations/us/findings/
3543
- # 123456/externalSystems/jira` + `projects/1234/sources/5678/findings/123456/
3544
- # externalSystems/jira` + `projects/1234/sources/5678/locations/us/findings/
3545
- # 123456/externalSystems/jira`
3546
- # Corresponds to the JSON property `name`
3547
- # @return [String]
3548
- attr_accessor :name
3549
-
3550
- # The most recent status of the finding's corresponding case, as reported by the
3551
- # external system.
3552
- # Corresponds to the JSON property `status`
3553
- # @return [String]
3554
- attr_accessor :status
3555
-
3556
- def initialize(**args)
3557
- update!(**args)
3558
- end
3559
-
3560
- # Update properties of this object
3561
- def update!(**args)
3562
- @assignees = args[:assignees] if args.key?(:assignees)
3563
- @external_system_update_time = args[:external_system_update_time] if args.key?(:external_system_update_time)
3564
- @external_uid = args[:external_uid] if args.key?(:external_uid)
3565
- @name = args[:name] if args.key?(:name)
3566
- @status = args[:status] if args.key?(:status)
3567
- end
3568
- end
3569
-
3570
- # File information about the related binary/library used by an executable, or
3571
- # the script used by a script interpreter
3572
- class GoogleCloudSecuritycenterV2File
3573
- include Google::Apis::Core::Hashable
3574
-
3575
- # Prefix of the file contents as a JSON-encoded string.
3576
- # Corresponds to the JSON property `contents`
3577
- # @return [String]
3578
- attr_accessor :contents
3579
-
3580
- # The length in bytes of the file prefix that was hashed. If hashed_size == size,
3581
- # any hashes reported represent the entire file.
3582
- # Corresponds to the JSON property `hashedSize`
3583
- # @return [Fixnum]
3584
- attr_accessor :hashed_size
3585
-
3586
- # True when the hash covers only a prefix of the file.
3587
- # Corresponds to the JSON property `partiallyHashed`
3588
- # @return [Boolean]
3589
- attr_accessor :partially_hashed
3590
- alias_method :partially_hashed?, :partially_hashed
3591
-
3592
- # Absolute path of the file as a JSON encoded string.
3593
- # Corresponds to the JSON property `path`
3594
- # @return [String]
3595
- attr_accessor :path
3596
-
3597
- # SHA256 hash of the first hashed_size bytes of the file encoded as a hex string.
3598
- # If hashed_size == size, sha256 represents the SHA256 hash of the entire file.
3599
- # Corresponds to the JSON property `sha256`
3600
- # @return [String]
3601
- attr_accessor :sha256
3602
-
3603
- # Size of the file in bytes.
3604
- # Corresponds to the JSON property `size`
3605
- # @return [Fixnum]
3606
- attr_accessor :size
3607
-
3608
- def initialize(**args)
3609
- update!(**args)
3610
- end
3611
-
3612
- # Update properties of this object
3613
- def update!(**args)
3614
- @contents = args[:contents] if args.key?(:contents)
3615
- @hashed_size = args[:hashed_size] if args.key?(:hashed_size)
3616
- @partially_hashed = args[:partially_hashed] if args.key?(:partially_hashed)
3617
- @path = args[:path] if args.key?(:path)
3618
- @sha256 = args[:sha256] if args.key?(:sha256)
3619
- @size = args[:size] if args.key?(:size)
3620
- end
3621
- end
3622
-
3623
- # Security Command Center finding. A finding is a record of assessment data like
3624
- # security, risk, health, or privacy, that is ingested into Security Command
3625
- # Center for presentation, notification, analysis, policy testing, and
3626
- # enforcement. For example, a cross-site scripting (XSS) vulnerability in an App
3627
- # Engine application is a finding.
3628
- class GoogleCloudSecuritycenterV2Finding
3629
- include Google::Apis::Core::Hashable
3630
-
3631
- # Represents an access event.
3632
- # Corresponds to the JSON property `access`
3633
- # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Access]
3634
- attr_accessor :access
3635
-
3636
- # An attack exposure contains the results of an attack path simulation run.
3637
- # Corresponds to the JSON property `attackExposure`
3638
- # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2AttackExposure]
3639
- attr_accessor :attack_exposure
3640
-
3641
- # Output only. The canonical name of the finding. The following list shows some
3642
- # examples: + `organizations/`organization_id`/sources/`source_id`/findings/`
3643
- # finding_id`` + `organizations/`organization_id`/sources/`source_id`/locations/`
3644
- # location_id`/findings/`finding_id`` + `folders/`folder_id`/sources/`source_id`/
3645
- # findings/`finding_id`` + `folders/`folder_id`/sources/`source_id`/locations/`
3646
- # location_id`/findings/`finding_id`` + `projects/`project_id`/sources/`
3647
- # source_id`/findings/`finding_id`` + `projects/`project_id`/sources/`source_id`/
3648
- # locations/`location_id`/findings/`finding_id`` The prefix is the closest CRM
3649
- # ancestor of the resource associated with the finding.
3650
- # Corresponds to the JSON property `canonicalName`
3651
- # @return [String]
3652
- attr_accessor :canonical_name
3653
-
3654
- # Immutable. The additional taxonomy group within findings from a given source.
3655
- # Example: "XSS_FLASH_INJECTION"
3656
- # Corresponds to the JSON property `category`
3657
- # @return [String]
3658
- attr_accessor :category
3659
-
3660
- # The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated
3661
- # with the finding.
3662
- # Corresponds to the JSON property `cloudDlpDataProfile`
3663
- # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2CloudDlpDataProfile]
3664
- attr_accessor :cloud_dlp_data_profile
3665
-
3666
- # Details about the Cloud Data Loss Prevention (Cloud DLP) [inspection job](
3667
- # https://cloud.google.com/dlp/docs/concepts-job-triggers) that produced the
3668
- # finding.
3669
- # Corresponds to the JSON property `cloudDlpInspection`
3670
- # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2CloudDlpInspection]
3671
- attr_accessor :cloud_dlp_inspection
3672
-
3673
- # Contains compliance information for security standards associated to the
3674
- # finding.
3675
- # Corresponds to the JSON property `compliances`
3676
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Compliance>]
3677
- attr_accessor :compliances
3678
-
3679
- # Contains information about the IP connection associated with the finding.
3680
- # Corresponds to the JSON property `connections`
3681
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Connection>]
3682
- attr_accessor :connections
3683
-
3684
- # Output only. Map containing the points of contact for the given finding. The
3685
- # key represents the type of contact, while the value contains a list of all the
3686
- # contacts that pertain. Please refer to: https://cloud.google.com/resource-
3687
- # manager/docs/managing-notification-contacts#notification-categories ` "
3688
- # security": ` "contacts": [ ` "email": "person1@company.com" `, ` "email": "
3689
- # person2@company.com" ` ] ` `
3690
- # Corresponds to the JSON property `contacts`
3691
- # @return [Hash<String,Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2ContactDetails>]
3692
- attr_accessor :contacts
3693
-
3694
- # Containers associated with the finding. This field provides information for
3695
- # both Kubernetes and non-Kubernetes containers.
3696
- # Corresponds to the JSON property `containers`
3697
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Container>]
3698
- attr_accessor :containers
3699
-
3700
- # Output only. The time at which the finding was created in Security Command
3701
- # Center.
3702
- # Corresponds to the JSON property `createTime`
3703
- # @return [String]
3704
- attr_accessor :create_time
3705
-
3706
- # Represents database access information, such as queries. A database may be a
3707
- # sub-resource of an instance (as in the case of Cloud SQL instances or Cloud
3708
- # Spanner instances), or the database instance itself. Some database resources
3709
- # might not have the [full resource name](https://google.aip.dev/122#full-
3710
- # resource-names) populated because these resource types, such as Cloud SQL
3711
- # databases, are not yet supported by Cloud Asset Inventory. In these cases only
3712
- # the display name is provided.
3713
- # Corresponds to the JSON property `database`
3714
- # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Database]
3715
- attr_accessor :database
3716
-
3717
- # Contains more details about the finding.
3718
- # Corresponds to the JSON property `description`
3719
- # @return [String]
3720
- attr_accessor :description
3721
-
3722
- # The time the finding was first detected. If an existing finding is updated,
3723
- # then this is the time the update occurred. For example, if the finding
3724
- # represents an open firewall, this property captures the time the detector
3725
- # believes the firewall became open. The accuracy is determined by the detector.
3726
- # If the finding is later resolved, then this time reflects when the finding was
3727
- # resolved. This must not be set to a value greater than the current timestamp.
3728
- # Corresponds to the JSON property `eventTime`
3729
- # @return [String]
3730
- attr_accessor :event_time
3731
-
3732
- # Exfiltration represents a data exfiltration attempt from one or more sources
3733
- # to one or more targets. The `sources` attribute lists the sources of the
3734
- # exfiltrated data. The `targets` attribute lists the destinations the data was
3735
- # copied to.
3736
- # Corresponds to the JSON property `exfiltration`
3737
- # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Exfiltration]
3738
- attr_accessor :exfiltration
3739
-
3740
- # Output only. Third party SIEM/SOAR fields within SCC, contains external system
3741
- # information and external system finding fields.
3742
- # Corresponds to the JSON property `externalSystems`
3743
- # @return [Hash<String,Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2ExternalSystem>]
3744
- attr_accessor :external_systems
3745
-
3746
- # The URI that, if available, points to a web page outside of Security Command
3747
- # Center where additional information about the finding can be found. This field
3748
- # is guaranteed to be either empty or a well formed URL.
3749
- # Corresponds to the JSON property `externalUri`
3750
- # @return [String]
3751
- attr_accessor :external_uri
3752
-
3753
- # File associated with the finding.
3754
- # Corresponds to the JSON property `files`
3755
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2File>]
3756
- attr_accessor :files
3757
-
3758
- # The class of the finding.
3759
- # Corresponds to the JSON property `findingClass`
3760
- # @return [String]
3761
- attr_accessor :finding_class
3762
-
3763
- # Represents IAM bindings associated with the finding.
3764
- # Corresponds to the JSON property `iamBindings`
3765
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2IamBinding>]
3766
- attr_accessor :iam_bindings
3767
-
3768
- # Represents what's commonly known as an _indicator of compromise_ (IoC) in
3769
- # computer forensics. This is an artifact observed on a network or in an
3770
- # operating system that, with high confidence, indicates a computer intrusion.
3771
- # For more information, see [Indicator of compromise](https://en.wikipedia.org/
3772
- # wiki/Indicator_of_compromise).
3773
- # Corresponds to the JSON property `indicator`
3774
- # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Indicator]
3775
- attr_accessor :indicator
3776
-
3777
- # Kernel mode rootkit signatures.
3778
- # Corresponds to the JSON property `kernelRootkit`
3779
- # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2KernelRootkit]
3780
- attr_accessor :kernel_rootkit
3781
-
3782
- # Kubernetes-related attributes.
3783
- # Corresponds to the JSON property `kubernetes`
3784
- # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Kubernetes]
3785
- attr_accessor :kubernetes
3786
-
3787
- # The load balancers associated with the finding.
3788
- # Corresponds to the JSON property `loadBalancers`
3789
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2LoadBalancer>]
3790
- attr_accessor :load_balancers
3791
-
3792
- # Log entries that are relevant to the finding.
3793
- # Corresponds to the JSON property `logEntries`
3794
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2LogEntry>]
3795
- attr_accessor :log_entries
3796
-
3797
- # MITRE ATT&CK tactics and techniques related to this finding. See: https://
3798
- # attack.mitre.org
3799
- # Corresponds to the JSON property `mitreAttack`
3800
- # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2MitreAttack]
3801
- attr_accessor :mitre_attack
3802
-
3803
- # Unique identifier of the module which generated the finding. Example: folders/
3804
- # 598186756061/securityHealthAnalyticsSettings/customModules/56799441161885
3805
- # Corresponds to the JSON property `moduleName`
3806
- # @return [String]
3807
- attr_accessor :module_name
3808
-
3809
- # Indicates the mute state of a finding (either muted, unmuted or undefined).
3810
- # Unlike other attributes of a finding, a finding provider shouldn't set the
3811
- # value of mute.
3812
- # Corresponds to the JSON property `mute`
3813
- # @return [String]
3814
- attr_accessor :mute
3815
-
3816
- # Records additional information about the mute operation, for example, the [
3817
- # mute configuration](https://cloud.google.com/security-command-center/docs/how-
3818
- # to-mute-findings) that muted the finding and the user who muted the finding.
3819
- # Corresponds to the JSON property `muteInitiator`
3820
- # @return [String]
3821
- attr_accessor :mute_initiator
3822
-
3823
- # Output only. The most recent time this finding was muted or unmuted.
3824
- # Corresponds to the JSON property `muteUpdateTime`
3825
- # @return [String]
3826
- attr_accessor :mute_update_time
3827
-
3828
- # The [relative resource name](https://cloud.google.com/apis/design/
3829
- # resource_names#relative_resource_name) of the finding. The following list
3830
- # shows some examples: + `organizations/`organization_id`/sources/`source_id`/
3831
- # findings/`finding_id`` + `organizations/`organization_id`/sources/`source_id`/
3832
- # locations/`location_id`/findings/`finding_id`` + `folders/`folder_id`/sources/`
3833
- # source_id`/findings/`finding_id`` + `folders/`folder_id`/sources/`source_id`/
3834
- # locations/`location_id`/findings/`finding_id`` + `projects/`project_id`/
3835
- # sources/`source_id`/findings/`finding_id`` + `projects/`project_id`/sources/`
3836
- # source_id`/locations/`location_id`/findings/`finding_id``
3837
- # Corresponds to the JSON property `name`
3838
- # @return [String]
3839
- attr_accessor :name
3840
-
3841
- # Steps to address the finding.
3842
- # Corresponds to the JSON property `nextSteps`
3843
- # @return [String]
3844
- attr_accessor :next_steps
3845
-
3846
- # Contains information about the org policies associated with the finding.
3847
- # Corresponds to the JSON property `orgPolicies`
3848
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2OrgPolicy>]
3849
- attr_accessor :org_policies
3850
-
3851
- # The relative resource name of the source and location the finding belongs to.
3852
- # See: https://cloud.google.com/apis/design/resource_names#
3853
- # relative_resource_name This field is immutable after creation time. The
3854
- # following list shows some examples: + `organizations/`organization_id`/sources/
3855
- # `source_id`` + `folders/`folders_id`/sources/`source_id`` + `projects/`
3856
- # projects_id`/sources/`source_id`` + `organizations/`organization_id`/sources/`
3857
- # source_id`/locations/`location_id`` + `folders/`folders_id`/sources/`source_id`
3858
- # /locations/`location_id`` + `projects/`projects_id`/sources/`source_id`/
3859
- # locations/`location_id``
3860
- # Corresponds to the JSON property `parent`
3861
- # @return [String]
3862
- attr_accessor :parent
3863
-
3864
- # Output only. The human readable display name of the finding source such as "
3865
- # Event Threat Detection" or "Security Health Analytics".
3866
- # Corresponds to the JSON property `parentDisplayName`
3867
- # @return [String]
3868
- attr_accessor :parent_display_name
3869
-
3870
- # Represents operating system processes associated with the Finding.
3871
- # Corresponds to the JSON property `processes`
3872
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Process>]
3873
- attr_accessor :processes
3874
-
3875
- # Immutable. For findings on Google Cloud resources, the full resource name of
3876
- # the Google Cloud resource this finding is for. See: https://cloud.google.com/
3877
- # apis/design/resource_names#full_resource_name When the finding is for a non-
3878
- # Google Cloud resource, the resourceName can be a customer or partner defined
3879
- # string.
3880
- # Corresponds to the JSON property `resourceName`
3881
- # @return [String]
3882
- attr_accessor :resource_name
3883
-
3884
- # User specified security marks that are attached to the parent Security Command
3885
- # Center resource. Security marks are scoped within a Security Command Center
3886
- # organization -- they can be modified and viewed by all users who have proper
3887
- # permissions on the organization.
3888
- # Corresponds to the JSON property `securityMarks`
3889
- # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2SecurityMarks]
3890
- attr_accessor :security_marks
3891
-
3892
- # Represents a posture that is deployed on Google Cloud by the Security Command
3893
- # Center Posture Management service. A posture contains one or more policy sets.
3894
- # A policy set is a group of policies that enforce a set of security rules on
3895
- # Google Cloud.
3896
- # Corresponds to the JSON property `securityPosture`
3897
- # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2SecurityPosture]
3898
- attr_accessor :security_posture
3899
-
3900
- # The severity of the finding. This field is managed by the source that writes
3901
- # the finding.
3902
- # Corresponds to the JSON property `severity`
3903
- # @return [String]
3904
- attr_accessor :severity
3905
-
3906
- # Source specific properties. These properties are managed by the source that
3907
- # writes the finding. The key names in the source_properties map must be between
3908
- # 1 and 255 characters, and must start with a letter and contain alphanumeric
3909
- # characters or underscores only.
3910
- # Corresponds to the JSON property `sourceProperties`
3911
- # @return [Hash<String,Object>]
3912
- attr_accessor :source_properties
3913
-
3914
- # Output only. The state of the finding.
3915
- # Corresponds to the JSON property `state`
3916
- # @return [String]
3917
- attr_accessor :state
3918
-
3919
- # Refers to common vulnerability fields e.g. cve, cvss, cwe etc.
3920
- # Corresponds to the JSON property `vulnerability`
3921
- # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Vulnerability]
3922
- attr_accessor :vulnerability
3923
-
3924
- def initialize(**args)
3925
- update!(**args)
3926
- end
3927
-
3928
- # Update properties of this object
3929
- def update!(**args)
3930
- @access = args[:access] if args.key?(:access)
3931
- @attack_exposure = args[:attack_exposure] if args.key?(:attack_exposure)
3932
- @canonical_name = args[:canonical_name] if args.key?(:canonical_name)
3933
- @category = args[:category] if args.key?(:category)
3934
- @cloud_dlp_data_profile = args[:cloud_dlp_data_profile] if args.key?(:cloud_dlp_data_profile)
3935
- @cloud_dlp_inspection = args[:cloud_dlp_inspection] if args.key?(:cloud_dlp_inspection)
3936
- @compliances = args[:compliances] if args.key?(:compliances)
3937
- @connections = args[:connections] if args.key?(:connections)
3938
- @contacts = args[:contacts] if args.key?(:contacts)
3939
- @containers = args[:containers] if args.key?(:containers)
3940
- @create_time = args[:create_time] if args.key?(:create_time)
3941
- @database = args[:database] if args.key?(:database)
3942
- @description = args[:description] if args.key?(:description)
3943
- @event_time = args[:event_time] if args.key?(:event_time)
3944
- @exfiltration = args[:exfiltration] if args.key?(:exfiltration)
3945
- @external_systems = args[:external_systems] if args.key?(:external_systems)
3946
- @external_uri = args[:external_uri] if args.key?(:external_uri)
3947
- @files = args[:files] if args.key?(:files)
3948
- @finding_class = args[:finding_class] if args.key?(:finding_class)
3949
- @iam_bindings = args[:iam_bindings] if args.key?(:iam_bindings)
3950
- @indicator = args[:indicator] if args.key?(:indicator)
3951
- @kernel_rootkit = args[:kernel_rootkit] if args.key?(:kernel_rootkit)
3952
- @kubernetes = args[:kubernetes] if args.key?(:kubernetes)
3953
- @load_balancers = args[:load_balancers] if args.key?(:load_balancers)
3954
- @log_entries = args[:log_entries] if args.key?(:log_entries)
3955
- @mitre_attack = args[:mitre_attack] if args.key?(:mitre_attack)
3956
- @module_name = args[:module_name] if args.key?(:module_name)
3957
- @mute = args[:mute] if args.key?(:mute)
3958
- @mute_initiator = args[:mute_initiator] if args.key?(:mute_initiator)
3959
- @mute_update_time = args[:mute_update_time] if args.key?(:mute_update_time)
3960
- @name = args[:name] if args.key?(:name)
3961
- @next_steps = args[:next_steps] if args.key?(:next_steps)
3962
- @org_policies = args[:org_policies] if args.key?(:org_policies)
3963
- @parent = args[:parent] if args.key?(:parent)
3964
- @parent_display_name = args[:parent_display_name] if args.key?(:parent_display_name)
3965
- @processes = args[:processes] if args.key?(:processes)
3966
- @resource_name = args[:resource_name] if args.key?(:resource_name)
3967
- @security_marks = args[:security_marks] if args.key?(:security_marks)
3968
- @security_posture = args[:security_posture] if args.key?(:security_posture)
3969
- @severity = args[:severity] if args.key?(:severity)
3970
- @source_properties = args[:source_properties] if args.key?(:source_properties)
3971
- @state = args[:state] if args.key?(:state)
3972
- @vulnerability = args[:vulnerability] if args.key?(:vulnerability)
3973
- end
3974
- end
3975
-
3976
- # Represents a geographical location for a given access.
3977
- class GoogleCloudSecuritycenterV2Geolocation
3978
- include Google::Apis::Core::Hashable
3979
-
3980
- # A CLDR.
3981
- # Corresponds to the JSON property `regionCode`
3982
- # @return [String]
3983
- attr_accessor :region_code
3984
-
3985
- def initialize(**args)
3986
- update!(**args)
3987
- end
3988
-
3989
- # Update properties of this object
3990
- def update!(**args)
3991
- @region_code = args[:region_code] if args.key?(:region_code)
3992
- end
3993
- end
3994
-
3995
- # Represents a particular IAM binding, which captures a member's role addition,
3996
- # removal, or state.
3997
- class GoogleCloudSecuritycenterV2IamBinding
3998
- include Google::Apis::Core::Hashable
3999
-
4000
- # The action that was performed on a Binding.
4001
- # Corresponds to the JSON property `action`
4002
- # @return [String]
4003
- attr_accessor :action
4004
-
4005
- # A single identity requesting access for a Cloud Platform resource, for example,
4006
- # "foo@google.com".
4007
- # Corresponds to the JSON property `member`
4008
- # @return [String]
4009
- attr_accessor :member
4010
-
4011
- # Role that is assigned to "members". For example, "roles/viewer", "roles/editor"
4012
- # , or "roles/owner".
4013
- # Corresponds to the JSON property `role`
4014
- # @return [String]
4015
- attr_accessor :role
4016
-
4017
- def initialize(**args)
4018
- update!(**args)
4019
- end
4020
-
4021
- # Update properties of this object
4022
- def update!(**args)
4023
- @action = args[:action] if args.key?(:action)
4024
- @member = args[:member] if args.key?(:member)
4025
- @role = args[:role] if args.key?(:role)
4026
- end
4027
- end
4028
-
4029
- # Represents what's commonly known as an _indicator of compromise_ (IoC) in
4030
- # computer forensics. This is an artifact observed on a network or in an
4031
- # operating system that, with high confidence, indicates a computer intrusion.
4032
- # For more information, see [Indicator of compromise](https://en.wikipedia.org/
4033
- # wiki/Indicator_of_compromise).
4034
- class GoogleCloudSecuritycenterV2Indicator
4035
- include Google::Apis::Core::Hashable
4036
-
4037
- # List of domains associated to the Finding.
4038
- # Corresponds to the JSON property `domains`
4039
- # @return [Array<String>]
4040
- attr_accessor :domains
4041
-
4042
- # The list of IP addresses that are associated with the finding.
4043
- # Corresponds to the JSON property `ipAddresses`
4044
- # @return [Array<String>]
4045
- attr_accessor :ip_addresses
4046
-
4047
- # The list of matched signatures indicating that the given process is present in
4048
- # the environment.
4049
- # Corresponds to the JSON property `signatures`
4050
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2ProcessSignature>]
4051
- attr_accessor :signatures
4052
-
4053
- # The list of URIs associated to the Findings.
4054
- # Corresponds to the JSON property `uris`
4055
- # @return [Array<String>]
4056
- attr_accessor :uris
4057
-
4058
- def initialize(**args)
4059
- update!(**args)
4060
- end
4061
-
4062
- # Update properties of this object
4063
- def update!(**args)
4064
- @domains = args[:domains] if args.key?(:domains)
4065
- @ip_addresses = args[:ip_addresses] if args.key?(:ip_addresses)
4066
- @signatures = args[:signatures] if args.key?(:signatures)
4067
- @uris = args[:uris] if args.key?(:uris)
4068
- end
4069
- end
4070
-
4071
- # Kernel mode rootkit signatures.
4072
- class GoogleCloudSecuritycenterV2KernelRootkit
4073
- include Google::Apis::Core::Hashable
4074
-
4075
- # Rootkit name, when available.
4076
- # Corresponds to the JSON property `name`
4077
- # @return [String]
4078
- attr_accessor :name
4079
-
4080
- # True if unexpected modifications of kernel code memory are present.
4081
- # Corresponds to the JSON property `unexpectedCodeModification`
4082
- # @return [Boolean]
4083
- attr_accessor :unexpected_code_modification
4084
- alias_method :unexpected_code_modification?, :unexpected_code_modification
4085
-
4086
- # True if `ftrace` points are present with callbacks pointing to regions that
4087
- # are not in the expected kernel or module code range.
4088
- # Corresponds to the JSON property `unexpectedFtraceHandler`
4089
- # @return [Boolean]
4090
- attr_accessor :unexpected_ftrace_handler
4091
- alias_method :unexpected_ftrace_handler?, :unexpected_ftrace_handler
4092
-
4093
- # True if interrupt handlers that are are not in the expected kernel or module
4094
- # code regions are present.
4095
- # Corresponds to the JSON property `unexpectedInterruptHandler`
4096
- # @return [Boolean]
4097
- attr_accessor :unexpected_interrupt_handler
4098
- alias_method :unexpected_interrupt_handler?, :unexpected_interrupt_handler
4099
-
4100
- # True if kernel code pages that are not in the expected kernel or module code
4101
- # regions are present.
4102
- # Corresponds to the JSON property `unexpectedKernelCodePages`
4103
- # @return [Boolean]
4104
- attr_accessor :unexpected_kernel_code_pages
4105
- alias_method :unexpected_kernel_code_pages?, :unexpected_kernel_code_pages
4106
-
4107
- # True if `kprobe` points are present with callbacks pointing to regions that
4108
- # are not in the expected kernel or module code range.
4109
- # Corresponds to the JSON property `unexpectedKprobeHandler`
4110
- # @return [Boolean]
4111
- attr_accessor :unexpected_kprobe_handler
4112
- alias_method :unexpected_kprobe_handler?, :unexpected_kprobe_handler
4113
-
4114
- # True if unexpected processes in the scheduler run queue are present. Such
4115
- # processes are in the run queue, but not in the process task list.
4116
- # Corresponds to the JSON property `unexpectedProcessesInRunqueue`
4117
- # @return [Boolean]
4118
- attr_accessor :unexpected_processes_in_runqueue
4119
- alias_method :unexpected_processes_in_runqueue?, :unexpected_processes_in_runqueue
4120
-
4121
- # True if unexpected modifications of kernel read-only data memory are present.
4122
- # Corresponds to the JSON property `unexpectedReadOnlyDataModification`
4123
- # @return [Boolean]
4124
- attr_accessor :unexpected_read_only_data_modification
4125
- alias_method :unexpected_read_only_data_modification?, :unexpected_read_only_data_modification
4126
-
4127
- # True if system call handlers that are are not in the expected kernel or module
4128
- # code regions are present.
4129
- # Corresponds to the JSON property `unexpectedSystemCallHandler`
4130
- # @return [Boolean]
4131
- attr_accessor :unexpected_system_call_handler
4132
- alias_method :unexpected_system_call_handler?, :unexpected_system_call_handler
4133
-
4134
- def initialize(**args)
4135
- update!(**args)
4136
- end
4137
-
4138
- # Update properties of this object
4139
- def update!(**args)
4140
- @name = args[:name] if args.key?(:name)
4141
- @unexpected_code_modification = args[:unexpected_code_modification] if args.key?(:unexpected_code_modification)
4142
- @unexpected_ftrace_handler = args[:unexpected_ftrace_handler] if args.key?(:unexpected_ftrace_handler)
4143
- @unexpected_interrupt_handler = args[:unexpected_interrupt_handler] if args.key?(:unexpected_interrupt_handler)
4144
- @unexpected_kernel_code_pages = args[:unexpected_kernel_code_pages] if args.key?(:unexpected_kernel_code_pages)
4145
- @unexpected_kprobe_handler = args[:unexpected_kprobe_handler] if args.key?(:unexpected_kprobe_handler)
4146
- @unexpected_processes_in_runqueue = args[:unexpected_processes_in_runqueue] if args.key?(:unexpected_processes_in_runqueue)
4147
- @unexpected_read_only_data_modification = args[:unexpected_read_only_data_modification] if args.key?(:unexpected_read_only_data_modification)
4148
- @unexpected_system_call_handler = args[:unexpected_system_call_handler] if args.key?(:unexpected_system_call_handler)
4149
- end
4150
- end
4151
-
4152
- # Kubernetes-related attributes.
4153
- class GoogleCloudSecuritycenterV2Kubernetes
4154
- include Google::Apis::Core::Hashable
4155
-
4156
- # Provides information on any Kubernetes access reviews (privilege checks)
4157
- # relevant to the finding.
4158
- # Corresponds to the JSON property `accessReviews`
4159
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2AccessReview>]
4160
- attr_accessor :access_reviews
4161
-
4162
- # Provides Kubernetes role binding information for findings that involve [
4163
- # RoleBindings or ClusterRoleBindings](https://cloud.google.com/kubernetes-
4164
- # engine/docs/how-to/role-based-access-control).
4165
- # Corresponds to the JSON property `bindings`
4166
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Binding>]
4167
- attr_accessor :bindings
4168
-
4169
- # GKE [node pools](https://cloud.google.com/kubernetes-engine/docs/concepts/node-
4170
- # pools) associated with the finding. This field contains node pool information
4171
- # for each node, when it is available.
4172
- # Corresponds to the JSON property `nodePools`
4173
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2NodePool>]
4174
- attr_accessor :node_pools
4175
-
4176
- # Provides Kubernetes [node](https://cloud.google.com/kubernetes-engine/docs/
4177
- # concepts/cluster-architecture#nodes) information.
4178
- # Corresponds to the JSON property `nodes`
4179
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Node>]
4180
- attr_accessor :nodes
4181
-
4182
- # Kubernetes objects related to the finding.
4183
- # Corresponds to the JSON property `objects`
4184
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Object>]
4185
- attr_accessor :objects
4186
-
4187
- # Kubernetes [Pods](https://cloud.google.com/kubernetes-engine/docs/concepts/pod)
4188
- # associated with the finding. This field contains Pod records for each
4189
- # container that is owned by a Pod.
4190
- # Corresponds to the JSON property `pods`
4191
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Pod>]
4192
- attr_accessor :pods
4193
-
4194
- # Provides Kubernetes role information for findings that involve [Roles or
4195
- # ClusterRoles](https://cloud.google.com/kubernetes-engine/docs/how-to/role-
4196
- # based-access-control).
4197
- # Corresponds to the JSON property `roles`
4198
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Role>]
4199
- attr_accessor :roles
4200
-
4201
- def initialize(**args)
4202
- update!(**args)
4203
- end
4204
-
4205
- # Update properties of this object
4206
- def update!(**args)
4207
- @access_reviews = args[:access_reviews] if args.key?(:access_reviews)
4208
- @bindings = args[:bindings] if args.key?(:bindings)
4209
- @node_pools = args[:node_pools] if args.key?(:node_pools)
4210
- @nodes = args[:nodes] if args.key?(:nodes)
4211
- @objects = args[:objects] if args.key?(:objects)
4212
- @pods = args[:pods] if args.key?(:pods)
4213
- @roles = args[:roles] if args.key?(:roles)
4214
- end
4215
- end
4216
-
4217
- # Represents a generic name-value label. A label has separate name and value
4218
- # fields to support filtering with the `contains()` function. For more
4219
- # information, see [Filtering on array-type fields](https://cloud.google.com/
4220
- # security-command-center/docs/how-to-api-list-findings#array-contains-filtering)
4221
- # .
4222
- class GoogleCloudSecuritycenterV2Label
4223
- include Google::Apis::Core::Hashable
4224
-
4225
- # Name of the label.
4226
- # Corresponds to the JSON property `name`
4227
- # @return [String]
4228
- attr_accessor :name
4229
-
4230
- # Value that corresponds to the label's name.
4231
- # Corresponds to the JSON property `value`
4232
- # @return [String]
4233
- attr_accessor :value
4234
-
4235
- def initialize(**args)
4236
- update!(**args)
4237
- end
4238
-
4239
- # Update properties of this object
4240
- def update!(**args)
4241
- @name = args[:name] if args.key?(:name)
4242
- @value = args[:value] if args.key?(:value)
4243
- end
4244
- end
4245
-
4246
- # Contains information related to the load balancer associated with the finding.
4247
- class GoogleCloudSecuritycenterV2LoadBalancer
4248
- include Google::Apis::Core::Hashable
4249
-
4250
- # The name of the load balancer associated with the finding.
4251
- # Corresponds to the JSON property `name`
4252
- # @return [String]
4253
- attr_accessor :name
4254
-
4255
- def initialize(**args)
4256
- update!(**args)
4257
- end
4258
-
4259
- # Update properties of this object
4260
- def update!(**args)
4261
- @name = args[:name] if args.key?(:name)
4262
- end
4263
- end
4264
-
4265
- # An individual entry in a log.
4266
- class GoogleCloudSecuritycenterV2LogEntry
4267
- include Google::Apis::Core::Hashable
4268
-
4269
- # Metadata taken from a [Cloud Logging LogEntry](https://cloud.google.com/
4270
- # logging/docs/reference/v2/rest/v2/LogEntry)
4271
- # Corresponds to the JSON property `cloudLoggingEntry`
4272
- # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2CloudLoggingEntry]
4273
- attr_accessor :cloud_logging_entry
4274
-
4275
- def initialize(**args)
4276
- update!(**args)
4277
- end
4278
-
4279
- # Update properties of this object
4280
- def update!(**args)
4281
- @cloud_logging_entry = args[:cloud_logging_entry] if args.key?(:cloud_logging_entry)
4282
- end
4283
- end
4284
-
4285
- # A signature corresponding to memory page hashes.
4286
- class GoogleCloudSecuritycenterV2MemoryHashSignature
4287
- include Google::Apis::Core::Hashable
4288
-
4289
- # The binary family.
4290
- # Corresponds to the JSON property `binaryFamily`
4291
- # @return [String]
4292
- attr_accessor :binary_family
4293
-
4294
- # The list of memory hash detections contributing to the binary family match.
4295
- # Corresponds to the JSON property `detections`
4296
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Detection>]
4297
- attr_accessor :detections
4298
-
4299
- def initialize(**args)
4300
- update!(**args)
4301
- end
4302
-
4303
- # Update properties of this object
4304
- def update!(**args)
4305
- @binary_family = args[:binary_family] if args.key?(:binary_family)
4306
- @detections = args[:detections] if args.key?(:detections)
4307
- end
4308
- end
4309
-
4310
- # MITRE ATT&CK tactics and techniques related to this finding. See: https://
4311
- # attack.mitre.org
4312
- class GoogleCloudSecuritycenterV2MitreAttack
4313
- include Google::Apis::Core::Hashable
4314
-
4315
- # Additional MITRE ATT&CK tactics related to this finding, if any.
4316
- # Corresponds to the JSON property `additionalTactics`
4317
- # @return [Array<String>]
4318
- attr_accessor :additional_tactics
4319
-
4320
- # Additional MITRE ATT&CK techniques related to this finding, if any, along with
4321
- # any of their respective parent techniques.
4322
- # Corresponds to the JSON property `additionalTechniques`
4323
- # @return [Array<String>]
4324
- attr_accessor :additional_techniques
4325
-
4326
- # The MITRE ATT&CK tactic most closely represented by this finding, if any.
4327
- # Corresponds to the JSON property `primaryTactic`
4328
- # @return [String]
4329
- attr_accessor :primary_tactic
4330
-
4331
- # The MITRE ATT&CK technique most closely represented by this finding, if any.
4332
- # primary_techniques is a repeated field because there are multiple levels of
4333
- # MITRE ATT&CK techniques. If the technique most closely represented by this
4334
- # finding is a sub-technique (e.g. `SCANNING_IP_BLOCKS`), both the sub-technique
4335
- # and its parent technique(s) will be listed (e.g. `SCANNING_IP_BLOCKS`, `
4336
- # ACTIVE_SCANNING`).
4337
- # Corresponds to the JSON property `primaryTechniques`
4338
- # @return [Array<String>]
4339
- attr_accessor :primary_techniques
4340
-
4341
- # The MITRE ATT&CK version referenced by the above fields. E.g. "8".
4342
- # Corresponds to the JSON property `version`
4343
- # @return [String]
4344
- attr_accessor :version
4345
-
4346
- def initialize(**args)
4347
- update!(**args)
4348
- end
4349
-
4350
- # Update properties of this object
4351
- def update!(**args)
4352
- @additional_tactics = args[:additional_tactics] if args.key?(:additional_tactics)
4353
- @additional_techniques = args[:additional_techniques] if args.key?(:additional_techniques)
4354
- @primary_tactic = args[:primary_tactic] if args.key?(:primary_tactic)
4355
- @primary_techniques = args[:primary_techniques] if args.key?(:primary_techniques)
4356
- @version = args[:version] if args.key?(:version)
4357
- end
4358
- end
4359
-
4360
- # A mute config is a Cloud SCC resource that contains the configuration to mute
4361
- # create/update events of findings.
4362
- class GoogleCloudSecuritycenterV2MuteConfig
4363
- include Google::Apis::Core::Hashable
4364
-
4365
- # Output only. The time at which the mute config was created. This field is set
4366
- # by the server and will be ignored if provided on config creation.
4367
- # Corresponds to the JSON property `createTime`
4368
- # @return [String]
4369
- attr_accessor :create_time
4370
-
4371
- # A description of the mute config.
4372
- # Corresponds to the JSON property `description`
4373
- # @return [String]
4374
- attr_accessor :description
4375
-
4376
- # Required. An expression that defines the filter to apply across create/update
4377
- # events of findings. While creating a filter string, be mindful of the scope in
4378
- # which the mute configuration is being created. E.g., If a filter contains
4379
- # project = X but is created under the project = Y scope, it might not match any
4380
- # findings. The following field and operator combinations are supported: *
4381
- # severity: `=`, `:` * category: `=`, `:` * resource.name: `=`, `:` * resource.
4382
- # project_name: `=`, `:` * resource.project_display_name: `=`, `:` * resource.
4383
- # folders.resource_folder: `=`, `:` * resource.parent_name: `=`, `:` * resource.
4384
- # parent_display_name: `=`, `:` * resource.type: `=`, `:` * finding_class: `=`, `
4385
- # :` * indicator.ip_addresses: `=`, `:` * indicator.domains: `=`, `:`
4386
- # Corresponds to the JSON property `filter`
4387
- # @return [String]
4388
- attr_accessor :filter
4389
-
4390
- # Output only. Email address of the user who last edited the mute config. This
4391
- # field is set by the server and will be ignored if provided on config creation
4392
- # or update.
4393
- # Corresponds to the JSON property `mostRecentEditor`
4394
- # @return [String]
4395
- attr_accessor :most_recent_editor
4396
-
4397
- # This field will be ignored if provided on config creation. The following list
4398
- # shows some examples of the format: + `organizations/`organization`/muteConfigs/
4399
- # `mute_config`` + `organizations/`organization`locations/`location`//
4400
- # muteConfigs/`mute_config`` + `folders/`folder`/muteConfigs/`mute_config`` + `
4401
- # folders/`folder`/locations/`location`/muteConfigs/`mute_config`` + `projects/`
4402
- # project`/muteConfigs/`mute_config`` + `projects/`project`/locations/`location`/
4403
- # muteConfigs/`mute_config``
4404
- # Corresponds to the JSON property `name`
4405
- # @return [String]
4406
- attr_accessor :name
4407
-
4408
- # Output only. The most recent time at which the mute config was updated. This
4409
- # field is set by the server and will be ignored if provided on config creation
4410
- # or update.
4411
- # Corresponds to the JSON property `updateTime`
4412
- # @return [String]
4413
- attr_accessor :update_time
4414
-
4415
- def initialize(**args)
4416
- update!(**args)
4417
- end
4418
-
4419
- # Update properties of this object
4420
- def update!(**args)
4421
- @create_time = args[:create_time] if args.key?(:create_time)
4422
- @description = args[:description] if args.key?(:description)
4423
- @filter = args[:filter] if args.key?(:filter)
4424
- @most_recent_editor = args[:most_recent_editor] if args.key?(:most_recent_editor)
4425
- @name = args[:name] if args.key?(:name)
4426
- @update_time = args[:update_time] if args.key?(:update_time)
4427
- end
4428
- end
4429
-
4430
- # Kubernetes nodes associated with the finding.
4431
- class GoogleCloudSecuritycenterV2Node
4432
- include Google::Apis::Core::Hashable
4433
-
4434
- # [Full resource name](https://google.aip.dev/122#full-resource-names) of the
4435
- # Compute Engine VM running the cluster node.
4436
- # Corresponds to the JSON property `name`
4437
- # @return [String]
4438
- attr_accessor :name
4439
-
4440
- def initialize(**args)
4441
- update!(**args)
4442
- end
4443
-
4444
- # Update properties of this object
4445
- def update!(**args)
4446
- @name = args[:name] if args.key?(:name)
4447
- end
4448
- end
4449
-
4450
- # Provides GKE node pool information.
4451
- class GoogleCloudSecuritycenterV2NodePool
4452
- include Google::Apis::Core::Hashable
4453
-
4454
- # Kubernetes node pool name.
4455
- # Corresponds to the JSON property `name`
4456
- # @return [String]
4457
- attr_accessor :name
4458
-
4459
- # Nodes associated with the finding.
4460
- # Corresponds to the JSON property `nodes`
4461
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Node>]
4462
- attr_accessor :nodes
4463
-
4464
- def initialize(**args)
4465
- update!(**args)
4466
- end
4467
-
4468
- # Update properties of this object
4469
- def update!(**args)
4470
- @name = args[:name] if args.key?(:name)
4471
- @nodes = args[:nodes] if args.key?(:nodes)
4472
- end
4473
- end
4474
-
4475
- # Cloud SCC's Notification
4476
- class GoogleCloudSecuritycenterV2NotificationMessage
4477
- include Google::Apis::Core::Hashable
4478
-
4479
- # Security Command Center finding. A finding is a record of assessment data like
4480
- # security, risk, health, or privacy, that is ingested into Security Command
4481
- # Center for presentation, notification, analysis, policy testing, and
4482
- # enforcement. For example, a cross-site scripting (XSS) vulnerability in an App
4483
- # Engine application is a finding.
4484
- # Corresponds to the JSON property `finding`
4485
- # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Finding]
4486
- attr_accessor :finding
4487
-
4488
- # Name of the notification config that generated current notification.
4489
- # Corresponds to the JSON property `notificationConfigName`
4490
- # @return [String]
4491
- attr_accessor :notification_config_name
4492
-
4493
- # Information related to the Google Cloud resource.
4494
- # Corresponds to the JSON property `resource`
4495
- # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Resource]
4496
- attr_accessor :resource
4497
-
4498
- def initialize(**args)
4499
- update!(**args)
4500
- end
4501
-
4502
- # Update properties of this object
4503
- def update!(**args)
4504
- @finding = args[:finding] if args.key?(:finding)
4505
- @notification_config_name = args[:notification_config_name] if args.key?(:notification_config_name)
4506
- @resource = args[:resource] if args.key?(:resource)
4507
- end
4508
- end
4509
-
4510
- # Kubernetes object related to the finding, uniquely identified by GKNN. Used if
4511
- # the object Kind is not one of Pod, Node, NodePool, Binding, or AccessReview.
4512
- class GoogleCloudSecuritycenterV2Object
4513
- include Google::Apis::Core::Hashable
4514
-
4515
- # Pod containers associated with this finding, if any.
4516
- # Corresponds to the JSON property `containers`
4517
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Container>]
4518
- attr_accessor :containers
4519
-
4520
- # Kubernetes object group, such as "policy.k8s.io/v1".
4521
- # Corresponds to the JSON property `group`
4522
- # @return [String]
4523
- attr_accessor :group
4524
-
4525
- # Kubernetes object kind, such as "Namespace".
4526
- # Corresponds to the JSON property `kind`
4527
- # @return [String]
4528
- attr_accessor :kind
4529
-
4530
- # Kubernetes object name. For details see https://kubernetes.io/docs/concepts/
4531
- # overview/working-with-objects/names/.
4532
- # Corresponds to the JSON property `name`
4533
- # @return [String]
4534
- attr_accessor :name
4535
-
4536
- # Kubernetes object namespace. Must be a valid DNS label. Named "ns" to avoid
4537
- # collision with C++ namespace keyword. For details see https://kubernetes.io/
4538
- # docs/tasks/administer-cluster/namespaces/.
4539
- # Corresponds to the JSON property `ns`
4540
- # @return [String]
4541
- attr_accessor :ns
4542
-
4543
- def initialize(**args)
4544
- update!(**args)
4545
- end
4546
-
4547
- # Update properties of this object
4548
- def update!(**args)
4549
- @containers = args[:containers] if args.key?(:containers)
4550
- @group = args[:group] if args.key?(:group)
4551
- @kind = args[:kind] if args.key?(:kind)
4552
- @name = args[:name] if args.key?(:name)
4553
- @ns = args[:ns] if args.key?(:ns)
4554
- end
4555
- end
4556
-
4557
- # Contains information about the org policies associated with the finding.
4558
- class GoogleCloudSecuritycenterV2OrgPolicy
4559
- include Google::Apis::Core::Hashable
4560
-
4561
- # The resource name of the org policy. Example: "organizations/`organization_id`/
4562
- # policies/`constraint_name`"
4563
- # Corresponds to the JSON property `name`
4564
- # @return [String]
4565
- attr_accessor :name
4566
-
4567
- def initialize(**args)
4568
- update!(**args)
4569
- end
4570
-
4571
- # Update properties of this object
4572
- def update!(**args)
4573
- @name = args[:name] if args.key?(:name)
4574
- end
4575
- end
4576
-
4577
- # A Kubernetes Pod.
4578
- class GoogleCloudSecuritycenterV2Pod
4579
- include Google::Apis::Core::Hashable
4580
-
4581
- # Pod containers associated with this finding, if any.
4582
- # Corresponds to the JSON property `containers`
4583
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Container>]
4584
- attr_accessor :containers
4585
-
4586
- # Pod labels. For Kubernetes containers, these are applied to the container.
4587
- # Corresponds to the JSON property `labels`
4588
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Label>]
4589
- attr_accessor :labels
4590
-
4591
- # Kubernetes Pod name.
4592
- # Corresponds to the JSON property `name`
4593
- # @return [String]
4594
- attr_accessor :name
4595
-
4596
- # Kubernetes Pod namespace.
4597
- # Corresponds to the JSON property `ns`
4598
- # @return [String]
4599
- attr_accessor :ns
4600
-
4601
- def initialize(**args)
4602
- update!(**args)
4603
- end
4604
-
4605
- # Update properties of this object
4606
- def update!(**args)
4607
- @containers = args[:containers] if args.key?(:containers)
4608
- @labels = args[:labels] if args.key?(:labels)
4609
- @name = args[:name] if args.key?(:name)
4610
- @ns = args[:ns] if args.key?(:ns)
4611
- end
4612
- end
4613
-
4614
- # Represents an operating system process.
4615
- class GoogleCloudSecuritycenterV2Process
4616
- include Google::Apis::Core::Hashable
4617
-
4618
- # Process arguments as JSON encoded strings.
4619
- # Corresponds to the JSON property `args`
4620
- # @return [Array<String>]
4621
- attr_accessor :args
4622
-
4623
- # True if `args` is incomplete.
4624
- # Corresponds to the JSON property `argumentsTruncated`
4625
- # @return [Boolean]
4626
- attr_accessor :arguments_truncated
4627
- alias_method :arguments_truncated?, :arguments_truncated
4628
-
4629
- # File information about the related binary/library used by an executable, or
4630
- # the script used by a script interpreter
4631
- # Corresponds to the JSON property `binary`
4632
- # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2File]
4633
- attr_accessor :binary
4634
-
4635
- # Process environment variables.
4636
- # Corresponds to the JSON property `envVariables`
4637
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2EnvironmentVariable>]
4638
- attr_accessor :env_variables
4639
-
4640
- # True if `env_variables` is incomplete.
4641
- # Corresponds to the JSON property `envVariablesTruncated`
4642
- # @return [Boolean]
4643
- attr_accessor :env_variables_truncated
4644
- alias_method :env_variables_truncated?, :env_variables_truncated
4645
-
4646
- # File information for libraries loaded by the process.
4647
- # Corresponds to the JSON property `libraries`
4648
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2File>]
4649
- attr_accessor :libraries
4650
-
4651
- # The process name, as displayed in utilities like `top` and `ps`. This name can
4652
- # be accessed through `/proc/[pid]/comm` and changed with `prctl(PR_SET_NAME)`.
4653
- # Corresponds to the JSON property `name`
4654
- # @return [String]
4655
- attr_accessor :name
4656
-
4657
- # The parent process ID.
4658
- # Corresponds to the JSON property `parentPid`
4659
- # @return [Fixnum]
4660
- attr_accessor :parent_pid
4661
-
4662
- # The process ID.
4663
- # Corresponds to the JSON property `pid`
4664
- # @return [Fixnum]
4665
- attr_accessor :pid
4666
-
4667
- # File information about the related binary/library used by an executable, or
4668
- # the script used by a script interpreter
4669
- # Corresponds to the JSON property `script`
4670
- # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2File]
4671
- attr_accessor :script
4672
-
4673
- def initialize(**args)
4674
- update!(**args)
4675
- end
4676
-
4677
- # Update properties of this object
4678
- def update!(**args)
4679
- @args = args[:args] if args.key?(:args)
4680
- @arguments_truncated = args[:arguments_truncated] if args.key?(:arguments_truncated)
4681
- @binary = args[:binary] if args.key?(:binary)
4682
- @env_variables = args[:env_variables] if args.key?(:env_variables)
4683
- @env_variables_truncated = args[:env_variables_truncated] if args.key?(:env_variables_truncated)
4684
- @libraries = args[:libraries] if args.key?(:libraries)
4685
- @name = args[:name] if args.key?(:name)
4686
- @parent_pid = args[:parent_pid] if args.key?(:parent_pid)
4687
- @pid = args[:pid] if args.key?(:pid)
4688
- @script = args[:script] if args.key?(:script)
4689
- end
4690
- end
4691
-
4692
- # Indicates what signature matched this process.
4693
- class GoogleCloudSecuritycenterV2ProcessSignature
4694
- include Google::Apis::Core::Hashable
4695
-
4696
- # A signature corresponding to memory page hashes.
4697
- # Corresponds to the JSON property `memoryHashSignature`
4698
- # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2MemoryHashSignature]
4699
- attr_accessor :memory_hash_signature
4700
-
4701
- # A signature corresponding to a YARA rule.
4702
- # Corresponds to the JSON property `yaraRuleSignature`
4703
- # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2YaraRuleSignature]
4704
- attr_accessor :yara_rule_signature
4705
-
4706
- def initialize(**args)
4707
- update!(**args)
4708
- end
4709
-
4710
- # Update properties of this object
4711
- def update!(**args)
4712
- @memory_hash_signature = args[:memory_hash_signature] if args.key?(:memory_hash_signature)
4713
- @yara_rule_signature = args[:yara_rule_signature] if args.key?(:yara_rule_signature)
4714
- end
4715
- end
4716
-
4717
- # Additional Links
4718
- class GoogleCloudSecuritycenterV2Reference
4719
- include Google::Apis::Core::Hashable
4720
-
4721
- # Source of the reference e.g. NVD
4722
- # Corresponds to the JSON property `source`
4723
- # @return [String]
4724
- attr_accessor :source
4725
-
4726
- # Uri for the mentioned source e.g. https://cve.mitre.org/cgi-bin/cvename.cgi?
4727
- # name=CVE-2021-34527.
4728
- # Corresponds to the JSON property `uri`
4729
- # @return [String]
4730
- attr_accessor :uri
4731
-
4732
- def initialize(**args)
4733
- update!(**args)
4734
- end
4735
-
4736
- # Update properties of this object
4737
- def update!(**args)
4738
- @source = args[:source] if args.key?(:source)
4739
- @uri = args[:uri] if args.key?(:uri)
4740
- end
4741
- end
4742
-
4743
- # Information related to the Google Cloud resource.
4744
- class GoogleCloudSecuritycenterV2Resource
4745
- include Google::Apis::Core::Hashable
4746
-
4747
- # The human readable name of the resource.
4748
- # Corresponds to the JSON property `displayName`
4749
- # @return [String]
4750
- attr_accessor :display_name
4751
-
4752
- # The full resource name of the resource. See: https://cloud.google.com/apis/
4753
- # design/resource_names#full_resource_name
4754
- # Corresponds to the JSON property `name`
4755
- # @return [String]
4756
- attr_accessor :name
4757
-
4758
- # The full resource type of the resource.
4759
- # Corresponds to the JSON property `type`
4760
- # @return [String]
4761
- attr_accessor :type
4762
-
4763
- def initialize(**args)
4764
- update!(**args)
4765
- end
4766
-
4767
- # Update properties of this object
4768
- def update!(**args)
4769
- @display_name = args[:display_name] if args.key?(:display_name)
4770
- @name = args[:name] if args.key?(:name)
4771
- @type = args[:type] if args.key?(:type)
4772
- end
4773
- end
4774
-
4775
- # A resource value config (RVC) is a mapping configuration of user's resources
4776
- # to resource values. Used in Attack path simulations.
4777
- class GoogleCloudSecuritycenterV2ResourceValueConfig
4778
- include Google::Apis::Core::Hashable
4779
-
4780
- # Output only. Timestamp this resource value config was created.
4781
- # Corresponds to the JSON property `createTime`
4782
- # @return [String]
4783
- attr_accessor :create_time
4784
-
4785
- # Description of the resource value config.
4786
- # Corresponds to the JSON property `description`
4787
- # @return [String]
4788
- attr_accessor :description
4789
-
4790
- # Name for the resource value config
4791
- # Corresponds to the JSON property `name`
4792
- # @return [String]
4793
- attr_accessor :name
4794
-
4795
- # List of resource labels to search for, evaluated with AND. E.g. "
4796
- # resource_labels_selector": `"key": "value", "env": "prod"` will match
4797
- # resources with labels "key": "value" AND "env": "prod" https://cloud.google.
4798
- # com/resource-manager/docs/creating-managing-labels
4799
- # Corresponds to the JSON property `resourceLabelsSelector`
4800
- # @return [Hash<String,String>]
4801
- attr_accessor :resource_labels_selector
4802
-
4803
- # Apply resource_value only to resources that match resource_type. resource_type
4804
- # will be checked with "AND" of other resources. E.g. "storage.googleapis.com/
4805
- # Bucket" with resource_value "HIGH" will apply "HIGH" value only to "storage.
4806
- # googleapis.com/Bucket" resources.
4807
- # Corresponds to the JSON property `resourceType`
4808
- # @return [String]
4809
- attr_accessor :resource_type
4810
-
4811
- # Required. Resource value level this expression represents
4812
- # Corresponds to the JSON property `resourceValue`
4813
- # @return [String]
4814
- attr_accessor :resource_value
4815
-
4816
- # Project or folder to scope this config to. For example, "project/456" would
4817
- # apply this config only to resources in "project/456" scope will be checked
4818
- # with "AND" of other resources.
4819
- # Corresponds to the JSON property `scope`
4820
- # @return [String]
4821
- attr_accessor :scope
4822
-
4823
- # Required. Tag values combined with AND to check against. Values in the form "
4824
- # tagValues/123" E.g. [ "tagValues/123", "tagValues/456", "tagValues/789" ]
4825
- # https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing
4826
- # Corresponds to the JSON property `tagValues`
4827
- # @return [Array<String>]
4828
- attr_accessor :tag_values
4829
-
4830
- # Output only. Timestamp this resource value config was last updated.
4831
- # Corresponds to the JSON property `updateTime`
4832
- # @return [String]
4833
- attr_accessor :update_time
4834
-
4835
- def initialize(**args)
4836
- update!(**args)
4837
- end
4838
-
4839
- # Update properties of this object
4840
- def update!(**args)
4841
- @create_time = args[:create_time] if args.key?(:create_time)
4842
- @description = args[:description] if args.key?(:description)
4843
- @name = args[:name] if args.key?(:name)
4844
- @resource_labels_selector = args[:resource_labels_selector] if args.key?(:resource_labels_selector)
4845
- @resource_type = args[:resource_type] if args.key?(:resource_type)
4846
- @resource_value = args[:resource_value] if args.key?(:resource_value)
4847
- @scope = args[:scope] if args.key?(:scope)
4848
- @tag_values = args[:tag_values] if args.key?(:tag_values)
4849
- @update_time = args[:update_time] if args.key?(:update_time)
4850
- end
4851
- end
4852
-
4853
- # Kubernetes Role or ClusterRole.
4854
- class GoogleCloudSecuritycenterV2Role
4855
- include Google::Apis::Core::Hashable
4856
-
4857
- # Role type.
4858
- # Corresponds to the JSON property `kind`
4859
- # @return [String]
4860
- attr_accessor :kind
4861
-
4862
- # Role name.
4863
- # Corresponds to the JSON property `name`
4864
- # @return [String]
4865
- attr_accessor :name
4866
-
4867
- # Role namespace.
4868
- # Corresponds to the JSON property `ns`
4869
- # @return [String]
4870
- attr_accessor :ns
4871
-
4872
- def initialize(**args)
4873
- update!(**args)
4874
- end
4875
-
4876
- # Update properties of this object
4877
- def update!(**args)
4878
- @kind = args[:kind] if args.key?(:kind)
4879
- @name = args[:name] if args.key?(:name)
4880
- @ns = args[:ns] if args.key?(:ns)
4881
- end
4882
- end
4883
-
4884
- # User specified security marks that are attached to the parent Security Command
4885
- # Center resource. Security marks are scoped within a Security Command Center
4886
- # organization -- they can be modified and viewed by all users who have proper
4887
- # permissions on the organization.
4888
- class GoogleCloudSecuritycenterV2SecurityMarks
4889
- include Google::Apis::Core::Hashable
4890
-
4891
- # The canonical name of the marks. The following list shows some examples: + `
4892
- # organizations/`organization_id`/assets/`asset_id`/securityMarks" + `
4893
- # organizations/`organization_id`/sources/`source_id`/findings/`finding_id`/
4894
- # securityMarks" + `organizations/`organization_id`/sources/`source_id`/
4895
- # locations/`location`/findings/`finding_id`/securityMarks" + `folders/`
4896
- # folder_id`/assets/`asset_id`/securityMarks" + `folders/`folder_id`/sources/`
4897
- # source_id`/findings/`finding_id`/securityMarks" + `folders/`folder_id`/sources/
4898
- # `source_id`/locations/`location`/findings/`finding_id`/securityMarks" + `
4899
- # projects/`project_number`/assets/`asset_id`/securityMarks" + `projects/`
4900
- # project_number`/sources/`source_id`/findings/`finding_id`/securityMarks" + `
4901
- # projects/`project_number`/sources/`source_id`/locations/`location`/findings/`
4902
- # finding_id`/securityMarks"
4903
- # Corresponds to the JSON property `canonicalName`
4904
- # @return [String]
4905
- attr_accessor :canonical_name
4906
-
4907
- # Mutable user specified security marks belonging to the parent resource.
4908
- # Constraints are as follows: * Keys and values are treated as case insensitive *
4909
- # Keys must be between 1 - 256 characters (inclusive) * Keys must be letters,
4910
- # numbers, underscores, or dashes * Values have leading and trailing whitespace
4911
- # trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
4912
- # Corresponds to the JSON property `marks`
4913
- # @return [Hash<String,String>]
4914
- attr_accessor :marks
4915
-
4916
- # The relative resource name of the SecurityMarks. See: https://cloud.google.com/
4917
- # apis/design/resource_names#relative_resource_name The following list shows
4918
- # some examples: + `organizations/`organization_id`/assets/`asset_id`/
4919
- # securityMarks` + `organizations/`organization_id`/sources/`source_id`/findings/
4920
- # `finding_id`/securityMarks` + `organizations/`organization_id`/sources/`
4921
- # source_id`/locations/`location`/findings/`finding_id`/securityMarks`
4922
- # Corresponds to the JSON property `name`
4923
- # @return [String]
4924
- attr_accessor :name
4925
-
4926
- def initialize(**args)
4927
- update!(**args)
4928
- end
4929
-
4930
- # Update properties of this object
4931
- def update!(**args)
4932
- @canonical_name = args[:canonical_name] if args.key?(:canonical_name)
4933
- @marks = args[:marks] if args.key?(:marks)
4934
- @name = args[:name] if args.key?(:name)
4935
- end
4936
- end
4937
-
4938
- # Represents a posture that is deployed on Google Cloud by the Security Command
4939
- # Center Posture Management service. A posture contains one or more policy sets.
4940
- # A policy set is a group of policies that enforce a set of security rules on
4941
- # Google Cloud.
4942
- class GoogleCloudSecuritycenterV2SecurityPosture
4943
- include Google::Apis::Core::Hashable
4944
-
4945
- # The name of the policy that has been updated, for example, `projects/`
4946
- # project_id`/policies/`constraint_name``.
4947
- # Corresponds to the JSON property `changedPolicy`
4948
- # @return [String]
4949
- attr_accessor :changed_policy
4950
-
4951
- # Name of the posture, for example, `organizations/`org_id`/locations/`location`/
4952
- # postures/`posture_name``.
4953
- # Corresponds to the JSON property `name`
4954
- # @return [String]
4955
- attr_accessor :name
4956
-
4957
- # The name of the posture deployment, for example, `projects/`project_id`/
4958
- # posturedeployments/`posture_deployment_id``.
4959
- # Corresponds to the JSON property `postureDeployment`
4960
- # @return [String]
4961
- attr_accessor :posture_deployment
4962
-
4963
- # The project, folder, or organization on which the posture is deployed, for
4964
- # example, `projects/`project_id``.
4965
- # Corresponds to the JSON property `postureDeploymentResource`
4966
- # @return [String]
4967
- attr_accessor :posture_deployment_resource
4968
-
4969
- # The version of the posture, for example, `c7cfa2a8`.
4970
- # Corresponds to the JSON property `revisionId`
4971
- # @return [String]
4972
- attr_accessor :revision_id
4973
-
4974
- def initialize(**args)
4975
- update!(**args)
4976
- end
4977
-
4978
- # Update properties of this object
4979
- def update!(**args)
4980
- @changed_policy = args[:changed_policy] if args.key?(:changed_policy)
4981
- @name = args[:name] if args.key?(:name)
4982
- @posture_deployment = args[:posture_deployment] if args.key?(:posture_deployment)
4983
- @posture_deployment_resource = args[:posture_deployment_resource] if args.key?(:posture_deployment_resource)
4984
- @revision_id = args[:revision_id] if args.key?(:revision_id)
4985
- end
4986
- end
4987
-
4988
- # Identity delegation history of an authenticated service account.
4989
- class GoogleCloudSecuritycenterV2ServiceAccountDelegationInfo
4990
- include Google::Apis::Core::Hashable
4991
-
4992
- # The email address of a Google account.
4993
- # Corresponds to the JSON property `principalEmail`
4994
- # @return [String]
4995
- attr_accessor :principal_email
4996
-
4997
- # A string representing the principal_subject associated with the identity. As
4998
- # compared to `principal_email`, supports principals that aren't associated with
4999
- # email addresses, such as third party principals. For most identities, the
5000
- # format will be `principal://iam.googleapis.com/`identity pool name`/subjects/`
5001
- # subject`` except for some GKE identities (GKE_WORKLOAD, FREEFORM,
5002
- # GKE_HUB_WORKLOAD) that are still in the legacy format `serviceAccount:`
5003
- # identity pool name`[`subject`]`
5004
- # Corresponds to the JSON property `principalSubject`
5005
- # @return [String]
5006
- attr_accessor :principal_subject
5007
-
5008
- def initialize(**args)
5009
- update!(**args)
5010
- end
5011
-
5012
- # Update properties of this object
5013
- def update!(**args)
5014
- @principal_email = args[:principal_email] if args.key?(:principal_email)
5015
- @principal_subject = args[:principal_subject] if args.key?(:principal_subject)
5016
- end
5017
- end
5018
-
5019
- # Represents a Kubernetes subject.
5020
- class GoogleCloudSecuritycenterV2Subject
5021
- include Google::Apis::Core::Hashable
5022
-
5023
- # Authentication type for the subject.
5024
- # Corresponds to the JSON property `kind`
5025
- # @return [String]
5026
- attr_accessor :kind
5027
-
5028
- # Name for the subject.
5029
- # Corresponds to the JSON property `name`
5030
- # @return [String]
5031
- attr_accessor :name
5032
-
5033
- # Namespace for the subject.
5034
- # Corresponds to the JSON property `ns`
5035
- # @return [String]
5036
- attr_accessor :ns
5037
-
5038
- def initialize(**args)
5039
- update!(**args)
5040
- end
5041
-
5042
- # Update properties of this object
5043
- def update!(**args)
5044
- @kind = args[:kind] if args.key?(:kind)
5045
- @name = args[:name] if args.key?(:name)
5046
- @ns = args[:ns] if args.key?(:ns)
5047
- end
5048
- end
5049
-
5050
- # Refers to common vulnerability fields e.g. cve, cvss, cwe etc.
5051
- class GoogleCloudSecuritycenterV2Vulnerability
5052
- include Google::Apis::Core::Hashable
5053
-
5054
- # CVE stands for Common Vulnerabilities and Exposures. More information: https://
5055
- # cve.mitre.org
5056
- # Corresponds to the JSON property `cve`
5057
- # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Cve]
5058
- attr_accessor :cve
5059
-
5060
- def initialize(**args)
5061
- update!(**args)
5062
- end
5063
-
5064
- # Update properties of this object
5065
- def update!(**args)
5066
- @cve = args[:cve] if args.key?(:cve)
5067
- end
5068
- end
5069
-
5070
- # A signature corresponding to a YARA rule.
5071
- class GoogleCloudSecuritycenterV2YaraRuleSignature
5072
- include Google::Apis::Core::Hashable
5073
-
5074
- # The name of the YARA rule.
5075
- # Corresponds to the JSON property `yaraRule`
5076
- # @return [String]
5077
- attr_accessor :yara_rule
5078
-
5079
- def initialize(**args)
5080
- update!(**args)
5081
- end
5082
-
5083
- # Update properties of this object
5084
- def update!(**args)
5085
- @yara_rule = args[:yara_rule] if args.key?(:yara_rule)
5086
- end
5087
- end
5088
-
5089
- # Represents a particular IAM binding, which captures a member's role addition,
5090
- # removal, or state.
5091
- class IamBinding
5092
- include Google::Apis::Core::Hashable
5093
-
5094
- # The action that was performed on a Binding.
5095
- # Corresponds to the JSON property `action`
5096
- # @return [String]
5097
- attr_accessor :action
5098
-
5099
- # A single identity requesting access for a Cloud Platform resource, for example,
5100
- # "foo@google.com".
5101
- # Corresponds to the JSON property `member`
5102
- # @return [String]
5103
- attr_accessor :member
5104
-
5105
- # Role that is assigned to "members". For example, "roles/viewer", "roles/editor"
5106
- # , or "roles/owner".
5107
- # Corresponds to the JSON property `role`
5108
- # @return [String]
5109
- attr_accessor :role
5110
-
5111
- def initialize(**args)
5112
- update!(**args)
5113
- end
5114
-
5115
- # Update properties of this object
5116
- def update!(**args)
5117
- @action = args[:action] if args.key?(:action)
5118
- @member = args[:member] if args.key?(:member)
5119
- @role = args[:role] if args.key?(:role)
5120
- end
5121
- end
5122
-
5123
- # Represents what's commonly known as an _indicator of compromise_ (IoC) in
5124
- # computer forensics. This is an artifact observed on a network or in an
5125
- # operating system that, with high confidence, indicates a computer intrusion.
5126
- # For more information, see [Indicator of compromise](https://en.wikipedia.org/
5127
- # wiki/Indicator_of_compromise).
5128
- class Indicator
5129
- include Google::Apis::Core::Hashable
5130
-
5131
- # List of domains associated to the Finding.
5132
- # Corresponds to the JSON property `domains`
5133
- # @return [Array<String>]
5134
- attr_accessor :domains
5135
-
5136
- # The list of IP addresses that are associated with the finding.
5137
- # Corresponds to the JSON property `ipAddresses`
5138
- # @return [Array<String>]
5139
- attr_accessor :ip_addresses
5140
-
5141
- # The list of matched signatures indicating that the given process is present in
5142
- # the environment.
5143
- # Corresponds to the JSON property `signatures`
5144
- # @return [Array<Google::Apis::SecuritycenterV1beta2::ProcessSignature>]
5145
- attr_accessor :signatures
5146
-
5147
- # The list of URIs associated to the Findings.
5148
- # Corresponds to the JSON property `uris`
5149
- # @return [Array<String>]
5150
- attr_accessor :uris
5151
-
5152
- def initialize(**args)
5153
- update!(**args)
5154
- end
5155
-
5156
- # Update properties of this object
5157
- def update!(**args)
5158
- @domains = args[:domains] if args.key?(:domains)
5159
- @ip_addresses = args[:ip_addresses] if args.key?(:ip_addresses)
5160
- @signatures = args[:signatures] if args.key?(:signatures)
5161
- @uris = args[:uris] if args.key?(:uris)
5162
- end
5163
- end
5164
-
5165
- # Kernel mode rootkit signatures.
5166
- class KernelRootkit
5167
- include Google::Apis::Core::Hashable
5168
-
5169
- # Rootkit name, when available.
5170
- # Corresponds to the JSON property `name`
5171
- # @return [String]
5172
- attr_accessor :name
5173
-
5174
- # True if unexpected modifications of kernel code memory are present.
5175
- # Corresponds to the JSON property `unexpectedCodeModification`
5176
- # @return [Boolean]
5177
- attr_accessor :unexpected_code_modification
5178
- alias_method :unexpected_code_modification?, :unexpected_code_modification
2783
+ # True if unexpected modifications of kernel code memory are present.
2784
+ # Corresponds to the JSON property `unexpectedCodeModification`
2785
+ # @return [Boolean]
2786
+ attr_accessor :unexpected_code_modification
2787
+ alias_method :unexpected_code_modification?, :unexpected_code_modification
5179
2788
 
5180
2789
  # True if `ftrace` points are present with callbacks pointing to regions that
5181
2790
  # are not in the expected kernel or module code range.
@@ -5563,6 +3172,43 @@ module Google
5563
3172
  end
5564
3173
  end
5565
3174
 
3175
+ # Package is a generic definition of a package.
3176
+ class Package
3177
+ include Google::Apis::Core::Hashable
3178
+
3179
+ # The CPE URI where the vulnerability was detected.
3180
+ # Corresponds to the JSON property `cpeUri`
3181
+ # @return [String]
3182
+ attr_accessor :cpe_uri
3183
+
3184
+ # The name of the package where the vulnerability was detected.
3185
+ # Corresponds to the JSON property `packageName`
3186
+ # @return [String]
3187
+ attr_accessor :package_name
3188
+
3189
+ # Type of package, for example, os, maven, or go.
3190
+ # Corresponds to the JSON property `packageType`
3191
+ # @return [String]
3192
+ attr_accessor :package_type
3193
+
3194
+ # The version of the package.
3195
+ # Corresponds to the JSON property `packageVersion`
3196
+ # @return [String]
3197
+ attr_accessor :package_version
3198
+
3199
+ def initialize(**args)
3200
+ update!(**args)
3201
+ end
3202
+
3203
+ # Update properties of this object
3204
+ def update!(**args)
3205
+ @cpe_uri = args[:cpe_uri] if args.key?(:cpe_uri)
3206
+ @package_name = args[:package_name] if args.key?(:package_name)
3207
+ @package_type = args[:package_type] if args.key?(:package_type)
3208
+ @package_version = args[:package_version] if args.key?(:package_version)
3209
+ end
3210
+ end
3211
+
5566
3212
  # A Kubernetes Pod.
5567
3213
  class Pod
5568
3214
  include Google::Apis::Core::Hashable
@@ -5687,6 +3333,11 @@ module Google
5687
3333
  # @return [Google::Apis::SecuritycenterV1beta2::MemoryHashSignature]
5688
3334
  attr_accessor :memory_hash_signature
5689
3335
 
3336
+ # Describes the type of resource associated with the signature.
3337
+ # Corresponds to the JSON property `signatureType`
3338
+ # @return [String]
3339
+ attr_accessor :signature_type
3340
+
5690
3341
  # A signature corresponding to a YARA rule.
5691
3342
  # Corresponds to the JSON property `yaraRuleSignature`
5692
3343
  # @return [Google::Apis::SecuritycenterV1beta2::YaraRuleSignature]
@@ -5699,6 +3350,7 @@ module Google
5699
3350
  # Update properties of this object
5700
3351
  def update!(**args)
5701
3352
  @memory_hash_signature = args[:memory_hash_signature] if args.key?(:memory_hash_signature)
3353
+ @signature_type = args[:signature_type] if args.key?(:signature_type)
5702
3354
  @yara_rule_signature = args[:yara_rule_signature] if args.key?(:yara_rule_signature)
5703
3355
  end
5704
3356
  end
@@ -5803,6 +3455,38 @@ module Google
5803
3455
  end
5804
3456
  end
5805
3457
 
3458
+ # SecurityBulletin are notifications of vulnerabilities of Google products.
3459
+ class SecurityBulletin
3460
+ include Google::Apis::Core::Hashable
3461
+
3462
+ # ID of the bulletin corresponding to the vulnerability.
3463
+ # Corresponds to the JSON property `bulletinId`
3464
+ # @return [String]
3465
+ attr_accessor :bulletin_id
3466
+
3467
+ # Submission time of this Security Bulletin.
3468
+ # Corresponds to the JSON property `submissionTime`
3469
+ # @return [String]
3470
+ attr_accessor :submission_time
3471
+
3472
+ # This represents a version that the cluster receiving this notification should
3473
+ # be upgraded to, based on its current version. For example, 1.15.0
3474
+ # Corresponds to the JSON property `suggestedUpgradeVersion`
3475
+ # @return [String]
3476
+ attr_accessor :suggested_upgrade_version
3477
+
3478
+ def initialize(**args)
3479
+ update!(**args)
3480
+ end
3481
+
3482
+ # Update properties of this object
3483
+ def update!(**args)
3484
+ @bulletin_id = args[:bulletin_id] if args.key?(:bulletin_id)
3485
+ @submission_time = args[:submission_time] if args.key?(:submission_time)
3486
+ @suggested_upgrade_version = args[:suggested_upgrade_version] if args.key?(:suggested_upgrade_version)
3487
+ end
3488
+ end
3489
+
5806
3490
  # Resource capturing the settings for Security Center. Next ID: 12
5807
3491
  class SecurityCenterSettings
5808
3492
  include Google::Apis::Core::Hashable
@@ -6149,6 +3833,21 @@ module Google
6149
3833
  # @return [Google::Apis::SecuritycenterV1beta2::Cve]
6150
3834
  attr_accessor :cve
6151
3835
 
3836
+ # Package is a generic definition of a package.
3837
+ # Corresponds to the JSON property `fixedPackage`
3838
+ # @return [Google::Apis::SecuritycenterV1beta2::Package]
3839
+ attr_accessor :fixed_package
3840
+
3841
+ # Package is a generic definition of a package.
3842
+ # Corresponds to the JSON property `offendingPackage`
3843
+ # @return [Google::Apis::SecuritycenterV1beta2::Package]
3844
+ attr_accessor :offending_package
3845
+
3846
+ # SecurityBulletin are notifications of vulnerabilities of Google products.
3847
+ # Corresponds to the JSON property `securityBulletin`
3848
+ # @return [Google::Apis::SecuritycenterV1beta2::SecurityBulletin]
3849
+ attr_accessor :security_bulletin
3850
+
6152
3851
  def initialize(**args)
6153
3852
  update!(**args)
6154
3853
  end
@@ -6156,6 +3855,9 @@ module Google
6156
3855
  # Update properties of this object
6157
3856
  def update!(**args)
6158
3857
  @cve = args[:cve] if args.key?(:cve)
3858
+ @fixed_package = args[:fixed_package] if args.key?(:fixed_package)
3859
+ @offending_package = args[:offending_package] if args.key?(:offending_package)
3860
+ @security_bulletin = args[:security_bulletin] if args.key?(:security_bulletin)
6159
3861
  end
6160
3862
  end
6161
3863