google-apis-securitycenter_v1 0.68.0 → 0.70.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
  # Security Command Center representation of a Google Cloud resource. The Asset
190
219
  # is a Security Command Center resource that captures information about a single
191
220
  # Google Cloud resource. All modifications to an Asset are only within the
@@ -582,6 +611,103 @@ module Google
582
611
  end
583
612
  end
584
613
 
614
+ # Information related to Google Cloud Backup and DR Service findings.
615
+ class BackupDisasterRecovery
616
+ include Google::Apis::Core::Hashable
617
+
618
+ # The name of the Backup and DR appliance that captures, moves, and manages the
619
+ # lifecycle of backup data. For example, “backup-server-57137”.
620
+ # Corresponds to the JSON property `appliance`
621
+ # @return [String]
622
+ attr_accessor :appliance
623
+
624
+ # The names of Backup and DR applications. An application is a VM, database, or
625
+ # file system on a managed host monitored by a backup and recovery appliance.
626
+ # For example, “centos7-01-vol00”, “centos7-01-vol01”, “centos7-01-vol02”.
627
+ # Corresponds to the JSON property `applications`
628
+ # @return [Array<String>]
629
+ attr_accessor :applications
630
+
631
+ # The timestamp at which the Backup and DR backup was created.
632
+ # Corresponds to the JSON property `backupCreateTime`
633
+ # @return [String]
634
+ attr_accessor :backup_create_time
635
+
636
+ # The name of a Backup and DR template which comprises one or more backup
637
+ # policies. See the [Backup and DR documentation](https://cloud.google.com/
638
+ # backup-disaster-recovery/docs/concepts/backup-plan#temp) for more information.
639
+ # For example, “snap-ov”.
640
+ # Corresponds to the JSON property `backupTemplate`
641
+ # @return [String]
642
+ attr_accessor :backup_template
643
+
644
+ # The backup type of the Backup and DR image. For example, “Snapshot”, “Remote
645
+ # Snapshot”, “OnVault”.
646
+ # Corresponds to the JSON property `backupType`
647
+ # @return [String]
648
+ attr_accessor :backup_type
649
+
650
+ # The name of a Backup and DR host, which is managed by the backup and recovery
651
+ # appliance and known to the management console. The host can be of type Generic
652
+ # (for example, Compute Engine, SQL Server, Oracle DB, SMB file system, etc.),
653
+ # vCenter, or an ESX server. See the [Backup and DR documentation on hosts](
654
+ # https://cloud.google.com/backup-disaster-recovery/docs/configuration/manage-
655
+ # hosts-and-their-applications) for more information. For example, “centos7-01”.
656
+ # Corresponds to the JSON property `host`
657
+ # @return [String]
658
+ attr_accessor :host
659
+
660
+ # The names of Backup and DR policies that are associated with a template and
661
+ # that define when to run a backup, how frequently to run a backup, and how long
662
+ # to retain the backup image. For example, “onvaults”.
663
+ # Corresponds to the JSON property `policies`
664
+ # @return [Array<String>]
665
+ attr_accessor :policies
666
+
667
+ # The names of Backup and DR advanced policy options of a policy applying to an
668
+ # application. See the [Backup and DR documentation on policy options](https://
669
+ # cloud.google.com/backup-disaster-recovery/docs/create-plan/policy-settings).
670
+ # For example, “skipofflineappsincongrp, nounmap”.
671
+ # Corresponds to the JSON property `policyOptions`
672
+ # @return [Array<String>]
673
+ attr_accessor :policy_options
674
+
675
+ # The name of the Backup and DR resource profile that specifies the storage
676
+ # media for backups of application and VM data. See the [Backup and DR
677
+ # documentation on profiles](https://cloud.google.com/backup-disaster-recovery/
678
+ # docs/concepts/backup-plan#profile). For example, “GCP”.
679
+ # Corresponds to the JSON property `profile`
680
+ # @return [String]
681
+ attr_accessor :profile
682
+
683
+ # The name of the Backup and DR storage pool that the backup and recovery
684
+ # appliance is storing data in. The storage pool could be of type Cloud, Primary,
685
+ # Snapshot, or OnVault. See the [Backup and DR documentation on storage pools](
686
+ # https://cloud.google.com/backup-disaster-recovery/docs/concepts/storage-pools).
687
+ # For example, “DiskPoolOne”.
688
+ # Corresponds to the JSON property `storagePool`
689
+ # @return [String]
690
+ attr_accessor :storage_pool
691
+
692
+ def initialize(**args)
693
+ update!(**args)
694
+ end
695
+
696
+ # Update properties of this object
697
+ def update!(**args)
698
+ @appliance = args[:appliance] if args.key?(:appliance)
699
+ @applications = args[:applications] if args.key?(:applications)
700
+ @backup_create_time = args[:backup_create_time] if args.key?(:backup_create_time)
701
+ @backup_template = args[:backup_template] if args.key?(:backup_template)
702
+ @backup_type = args[:backup_type] if args.key?(:backup_type)
703
+ @host = args[:host] if args.key?(:host)
704
+ @policies = args[:policies] if args.key?(:policies)
705
+ @policy_options = args[:policy_options] if args.key?(:policy_options)
706
+ @profile = args[:profile] if args.key?(:profile)
707
+ @storage_pool = args[:storage_pool] if args.key?(:storage_pool)
708
+ end
709
+ end
710
+
585
711
  # Request message to create multiple resource value configs
586
712
  class BatchCreateResourceValueConfigsRequest
587
713
  include Google::Apis::Core::Hashable
@@ -875,6 +1001,68 @@ module Google
875
1001
  end
876
1002
  end
877
1003
 
1004
+ # Result containing the properties and count of a ComplianceSnapshot request.
1005
+ class ComplianceSnapshot
1006
+ include Google::Apis::Core::Hashable
1007
+
1008
+ # The category of Findings matching.
1009
+ # Corresponds to the JSON property `category`
1010
+ # @return [String]
1011
+ attr_accessor :category
1012
+
1013
+ # The compliance standard (ie CIS).
1014
+ # Corresponds to the JSON property `complianceStandard`
1015
+ # @return [String]
1016
+ attr_accessor :compliance_standard
1017
+
1018
+ # The compliance version (ie 1.3) in CIS 1.3.
1019
+ # Corresponds to the JSON property `complianceVersion`
1020
+ # @return [String]
1021
+ attr_accessor :compliance_version
1022
+
1023
+ # Total count of findings for the given properties.
1024
+ # Corresponds to the JSON property `count`
1025
+ # @return [Fixnum]
1026
+ attr_accessor :count
1027
+
1028
+ # The leaf container resource name that is closest to the snapshot.
1029
+ # Corresponds to the JSON property `leafContainerResource`
1030
+ # @return [String]
1031
+ attr_accessor :leaf_container_resource
1032
+
1033
+ # The compliance snapshot name. Format: //sources//complianceSnapshots/
1034
+ # Corresponds to the JSON property `name`
1035
+ # @return [String]
1036
+ attr_accessor :name
1037
+
1038
+ # The CRM resource display name that is closest to the snapshot the Findings
1039
+ # belong to.
1040
+ # Corresponds to the JSON property `projectDisplayName`
1041
+ # @return [String]
1042
+ attr_accessor :project_display_name
1043
+
1044
+ # The snapshot time of the snapshot.
1045
+ # Corresponds to the JSON property `snapshotTime`
1046
+ # @return [String]
1047
+ attr_accessor :snapshot_time
1048
+
1049
+ def initialize(**args)
1050
+ update!(**args)
1051
+ end
1052
+
1053
+ # Update properties of this object
1054
+ def update!(**args)
1055
+ @category = args[:category] if args.key?(:category)
1056
+ @compliance_standard = args[:compliance_standard] if args.key?(:compliance_standard)
1057
+ @compliance_version = args[:compliance_version] if args.key?(:compliance_version)
1058
+ @count = args[:count] if args.key?(:count)
1059
+ @leaf_container_resource = args[:leaf_container_resource] if args.key?(:leaf_container_resource)
1060
+ @name = args[:name] if args.key?(:name)
1061
+ @project_display_name = args[:project_display_name] if args.key?(:project_display_name)
1062
+ @snapshot_time = args[:snapshot_time] if args.key?(:snapshot_time)
1063
+ end
1064
+ end
1065
+
878
1066
  # Contains information about the IP connection associated with the finding.
879
1067
  class Connection
880
1068
  include Google::Apis::Core::Hashable
@@ -1589,11 +1777,21 @@ module Google
1589
1777
  # @return [Google::Apis::SecuritycenterV1::Access]
1590
1778
  attr_accessor :access
1591
1779
 
1780
+ # Represents an application associated with a finding.
1781
+ # Corresponds to the JSON property `application`
1782
+ # @return [Google::Apis::SecuritycenterV1::Application]
1783
+ attr_accessor :application
1784
+
1592
1785
  # An attack exposure contains the results of an attack path simulation run.
1593
1786
  # Corresponds to the JSON property `attackExposure`
1594
1787
  # @return [Google::Apis::SecuritycenterV1::AttackExposure]
1595
1788
  attr_accessor :attack_exposure
1596
1789
 
1790
+ # Information related to Google Cloud Backup and DR Service findings.
1791
+ # Corresponds to the JSON property `backupDisasterRecovery`
1792
+ # @return [Google::Apis::SecuritycenterV1::BackupDisasterRecovery]
1793
+ attr_accessor :backup_disaster_recovery
1794
+
1597
1795
  # The canonical name of the finding. It's either "organizations/`organization_id`
1598
1796
  # /sources/`source_id`/findings/`finding_id`", "folders/`folder_id`/sources/`
1599
1797
  # source_id`/findings/`finding_id`" or "projects/`project_number`/sources/`
@@ -1870,7 +2068,9 @@ module Google
1870
2068
  # Update properties of this object
1871
2069
  def update!(**args)
1872
2070
  @access = args[:access] if args.key?(:access)
2071
+ @application = args[:application] if args.key?(:application)
1873
2072
  @attack_exposure = args[:attack_exposure] if args.key?(:attack_exposure)
2073
+ @backup_disaster_recovery = args[:backup_disaster_recovery] if args.key?(:backup_disaster_recovery)
1874
2074
  @canonical_name = args[:canonical_name] if args.key?(:canonical_name)
1875
2075
  @category = args[:category] if args.key?(:category)
1876
2076
  @cloud_dlp_data_profile = args[:cloud_dlp_data_profile] if args.key?(:cloud_dlp_data_profile)
@@ -3073,6 +3273,2644 @@ module Google
3073
3273
  end
3074
3274
  end
3075
3275
 
3276
+ # Represents an access event.
3277
+ class GoogleCloudSecuritycenterV2Access
3278
+ include Google::Apis::Core::Hashable
3279
+
3280
+ # Caller's IP address, such as "1.1.1.1".
3281
+ # Corresponds to the JSON property `callerIp`
3282
+ # @return [String]
3283
+ attr_accessor :caller_ip
3284
+
3285
+ # Represents a geographical location for a given access.
3286
+ # Corresponds to the JSON property `callerIpGeo`
3287
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Geolocation]
3288
+ attr_accessor :caller_ip_geo
3289
+
3290
+ # The method that the service account called, e.g. "SetIamPolicy".
3291
+ # Corresponds to the JSON property `methodName`
3292
+ # @return [String]
3293
+ attr_accessor :method_name
3294
+
3295
+ # Associated email, such as "foo@google.com". The email address of the
3296
+ # authenticated user or a service account acting on behalf of a third party
3297
+ # principal making the request. For third party identity callers, the `
3298
+ # principal_subject` field is populated instead of this field. For privacy
3299
+ # reasons, the principal email address is sometimes redacted. For more
3300
+ # information, see [Caller identities in audit logs](https://cloud.google.com/
3301
+ # logging/docs/audit#user-id).
3302
+ # Corresponds to the JSON property `principalEmail`
3303
+ # @return [String]
3304
+ attr_accessor :principal_email
3305
+
3306
+ # A string that represents the principal_subject that is associated with the
3307
+ # identity. Unlike `principal_email`, `principal_subject` supports principals
3308
+ # that aren't associated with email addresses, such as third party principals.
3309
+ # For most identities, the format is `principal://iam.googleapis.com/`identity
3310
+ # pool name`/subject/`subject``. Some GKE identities, such as GKE_WORKLOAD,
3311
+ # FREEFORM, and GKE_HUB_WORKLOAD, still use the legacy format `serviceAccount:`
3312
+ # identity pool name`[`subject`]`.
3313
+ # Corresponds to the JSON property `principalSubject`
3314
+ # @return [String]
3315
+ attr_accessor :principal_subject
3316
+
3317
+ # The identity delegation history of an authenticated service account that made
3318
+ # the request. The `serviceAccountDelegationInfo[]` object contains information
3319
+ # about the real authorities that try to access Google Cloud resources by
3320
+ # delegating on a service account. When multiple authorities are present, they
3321
+ # are guaranteed to be sorted based on the original ordering of the identity
3322
+ # delegation events.
3323
+ # Corresponds to the JSON property `serviceAccountDelegationInfo`
3324
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2ServiceAccountDelegationInfo>]
3325
+ attr_accessor :service_account_delegation_info
3326
+
3327
+ # The name of the service account key that was used to create or exchange
3328
+ # credentials when authenticating the service account that made the request.
3329
+ # This is a scheme-less URI full resource name. For example: "//iam.googleapis.
3330
+ # com/projects/`PROJECT_ID`/serviceAccounts/`ACCOUNT`/keys/`key`".
3331
+ # Corresponds to the JSON property `serviceAccountKeyName`
3332
+ # @return [String]
3333
+ attr_accessor :service_account_key_name
3334
+
3335
+ # This is the API service that the service account made a call to, e.g. "iam.
3336
+ # googleapis.com"
3337
+ # Corresponds to the JSON property `serviceName`
3338
+ # @return [String]
3339
+ attr_accessor :service_name
3340
+
3341
+ # The caller's user agent string associated with the finding.
3342
+ # Corresponds to the JSON property `userAgent`
3343
+ # @return [String]
3344
+ attr_accessor :user_agent
3345
+
3346
+ # Type of user agent associated with the finding. For example, an operating
3347
+ # system shell or an embedded or standalone application.
3348
+ # Corresponds to the JSON property `userAgentFamily`
3349
+ # @return [String]
3350
+ attr_accessor :user_agent_family
3351
+
3352
+ # A string that represents a username. The username provided depends on the type
3353
+ # of the finding and is likely not an IAM principal. For example, this can be a
3354
+ # system username if the finding is related to a virtual machine, or it can be
3355
+ # an application login username.
3356
+ # Corresponds to the JSON property `userName`
3357
+ # @return [String]
3358
+ attr_accessor :user_name
3359
+
3360
+ def initialize(**args)
3361
+ update!(**args)
3362
+ end
3363
+
3364
+ # Update properties of this object
3365
+ def update!(**args)
3366
+ @caller_ip = args[:caller_ip] if args.key?(:caller_ip)
3367
+ @caller_ip_geo = args[:caller_ip_geo] if args.key?(:caller_ip_geo)
3368
+ @method_name = args[:method_name] if args.key?(:method_name)
3369
+ @principal_email = args[:principal_email] if args.key?(:principal_email)
3370
+ @principal_subject = args[:principal_subject] if args.key?(:principal_subject)
3371
+ @service_account_delegation_info = args[:service_account_delegation_info] if args.key?(:service_account_delegation_info)
3372
+ @service_account_key_name = args[:service_account_key_name] if args.key?(:service_account_key_name)
3373
+ @service_name = args[:service_name] if args.key?(:service_name)
3374
+ @user_agent = args[:user_agent] if args.key?(:user_agent)
3375
+ @user_agent_family = args[:user_agent_family] if args.key?(:user_agent_family)
3376
+ @user_name = args[:user_name] if args.key?(:user_name)
3377
+ end
3378
+ end
3379
+
3380
+ # Conveys information about a Kubernetes access review (such as one returned by
3381
+ # a [`kubectl auth can-i`](https://kubernetes.io/docs/reference/access-authn-
3382
+ # authz/authorization/#checking-api-access) command) that was involved in a
3383
+ # finding.
3384
+ class GoogleCloudSecuritycenterV2AccessReview
3385
+ include Google::Apis::Core::Hashable
3386
+
3387
+ # The API group of the resource. "*" means all.
3388
+ # Corresponds to the JSON property `group`
3389
+ # @return [String]
3390
+ attr_accessor :group
3391
+
3392
+ # The name of the resource being requested. Empty means all.
3393
+ # Corresponds to the JSON property `name`
3394
+ # @return [String]
3395
+ attr_accessor :name
3396
+
3397
+ # Namespace of the action being requested. Currently, there is no distinction
3398
+ # between no namespace and all namespaces. Both are represented by "" (empty).
3399
+ # Corresponds to the JSON property `ns`
3400
+ # @return [String]
3401
+ attr_accessor :ns
3402
+
3403
+ # The optional resource type requested. "*" means all.
3404
+ # Corresponds to the JSON property `resource`
3405
+ # @return [String]
3406
+ attr_accessor :resource
3407
+
3408
+ # The optional subresource type.
3409
+ # Corresponds to the JSON property `subresource`
3410
+ # @return [String]
3411
+ attr_accessor :subresource
3412
+
3413
+ # A Kubernetes resource API verb, like get, list, watch, create, update, delete,
3414
+ # proxy. "*" means all.
3415
+ # Corresponds to the JSON property `verb`
3416
+ # @return [String]
3417
+ attr_accessor :verb
3418
+
3419
+ # The API version of the resource. "*" means all.
3420
+ # Corresponds to the JSON property `version`
3421
+ # @return [String]
3422
+ attr_accessor :version
3423
+
3424
+ def initialize(**args)
3425
+ update!(**args)
3426
+ end
3427
+
3428
+ # Update properties of this object
3429
+ def update!(**args)
3430
+ @group = args[:group] if args.key?(:group)
3431
+ @name = args[:name] if args.key?(:name)
3432
+ @ns = args[:ns] if args.key?(:ns)
3433
+ @resource = args[:resource] if args.key?(:resource)
3434
+ @subresource = args[:subresource] if args.key?(:subresource)
3435
+ @verb = args[:verb] if args.key?(:verb)
3436
+ @version = args[:version] if args.key?(:version)
3437
+ end
3438
+ end
3439
+
3440
+ # Represents an application associated with a finding.
3441
+ class GoogleCloudSecuritycenterV2Application
3442
+ include Google::Apis::Core::Hashable
3443
+
3444
+ # The base URI that identifies the network location of the application in which
3445
+ # the vulnerability was detected. Examples: http://11.22.33.44, http://foo.com,
3446
+ # http://11.22.33.44:8080
3447
+ # Corresponds to the JSON property `baseUri`
3448
+ # @return [String]
3449
+ attr_accessor :base_uri
3450
+
3451
+ # The full URI with payload that could be used to reproduce the vulnerability.
3452
+ # Example: http://11.22.33.44/reflected/parameter/attribute/singlequoted/js?p=
3453
+ # aMmYgI6H
3454
+ # Corresponds to the JSON property `fullUri`
3455
+ # @return [String]
3456
+ attr_accessor :full_uri
3457
+
3458
+ def initialize(**args)
3459
+ update!(**args)
3460
+ end
3461
+
3462
+ # Update properties of this object
3463
+ def update!(**args)
3464
+ @base_uri = args[:base_uri] if args.key?(:base_uri)
3465
+ @full_uri = args[:full_uri] if args.key?(:full_uri)
3466
+ end
3467
+ end
3468
+
3469
+ # An attack exposure contains the results of an attack path simulation run.
3470
+ class GoogleCloudSecuritycenterV2AttackExposure
3471
+ include Google::Apis::Core::Hashable
3472
+
3473
+ # The resource name of the attack path simulation result that contains the
3474
+ # details regarding this attack exposure score. Example: organizations/123/
3475
+ # attackExposureResults/456
3476
+ # Corresponds to the JSON property `attackExposureResult`
3477
+ # @return [String]
3478
+ attr_accessor :attack_exposure_result
3479
+
3480
+ # The number of high value resources that are exposed as a result of this
3481
+ # finding.
3482
+ # Corresponds to the JSON property `exposedHighValueResourcesCount`
3483
+ # @return [Fixnum]
3484
+ attr_accessor :exposed_high_value_resources_count
3485
+
3486
+ # The number of high value resources that are exposed as a result of this
3487
+ # finding.
3488
+ # Corresponds to the JSON property `exposedLowValueResourcesCount`
3489
+ # @return [Fixnum]
3490
+ attr_accessor :exposed_low_value_resources_count
3491
+
3492
+ # The number of medium value resources that are exposed as a result of this
3493
+ # finding.
3494
+ # Corresponds to the JSON property `exposedMediumValueResourcesCount`
3495
+ # @return [Fixnum]
3496
+ attr_accessor :exposed_medium_value_resources_count
3497
+
3498
+ # The most recent time the attack exposure was updated on this finding.
3499
+ # Corresponds to the JSON property `latestCalculationTime`
3500
+ # @return [String]
3501
+ attr_accessor :latest_calculation_time
3502
+
3503
+ # A number between 0 (inclusive) and infinity that represents how important this
3504
+ # finding is to remediate. The higher the score, the more important it is to
3505
+ # remediate.
3506
+ # Corresponds to the JSON property `score`
3507
+ # @return [Float]
3508
+ attr_accessor :score
3509
+
3510
+ # Output only. What state this AttackExposure is in. This captures whether or
3511
+ # not an attack exposure has been calculated or not.
3512
+ # Corresponds to the JSON property `state`
3513
+ # @return [String]
3514
+ attr_accessor :state
3515
+
3516
+ def initialize(**args)
3517
+ update!(**args)
3518
+ end
3519
+
3520
+ # Update properties of this object
3521
+ def update!(**args)
3522
+ @attack_exposure_result = args[:attack_exposure_result] if args.key?(:attack_exposure_result)
3523
+ @exposed_high_value_resources_count = args[:exposed_high_value_resources_count] if args.key?(:exposed_high_value_resources_count)
3524
+ @exposed_low_value_resources_count = args[:exposed_low_value_resources_count] if args.key?(:exposed_low_value_resources_count)
3525
+ @exposed_medium_value_resources_count = args[:exposed_medium_value_resources_count] if args.key?(:exposed_medium_value_resources_count)
3526
+ @latest_calculation_time = args[:latest_calculation_time] if args.key?(:latest_calculation_time)
3527
+ @score = args[:score] if args.key?(:score)
3528
+ @state = args[:state] if args.key?(:state)
3529
+ end
3530
+ end
3531
+
3532
+ # Information related to Google Cloud Backup and DR Service findings.
3533
+ class GoogleCloudSecuritycenterV2BackupDisasterRecovery
3534
+ include Google::Apis::Core::Hashable
3535
+
3536
+ # The name of the Backup and DR appliance that captures, moves, and manages the
3537
+ # lifecycle of backup data. For example, “backup-server-57137”.
3538
+ # Corresponds to the JSON property `appliance`
3539
+ # @return [String]
3540
+ attr_accessor :appliance
3541
+
3542
+ # The names of Backup and DR applications. An application is a VM, database, or
3543
+ # file system on a managed host monitored by a backup and recovery appliance.
3544
+ # For example, “centos7-01-vol00”, “centos7-01-vol01”, “centos7-01-vol02”.
3545
+ # Corresponds to the JSON property `applications`
3546
+ # @return [Array<String>]
3547
+ attr_accessor :applications
3548
+
3549
+ # The timestamp at which the Backup and DR backup was created.
3550
+ # Corresponds to the JSON property `backupCreateTime`
3551
+ # @return [String]
3552
+ attr_accessor :backup_create_time
3553
+
3554
+ # The name of a Backup and DR template which comprises one or more backup
3555
+ # policies. See the [Backup and DR documentation](https://cloud.google.com/
3556
+ # backup-disaster-recovery/docs/concepts/backup-plan#temp) for more information.
3557
+ # For example, “snap-ov”.
3558
+ # Corresponds to the JSON property `backupTemplate`
3559
+ # @return [String]
3560
+ attr_accessor :backup_template
3561
+
3562
+ # The backup type of the Backup and DR image. For example, “Snapshot”, “Remote
3563
+ # Snapshot”, “OnVault”.
3564
+ # Corresponds to the JSON property `backupType`
3565
+ # @return [String]
3566
+ attr_accessor :backup_type
3567
+
3568
+ # The name of a Backup and DR host, which is managed by the backup and recovery
3569
+ # appliance and known to the management console. The host can be of type Generic
3570
+ # (for example, Compute Engine, SQL Server, Oracle DB, SMB file system, etc.),
3571
+ # vCenter, or an ESX server. See the [Backup and DR documentation on hosts](
3572
+ # https://cloud.google.com/backup-disaster-recovery/docs/configuration/manage-
3573
+ # hosts-and-their-applications) for more information. For example, “centos7-01”.
3574
+ # Corresponds to the JSON property `host`
3575
+ # @return [String]
3576
+ attr_accessor :host
3577
+
3578
+ # The names of Backup and DR policies that are associated with a template and
3579
+ # that define when to run a backup, how frequently to run a backup, and how long
3580
+ # to retain the backup image. For example, “onvaults”.
3581
+ # Corresponds to the JSON property `policies`
3582
+ # @return [Array<String>]
3583
+ attr_accessor :policies
3584
+
3585
+ # The names of Backup and DR advanced policy options of a policy applying to an
3586
+ # application. See the [Backup and DR documentation on policy options](https://
3587
+ # cloud.google.com/backup-disaster-recovery/docs/create-plan/policy-settings).
3588
+ # For example, “skipofflineappsincongrp, nounmap”.
3589
+ # Corresponds to the JSON property `policyOptions`
3590
+ # @return [Array<String>]
3591
+ attr_accessor :policy_options
3592
+
3593
+ # The name of the Backup and DR resource profile that specifies the storage
3594
+ # media for backups of application and VM data. See the [Backup and DR
3595
+ # documentation on profiles](https://cloud.google.com/backup-disaster-recovery/
3596
+ # docs/concepts/backup-plan#profile). For example, “GCP”.
3597
+ # Corresponds to the JSON property `profile`
3598
+ # @return [String]
3599
+ attr_accessor :profile
3600
+
3601
+ # The name of the Backup and DR storage pool that the backup and recovery
3602
+ # appliance is storing data in. The storage pool could be of type Cloud, Primary,
3603
+ # Snapshot, or OnVault. See the [Backup and DR documentation on storage pools](
3604
+ # https://cloud.google.com/backup-disaster-recovery/docs/concepts/storage-pools).
3605
+ # For example, “DiskPoolOne”.
3606
+ # Corresponds to the JSON property `storagePool`
3607
+ # @return [String]
3608
+ attr_accessor :storage_pool
3609
+
3610
+ def initialize(**args)
3611
+ update!(**args)
3612
+ end
3613
+
3614
+ # Update properties of this object
3615
+ def update!(**args)
3616
+ @appliance = args[:appliance] if args.key?(:appliance)
3617
+ @applications = args[:applications] if args.key?(:applications)
3618
+ @backup_create_time = args[:backup_create_time] if args.key?(:backup_create_time)
3619
+ @backup_template = args[:backup_template] if args.key?(:backup_template)
3620
+ @backup_type = args[:backup_type] if args.key?(:backup_type)
3621
+ @host = args[:host] if args.key?(:host)
3622
+ @policies = args[:policies] if args.key?(:policies)
3623
+ @policy_options = args[:policy_options] if args.key?(:policy_options)
3624
+ @profile = args[:profile] if args.key?(:profile)
3625
+ @storage_pool = args[:storage_pool] if args.key?(:storage_pool)
3626
+ end
3627
+ end
3628
+
3629
+ # Configures how to deliver Findings to BigQuery Instance.
3630
+ class GoogleCloudSecuritycenterV2BigQueryExport
3631
+ include Google::Apis::Core::Hashable
3632
+
3633
+ # Output only. The time at which the BigQuery export was created. This field is
3634
+ # set by the server and will be ignored if provided on export on creation.
3635
+ # Corresponds to the JSON property `createTime`
3636
+ # @return [String]
3637
+ attr_accessor :create_time
3638
+
3639
+ # The dataset to write findings' updates to. Its format is "projects/[project_id]
3640
+ # /datasets/[bigquery_dataset_id]". BigQuery Dataset unique ID must contain only
3641
+ # letters (a-z, A-Z), numbers (0-9), or underscores (_).
3642
+ # Corresponds to the JSON property `dataset`
3643
+ # @return [String]
3644
+ attr_accessor :dataset
3645
+
3646
+ # The description of the export (max of 1024 characters).
3647
+ # Corresponds to the JSON property `description`
3648
+ # @return [String]
3649
+ attr_accessor :description
3650
+
3651
+ # Expression that defines the filter to apply across create/update events of
3652
+ # findings. The expression is a list of zero or more restrictions combined via
3653
+ # logical operators `AND` and `OR`. Parentheses are supported, and `OR` has
3654
+ # higher precedence than `AND`. Restrictions have the form ` ` and may have a `-`
3655
+ # character in front of them to indicate negation. The fields map to those
3656
+ # defined in the corresponding resource. The supported operators are: * `=` for
3657
+ # all value types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning
3658
+ # substring matching, for strings. The supported value types are: * string
3659
+ # literals in quotes. * integer literals without quotes. * boolean literals `
3660
+ # true` and `false` without quotes.
3661
+ # Corresponds to the JSON property `filter`
3662
+ # @return [String]
3663
+ attr_accessor :filter
3664
+
3665
+ # Output only. Email address of the user who last edited the BigQuery export.
3666
+ # This field is set by the server and will be ignored if provided on export
3667
+ # creation or update.
3668
+ # Corresponds to the JSON property `mostRecentEditor`
3669
+ # @return [String]
3670
+ attr_accessor :most_recent_editor
3671
+
3672
+ # The relative resource name of this export. See: https://cloud.google.com/apis/
3673
+ # design/resource_names#relative_resource_name. The following list shows some
3674
+ # examples: + `organizations/`organization_id`/locations/`location_id`/
3675
+ # bigQueryExports/`export_id`` + `folders/`folder_id`/locations/`location_id`/
3676
+ # bigQueryExports/`export_id`` + `projects/`project_id`/locations/`location_id`/
3677
+ # bigQueryExports/`export_id`` This field is provided in responses, and is
3678
+ # ignored when provided in create requests.
3679
+ # Corresponds to the JSON property `name`
3680
+ # @return [String]
3681
+ attr_accessor :name
3682
+
3683
+ # Output only. The service account that needs permission to create table and
3684
+ # upload data to the BigQuery dataset.
3685
+ # Corresponds to the JSON property `principal`
3686
+ # @return [String]
3687
+ attr_accessor :principal
3688
+
3689
+ # Output only. The most recent time at which the BigQuery export was updated.
3690
+ # This field is set by the server and will be ignored if provided on export
3691
+ # creation or update.
3692
+ # Corresponds to the JSON property `updateTime`
3693
+ # @return [String]
3694
+ attr_accessor :update_time
3695
+
3696
+ def initialize(**args)
3697
+ update!(**args)
3698
+ end
3699
+
3700
+ # Update properties of this object
3701
+ def update!(**args)
3702
+ @create_time = args[:create_time] if args.key?(:create_time)
3703
+ @dataset = args[:dataset] if args.key?(:dataset)
3704
+ @description = args[:description] if args.key?(:description)
3705
+ @filter = args[:filter] if args.key?(:filter)
3706
+ @most_recent_editor = args[:most_recent_editor] if args.key?(:most_recent_editor)
3707
+ @name = args[:name] if args.key?(:name)
3708
+ @principal = args[:principal] if args.key?(:principal)
3709
+ @update_time = args[:update_time] if args.key?(:update_time)
3710
+ end
3711
+ end
3712
+
3713
+ # Represents a Kubernetes RoleBinding or ClusterRoleBinding.
3714
+ class GoogleCloudSecuritycenterV2Binding
3715
+ include Google::Apis::Core::Hashable
3716
+
3717
+ # Name for the binding.
3718
+ # Corresponds to the JSON property `name`
3719
+ # @return [String]
3720
+ attr_accessor :name
3721
+
3722
+ # Namespace for the binding.
3723
+ # Corresponds to the JSON property `ns`
3724
+ # @return [String]
3725
+ attr_accessor :ns
3726
+
3727
+ # Kubernetes Role or ClusterRole.
3728
+ # Corresponds to the JSON property `role`
3729
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Role]
3730
+ attr_accessor :role
3731
+
3732
+ # Represents one or more subjects that are bound to the role. Not always
3733
+ # available for PATCH requests.
3734
+ # Corresponds to the JSON property `subjects`
3735
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Subject>]
3736
+ attr_accessor :subjects
3737
+
3738
+ def initialize(**args)
3739
+ update!(**args)
3740
+ end
3741
+
3742
+ # Update properties of this object
3743
+ def update!(**args)
3744
+ @name = args[:name] if args.key?(:name)
3745
+ @ns = args[:ns] if args.key?(:ns)
3746
+ @role = args[:role] if args.key?(:role)
3747
+ @subjects = args[:subjects] if args.key?(:subjects)
3748
+ end
3749
+ end
3750
+
3751
+ # The response to a BulkMute request. Contains the LRO information.
3752
+ class GoogleCloudSecuritycenterV2BulkMuteFindingsResponse
3753
+ include Google::Apis::Core::Hashable
3754
+
3755
+ def initialize(**args)
3756
+ update!(**args)
3757
+ end
3758
+
3759
+ # Update properties of this object
3760
+ def update!(**args)
3761
+ end
3762
+ end
3763
+
3764
+ # The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated
3765
+ # with the finding.
3766
+ class GoogleCloudSecuritycenterV2CloudDlpDataProfile
3767
+ include Google::Apis::Core::Hashable
3768
+
3769
+ # Name of the data profile, for example, `projects/123/locations/europe/
3770
+ # tableProfiles/8383929`.
3771
+ # Corresponds to the JSON property `dataProfile`
3772
+ # @return [String]
3773
+ attr_accessor :data_profile
3774
+
3775
+ # The resource hierarchy level at which the data profile was generated.
3776
+ # Corresponds to the JSON property `parentType`
3777
+ # @return [String]
3778
+ attr_accessor :parent_type
3779
+
3780
+ def initialize(**args)
3781
+ update!(**args)
3782
+ end
3783
+
3784
+ # Update properties of this object
3785
+ def update!(**args)
3786
+ @data_profile = args[:data_profile] if args.key?(:data_profile)
3787
+ @parent_type = args[:parent_type] if args.key?(:parent_type)
3788
+ end
3789
+ end
3790
+
3791
+ # Details about the Cloud Data Loss Prevention (Cloud DLP) [inspection job](
3792
+ # https://cloud.google.com/dlp/docs/concepts-job-triggers) that produced the
3793
+ # finding.
3794
+ class GoogleCloudSecuritycenterV2CloudDlpInspection
3795
+ include Google::Apis::Core::Hashable
3796
+
3797
+ # Whether Cloud DLP scanned the complete resource or a sampled subset.
3798
+ # Corresponds to the JSON property `fullScan`
3799
+ # @return [Boolean]
3800
+ attr_accessor :full_scan
3801
+ alias_method :full_scan?, :full_scan
3802
+
3803
+ # The type of information (or *[infoType](https://cloud.google.com/dlp/docs/
3804
+ # infotypes-reference)*) found, for example, `EMAIL_ADDRESS` or `STREET_ADDRESS`.
3805
+ # Corresponds to the JSON property `infoType`
3806
+ # @return [String]
3807
+ attr_accessor :info_type
3808
+
3809
+ # The number of times Cloud DLP found this infoType within this job and resource.
3810
+ # Corresponds to the JSON property `infoTypeCount`
3811
+ # @return [Fixnum]
3812
+ attr_accessor :info_type_count
3813
+
3814
+ # Name of the inspection job, for example, `projects/123/locations/europe/
3815
+ # dlpJobs/i-8383929`.
3816
+ # Corresponds to the JSON property `inspectJob`
3817
+ # @return [String]
3818
+ attr_accessor :inspect_job
3819
+
3820
+ def initialize(**args)
3821
+ update!(**args)
3822
+ end
3823
+
3824
+ # Update properties of this object
3825
+ def update!(**args)
3826
+ @full_scan = args[:full_scan] if args.key?(:full_scan)
3827
+ @info_type = args[:info_type] if args.key?(:info_type)
3828
+ @info_type_count = args[:info_type_count] if args.key?(:info_type_count)
3829
+ @inspect_job = args[:inspect_job] if args.key?(:inspect_job)
3830
+ end
3831
+ end
3832
+
3833
+ # Metadata taken from a [Cloud Logging LogEntry](https://cloud.google.com/
3834
+ # logging/docs/reference/v2/rest/v2/LogEntry)
3835
+ class GoogleCloudSecuritycenterV2CloudLoggingEntry
3836
+ include Google::Apis::Core::Hashable
3837
+
3838
+ # A unique identifier for the log entry.
3839
+ # Corresponds to the JSON property `insertId`
3840
+ # @return [String]
3841
+ attr_accessor :insert_id
3842
+
3843
+ # The type of the log (part of `log_name`. `log_name` is the resource name of
3844
+ # the log to which this log entry belongs). For example: `cloudresourcemanager.
3845
+ # googleapis.com/activity` Note that this field is not URL-encoded, unlike in `
3846
+ # LogEntry`.
3847
+ # Corresponds to the JSON property `logId`
3848
+ # @return [String]
3849
+ attr_accessor :log_id
3850
+
3851
+ # The organization, folder, or project of the monitored resource that produced
3852
+ # this log entry.
3853
+ # Corresponds to the JSON property `resourceContainer`
3854
+ # @return [String]
3855
+ attr_accessor :resource_container
3856
+
3857
+ # The time the event described by the log entry occurred.
3858
+ # Corresponds to the JSON property `timestamp`
3859
+ # @return [String]
3860
+ attr_accessor :timestamp
3861
+
3862
+ def initialize(**args)
3863
+ update!(**args)
3864
+ end
3865
+
3866
+ # Update properties of this object
3867
+ def update!(**args)
3868
+ @insert_id = args[:insert_id] if args.key?(:insert_id)
3869
+ @log_id = args[:log_id] if args.key?(:log_id)
3870
+ @resource_container = args[:resource_container] if args.key?(:resource_container)
3871
+ @timestamp = args[:timestamp] if args.key?(:timestamp)
3872
+ end
3873
+ end
3874
+
3875
+ # Contains compliance information about a security standard indicating unmet
3876
+ # recommendations.
3877
+ class GoogleCloudSecuritycenterV2Compliance
3878
+ include Google::Apis::Core::Hashable
3879
+
3880
+ # Policies within the standard or benchmark, for example, A.12.4.1
3881
+ # Corresponds to the JSON property `ids`
3882
+ # @return [Array<String>]
3883
+ attr_accessor :ids
3884
+
3885
+ # Industry-wide compliance standards or benchmarks, such as CIS, PCI, and OWASP.
3886
+ # Corresponds to the JSON property `standard`
3887
+ # @return [String]
3888
+ attr_accessor :standard
3889
+
3890
+ # Version of the standard or benchmark, for example, 1.1
3891
+ # Corresponds to the JSON property `version`
3892
+ # @return [String]
3893
+ attr_accessor :version
3894
+
3895
+ def initialize(**args)
3896
+ update!(**args)
3897
+ end
3898
+
3899
+ # Update properties of this object
3900
+ def update!(**args)
3901
+ @ids = args[:ids] if args.key?(:ids)
3902
+ @standard = args[:standard] if args.key?(:standard)
3903
+ @version = args[:version] if args.key?(:version)
3904
+ end
3905
+ end
3906
+
3907
+ # Contains information about the IP connection associated with the finding.
3908
+ class GoogleCloudSecuritycenterV2Connection
3909
+ include Google::Apis::Core::Hashable
3910
+
3911
+ # Destination IP address. Not present for sockets that are listening and not
3912
+ # connected.
3913
+ # Corresponds to the JSON property `destinationIp`
3914
+ # @return [String]
3915
+ attr_accessor :destination_ip
3916
+
3917
+ # Destination port. Not present for sockets that are listening and not connected.
3918
+ # Corresponds to the JSON property `destinationPort`
3919
+ # @return [Fixnum]
3920
+ attr_accessor :destination_port
3921
+
3922
+ # IANA Internet Protocol Number such as TCP(6) and UDP(17).
3923
+ # Corresponds to the JSON property `protocol`
3924
+ # @return [String]
3925
+ attr_accessor :protocol
3926
+
3927
+ # Source IP address.
3928
+ # Corresponds to the JSON property `sourceIp`
3929
+ # @return [String]
3930
+ attr_accessor :source_ip
3931
+
3932
+ # Source port.
3933
+ # Corresponds to the JSON property `sourcePort`
3934
+ # @return [Fixnum]
3935
+ attr_accessor :source_port
3936
+
3937
+ def initialize(**args)
3938
+ update!(**args)
3939
+ end
3940
+
3941
+ # Update properties of this object
3942
+ def update!(**args)
3943
+ @destination_ip = args[:destination_ip] if args.key?(:destination_ip)
3944
+ @destination_port = args[:destination_port] if args.key?(:destination_port)
3945
+ @protocol = args[:protocol] if args.key?(:protocol)
3946
+ @source_ip = args[:source_ip] if args.key?(:source_ip)
3947
+ @source_port = args[:source_port] if args.key?(:source_port)
3948
+ end
3949
+ end
3950
+
3951
+ # The email address of a contact.
3952
+ class GoogleCloudSecuritycenterV2Contact
3953
+ include Google::Apis::Core::Hashable
3954
+
3955
+ # An email address. For example, "`person123@company.com`".
3956
+ # Corresponds to the JSON property `email`
3957
+ # @return [String]
3958
+ attr_accessor :email
3959
+
3960
+ def initialize(**args)
3961
+ update!(**args)
3962
+ end
3963
+
3964
+ # Update properties of this object
3965
+ def update!(**args)
3966
+ @email = args[:email] if args.key?(:email)
3967
+ end
3968
+ end
3969
+
3970
+ # Details about specific contacts
3971
+ class GoogleCloudSecuritycenterV2ContactDetails
3972
+ include Google::Apis::Core::Hashable
3973
+
3974
+ # A list of contacts
3975
+ # Corresponds to the JSON property `contacts`
3976
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Contact>]
3977
+ attr_accessor :contacts
3978
+
3979
+ def initialize(**args)
3980
+ update!(**args)
3981
+ end
3982
+
3983
+ # Update properties of this object
3984
+ def update!(**args)
3985
+ @contacts = args[:contacts] if args.key?(:contacts)
3986
+ end
3987
+ end
3988
+
3989
+ # Container associated with the finding.
3990
+ class GoogleCloudSecuritycenterV2Container
3991
+ include Google::Apis::Core::Hashable
3992
+
3993
+ # The time that the container was created.
3994
+ # Corresponds to the JSON property `createTime`
3995
+ # @return [String]
3996
+ attr_accessor :create_time
3997
+
3998
+ # Optional container image ID, if provided by the container runtime. Uniquely
3999
+ # identifies the container image launched using a container image digest.
4000
+ # Corresponds to the JSON property `imageId`
4001
+ # @return [String]
4002
+ attr_accessor :image_id
4003
+
4004
+ # Container labels, as provided by the container runtime.
4005
+ # Corresponds to the JSON property `labels`
4006
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Label>]
4007
+ attr_accessor :labels
4008
+
4009
+ # Name of the container.
4010
+ # Corresponds to the JSON property `name`
4011
+ # @return [String]
4012
+ attr_accessor :name
4013
+
4014
+ # Container image URI provided when configuring a pod or container. This string
4015
+ # can identify a container image version using mutable tags.
4016
+ # Corresponds to the JSON property `uri`
4017
+ # @return [String]
4018
+ attr_accessor :uri
4019
+
4020
+ def initialize(**args)
4021
+ update!(**args)
4022
+ end
4023
+
4024
+ # Update properties of this object
4025
+ def update!(**args)
4026
+ @create_time = args[:create_time] if args.key?(:create_time)
4027
+ @image_id = args[:image_id] if args.key?(:image_id)
4028
+ @labels = args[:labels] if args.key?(:labels)
4029
+ @name = args[:name] if args.key?(:name)
4030
+ @uri = args[:uri] if args.key?(:uri)
4031
+ end
4032
+ end
4033
+
4034
+ # CVE stands for Common Vulnerabilities and Exposures. More information: https://
4035
+ # cve.mitre.org
4036
+ class GoogleCloudSecuritycenterV2Cve
4037
+ include Google::Apis::Core::Hashable
4038
+
4039
+ # Common Vulnerability Scoring System version 3.
4040
+ # Corresponds to the JSON property `cvssv3`
4041
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Cvssv3]
4042
+ attr_accessor :cvssv3
4043
+
4044
+ # The unique identifier for the vulnerability. e.g. CVE-2021-34527
4045
+ # Corresponds to the JSON property `id`
4046
+ # @return [String]
4047
+ attr_accessor :id
4048
+
4049
+ # Additional information about the CVE. e.g. https://cve.mitre.org/cgi-bin/
4050
+ # cvename.cgi?name=CVE-2021-34527
4051
+ # Corresponds to the JSON property `references`
4052
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Reference>]
4053
+ attr_accessor :references
4054
+
4055
+ # Whether upstream fix is available for the CVE.
4056
+ # Corresponds to the JSON property `upstreamFixAvailable`
4057
+ # @return [Boolean]
4058
+ attr_accessor :upstream_fix_available
4059
+ alias_method :upstream_fix_available?, :upstream_fix_available
4060
+
4061
+ def initialize(**args)
4062
+ update!(**args)
4063
+ end
4064
+
4065
+ # Update properties of this object
4066
+ def update!(**args)
4067
+ @cvssv3 = args[:cvssv3] if args.key?(:cvssv3)
4068
+ @id = args[:id] if args.key?(:id)
4069
+ @references = args[:references] if args.key?(:references)
4070
+ @upstream_fix_available = args[:upstream_fix_available] if args.key?(:upstream_fix_available)
4071
+ end
4072
+ end
4073
+
4074
+ # Common Vulnerability Scoring System version 3.
4075
+ class GoogleCloudSecuritycenterV2Cvssv3
4076
+ include Google::Apis::Core::Hashable
4077
+
4078
+ # This metric describes the conditions beyond the attacker's control that must
4079
+ # exist in order to exploit the vulnerability.
4080
+ # Corresponds to the JSON property `attackComplexity`
4081
+ # @return [String]
4082
+ attr_accessor :attack_complexity
4083
+
4084
+ # Base Metrics Represents the intrinsic characteristics of a vulnerability that
4085
+ # are constant over time and across user environments. This metric reflects the
4086
+ # context by which vulnerability exploitation is possible.
4087
+ # Corresponds to the JSON property `attackVector`
4088
+ # @return [String]
4089
+ attr_accessor :attack_vector
4090
+
4091
+ # This metric measures the impact to the availability of the impacted component
4092
+ # resulting from a successfully exploited vulnerability.
4093
+ # Corresponds to the JSON property `availabilityImpact`
4094
+ # @return [String]
4095
+ attr_accessor :availability_impact
4096
+
4097
+ # The base score is a function of the base metric scores.
4098
+ # Corresponds to the JSON property `baseScore`
4099
+ # @return [Float]
4100
+ attr_accessor :base_score
4101
+
4102
+ # This metric measures the impact to the confidentiality of the information
4103
+ # resources managed by a software component due to a successfully exploited
4104
+ # vulnerability.
4105
+ # Corresponds to the JSON property `confidentialityImpact`
4106
+ # @return [String]
4107
+ attr_accessor :confidentiality_impact
4108
+
4109
+ # This metric measures the impact to integrity of a successfully exploited
4110
+ # vulnerability.
4111
+ # Corresponds to the JSON property `integrityImpact`
4112
+ # @return [String]
4113
+ attr_accessor :integrity_impact
4114
+
4115
+ # This metric describes the level of privileges an attacker must possess before
4116
+ # successfully exploiting the vulnerability.
4117
+ # Corresponds to the JSON property `privilegesRequired`
4118
+ # @return [String]
4119
+ attr_accessor :privileges_required
4120
+
4121
+ # The Scope metric captures whether a vulnerability in one vulnerable component
4122
+ # impacts resources in components beyond its security scope.
4123
+ # Corresponds to the JSON property `scope`
4124
+ # @return [String]
4125
+ attr_accessor :scope
4126
+
4127
+ # This metric captures the requirement for a human user, other than the attacker,
4128
+ # to participate in the successful compromise of the vulnerable component.
4129
+ # Corresponds to the JSON property `userInteraction`
4130
+ # @return [String]
4131
+ attr_accessor :user_interaction
4132
+
4133
+ def initialize(**args)
4134
+ update!(**args)
4135
+ end
4136
+
4137
+ # Update properties of this object
4138
+ def update!(**args)
4139
+ @attack_complexity = args[:attack_complexity] if args.key?(:attack_complexity)
4140
+ @attack_vector = args[:attack_vector] if args.key?(:attack_vector)
4141
+ @availability_impact = args[:availability_impact] if args.key?(:availability_impact)
4142
+ @base_score = args[:base_score] if args.key?(:base_score)
4143
+ @confidentiality_impact = args[:confidentiality_impact] if args.key?(:confidentiality_impact)
4144
+ @integrity_impact = args[:integrity_impact] if args.key?(:integrity_impact)
4145
+ @privileges_required = args[:privileges_required] if args.key?(:privileges_required)
4146
+ @scope = args[:scope] if args.key?(:scope)
4147
+ @user_interaction = args[:user_interaction] if args.key?(:user_interaction)
4148
+ end
4149
+ end
4150
+
4151
+ # Represents database access information, such as queries. A database may be a
4152
+ # sub-resource of an instance (as in the case of Cloud SQL instances or Cloud
4153
+ # Spanner instances), or the database instance itself. Some database resources
4154
+ # might not have the [full resource name](https://google.aip.dev/122#full-
4155
+ # resource-names) populated because these resource types, such as Cloud SQL
4156
+ # databases, are not yet supported by Cloud Asset Inventory. In these cases only
4157
+ # the display name is provided.
4158
+ class GoogleCloudSecuritycenterV2Database
4159
+ include Google::Apis::Core::Hashable
4160
+
4161
+ # The human-readable name of the database that the user connected to.
4162
+ # Corresponds to the JSON property `displayName`
4163
+ # @return [String]
4164
+ attr_accessor :display_name
4165
+
4166
+ # The target usernames, roles, or groups of an SQL privilege grant, which is not
4167
+ # an IAM policy change.
4168
+ # Corresponds to the JSON property `grantees`
4169
+ # @return [Array<String>]
4170
+ attr_accessor :grantees
4171
+
4172
+ # Some database resources may not have the [full resource name](https://google.
4173
+ # aip.dev/122#full-resource-names) populated because these resource types are
4174
+ # not yet supported by Cloud Asset Inventory (e.g. Cloud SQL databases). In
4175
+ # these cases only the display name will be provided. The [full resource name](
4176
+ # https://google.aip.dev/122#full-resource-names) of the database that the user
4177
+ # connected to, if it is supported by Cloud Asset Inventory.
4178
+ # Corresponds to the JSON property `name`
4179
+ # @return [String]
4180
+ attr_accessor :name
4181
+
4182
+ # The SQL statement that is associated with the database access.
4183
+ # Corresponds to the JSON property `query`
4184
+ # @return [String]
4185
+ attr_accessor :query
4186
+
4187
+ # The username used to connect to the database. The username might not be an IAM
4188
+ # principal and does not have a set format.
4189
+ # Corresponds to the JSON property `userName`
4190
+ # @return [String]
4191
+ attr_accessor :user_name
4192
+
4193
+ # The version of the database, for example, POSTGRES_14. See [the complete list](
4194
+ # https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1/SqlDatabaseVersion).
4195
+ # Corresponds to the JSON property `version`
4196
+ # @return [String]
4197
+ attr_accessor :version
4198
+
4199
+ def initialize(**args)
4200
+ update!(**args)
4201
+ end
4202
+
4203
+ # Update properties of this object
4204
+ def update!(**args)
4205
+ @display_name = args[:display_name] if args.key?(:display_name)
4206
+ @grantees = args[:grantees] if args.key?(:grantees)
4207
+ @name = args[:name] if args.key?(:name)
4208
+ @query = args[:query] if args.key?(:query)
4209
+ @user_name = args[:user_name] if args.key?(:user_name)
4210
+ @version = args[:version] if args.key?(:version)
4211
+ end
4212
+ end
4213
+
4214
+ # Memory hash detection contributing to the binary family match.
4215
+ class GoogleCloudSecuritycenterV2Detection
4216
+ include Google::Apis::Core::Hashable
4217
+
4218
+ # The name of the binary associated with the memory hash signature detection.
4219
+ # Corresponds to the JSON property `binary`
4220
+ # @return [String]
4221
+ attr_accessor :binary
4222
+
4223
+ # The percentage of memory page hashes in the signature that were matched.
4224
+ # Corresponds to the JSON property `percentPagesMatched`
4225
+ # @return [Float]
4226
+ attr_accessor :percent_pages_matched
4227
+
4228
+ def initialize(**args)
4229
+ update!(**args)
4230
+ end
4231
+
4232
+ # Update properties of this object
4233
+ def update!(**args)
4234
+ @binary = args[:binary] if args.key?(:binary)
4235
+ @percent_pages_matched = args[:percent_pages_matched] if args.key?(:percent_pages_matched)
4236
+ end
4237
+ end
4238
+
4239
+ # A name-value pair representing an environment variable used in an operating
4240
+ # system process.
4241
+ class GoogleCloudSecuritycenterV2EnvironmentVariable
4242
+ include Google::Apis::Core::Hashable
4243
+
4244
+ # Environment variable name as a JSON encoded string.
4245
+ # Corresponds to the JSON property `name`
4246
+ # @return [String]
4247
+ attr_accessor :name
4248
+
4249
+ # Environment variable value as a JSON encoded string.
4250
+ # Corresponds to the JSON property `val`
4251
+ # @return [String]
4252
+ attr_accessor :val
4253
+
4254
+ def initialize(**args)
4255
+ update!(**args)
4256
+ end
4257
+
4258
+ # Update properties of this object
4259
+ def update!(**args)
4260
+ @name = args[:name] if args.key?(:name)
4261
+ @val = args[:val] if args.key?(:val)
4262
+ end
4263
+ end
4264
+
4265
+ # Resource where data was exfiltrated from or exfiltrated to.
4266
+ class GoogleCloudSecuritycenterV2ExfilResource
4267
+ include Google::Apis::Core::Hashable
4268
+
4269
+ # Subcomponents of the asset that was exfiltrated, like URIs used during
4270
+ # exfiltration, table names, databases, and filenames. For example, multiple
4271
+ # tables might have been exfiltrated from the same Cloud SQL instance, or
4272
+ # multiple files might have been exfiltrated from the same Cloud Storage bucket.
4273
+ # Corresponds to the JSON property `components`
4274
+ # @return [Array<String>]
4275
+ attr_accessor :components
4276
+
4277
+ # The resource's [full resource name](https://cloud.google.com/apis/design/
4278
+ # resource_names#full_resource_name).
4279
+ # Corresponds to the JSON property `name`
4280
+ # @return [String]
4281
+ attr_accessor :name
4282
+
4283
+ def initialize(**args)
4284
+ update!(**args)
4285
+ end
4286
+
4287
+ # Update properties of this object
4288
+ def update!(**args)
4289
+ @components = args[:components] if args.key?(:components)
4290
+ @name = args[:name] if args.key?(:name)
4291
+ end
4292
+ end
4293
+
4294
+ # Exfiltration represents a data exfiltration attempt from one or more sources
4295
+ # to one or more targets. The `sources` attribute lists the sources of the
4296
+ # exfiltrated data. The `targets` attribute lists the destinations the data was
4297
+ # copied to.
4298
+ class GoogleCloudSecuritycenterV2Exfiltration
4299
+ include Google::Apis::Core::Hashable
4300
+
4301
+ # If there are multiple sources, then the data is considered "joined" between
4302
+ # them. For instance, BigQuery can join multiple tables, and each table would be
4303
+ # considered a source.
4304
+ # Corresponds to the JSON property `sources`
4305
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2ExfilResource>]
4306
+ attr_accessor :sources
4307
+
4308
+ # If there are multiple targets, each target would get a complete copy of the "
4309
+ # joined" source data.
4310
+ # Corresponds to the JSON property `targets`
4311
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2ExfilResource>]
4312
+ attr_accessor :targets
4313
+
4314
+ # Total exfiltrated bytes processed for the entire job.
4315
+ # Corresponds to the JSON property `totalExfiltratedBytes`
4316
+ # @return [Fixnum]
4317
+ attr_accessor :total_exfiltrated_bytes
4318
+
4319
+ def initialize(**args)
4320
+ update!(**args)
4321
+ end
4322
+
4323
+ # Update properties of this object
4324
+ def update!(**args)
4325
+ @sources = args[:sources] if args.key?(:sources)
4326
+ @targets = args[:targets] if args.key?(:targets)
4327
+ @total_exfiltrated_bytes = args[:total_exfiltrated_bytes] if args.key?(:total_exfiltrated_bytes)
4328
+ end
4329
+ end
4330
+
4331
+ # Representation of third party SIEM/SOAR fields within SCC.
4332
+ class GoogleCloudSecuritycenterV2ExternalSystem
4333
+ include Google::Apis::Core::Hashable
4334
+
4335
+ # References primary/secondary etc assignees in the external system.
4336
+ # Corresponds to the JSON property `assignees`
4337
+ # @return [Array<String>]
4338
+ attr_accessor :assignees
4339
+
4340
+ # The time when the case was last updated, as reported by the external system.
4341
+ # Corresponds to the JSON property `externalSystemUpdateTime`
4342
+ # @return [String]
4343
+ attr_accessor :external_system_update_time
4344
+
4345
+ # The identifier that's used to track the finding's corresponding case in the
4346
+ # external system.
4347
+ # Corresponds to the JSON property `externalUid`
4348
+ # @return [String]
4349
+ attr_accessor :external_uid
4350
+
4351
+ # Full resource name of the external system. The following list shows some
4352
+ # examples: + `organizations/1234/sources/5678/findings/123456/externalSystems/
4353
+ # jira` + `organizations/1234/sources/5678/locations/us/findings/123456/
4354
+ # externalSystems/jira` + `folders/1234/sources/5678/findings/123456/
4355
+ # externalSystems/jira` + `folders/1234/sources/5678/locations/us/findings/
4356
+ # 123456/externalSystems/jira` + `projects/1234/sources/5678/findings/123456/
4357
+ # externalSystems/jira` + `projects/1234/sources/5678/locations/us/findings/
4358
+ # 123456/externalSystems/jira`
4359
+ # Corresponds to the JSON property `name`
4360
+ # @return [String]
4361
+ attr_accessor :name
4362
+
4363
+ # The most recent status of the finding's corresponding case, as reported by the
4364
+ # external system.
4365
+ # Corresponds to the JSON property `status`
4366
+ # @return [String]
4367
+ attr_accessor :status
4368
+
4369
+ def initialize(**args)
4370
+ update!(**args)
4371
+ end
4372
+
4373
+ # Update properties of this object
4374
+ def update!(**args)
4375
+ @assignees = args[:assignees] if args.key?(:assignees)
4376
+ @external_system_update_time = args[:external_system_update_time] if args.key?(:external_system_update_time)
4377
+ @external_uid = args[:external_uid] if args.key?(:external_uid)
4378
+ @name = args[:name] if args.key?(:name)
4379
+ @status = args[:status] if args.key?(:status)
4380
+ end
4381
+ end
4382
+
4383
+ # File information about the related binary/library used by an executable, or
4384
+ # the script used by a script interpreter
4385
+ class GoogleCloudSecuritycenterV2File
4386
+ include Google::Apis::Core::Hashable
4387
+
4388
+ # Prefix of the file contents as a JSON-encoded string.
4389
+ # Corresponds to the JSON property `contents`
4390
+ # @return [String]
4391
+ attr_accessor :contents
4392
+
4393
+ # The length in bytes of the file prefix that was hashed. If hashed_size == size,
4394
+ # any hashes reported represent the entire file.
4395
+ # Corresponds to the JSON property `hashedSize`
4396
+ # @return [Fixnum]
4397
+ attr_accessor :hashed_size
4398
+
4399
+ # True when the hash covers only a prefix of the file.
4400
+ # Corresponds to the JSON property `partiallyHashed`
4401
+ # @return [Boolean]
4402
+ attr_accessor :partially_hashed
4403
+ alias_method :partially_hashed?, :partially_hashed
4404
+
4405
+ # Absolute path of the file as a JSON encoded string.
4406
+ # Corresponds to the JSON property `path`
4407
+ # @return [String]
4408
+ attr_accessor :path
4409
+
4410
+ # SHA256 hash of the first hashed_size bytes of the file encoded as a hex string.
4411
+ # If hashed_size == size, sha256 represents the SHA256 hash of the entire file.
4412
+ # Corresponds to the JSON property `sha256`
4413
+ # @return [String]
4414
+ attr_accessor :sha256
4415
+
4416
+ # Size of the file in bytes.
4417
+ # Corresponds to the JSON property `size`
4418
+ # @return [Fixnum]
4419
+ attr_accessor :size
4420
+
4421
+ def initialize(**args)
4422
+ update!(**args)
4423
+ end
4424
+
4425
+ # Update properties of this object
4426
+ def update!(**args)
4427
+ @contents = args[:contents] if args.key?(:contents)
4428
+ @hashed_size = args[:hashed_size] if args.key?(:hashed_size)
4429
+ @partially_hashed = args[:partially_hashed] if args.key?(:partially_hashed)
4430
+ @path = args[:path] if args.key?(:path)
4431
+ @sha256 = args[:sha256] if args.key?(:sha256)
4432
+ @size = args[:size] if args.key?(:size)
4433
+ end
4434
+ end
4435
+
4436
+ # Security Command Center finding. A finding is a record of assessment data like
4437
+ # security, risk, health, or privacy, that is ingested into Security Command
4438
+ # Center for presentation, notification, analysis, policy testing, and
4439
+ # enforcement. For example, a cross-site scripting (XSS) vulnerability in an App
4440
+ # Engine application is a finding.
4441
+ class GoogleCloudSecuritycenterV2Finding
4442
+ include Google::Apis::Core::Hashable
4443
+
4444
+ # Represents an access event.
4445
+ # Corresponds to the JSON property `access`
4446
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Access]
4447
+ attr_accessor :access
4448
+
4449
+ # Represents an application associated with a finding.
4450
+ # Corresponds to the JSON property `application`
4451
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Application]
4452
+ attr_accessor :application
4453
+
4454
+ # An attack exposure contains the results of an attack path simulation run.
4455
+ # Corresponds to the JSON property `attackExposure`
4456
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2AttackExposure]
4457
+ attr_accessor :attack_exposure
4458
+
4459
+ # Information related to Google Cloud Backup and DR Service findings.
4460
+ # Corresponds to the JSON property `backupDisasterRecovery`
4461
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2BackupDisasterRecovery]
4462
+ attr_accessor :backup_disaster_recovery
4463
+
4464
+ # Output only. The canonical name of the finding. The following list shows some
4465
+ # examples: + `organizations/`organization_id`/sources/`source_id`/findings/`
4466
+ # finding_id`` + `organizations/`organization_id`/sources/`source_id`/locations/`
4467
+ # location_id`/findings/`finding_id`` + `folders/`folder_id`/sources/`source_id`/
4468
+ # findings/`finding_id`` + `folders/`folder_id`/sources/`source_id`/locations/`
4469
+ # location_id`/findings/`finding_id`` + `projects/`project_id`/sources/`
4470
+ # source_id`/findings/`finding_id`` + `projects/`project_id`/sources/`source_id`/
4471
+ # locations/`location_id`/findings/`finding_id`` The prefix is the closest CRM
4472
+ # ancestor of the resource associated with the finding.
4473
+ # Corresponds to the JSON property `canonicalName`
4474
+ # @return [String]
4475
+ attr_accessor :canonical_name
4476
+
4477
+ # Immutable. The additional taxonomy group within findings from a given source.
4478
+ # Example: "XSS_FLASH_INJECTION"
4479
+ # Corresponds to the JSON property `category`
4480
+ # @return [String]
4481
+ attr_accessor :category
4482
+
4483
+ # The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated
4484
+ # with the finding.
4485
+ # Corresponds to the JSON property `cloudDlpDataProfile`
4486
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2CloudDlpDataProfile]
4487
+ attr_accessor :cloud_dlp_data_profile
4488
+
4489
+ # Details about the Cloud Data Loss Prevention (Cloud DLP) [inspection job](
4490
+ # https://cloud.google.com/dlp/docs/concepts-job-triggers) that produced the
4491
+ # finding.
4492
+ # Corresponds to the JSON property `cloudDlpInspection`
4493
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2CloudDlpInspection]
4494
+ attr_accessor :cloud_dlp_inspection
4495
+
4496
+ # Contains compliance information for security standards associated to the
4497
+ # finding.
4498
+ # Corresponds to the JSON property `compliances`
4499
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Compliance>]
4500
+ attr_accessor :compliances
4501
+
4502
+ # Contains information about the IP connection associated with the finding.
4503
+ # Corresponds to the JSON property `connections`
4504
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Connection>]
4505
+ attr_accessor :connections
4506
+
4507
+ # Output only. Map containing the points of contact for the given finding. The
4508
+ # key represents the type of contact, while the value contains a list of all the
4509
+ # contacts that pertain. Please refer to: https://cloud.google.com/resource-
4510
+ # manager/docs/managing-notification-contacts#notification-categories ` "
4511
+ # security": ` "contacts": [ ` "email": "person1@company.com" `, ` "email": "
4512
+ # person2@company.com" ` ] ` `
4513
+ # Corresponds to the JSON property `contacts`
4514
+ # @return [Hash<String,Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2ContactDetails>]
4515
+ attr_accessor :contacts
4516
+
4517
+ # Containers associated with the finding. This field provides information for
4518
+ # both Kubernetes and non-Kubernetes containers.
4519
+ # Corresponds to the JSON property `containers`
4520
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Container>]
4521
+ attr_accessor :containers
4522
+
4523
+ # Output only. The time at which the finding was created in Security Command
4524
+ # Center.
4525
+ # Corresponds to the JSON property `createTime`
4526
+ # @return [String]
4527
+ attr_accessor :create_time
4528
+
4529
+ # Represents database access information, such as queries. A database may be a
4530
+ # sub-resource of an instance (as in the case of Cloud SQL instances or Cloud
4531
+ # Spanner instances), or the database instance itself. Some database resources
4532
+ # might not have the [full resource name](https://google.aip.dev/122#full-
4533
+ # resource-names) populated because these resource types, such as Cloud SQL
4534
+ # databases, are not yet supported by Cloud Asset Inventory. In these cases only
4535
+ # the display name is provided.
4536
+ # Corresponds to the JSON property `database`
4537
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Database]
4538
+ attr_accessor :database
4539
+
4540
+ # Contains more details about the finding.
4541
+ # Corresponds to the JSON property `description`
4542
+ # @return [String]
4543
+ attr_accessor :description
4544
+
4545
+ # The time the finding was first detected. If an existing finding is updated,
4546
+ # then this is the time the update occurred. For example, if the finding
4547
+ # represents an open firewall, this property captures the time the detector
4548
+ # believes the firewall became open. The accuracy is determined by the detector.
4549
+ # If the finding is later resolved, then this time reflects when the finding was
4550
+ # resolved. This must not be set to a value greater than the current timestamp.
4551
+ # Corresponds to the JSON property `eventTime`
4552
+ # @return [String]
4553
+ attr_accessor :event_time
4554
+
4555
+ # Exfiltration represents a data exfiltration attempt from one or more sources
4556
+ # to one or more targets. The `sources` attribute lists the sources of the
4557
+ # exfiltrated data. The `targets` attribute lists the destinations the data was
4558
+ # copied to.
4559
+ # Corresponds to the JSON property `exfiltration`
4560
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Exfiltration]
4561
+ attr_accessor :exfiltration
4562
+
4563
+ # Output only. Third party SIEM/SOAR fields within SCC, contains external system
4564
+ # information and external system finding fields.
4565
+ # Corresponds to the JSON property `externalSystems`
4566
+ # @return [Hash<String,Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2ExternalSystem>]
4567
+ attr_accessor :external_systems
4568
+
4569
+ # The URI that, if available, points to a web page outside of Security Command
4570
+ # Center where additional information about the finding can be found. This field
4571
+ # is guaranteed to be either empty or a well formed URL.
4572
+ # Corresponds to the JSON property `externalUri`
4573
+ # @return [String]
4574
+ attr_accessor :external_uri
4575
+
4576
+ # File associated with the finding.
4577
+ # Corresponds to the JSON property `files`
4578
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2File>]
4579
+ attr_accessor :files
4580
+
4581
+ # The class of the finding.
4582
+ # Corresponds to the JSON property `findingClass`
4583
+ # @return [String]
4584
+ attr_accessor :finding_class
4585
+
4586
+ # Represents IAM bindings associated with the finding.
4587
+ # Corresponds to the JSON property `iamBindings`
4588
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2IamBinding>]
4589
+ attr_accessor :iam_bindings
4590
+
4591
+ # Represents what's commonly known as an _indicator of compromise_ (IoC) in
4592
+ # computer forensics. This is an artifact observed on a network or in an
4593
+ # operating system that, with high confidence, indicates a computer intrusion.
4594
+ # For more information, see [Indicator of compromise](https://en.wikipedia.org/
4595
+ # wiki/Indicator_of_compromise).
4596
+ # Corresponds to the JSON property `indicator`
4597
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Indicator]
4598
+ attr_accessor :indicator
4599
+
4600
+ # Kernel mode rootkit signatures.
4601
+ # Corresponds to the JSON property `kernelRootkit`
4602
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2KernelRootkit]
4603
+ attr_accessor :kernel_rootkit
4604
+
4605
+ # Kubernetes-related attributes.
4606
+ # Corresponds to the JSON property `kubernetes`
4607
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Kubernetes]
4608
+ attr_accessor :kubernetes
4609
+
4610
+ # The load balancers associated with the finding.
4611
+ # Corresponds to the JSON property `loadBalancers`
4612
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2LoadBalancer>]
4613
+ attr_accessor :load_balancers
4614
+
4615
+ # Log entries that are relevant to the finding.
4616
+ # Corresponds to the JSON property `logEntries`
4617
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2LogEntry>]
4618
+ attr_accessor :log_entries
4619
+
4620
+ # MITRE ATT&CK tactics and techniques related to this finding. See: https://
4621
+ # attack.mitre.org
4622
+ # Corresponds to the JSON property `mitreAttack`
4623
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2MitreAttack]
4624
+ attr_accessor :mitre_attack
4625
+
4626
+ # Unique identifier of the module which generated the finding. Example: folders/
4627
+ # 598186756061/securityHealthAnalyticsSettings/customModules/56799441161885
4628
+ # Corresponds to the JSON property `moduleName`
4629
+ # @return [String]
4630
+ attr_accessor :module_name
4631
+
4632
+ # Indicates the mute state of a finding (either muted, unmuted or undefined).
4633
+ # Unlike other attributes of a finding, a finding provider shouldn't set the
4634
+ # value of mute.
4635
+ # Corresponds to the JSON property `mute`
4636
+ # @return [String]
4637
+ attr_accessor :mute
4638
+
4639
+ # Records additional information about the mute operation, for example, the [
4640
+ # mute configuration](https://cloud.google.com/security-command-center/docs/how-
4641
+ # to-mute-findings) that muted the finding and the user who muted the finding.
4642
+ # Corresponds to the JSON property `muteInitiator`
4643
+ # @return [String]
4644
+ attr_accessor :mute_initiator
4645
+
4646
+ # Output only. The most recent time this finding was muted or unmuted.
4647
+ # Corresponds to the JSON property `muteUpdateTime`
4648
+ # @return [String]
4649
+ attr_accessor :mute_update_time
4650
+
4651
+ # The [relative resource name](https://cloud.google.com/apis/design/
4652
+ # resource_names#relative_resource_name) of the finding. The following list
4653
+ # shows some examples: + `organizations/`organization_id`/sources/`source_id`/
4654
+ # findings/`finding_id`` + `organizations/`organization_id`/sources/`source_id`/
4655
+ # locations/`location_id`/findings/`finding_id`` + `folders/`folder_id`/sources/`
4656
+ # source_id`/findings/`finding_id`` + `folders/`folder_id`/sources/`source_id`/
4657
+ # locations/`location_id`/findings/`finding_id`` + `projects/`project_id`/
4658
+ # sources/`source_id`/findings/`finding_id`` + `projects/`project_id`/sources/`
4659
+ # source_id`/locations/`location_id`/findings/`finding_id``
4660
+ # Corresponds to the JSON property `name`
4661
+ # @return [String]
4662
+ attr_accessor :name
4663
+
4664
+ # Steps to address the finding.
4665
+ # Corresponds to the JSON property `nextSteps`
4666
+ # @return [String]
4667
+ attr_accessor :next_steps
4668
+
4669
+ # Contains information about the org policies associated with the finding.
4670
+ # Corresponds to the JSON property `orgPolicies`
4671
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2OrgPolicy>]
4672
+ attr_accessor :org_policies
4673
+
4674
+ # The relative resource name of the source and location the finding belongs to.
4675
+ # See: https://cloud.google.com/apis/design/resource_names#
4676
+ # relative_resource_name This field is immutable after creation time. The
4677
+ # following list shows some examples: + `organizations/`organization_id`/sources/
4678
+ # `source_id`` + `folders/`folders_id`/sources/`source_id`` + `projects/`
4679
+ # projects_id`/sources/`source_id`` + `organizations/`organization_id`/sources/`
4680
+ # source_id`/locations/`location_id`` + `folders/`folders_id`/sources/`source_id`
4681
+ # /locations/`location_id`` + `projects/`projects_id`/sources/`source_id`/
4682
+ # locations/`location_id``
4683
+ # Corresponds to the JSON property `parent`
4684
+ # @return [String]
4685
+ attr_accessor :parent
4686
+
4687
+ # Output only. The human readable display name of the finding source such as "
4688
+ # Event Threat Detection" or "Security Health Analytics".
4689
+ # Corresponds to the JSON property `parentDisplayName`
4690
+ # @return [String]
4691
+ attr_accessor :parent_display_name
4692
+
4693
+ # Represents operating system processes associated with the Finding.
4694
+ # Corresponds to the JSON property `processes`
4695
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Process>]
4696
+ attr_accessor :processes
4697
+
4698
+ # Immutable. For findings on Google Cloud resources, the full resource name of
4699
+ # the Google Cloud resource this finding is for. See: https://cloud.google.com/
4700
+ # apis/design/resource_names#full_resource_name When the finding is for a non-
4701
+ # Google Cloud resource, the resourceName can be a customer or partner defined
4702
+ # string.
4703
+ # Corresponds to the JSON property `resourceName`
4704
+ # @return [String]
4705
+ attr_accessor :resource_name
4706
+
4707
+ # User specified security marks that are attached to the parent Security Command
4708
+ # Center resource. Security marks are scoped within a Security Command Center
4709
+ # organization -- they can be modified and viewed by all users who have proper
4710
+ # permissions on the organization.
4711
+ # Corresponds to the JSON property `securityMarks`
4712
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2SecurityMarks]
4713
+ attr_accessor :security_marks
4714
+
4715
+ # Represents a posture that is deployed on Google Cloud by the Security Command
4716
+ # Center Posture Management service. A posture contains one or more policy sets.
4717
+ # A policy set is a group of policies that enforce a set of security rules on
4718
+ # Google Cloud.
4719
+ # Corresponds to the JSON property `securityPosture`
4720
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2SecurityPosture]
4721
+ attr_accessor :security_posture
4722
+
4723
+ # The severity of the finding. This field is managed by the source that writes
4724
+ # the finding.
4725
+ # Corresponds to the JSON property `severity`
4726
+ # @return [String]
4727
+ attr_accessor :severity
4728
+
4729
+ # Source specific properties. These properties are managed by the source that
4730
+ # writes the finding. The key names in the source_properties map must be between
4731
+ # 1 and 255 characters, and must start with a letter and contain alphanumeric
4732
+ # characters or underscores only.
4733
+ # Corresponds to the JSON property `sourceProperties`
4734
+ # @return [Hash<String,Object>]
4735
+ attr_accessor :source_properties
4736
+
4737
+ # Output only. The state of the finding.
4738
+ # Corresponds to the JSON property `state`
4739
+ # @return [String]
4740
+ attr_accessor :state
4741
+
4742
+ # Refers to common vulnerability fields e.g. cve, cvss, cwe etc.
4743
+ # Corresponds to the JSON property `vulnerability`
4744
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Vulnerability]
4745
+ attr_accessor :vulnerability
4746
+
4747
+ def initialize(**args)
4748
+ update!(**args)
4749
+ end
4750
+
4751
+ # Update properties of this object
4752
+ def update!(**args)
4753
+ @access = args[:access] if args.key?(:access)
4754
+ @application = args[:application] if args.key?(:application)
4755
+ @attack_exposure = args[:attack_exposure] if args.key?(:attack_exposure)
4756
+ @backup_disaster_recovery = args[:backup_disaster_recovery] if args.key?(:backup_disaster_recovery)
4757
+ @canonical_name = args[:canonical_name] if args.key?(:canonical_name)
4758
+ @category = args[:category] if args.key?(:category)
4759
+ @cloud_dlp_data_profile = args[:cloud_dlp_data_profile] if args.key?(:cloud_dlp_data_profile)
4760
+ @cloud_dlp_inspection = args[:cloud_dlp_inspection] if args.key?(:cloud_dlp_inspection)
4761
+ @compliances = args[:compliances] if args.key?(:compliances)
4762
+ @connections = args[:connections] if args.key?(:connections)
4763
+ @contacts = args[:contacts] if args.key?(:contacts)
4764
+ @containers = args[:containers] if args.key?(:containers)
4765
+ @create_time = args[:create_time] if args.key?(:create_time)
4766
+ @database = args[:database] if args.key?(:database)
4767
+ @description = args[:description] if args.key?(:description)
4768
+ @event_time = args[:event_time] if args.key?(:event_time)
4769
+ @exfiltration = args[:exfiltration] if args.key?(:exfiltration)
4770
+ @external_systems = args[:external_systems] if args.key?(:external_systems)
4771
+ @external_uri = args[:external_uri] if args.key?(:external_uri)
4772
+ @files = args[:files] if args.key?(:files)
4773
+ @finding_class = args[:finding_class] if args.key?(:finding_class)
4774
+ @iam_bindings = args[:iam_bindings] if args.key?(:iam_bindings)
4775
+ @indicator = args[:indicator] if args.key?(:indicator)
4776
+ @kernel_rootkit = args[:kernel_rootkit] if args.key?(:kernel_rootkit)
4777
+ @kubernetes = args[:kubernetes] if args.key?(:kubernetes)
4778
+ @load_balancers = args[:load_balancers] if args.key?(:load_balancers)
4779
+ @log_entries = args[:log_entries] if args.key?(:log_entries)
4780
+ @mitre_attack = args[:mitre_attack] if args.key?(:mitre_attack)
4781
+ @module_name = args[:module_name] if args.key?(:module_name)
4782
+ @mute = args[:mute] if args.key?(:mute)
4783
+ @mute_initiator = args[:mute_initiator] if args.key?(:mute_initiator)
4784
+ @mute_update_time = args[:mute_update_time] if args.key?(:mute_update_time)
4785
+ @name = args[:name] if args.key?(:name)
4786
+ @next_steps = args[:next_steps] if args.key?(:next_steps)
4787
+ @org_policies = args[:org_policies] if args.key?(:org_policies)
4788
+ @parent = args[:parent] if args.key?(:parent)
4789
+ @parent_display_name = args[:parent_display_name] if args.key?(:parent_display_name)
4790
+ @processes = args[:processes] if args.key?(:processes)
4791
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
4792
+ @security_marks = args[:security_marks] if args.key?(:security_marks)
4793
+ @security_posture = args[:security_posture] if args.key?(:security_posture)
4794
+ @severity = args[:severity] if args.key?(:severity)
4795
+ @source_properties = args[:source_properties] if args.key?(:source_properties)
4796
+ @state = args[:state] if args.key?(:state)
4797
+ @vulnerability = args[:vulnerability] if args.key?(:vulnerability)
4798
+ end
4799
+ end
4800
+
4801
+ # Represents a geographical location for a given access.
4802
+ class GoogleCloudSecuritycenterV2Geolocation
4803
+ include Google::Apis::Core::Hashable
4804
+
4805
+ # A CLDR.
4806
+ # Corresponds to the JSON property `regionCode`
4807
+ # @return [String]
4808
+ attr_accessor :region_code
4809
+
4810
+ def initialize(**args)
4811
+ update!(**args)
4812
+ end
4813
+
4814
+ # Update properties of this object
4815
+ def update!(**args)
4816
+ @region_code = args[:region_code] if args.key?(:region_code)
4817
+ end
4818
+ end
4819
+
4820
+ # Represents a particular IAM binding, which captures a member's role addition,
4821
+ # removal, or state.
4822
+ class GoogleCloudSecuritycenterV2IamBinding
4823
+ include Google::Apis::Core::Hashable
4824
+
4825
+ # The action that was performed on a Binding.
4826
+ # Corresponds to the JSON property `action`
4827
+ # @return [String]
4828
+ attr_accessor :action
4829
+
4830
+ # A single identity requesting access for a Cloud Platform resource, for example,
4831
+ # "foo@google.com".
4832
+ # Corresponds to the JSON property `member`
4833
+ # @return [String]
4834
+ attr_accessor :member
4835
+
4836
+ # Role that is assigned to "members". For example, "roles/viewer", "roles/editor"
4837
+ # , or "roles/owner".
4838
+ # Corresponds to the JSON property `role`
4839
+ # @return [String]
4840
+ attr_accessor :role
4841
+
4842
+ def initialize(**args)
4843
+ update!(**args)
4844
+ end
4845
+
4846
+ # Update properties of this object
4847
+ def update!(**args)
4848
+ @action = args[:action] if args.key?(:action)
4849
+ @member = args[:member] if args.key?(:member)
4850
+ @role = args[:role] if args.key?(:role)
4851
+ end
4852
+ end
4853
+
4854
+ # Represents what's commonly known as an _indicator of compromise_ (IoC) in
4855
+ # computer forensics. This is an artifact observed on a network or in an
4856
+ # operating system that, with high confidence, indicates a computer intrusion.
4857
+ # For more information, see [Indicator of compromise](https://en.wikipedia.org/
4858
+ # wiki/Indicator_of_compromise).
4859
+ class GoogleCloudSecuritycenterV2Indicator
4860
+ include Google::Apis::Core::Hashable
4861
+
4862
+ # List of domains associated to the Finding.
4863
+ # Corresponds to the JSON property `domains`
4864
+ # @return [Array<String>]
4865
+ attr_accessor :domains
4866
+
4867
+ # The list of IP addresses that are associated with the finding.
4868
+ # Corresponds to the JSON property `ipAddresses`
4869
+ # @return [Array<String>]
4870
+ attr_accessor :ip_addresses
4871
+
4872
+ # The list of matched signatures indicating that the given process is present in
4873
+ # the environment.
4874
+ # Corresponds to the JSON property `signatures`
4875
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2ProcessSignature>]
4876
+ attr_accessor :signatures
4877
+
4878
+ # The list of URIs associated to the Findings.
4879
+ # Corresponds to the JSON property `uris`
4880
+ # @return [Array<String>]
4881
+ attr_accessor :uris
4882
+
4883
+ def initialize(**args)
4884
+ update!(**args)
4885
+ end
4886
+
4887
+ # Update properties of this object
4888
+ def update!(**args)
4889
+ @domains = args[:domains] if args.key?(:domains)
4890
+ @ip_addresses = args[:ip_addresses] if args.key?(:ip_addresses)
4891
+ @signatures = args[:signatures] if args.key?(:signatures)
4892
+ @uris = args[:uris] if args.key?(:uris)
4893
+ end
4894
+ end
4895
+
4896
+ # Kernel mode rootkit signatures.
4897
+ class GoogleCloudSecuritycenterV2KernelRootkit
4898
+ include Google::Apis::Core::Hashable
4899
+
4900
+ # Rootkit name, when available.
4901
+ # Corresponds to the JSON property `name`
4902
+ # @return [String]
4903
+ attr_accessor :name
4904
+
4905
+ # True if unexpected modifications of kernel code memory are present.
4906
+ # Corresponds to the JSON property `unexpectedCodeModification`
4907
+ # @return [Boolean]
4908
+ attr_accessor :unexpected_code_modification
4909
+ alias_method :unexpected_code_modification?, :unexpected_code_modification
4910
+
4911
+ # True if `ftrace` points are present with callbacks pointing to regions that
4912
+ # are not in the expected kernel or module code range.
4913
+ # Corresponds to the JSON property `unexpectedFtraceHandler`
4914
+ # @return [Boolean]
4915
+ attr_accessor :unexpected_ftrace_handler
4916
+ alias_method :unexpected_ftrace_handler?, :unexpected_ftrace_handler
4917
+
4918
+ # True if interrupt handlers that are are not in the expected kernel or module
4919
+ # code regions are present.
4920
+ # Corresponds to the JSON property `unexpectedInterruptHandler`
4921
+ # @return [Boolean]
4922
+ attr_accessor :unexpected_interrupt_handler
4923
+ alias_method :unexpected_interrupt_handler?, :unexpected_interrupt_handler
4924
+
4925
+ # True if kernel code pages that are not in the expected kernel or module code
4926
+ # regions are present.
4927
+ # Corresponds to the JSON property `unexpectedKernelCodePages`
4928
+ # @return [Boolean]
4929
+ attr_accessor :unexpected_kernel_code_pages
4930
+ alias_method :unexpected_kernel_code_pages?, :unexpected_kernel_code_pages
4931
+
4932
+ # True if `kprobe` points are present with callbacks pointing to regions that
4933
+ # are not in the expected kernel or module code range.
4934
+ # Corresponds to the JSON property `unexpectedKprobeHandler`
4935
+ # @return [Boolean]
4936
+ attr_accessor :unexpected_kprobe_handler
4937
+ alias_method :unexpected_kprobe_handler?, :unexpected_kprobe_handler
4938
+
4939
+ # True if unexpected processes in the scheduler run queue are present. Such
4940
+ # processes are in the run queue, but not in the process task list.
4941
+ # Corresponds to the JSON property `unexpectedProcessesInRunqueue`
4942
+ # @return [Boolean]
4943
+ attr_accessor :unexpected_processes_in_runqueue
4944
+ alias_method :unexpected_processes_in_runqueue?, :unexpected_processes_in_runqueue
4945
+
4946
+ # True if unexpected modifications of kernel read-only data memory are present.
4947
+ # Corresponds to the JSON property `unexpectedReadOnlyDataModification`
4948
+ # @return [Boolean]
4949
+ attr_accessor :unexpected_read_only_data_modification
4950
+ alias_method :unexpected_read_only_data_modification?, :unexpected_read_only_data_modification
4951
+
4952
+ # True if system call handlers that are are not in the expected kernel or module
4953
+ # code regions are present.
4954
+ # Corresponds to the JSON property `unexpectedSystemCallHandler`
4955
+ # @return [Boolean]
4956
+ attr_accessor :unexpected_system_call_handler
4957
+ alias_method :unexpected_system_call_handler?, :unexpected_system_call_handler
4958
+
4959
+ def initialize(**args)
4960
+ update!(**args)
4961
+ end
4962
+
4963
+ # Update properties of this object
4964
+ def update!(**args)
4965
+ @name = args[:name] if args.key?(:name)
4966
+ @unexpected_code_modification = args[:unexpected_code_modification] if args.key?(:unexpected_code_modification)
4967
+ @unexpected_ftrace_handler = args[:unexpected_ftrace_handler] if args.key?(:unexpected_ftrace_handler)
4968
+ @unexpected_interrupt_handler = args[:unexpected_interrupt_handler] if args.key?(:unexpected_interrupt_handler)
4969
+ @unexpected_kernel_code_pages = args[:unexpected_kernel_code_pages] if args.key?(:unexpected_kernel_code_pages)
4970
+ @unexpected_kprobe_handler = args[:unexpected_kprobe_handler] if args.key?(:unexpected_kprobe_handler)
4971
+ @unexpected_processes_in_runqueue = args[:unexpected_processes_in_runqueue] if args.key?(:unexpected_processes_in_runqueue)
4972
+ @unexpected_read_only_data_modification = args[:unexpected_read_only_data_modification] if args.key?(:unexpected_read_only_data_modification)
4973
+ @unexpected_system_call_handler = args[:unexpected_system_call_handler] if args.key?(:unexpected_system_call_handler)
4974
+ end
4975
+ end
4976
+
4977
+ # Kubernetes-related attributes.
4978
+ class GoogleCloudSecuritycenterV2Kubernetes
4979
+ include Google::Apis::Core::Hashable
4980
+
4981
+ # Provides information on any Kubernetes access reviews (privilege checks)
4982
+ # relevant to the finding.
4983
+ # Corresponds to the JSON property `accessReviews`
4984
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2AccessReview>]
4985
+ attr_accessor :access_reviews
4986
+
4987
+ # Provides Kubernetes role binding information for findings that involve [
4988
+ # RoleBindings or ClusterRoleBindings](https://cloud.google.com/kubernetes-
4989
+ # engine/docs/how-to/role-based-access-control).
4990
+ # Corresponds to the JSON property `bindings`
4991
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Binding>]
4992
+ attr_accessor :bindings
4993
+
4994
+ # GKE [node pools](https://cloud.google.com/kubernetes-engine/docs/concepts/node-
4995
+ # pools) associated with the finding. This field contains node pool information
4996
+ # for each node, when it is available.
4997
+ # Corresponds to the JSON property `nodePools`
4998
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2NodePool>]
4999
+ attr_accessor :node_pools
5000
+
5001
+ # Provides Kubernetes [node](https://cloud.google.com/kubernetes-engine/docs/
5002
+ # concepts/cluster-architecture#nodes) information.
5003
+ # Corresponds to the JSON property `nodes`
5004
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Node>]
5005
+ attr_accessor :nodes
5006
+
5007
+ # Kubernetes objects related to the finding.
5008
+ # Corresponds to the JSON property `objects`
5009
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Object>]
5010
+ attr_accessor :objects
5011
+
5012
+ # Kubernetes [Pods](https://cloud.google.com/kubernetes-engine/docs/concepts/pod)
5013
+ # associated with the finding. This field contains Pod records for each
5014
+ # container that is owned by a Pod.
5015
+ # Corresponds to the JSON property `pods`
5016
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Pod>]
5017
+ attr_accessor :pods
5018
+
5019
+ # Provides Kubernetes role information for findings that involve [Roles or
5020
+ # ClusterRoles](https://cloud.google.com/kubernetes-engine/docs/how-to/role-
5021
+ # based-access-control).
5022
+ # Corresponds to the JSON property `roles`
5023
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Role>]
5024
+ attr_accessor :roles
5025
+
5026
+ def initialize(**args)
5027
+ update!(**args)
5028
+ end
5029
+
5030
+ # Update properties of this object
5031
+ def update!(**args)
5032
+ @access_reviews = args[:access_reviews] if args.key?(:access_reviews)
5033
+ @bindings = args[:bindings] if args.key?(:bindings)
5034
+ @node_pools = args[:node_pools] if args.key?(:node_pools)
5035
+ @nodes = args[:nodes] if args.key?(:nodes)
5036
+ @objects = args[:objects] if args.key?(:objects)
5037
+ @pods = args[:pods] if args.key?(:pods)
5038
+ @roles = args[:roles] if args.key?(:roles)
5039
+ end
5040
+ end
5041
+
5042
+ # Represents a generic name-value label. A label has separate name and value
5043
+ # fields to support filtering with the `contains()` function. For more
5044
+ # information, see [Filtering on array-type fields](https://cloud.google.com/
5045
+ # security-command-center/docs/how-to-api-list-findings#array-contains-filtering)
5046
+ # .
5047
+ class GoogleCloudSecuritycenterV2Label
5048
+ include Google::Apis::Core::Hashable
5049
+
5050
+ # Name of the label.
5051
+ # Corresponds to the JSON property `name`
5052
+ # @return [String]
5053
+ attr_accessor :name
5054
+
5055
+ # Value that corresponds to the label's name.
5056
+ # Corresponds to the JSON property `value`
5057
+ # @return [String]
5058
+ attr_accessor :value
5059
+
5060
+ def initialize(**args)
5061
+ update!(**args)
5062
+ end
5063
+
5064
+ # Update properties of this object
5065
+ def update!(**args)
5066
+ @name = args[:name] if args.key?(:name)
5067
+ @value = args[:value] if args.key?(:value)
5068
+ end
5069
+ end
5070
+
5071
+ # Contains information related to the load balancer associated with the finding.
5072
+ class GoogleCloudSecuritycenterV2LoadBalancer
5073
+ include Google::Apis::Core::Hashable
5074
+
5075
+ # The name of the load balancer associated with the finding.
5076
+ # Corresponds to the JSON property `name`
5077
+ # @return [String]
5078
+ attr_accessor :name
5079
+
5080
+ def initialize(**args)
5081
+ update!(**args)
5082
+ end
5083
+
5084
+ # Update properties of this object
5085
+ def update!(**args)
5086
+ @name = args[:name] if args.key?(:name)
5087
+ end
5088
+ end
5089
+
5090
+ # An individual entry in a log.
5091
+ class GoogleCloudSecuritycenterV2LogEntry
5092
+ include Google::Apis::Core::Hashable
5093
+
5094
+ # Metadata taken from a [Cloud Logging LogEntry](https://cloud.google.com/
5095
+ # logging/docs/reference/v2/rest/v2/LogEntry)
5096
+ # Corresponds to the JSON property `cloudLoggingEntry`
5097
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2CloudLoggingEntry]
5098
+ attr_accessor :cloud_logging_entry
5099
+
5100
+ def initialize(**args)
5101
+ update!(**args)
5102
+ end
5103
+
5104
+ # Update properties of this object
5105
+ def update!(**args)
5106
+ @cloud_logging_entry = args[:cloud_logging_entry] if args.key?(:cloud_logging_entry)
5107
+ end
5108
+ end
5109
+
5110
+ # A signature corresponding to memory page hashes.
5111
+ class GoogleCloudSecuritycenterV2MemoryHashSignature
5112
+ include Google::Apis::Core::Hashable
5113
+
5114
+ # The binary family.
5115
+ # Corresponds to the JSON property `binaryFamily`
5116
+ # @return [String]
5117
+ attr_accessor :binary_family
5118
+
5119
+ # The list of memory hash detections contributing to the binary family match.
5120
+ # Corresponds to the JSON property `detections`
5121
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Detection>]
5122
+ attr_accessor :detections
5123
+
5124
+ def initialize(**args)
5125
+ update!(**args)
5126
+ end
5127
+
5128
+ # Update properties of this object
5129
+ def update!(**args)
5130
+ @binary_family = args[:binary_family] if args.key?(:binary_family)
5131
+ @detections = args[:detections] if args.key?(:detections)
5132
+ end
5133
+ end
5134
+
5135
+ # MITRE ATT&CK tactics and techniques related to this finding. See: https://
5136
+ # attack.mitre.org
5137
+ class GoogleCloudSecuritycenterV2MitreAttack
5138
+ include Google::Apis::Core::Hashable
5139
+
5140
+ # Additional MITRE ATT&CK tactics related to this finding, if any.
5141
+ # Corresponds to the JSON property `additionalTactics`
5142
+ # @return [Array<String>]
5143
+ attr_accessor :additional_tactics
5144
+
5145
+ # Additional MITRE ATT&CK techniques related to this finding, if any, along with
5146
+ # any of their respective parent techniques.
5147
+ # Corresponds to the JSON property `additionalTechniques`
5148
+ # @return [Array<String>]
5149
+ attr_accessor :additional_techniques
5150
+
5151
+ # The MITRE ATT&CK tactic most closely represented by this finding, if any.
5152
+ # Corresponds to the JSON property `primaryTactic`
5153
+ # @return [String]
5154
+ attr_accessor :primary_tactic
5155
+
5156
+ # The MITRE ATT&CK technique most closely represented by this finding, if any.
5157
+ # primary_techniques is a repeated field because there are multiple levels of
5158
+ # MITRE ATT&CK techniques. If the technique most closely represented by this
5159
+ # finding is a sub-technique (e.g. `SCANNING_IP_BLOCKS`), both the sub-technique
5160
+ # and its parent technique(s) will be listed (e.g. `SCANNING_IP_BLOCKS`, `
5161
+ # ACTIVE_SCANNING`).
5162
+ # Corresponds to the JSON property `primaryTechniques`
5163
+ # @return [Array<String>]
5164
+ attr_accessor :primary_techniques
5165
+
5166
+ # The MITRE ATT&CK version referenced by the above fields. E.g. "8".
5167
+ # Corresponds to the JSON property `version`
5168
+ # @return [String]
5169
+ attr_accessor :version
5170
+
5171
+ def initialize(**args)
5172
+ update!(**args)
5173
+ end
5174
+
5175
+ # Update properties of this object
5176
+ def update!(**args)
5177
+ @additional_tactics = args[:additional_tactics] if args.key?(:additional_tactics)
5178
+ @additional_techniques = args[:additional_techniques] if args.key?(:additional_techniques)
5179
+ @primary_tactic = args[:primary_tactic] if args.key?(:primary_tactic)
5180
+ @primary_techniques = args[:primary_techniques] if args.key?(:primary_techniques)
5181
+ @version = args[:version] if args.key?(:version)
5182
+ end
5183
+ end
5184
+
5185
+ # A mute config is a Cloud SCC resource that contains the configuration to mute
5186
+ # create/update events of findings.
5187
+ class GoogleCloudSecuritycenterV2MuteConfig
5188
+ include Google::Apis::Core::Hashable
5189
+
5190
+ # Output only. The time at which the mute config was created. This field is set
5191
+ # by the server and will be ignored if provided on config creation.
5192
+ # Corresponds to the JSON property `createTime`
5193
+ # @return [String]
5194
+ attr_accessor :create_time
5195
+
5196
+ # A description of the mute config.
5197
+ # Corresponds to the JSON property `description`
5198
+ # @return [String]
5199
+ attr_accessor :description
5200
+
5201
+ # Required. An expression that defines the filter to apply across create/update
5202
+ # events of findings. While creating a filter string, be mindful of the scope in
5203
+ # which the mute configuration is being created. E.g., If a filter contains
5204
+ # project = X but is created under the project = Y scope, it might not match any
5205
+ # findings. The following field and operator combinations are supported: *
5206
+ # severity: `=`, `:` * category: `=`, `:` * resource.name: `=`, `:` * resource.
5207
+ # project_name: `=`, `:` * resource.project_display_name: `=`, `:` * resource.
5208
+ # folders.resource_folder: `=`, `:` * resource.parent_name: `=`, `:` * resource.
5209
+ # parent_display_name: `=`, `:` * resource.type: `=`, `:` * finding_class: `=`, `
5210
+ # :` * indicator.ip_addresses: `=`, `:` * indicator.domains: `=`, `:`
5211
+ # Corresponds to the JSON property `filter`
5212
+ # @return [String]
5213
+ attr_accessor :filter
5214
+
5215
+ # Output only. Email address of the user who last edited the mute config. This
5216
+ # field is set by the server and will be ignored if provided on config creation
5217
+ # or update.
5218
+ # Corresponds to the JSON property `mostRecentEditor`
5219
+ # @return [String]
5220
+ attr_accessor :most_recent_editor
5221
+
5222
+ # This field will be ignored if provided on config creation. The following list
5223
+ # shows some examples of the format: + `organizations/`organization`/muteConfigs/
5224
+ # `mute_config`` + `organizations/`organization`locations/`location`//
5225
+ # muteConfigs/`mute_config`` + `folders/`folder`/muteConfigs/`mute_config`` + `
5226
+ # folders/`folder`/locations/`location`/muteConfigs/`mute_config`` + `projects/`
5227
+ # project`/muteConfigs/`mute_config`` + `projects/`project`/locations/`location`/
5228
+ # muteConfigs/`mute_config``
5229
+ # Corresponds to the JSON property `name`
5230
+ # @return [String]
5231
+ attr_accessor :name
5232
+
5233
+ # Output only. The most recent time at which the mute config was updated. This
5234
+ # field is set by the server and will be ignored if provided on config creation
5235
+ # or update.
5236
+ # Corresponds to the JSON property `updateTime`
5237
+ # @return [String]
5238
+ attr_accessor :update_time
5239
+
5240
+ def initialize(**args)
5241
+ update!(**args)
5242
+ end
5243
+
5244
+ # Update properties of this object
5245
+ def update!(**args)
5246
+ @create_time = args[:create_time] if args.key?(:create_time)
5247
+ @description = args[:description] if args.key?(:description)
5248
+ @filter = args[:filter] if args.key?(:filter)
5249
+ @most_recent_editor = args[:most_recent_editor] if args.key?(:most_recent_editor)
5250
+ @name = args[:name] if args.key?(:name)
5251
+ @update_time = args[:update_time] if args.key?(:update_time)
5252
+ end
5253
+ end
5254
+
5255
+ # Kubernetes nodes associated with the finding.
5256
+ class GoogleCloudSecuritycenterV2Node
5257
+ include Google::Apis::Core::Hashable
5258
+
5259
+ # [Full resource name](https://google.aip.dev/122#full-resource-names) of the
5260
+ # Compute Engine VM running the cluster node.
5261
+ # Corresponds to the JSON property `name`
5262
+ # @return [String]
5263
+ attr_accessor :name
5264
+
5265
+ def initialize(**args)
5266
+ update!(**args)
5267
+ end
5268
+
5269
+ # Update properties of this object
5270
+ def update!(**args)
5271
+ @name = args[:name] if args.key?(:name)
5272
+ end
5273
+ end
5274
+
5275
+ # Provides GKE node pool information.
5276
+ class GoogleCloudSecuritycenterV2NodePool
5277
+ include Google::Apis::Core::Hashable
5278
+
5279
+ # Kubernetes node pool name.
5280
+ # Corresponds to the JSON property `name`
5281
+ # @return [String]
5282
+ attr_accessor :name
5283
+
5284
+ # Nodes associated with the finding.
5285
+ # Corresponds to the JSON property `nodes`
5286
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Node>]
5287
+ attr_accessor :nodes
5288
+
5289
+ def initialize(**args)
5290
+ update!(**args)
5291
+ end
5292
+
5293
+ # Update properties of this object
5294
+ def update!(**args)
5295
+ @name = args[:name] if args.key?(:name)
5296
+ @nodes = args[:nodes] if args.key?(:nodes)
5297
+ end
5298
+ end
5299
+
5300
+ # Cloud SCC's Notification
5301
+ class GoogleCloudSecuritycenterV2NotificationMessage
5302
+ include Google::Apis::Core::Hashable
5303
+
5304
+ # Security Command Center finding. A finding is a record of assessment data like
5305
+ # security, risk, health, or privacy, that is ingested into Security Command
5306
+ # Center for presentation, notification, analysis, policy testing, and
5307
+ # enforcement. For example, a cross-site scripting (XSS) vulnerability in an App
5308
+ # Engine application is a finding.
5309
+ # Corresponds to the JSON property `finding`
5310
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Finding]
5311
+ attr_accessor :finding
5312
+
5313
+ # Name of the notification config that generated current notification.
5314
+ # Corresponds to the JSON property `notificationConfigName`
5315
+ # @return [String]
5316
+ attr_accessor :notification_config_name
5317
+
5318
+ # Information related to the Google Cloud resource.
5319
+ # Corresponds to the JSON property `resource`
5320
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Resource]
5321
+ attr_accessor :resource
5322
+
5323
+ def initialize(**args)
5324
+ update!(**args)
5325
+ end
5326
+
5327
+ # Update properties of this object
5328
+ def update!(**args)
5329
+ @finding = args[:finding] if args.key?(:finding)
5330
+ @notification_config_name = args[:notification_config_name] if args.key?(:notification_config_name)
5331
+ @resource = args[:resource] if args.key?(:resource)
5332
+ end
5333
+ end
5334
+
5335
+ # Kubernetes object related to the finding, uniquely identified by GKNN. Used if
5336
+ # the object Kind is not one of Pod, Node, NodePool, Binding, or AccessReview.
5337
+ class GoogleCloudSecuritycenterV2Object
5338
+ include Google::Apis::Core::Hashable
5339
+
5340
+ # Pod containers associated with this finding, if any.
5341
+ # Corresponds to the JSON property `containers`
5342
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Container>]
5343
+ attr_accessor :containers
5344
+
5345
+ # Kubernetes object group, such as "policy.k8s.io/v1".
5346
+ # Corresponds to the JSON property `group`
5347
+ # @return [String]
5348
+ attr_accessor :group
5349
+
5350
+ # Kubernetes object kind, such as "Namespace".
5351
+ # Corresponds to the JSON property `kind`
5352
+ # @return [String]
5353
+ attr_accessor :kind
5354
+
5355
+ # Kubernetes object name. For details see https://kubernetes.io/docs/concepts/
5356
+ # overview/working-with-objects/names/.
5357
+ # Corresponds to the JSON property `name`
5358
+ # @return [String]
5359
+ attr_accessor :name
5360
+
5361
+ # Kubernetes object namespace. Must be a valid DNS label. Named "ns" to avoid
5362
+ # collision with C++ namespace keyword. For details see https://kubernetes.io/
5363
+ # docs/tasks/administer-cluster/namespaces/.
5364
+ # Corresponds to the JSON property `ns`
5365
+ # @return [String]
5366
+ attr_accessor :ns
5367
+
5368
+ def initialize(**args)
5369
+ update!(**args)
5370
+ end
5371
+
5372
+ # Update properties of this object
5373
+ def update!(**args)
5374
+ @containers = args[:containers] if args.key?(:containers)
5375
+ @group = args[:group] if args.key?(:group)
5376
+ @kind = args[:kind] if args.key?(:kind)
5377
+ @name = args[:name] if args.key?(:name)
5378
+ @ns = args[:ns] if args.key?(:ns)
5379
+ end
5380
+ end
5381
+
5382
+ # Contains information about the org policies associated with the finding.
5383
+ class GoogleCloudSecuritycenterV2OrgPolicy
5384
+ include Google::Apis::Core::Hashable
5385
+
5386
+ # The resource name of the org policy. Example: "organizations/`organization_id`/
5387
+ # policies/`constraint_name`"
5388
+ # Corresponds to the JSON property `name`
5389
+ # @return [String]
5390
+ attr_accessor :name
5391
+
5392
+ def initialize(**args)
5393
+ update!(**args)
5394
+ end
5395
+
5396
+ # Update properties of this object
5397
+ def update!(**args)
5398
+ @name = args[:name] if args.key?(:name)
5399
+ end
5400
+ end
5401
+
5402
+ # A Kubernetes Pod.
5403
+ class GoogleCloudSecuritycenterV2Pod
5404
+ include Google::Apis::Core::Hashable
5405
+
5406
+ # Pod containers associated with this finding, if any.
5407
+ # Corresponds to the JSON property `containers`
5408
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Container>]
5409
+ attr_accessor :containers
5410
+
5411
+ # Pod labels. For Kubernetes containers, these are applied to the container.
5412
+ # Corresponds to the JSON property `labels`
5413
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Label>]
5414
+ attr_accessor :labels
5415
+
5416
+ # Kubernetes Pod name.
5417
+ # Corresponds to the JSON property `name`
5418
+ # @return [String]
5419
+ attr_accessor :name
5420
+
5421
+ # Kubernetes Pod namespace.
5422
+ # Corresponds to the JSON property `ns`
5423
+ # @return [String]
5424
+ attr_accessor :ns
5425
+
5426
+ def initialize(**args)
5427
+ update!(**args)
5428
+ end
5429
+
5430
+ # Update properties of this object
5431
+ def update!(**args)
5432
+ @containers = args[:containers] if args.key?(:containers)
5433
+ @labels = args[:labels] if args.key?(:labels)
5434
+ @name = args[:name] if args.key?(:name)
5435
+ @ns = args[:ns] if args.key?(:ns)
5436
+ end
5437
+ end
5438
+
5439
+ # Represents an operating system process.
5440
+ class GoogleCloudSecuritycenterV2Process
5441
+ include Google::Apis::Core::Hashable
5442
+
5443
+ # Process arguments as JSON encoded strings.
5444
+ # Corresponds to the JSON property `args`
5445
+ # @return [Array<String>]
5446
+ attr_accessor :args
5447
+
5448
+ # True if `args` is incomplete.
5449
+ # Corresponds to the JSON property `argumentsTruncated`
5450
+ # @return [Boolean]
5451
+ attr_accessor :arguments_truncated
5452
+ alias_method :arguments_truncated?, :arguments_truncated
5453
+
5454
+ # File information about the related binary/library used by an executable, or
5455
+ # the script used by a script interpreter
5456
+ # Corresponds to the JSON property `binary`
5457
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2File]
5458
+ attr_accessor :binary
5459
+
5460
+ # Process environment variables.
5461
+ # Corresponds to the JSON property `envVariables`
5462
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2EnvironmentVariable>]
5463
+ attr_accessor :env_variables
5464
+
5465
+ # True if `env_variables` is incomplete.
5466
+ # Corresponds to the JSON property `envVariablesTruncated`
5467
+ # @return [Boolean]
5468
+ attr_accessor :env_variables_truncated
5469
+ alias_method :env_variables_truncated?, :env_variables_truncated
5470
+
5471
+ # File information for libraries loaded by the process.
5472
+ # Corresponds to the JSON property `libraries`
5473
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2File>]
5474
+ attr_accessor :libraries
5475
+
5476
+ # The process name, as displayed in utilities like `top` and `ps`. This name can
5477
+ # be accessed through `/proc/[pid]/comm` and changed with `prctl(PR_SET_NAME)`.
5478
+ # Corresponds to the JSON property `name`
5479
+ # @return [String]
5480
+ attr_accessor :name
5481
+
5482
+ # The parent process ID.
5483
+ # Corresponds to the JSON property `parentPid`
5484
+ # @return [Fixnum]
5485
+ attr_accessor :parent_pid
5486
+
5487
+ # The process ID.
5488
+ # Corresponds to the JSON property `pid`
5489
+ # @return [Fixnum]
5490
+ attr_accessor :pid
5491
+
5492
+ # File information about the related binary/library used by an executable, or
5493
+ # the script used by a script interpreter
5494
+ # Corresponds to the JSON property `script`
5495
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2File]
5496
+ attr_accessor :script
5497
+
5498
+ def initialize(**args)
5499
+ update!(**args)
5500
+ end
5501
+
5502
+ # Update properties of this object
5503
+ def update!(**args)
5504
+ @args = args[:args] if args.key?(:args)
5505
+ @arguments_truncated = args[:arguments_truncated] if args.key?(:arguments_truncated)
5506
+ @binary = args[:binary] if args.key?(:binary)
5507
+ @env_variables = args[:env_variables] if args.key?(:env_variables)
5508
+ @env_variables_truncated = args[:env_variables_truncated] if args.key?(:env_variables_truncated)
5509
+ @libraries = args[:libraries] if args.key?(:libraries)
5510
+ @name = args[:name] if args.key?(:name)
5511
+ @parent_pid = args[:parent_pid] if args.key?(:parent_pid)
5512
+ @pid = args[:pid] if args.key?(:pid)
5513
+ @script = args[:script] if args.key?(:script)
5514
+ end
5515
+ end
5516
+
5517
+ # Indicates what signature matched this process.
5518
+ class GoogleCloudSecuritycenterV2ProcessSignature
5519
+ include Google::Apis::Core::Hashable
5520
+
5521
+ # A signature corresponding to memory page hashes.
5522
+ # Corresponds to the JSON property `memoryHashSignature`
5523
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2MemoryHashSignature]
5524
+ attr_accessor :memory_hash_signature
5525
+
5526
+ # A signature corresponding to a YARA rule.
5527
+ # Corresponds to the JSON property `yaraRuleSignature`
5528
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2YaraRuleSignature]
5529
+ attr_accessor :yara_rule_signature
5530
+
5531
+ def initialize(**args)
5532
+ update!(**args)
5533
+ end
5534
+
5535
+ # Update properties of this object
5536
+ def update!(**args)
5537
+ @memory_hash_signature = args[:memory_hash_signature] if args.key?(:memory_hash_signature)
5538
+ @yara_rule_signature = args[:yara_rule_signature] if args.key?(:yara_rule_signature)
5539
+ end
5540
+ end
5541
+
5542
+ # Additional Links
5543
+ class GoogleCloudSecuritycenterV2Reference
5544
+ include Google::Apis::Core::Hashable
5545
+
5546
+ # Source of the reference e.g. NVD
5547
+ # Corresponds to the JSON property `source`
5548
+ # @return [String]
5549
+ attr_accessor :source
5550
+
5551
+ # Uri for the mentioned source e.g. https://cve.mitre.org/cgi-bin/cvename.cgi?
5552
+ # name=CVE-2021-34527.
5553
+ # Corresponds to the JSON property `uri`
5554
+ # @return [String]
5555
+ attr_accessor :uri
5556
+
5557
+ def initialize(**args)
5558
+ update!(**args)
5559
+ end
5560
+
5561
+ # Update properties of this object
5562
+ def update!(**args)
5563
+ @source = args[:source] if args.key?(:source)
5564
+ @uri = args[:uri] if args.key?(:uri)
5565
+ end
5566
+ end
5567
+
5568
+ # Information related to the Google Cloud resource.
5569
+ class GoogleCloudSecuritycenterV2Resource
5570
+ include Google::Apis::Core::Hashable
5571
+
5572
+ # The human readable name of the resource.
5573
+ # Corresponds to the JSON property `displayName`
5574
+ # @return [String]
5575
+ attr_accessor :display_name
5576
+
5577
+ # The full resource name of the resource. See: https://cloud.google.com/apis/
5578
+ # design/resource_names#full_resource_name
5579
+ # Corresponds to the JSON property `name`
5580
+ # @return [String]
5581
+ attr_accessor :name
5582
+
5583
+ # The full resource type of the resource.
5584
+ # Corresponds to the JSON property `type`
5585
+ # @return [String]
5586
+ attr_accessor :type
5587
+
5588
+ def initialize(**args)
5589
+ update!(**args)
5590
+ end
5591
+
5592
+ # Update properties of this object
5593
+ def update!(**args)
5594
+ @display_name = args[:display_name] if args.key?(:display_name)
5595
+ @name = args[:name] if args.key?(:name)
5596
+ @type = args[:type] if args.key?(:type)
5597
+ end
5598
+ end
5599
+
5600
+ # A resource value config (RVC) is a mapping configuration of user's resources
5601
+ # to resource values. Used in Attack path simulations.
5602
+ class GoogleCloudSecuritycenterV2ResourceValueConfig
5603
+ include Google::Apis::Core::Hashable
5604
+
5605
+ # Output only. Timestamp this resource value config was created.
5606
+ # Corresponds to the JSON property `createTime`
5607
+ # @return [String]
5608
+ attr_accessor :create_time
5609
+
5610
+ # Description of the resource value config.
5611
+ # Corresponds to the JSON property `description`
5612
+ # @return [String]
5613
+ attr_accessor :description
5614
+
5615
+ # Name for the resource value config
5616
+ # Corresponds to the JSON property `name`
5617
+ # @return [String]
5618
+ attr_accessor :name
5619
+
5620
+ # List of resource labels to search for, evaluated with AND. E.g. "
5621
+ # resource_labels_selector": `"key": "value", "env": "prod"` will match
5622
+ # resources with labels "key": "value" AND "env": "prod" https://cloud.google.
5623
+ # com/resource-manager/docs/creating-managing-labels
5624
+ # Corresponds to the JSON property `resourceLabelsSelector`
5625
+ # @return [Hash<String,String>]
5626
+ attr_accessor :resource_labels_selector
5627
+
5628
+ # Apply resource_value only to resources that match resource_type. resource_type
5629
+ # will be checked with "AND" of other resources. E.g. "storage.googleapis.com/
5630
+ # Bucket" with resource_value "HIGH" will apply "HIGH" value only to "storage.
5631
+ # googleapis.com/Bucket" resources.
5632
+ # Corresponds to the JSON property `resourceType`
5633
+ # @return [String]
5634
+ attr_accessor :resource_type
5635
+
5636
+ # Required. Resource value level this expression represents
5637
+ # Corresponds to the JSON property `resourceValue`
5638
+ # @return [String]
5639
+ attr_accessor :resource_value
5640
+
5641
+ # Project or folder to scope this config to. For example, "project/456" would
5642
+ # apply this config only to resources in "project/456" scope will be checked
5643
+ # with "AND" of other resources.
5644
+ # Corresponds to the JSON property `scope`
5645
+ # @return [String]
5646
+ attr_accessor :scope
5647
+
5648
+ # Required. Tag values combined with AND to check against. Values in the form "
5649
+ # tagValues/123" E.g. [ "tagValues/123", "tagValues/456", "tagValues/789" ]
5650
+ # https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing
5651
+ # Corresponds to the JSON property `tagValues`
5652
+ # @return [Array<String>]
5653
+ attr_accessor :tag_values
5654
+
5655
+ # Output only. Timestamp this resource value config was last updated.
5656
+ # Corresponds to the JSON property `updateTime`
5657
+ # @return [String]
5658
+ attr_accessor :update_time
5659
+
5660
+ def initialize(**args)
5661
+ update!(**args)
5662
+ end
5663
+
5664
+ # Update properties of this object
5665
+ def update!(**args)
5666
+ @create_time = args[:create_time] if args.key?(:create_time)
5667
+ @description = args[:description] if args.key?(:description)
5668
+ @name = args[:name] if args.key?(:name)
5669
+ @resource_labels_selector = args[:resource_labels_selector] if args.key?(:resource_labels_selector)
5670
+ @resource_type = args[:resource_type] if args.key?(:resource_type)
5671
+ @resource_value = args[:resource_value] if args.key?(:resource_value)
5672
+ @scope = args[:scope] if args.key?(:scope)
5673
+ @tag_values = args[:tag_values] if args.key?(:tag_values)
5674
+ @update_time = args[:update_time] if args.key?(:update_time)
5675
+ end
5676
+ end
5677
+
5678
+ # Kubernetes Role or ClusterRole.
5679
+ class GoogleCloudSecuritycenterV2Role
5680
+ include Google::Apis::Core::Hashable
5681
+
5682
+ # Role type.
5683
+ # Corresponds to the JSON property `kind`
5684
+ # @return [String]
5685
+ attr_accessor :kind
5686
+
5687
+ # Role name.
5688
+ # Corresponds to the JSON property `name`
5689
+ # @return [String]
5690
+ attr_accessor :name
5691
+
5692
+ # Role namespace.
5693
+ # Corresponds to the JSON property `ns`
5694
+ # @return [String]
5695
+ attr_accessor :ns
5696
+
5697
+ def initialize(**args)
5698
+ update!(**args)
5699
+ end
5700
+
5701
+ # Update properties of this object
5702
+ def update!(**args)
5703
+ @kind = args[:kind] if args.key?(:kind)
5704
+ @name = args[:name] if args.key?(:name)
5705
+ @ns = args[:ns] if args.key?(:ns)
5706
+ end
5707
+ end
5708
+
5709
+ # User specified security marks that are attached to the parent Security Command
5710
+ # Center resource. Security marks are scoped within a Security Command Center
5711
+ # organization -- they can be modified and viewed by all users who have proper
5712
+ # permissions on the organization.
5713
+ class GoogleCloudSecuritycenterV2SecurityMarks
5714
+ include Google::Apis::Core::Hashable
5715
+
5716
+ # The canonical name of the marks. The following list shows some examples: + `
5717
+ # organizations/`organization_id`/assets/`asset_id`/securityMarks" + `
5718
+ # organizations/`organization_id`/sources/`source_id`/findings/`finding_id`/
5719
+ # securityMarks" + `organizations/`organization_id`/sources/`source_id`/
5720
+ # locations/`location`/findings/`finding_id`/securityMarks" + `folders/`
5721
+ # folder_id`/assets/`asset_id`/securityMarks" + `folders/`folder_id`/sources/`
5722
+ # source_id`/findings/`finding_id`/securityMarks" + `folders/`folder_id`/sources/
5723
+ # `source_id`/locations/`location`/findings/`finding_id`/securityMarks" + `
5724
+ # projects/`project_number`/assets/`asset_id`/securityMarks" + `projects/`
5725
+ # project_number`/sources/`source_id`/findings/`finding_id`/securityMarks" + `
5726
+ # projects/`project_number`/sources/`source_id`/locations/`location`/findings/`
5727
+ # finding_id`/securityMarks"
5728
+ # Corresponds to the JSON property `canonicalName`
5729
+ # @return [String]
5730
+ attr_accessor :canonical_name
5731
+
5732
+ # Mutable user specified security marks belonging to the parent resource.
5733
+ # Constraints are as follows: * Keys and values are treated as case insensitive *
5734
+ # Keys must be between 1 - 256 characters (inclusive) * Keys must be letters,
5735
+ # numbers, underscores, or dashes * Values have leading and trailing whitespace
5736
+ # trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
5737
+ # Corresponds to the JSON property `marks`
5738
+ # @return [Hash<String,String>]
5739
+ attr_accessor :marks
5740
+
5741
+ # The relative resource name of the SecurityMarks. See: https://cloud.google.com/
5742
+ # apis/design/resource_names#relative_resource_name The following list shows
5743
+ # some examples: + `organizations/`organization_id`/assets/`asset_id`/
5744
+ # securityMarks` + `organizations/`organization_id`/sources/`source_id`/findings/
5745
+ # `finding_id`/securityMarks` + `organizations/`organization_id`/sources/`
5746
+ # source_id`/locations/`location`/findings/`finding_id`/securityMarks`
5747
+ # Corresponds to the JSON property `name`
5748
+ # @return [String]
5749
+ attr_accessor :name
5750
+
5751
+ def initialize(**args)
5752
+ update!(**args)
5753
+ end
5754
+
5755
+ # Update properties of this object
5756
+ def update!(**args)
5757
+ @canonical_name = args[:canonical_name] if args.key?(:canonical_name)
5758
+ @marks = args[:marks] if args.key?(:marks)
5759
+ @name = args[:name] if args.key?(:name)
5760
+ end
5761
+ end
5762
+
5763
+ # Represents a posture that is deployed on Google Cloud by the Security Command
5764
+ # Center Posture Management service. A posture contains one or more policy sets.
5765
+ # A policy set is a group of policies that enforce a set of security rules on
5766
+ # Google Cloud.
5767
+ class GoogleCloudSecuritycenterV2SecurityPosture
5768
+ include Google::Apis::Core::Hashable
5769
+
5770
+ # The name of the policy that has been updated, for example, `projects/`
5771
+ # project_id`/policies/`constraint_name``.
5772
+ # Corresponds to the JSON property `changedPolicy`
5773
+ # @return [String]
5774
+ attr_accessor :changed_policy
5775
+
5776
+ # Name of the posture, for example, `organizations/`org_id`/locations/`location`/
5777
+ # postures/`posture_name``.
5778
+ # Corresponds to the JSON property `name`
5779
+ # @return [String]
5780
+ attr_accessor :name
5781
+
5782
+ # The name of the posture deployment, for example, `projects/`project_id`/
5783
+ # posturedeployments/`posture_deployment_id``.
5784
+ # Corresponds to the JSON property `postureDeployment`
5785
+ # @return [String]
5786
+ attr_accessor :posture_deployment
5787
+
5788
+ # The project, folder, or organization on which the posture is deployed, for
5789
+ # example, `projects/`project_id``.
5790
+ # Corresponds to the JSON property `postureDeploymentResource`
5791
+ # @return [String]
5792
+ attr_accessor :posture_deployment_resource
5793
+
5794
+ # The version of the posture, for example, `c7cfa2a8`.
5795
+ # Corresponds to the JSON property `revisionId`
5796
+ # @return [String]
5797
+ attr_accessor :revision_id
5798
+
5799
+ def initialize(**args)
5800
+ update!(**args)
5801
+ end
5802
+
5803
+ # Update properties of this object
5804
+ def update!(**args)
5805
+ @changed_policy = args[:changed_policy] if args.key?(:changed_policy)
5806
+ @name = args[:name] if args.key?(:name)
5807
+ @posture_deployment = args[:posture_deployment] if args.key?(:posture_deployment)
5808
+ @posture_deployment_resource = args[:posture_deployment_resource] if args.key?(:posture_deployment_resource)
5809
+ @revision_id = args[:revision_id] if args.key?(:revision_id)
5810
+ end
5811
+ end
5812
+
5813
+ # Identity delegation history of an authenticated service account.
5814
+ class GoogleCloudSecuritycenterV2ServiceAccountDelegationInfo
5815
+ include Google::Apis::Core::Hashable
5816
+
5817
+ # The email address of a Google account.
5818
+ # Corresponds to the JSON property `principalEmail`
5819
+ # @return [String]
5820
+ attr_accessor :principal_email
5821
+
5822
+ # A string representing the principal_subject associated with the identity. As
5823
+ # compared to `principal_email`, supports principals that aren't associated with
5824
+ # email addresses, such as third party principals. For most identities, the
5825
+ # format will be `principal://iam.googleapis.com/`identity pool name`/subjects/`
5826
+ # subject`` except for some GKE identities (GKE_WORKLOAD, FREEFORM,
5827
+ # GKE_HUB_WORKLOAD) that are still in the legacy format `serviceAccount:`
5828
+ # identity pool name`[`subject`]`
5829
+ # Corresponds to the JSON property `principalSubject`
5830
+ # @return [String]
5831
+ attr_accessor :principal_subject
5832
+
5833
+ def initialize(**args)
5834
+ update!(**args)
5835
+ end
5836
+
5837
+ # Update properties of this object
5838
+ def update!(**args)
5839
+ @principal_email = args[:principal_email] if args.key?(:principal_email)
5840
+ @principal_subject = args[:principal_subject] if args.key?(:principal_subject)
5841
+ end
5842
+ end
5843
+
5844
+ # Represents a Kubernetes subject.
5845
+ class GoogleCloudSecuritycenterV2Subject
5846
+ include Google::Apis::Core::Hashable
5847
+
5848
+ # Authentication type for the subject.
5849
+ # Corresponds to the JSON property `kind`
5850
+ # @return [String]
5851
+ attr_accessor :kind
5852
+
5853
+ # Name for the subject.
5854
+ # Corresponds to the JSON property `name`
5855
+ # @return [String]
5856
+ attr_accessor :name
5857
+
5858
+ # Namespace for the subject.
5859
+ # Corresponds to the JSON property `ns`
5860
+ # @return [String]
5861
+ attr_accessor :ns
5862
+
5863
+ def initialize(**args)
5864
+ update!(**args)
5865
+ end
5866
+
5867
+ # Update properties of this object
5868
+ def update!(**args)
5869
+ @kind = args[:kind] if args.key?(:kind)
5870
+ @name = args[:name] if args.key?(:name)
5871
+ @ns = args[:ns] if args.key?(:ns)
5872
+ end
5873
+ end
5874
+
5875
+ # Refers to common vulnerability fields e.g. cve, cvss, cwe etc.
5876
+ class GoogleCloudSecuritycenterV2Vulnerability
5877
+ include Google::Apis::Core::Hashable
5878
+
5879
+ # CVE stands for Common Vulnerabilities and Exposures. More information: https://
5880
+ # cve.mitre.org
5881
+ # Corresponds to the JSON property `cve`
5882
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Cve]
5883
+ attr_accessor :cve
5884
+
5885
+ def initialize(**args)
5886
+ update!(**args)
5887
+ end
5888
+
5889
+ # Update properties of this object
5890
+ def update!(**args)
5891
+ @cve = args[:cve] if args.key?(:cve)
5892
+ end
5893
+ end
5894
+
5895
+ # A signature corresponding to a YARA rule.
5896
+ class GoogleCloudSecuritycenterV2YaraRuleSignature
5897
+ include Google::Apis::Core::Hashable
5898
+
5899
+ # The name of the YARA rule.
5900
+ # Corresponds to the JSON property `yaraRule`
5901
+ # @return [String]
5902
+ attr_accessor :yara_rule
5903
+
5904
+ def initialize(**args)
5905
+ update!(**args)
5906
+ end
5907
+
5908
+ # Update properties of this object
5909
+ def update!(**args)
5910
+ @yara_rule = args[:yara_rule] if args.key?(:yara_rule)
5911
+ end
5912
+ end
5913
+
3076
5914
  # Request message for grouping by assets.
3077
5915
  class GroupAssetsRequest
3078
5916
  include Google::Apis::Core::Hashable
@@ -4348,7 +7186,7 @@ module Google
4348
7186
  # @return [String]
4349
7187
  attr_accessor :group
4350
7188
 
4351
- # Kubernetes object kind, such as Namespace”.
7189
+ # Kubernetes object kind, such as "Namespace".
4352
7190
  # Corresponds to the JSON property `kind`
4353
7191
  # @return [String]
4354
7192
  attr_accessor :kind
@@ -5258,8 +8096,9 @@ module Google
5258
8096
  # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV1CustomConfig]
5259
8097
  attr_accessor :custom_config
5260
8098
 
5261
- # Manually constructed resource. If the custom module only evaluates against the
5262
- # resource data, the iam_policy_data field can be omitted, and vice versa.
8099
+ # Manually constructed resource name. If the custom module evaluates against
8100
+ # only the resource data, you can omit the `iam_policy_data` field. If it
8101
+ # evaluates only the `iam_policy_data` field, you can omit the resource data.
5263
8102
  # Corresponds to the JSON property `resource`
5264
8103
  # @return [Google::Apis::SecuritycenterV1::SimulatedResource]
5265
8104
  attr_accessor :resource
@@ -5275,8 +8114,8 @@ module Google
5275
8114
  end
5276
8115
  end
5277
8116
 
5278
- # Response message for simulating a SecurityHealthAnalyticsCustomModule against
5279
- # a given resource.
8117
+ # Response message for simulating a `SecurityHealthAnalyticsCustomModule`
8118
+ # against a given resource.
5280
8119
  class SimulateSecurityHealthAnalyticsCustomModuleResponse
5281
8120
  include Google::Apis::Core::Hashable
5282
8121
 
@@ -5295,8 +8134,9 @@ module Google
5295
8134
  end
5296
8135
  end
5297
8136
 
5298
- # Manually constructed resource. If the custom module only evaluates against the
5299
- # resource data, the iam_policy_data field can be omitted, and vice versa.
8137
+ # Manually constructed resource name. If the custom module evaluates against
8138
+ # only the resource data, you can omit the `iam_policy_data` field. If it
8139
+ # evaluates only the `iam_policy_data` field, you can omit the resource data.
5300
8140
  class SimulatedResource
5301
8141
  include Google::Apis::Core::Hashable
5302
8142
 
@@ -5331,13 +8171,13 @@ module Google
5331
8171
  # @return [Google::Apis::SecuritycenterV1::Policy]
5332
8172
  attr_accessor :iam_policy_data
5333
8173
 
5334
- # Optional. A representation of the GCP resource. Should match the GCP resource
5335
- # JSON format.
8174
+ # Optional. A representation of the Google Cloud resource. Should match the
8175
+ # Google Cloud resource JSON format.
5336
8176
  # Corresponds to the JSON property `resourceData`
5337
8177
  # @return [Hash<String,Object>]
5338
8178
  attr_accessor :resource_data
5339
8179
 
5340
- # Required. The type of the resource, e.g. `compute.googleapis.com/Disk`.
8180
+ # Required. The type of the resource, for example, `compute.googleapis.com/Disk`.
5341
8181
  # Corresponds to the JSON property `resourceType`
5342
8182
  # @return [String]
5343
8183
  attr_accessor :resource_type