google-apis-securitycenter_v1beta1 0.64.0 → 0.66.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
@@ -406,6 +435,103 @@ module Google
406
435
  end
407
436
  end
408
437
 
438
+ # Information related to Google Cloud Backup and DR Service findings.
439
+ class BackupDisasterRecovery
440
+ include Google::Apis::Core::Hashable
441
+
442
+ # The name of the Backup and DR appliance that captures, moves, and manages the
443
+ # lifecycle of backup data. For example, “backup-server-57137”.
444
+ # Corresponds to the JSON property `appliance`
445
+ # @return [String]
446
+ attr_accessor :appliance
447
+
448
+ # The names of Backup and DR applications. An application is a VM, database, or
449
+ # file system on a managed host monitored by a backup and recovery appliance.
450
+ # For example, “centos7-01-vol00”, “centos7-01-vol01”, “centos7-01-vol02”.
451
+ # Corresponds to the JSON property `applications`
452
+ # @return [Array<String>]
453
+ attr_accessor :applications
454
+
455
+ # The timestamp at which the Backup and DR backup was created.
456
+ # Corresponds to the JSON property `backupCreateTime`
457
+ # @return [String]
458
+ attr_accessor :backup_create_time
459
+
460
+ # The name of a Backup and DR template which comprises one or more backup
461
+ # policies. See the [Backup and DR documentation](https://cloud.google.com/
462
+ # backup-disaster-recovery/docs/concepts/backup-plan#temp) for more information.
463
+ # For example, “snap-ov”.
464
+ # Corresponds to the JSON property `backupTemplate`
465
+ # @return [String]
466
+ attr_accessor :backup_template
467
+
468
+ # The backup type of the Backup and DR image. For example, “Snapshot”, “Remote
469
+ # Snapshot”, “OnVault”.
470
+ # Corresponds to the JSON property `backupType`
471
+ # @return [String]
472
+ attr_accessor :backup_type
473
+
474
+ # The name of a Backup and DR host, which is managed by the backup and recovery
475
+ # appliance and known to the management console. The host can be of type Generic
476
+ # (for example, Compute Engine, SQL Server, Oracle DB, SMB file system, etc.),
477
+ # vCenter, or an ESX server. See the [Backup and DR documentation on hosts](
478
+ # https://cloud.google.com/backup-disaster-recovery/docs/configuration/manage-
479
+ # hosts-and-their-applications) for more information. For example, “centos7-01”.
480
+ # Corresponds to the JSON property `host`
481
+ # @return [String]
482
+ attr_accessor :host
483
+
484
+ # The names of Backup and DR policies that are associated with a template and
485
+ # that define when to run a backup, how frequently to run a backup, and how long
486
+ # to retain the backup image. For example, “onvaults”.
487
+ # Corresponds to the JSON property `policies`
488
+ # @return [Array<String>]
489
+ attr_accessor :policies
490
+
491
+ # The names of Backup and DR advanced policy options of a policy applying to an
492
+ # application. See the [Backup and DR documentation on policy options](https://
493
+ # cloud.google.com/backup-disaster-recovery/docs/create-plan/policy-settings).
494
+ # For example, “skipofflineappsincongrp, nounmap”.
495
+ # Corresponds to the JSON property `policyOptions`
496
+ # @return [Array<String>]
497
+ attr_accessor :policy_options
498
+
499
+ # The name of the Backup and DR resource profile that specifies the storage
500
+ # media for backups of application and VM data. See the [Backup and DR
501
+ # documentation on profiles](https://cloud.google.com/backup-disaster-recovery/
502
+ # docs/concepts/backup-plan#profile). For example, “GCP”.
503
+ # Corresponds to the JSON property `profile`
504
+ # @return [String]
505
+ attr_accessor :profile
506
+
507
+ # The name of the Backup and DR storage pool that the backup and recovery
508
+ # appliance is storing data in. The storage pool could be of type Cloud, Primary,
509
+ # Snapshot, or OnVault. See the [Backup and DR documentation on storage pools](
510
+ # https://cloud.google.com/backup-disaster-recovery/docs/concepts/storage-pools).
511
+ # For example, “DiskPoolOne”.
512
+ # Corresponds to the JSON property `storagePool`
513
+ # @return [String]
514
+ attr_accessor :storage_pool
515
+
516
+ def initialize(**args)
517
+ update!(**args)
518
+ end
519
+
520
+ # Update properties of this object
521
+ def update!(**args)
522
+ @appliance = args[:appliance] if args.key?(:appliance)
523
+ @applications = args[:applications] if args.key?(:applications)
524
+ @backup_create_time = args[:backup_create_time] if args.key?(:backup_create_time)
525
+ @backup_template = args[:backup_template] if args.key?(:backup_template)
526
+ @backup_type = args[:backup_type] if args.key?(:backup_type)
527
+ @host = args[:host] if args.key?(:host)
528
+ @policies = args[:policies] if args.key?(:policies)
529
+ @policy_options = args[:policy_options] if args.key?(:policy_options)
530
+ @profile = args[:profile] if args.key?(:profile)
531
+ @storage_pool = args[:storage_pool] if args.key?(:storage_pool)
532
+ end
533
+ end
534
+
409
535
  # Associates `members`, or principals, with a `role`.
410
536
  class Binding
411
537
  include Google::Apis::Core::Hashable
@@ -638,6 +764,68 @@ module Google
638
764
  end
639
765
  end
640
766
 
767
+ # Result containing the properties and count of a ComplianceSnapshot request.
768
+ class ComplianceSnapshot
769
+ include Google::Apis::Core::Hashable
770
+
771
+ # The category of Findings matching.
772
+ # Corresponds to the JSON property `category`
773
+ # @return [String]
774
+ attr_accessor :category
775
+
776
+ # The compliance standard (ie CIS).
777
+ # Corresponds to the JSON property `complianceStandard`
778
+ # @return [String]
779
+ attr_accessor :compliance_standard
780
+
781
+ # The compliance version (ie 1.3) in CIS 1.3.
782
+ # Corresponds to the JSON property `complianceVersion`
783
+ # @return [String]
784
+ attr_accessor :compliance_version
785
+
786
+ # Total count of findings for the given properties.
787
+ # Corresponds to the JSON property `count`
788
+ # @return [Fixnum]
789
+ attr_accessor :count
790
+
791
+ # The leaf container resource name that is closest to the snapshot.
792
+ # Corresponds to the JSON property `leafContainerResource`
793
+ # @return [String]
794
+ attr_accessor :leaf_container_resource
795
+
796
+ # The compliance snapshot name. Format: //sources//complianceSnapshots/
797
+ # Corresponds to the JSON property `name`
798
+ # @return [String]
799
+ attr_accessor :name
800
+
801
+ # The CRM resource display name that is closest to the snapshot the Findings
802
+ # belong to.
803
+ # Corresponds to the JSON property `projectDisplayName`
804
+ # @return [String]
805
+ attr_accessor :project_display_name
806
+
807
+ # The snapshot time of the snapshot.
808
+ # Corresponds to the JSON property `snapshotTime`
809
+ # @return [String]
810
+ attr_accessor :snapshot_time
811
+
812
+ def initialize(**args)
813
+ update!(**args)
814
+ end
815
+
816
+ # Update properties of this object
817
+ def update!(**args)
818
+ @category = args[:category] if args.key?(:category)
819
+ @compliance_standard = args[:compliance_standard] if args.key?(:compliance_standard)
820
+ @compliance_version = args[:compliance_version] if args.key?(:compliance_version)
821
+ @count = args[:count] if args.key?(:count)
822
+ @leaf_container_resource = args[:leaf_container_resource] if args.key?(:leaf_container_resource)
823
+ @name = args[:name] if args.key?(:name)
824
+ @project_display_name = args[:project_display_name] if args.key?(:project_display_name)
825
+ @snapshot_time = args[:snapshot_time] if args.key?(:snapshot_time)
826
+ end
827
+ end
828
+
641
829
  # Contains information about the IP connection associated with the finding.
642
830
  class Connection
643
831
  include Google::Apis::Core::Hashable
@@ -1198,11 +1386,21 @@ module Google
1198
1386
  # @return [Google::Apis::SecuritycenterV1beta1::Access]
1199
1387
  attr_accessor :access
1200
1388
 
1389
+ # Represents an application associated with a finding.
1390
+ # Corresponds to the JSON property `application`
1391
+ # @return [Google::Apis::SecuritycenterV1beta1::Application]
1392
+ attr_accessor :application
1393
+
1201
1394
  # An attack exposure contains the results of an attack path simulation run.
1202
1395
  # Corresponds to the JSON property `attackExposure`
1203
1396
  # @return [Google::Apis::SecuritycenterV1beta1::AttackExposure]
1204
1397
  attr_accessor :attack_exposure
1205
1398
 
1399
+ # Information related to Google Cloud Backup and DR Service findings.
1400
+ # Corresponds to the JSON property `backupDisasterRecovery`
1401
+ # @return [Google::Apis::SecuritycenterV1beta1::BackupDisasterRecovery]
1402
+ attr_accessor :backup_disaster_recovery
1403
+
1206
1404
  # The canonical name of the finding. It's either "organizations/`organization_id`
1207
1405
  # /sources/`source_id`/findings/`finding_id`", "folders/`folder_id`/sources/`
1208
1406
  # source_id`/findings/`finding_id`" or "projects/`project_number`/sources/`
@@ -1479,7 +1677,9 @@ module Google
1479
1677
  # Update properties of this object
1480
1678
  def update!(**args)
1481
1679
  @access = args[:access] if args.key?(:access)
1680
+ @application = args[:application] if args.key?(:application)
1482
1681
  @attack_exposure = args[:attack_exposure] if args.key?(:attack_exposure)
1682
+ @backup_disaster_recovery = args[:backup_disaster_recovery] if args.key?(:backup_disaster_recovery)
1483
1683
  @canonical_name = args[:canonical_name] if args.key?(:canonical_name)
1484
1684
  @category = args[:category] if args.key?(:category)
1485
1685
  @cloud_dlp_data_profile = args[:cloud_dlp_data_profile] if args.key?(:cloud_dlp_data_profile)
@@ -2815,6 +3015,2644 @@ module Google
2815
3015
  end
2816
3016
  end
2817
3017
 
3018
+ # Represents an access event.
3019
+ class GoogleCloudSecuritycenterV2Access
3020
+ include Google::Apis::Core::Hashable
3021
+
3022
+ # Caller's IP address, such as "1.1.1.1".
3023
+ # Corresponds to the JSON property `callerIp`
3024
+ # @return [String]
3025
+ attr_accessor :caller_ip
3026
+
3027
+ # Represents a geographical location for a given access.
3028
+ # Corresponds to the JSON property `callerIpGeo`
3029
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Geolocation]
3030
+ attr_accessor :caller_ip_geo
3031
+
3032
+ # The method that the service account called, e.g. "SetIamPolicy".
3033
+ # Corresponds to the JSON property `methodName`
3034
+ # @return [String]
3035
+ attr_accessor :method_name
3036
+
3037
+ # Associated email, such as "foo@google.com". The email address of the
3038
+ # authenticated user or a service account acting on behalf of a third party
3039
+ # principal making the request. For third party identity callers, the `
3040
+ # principal_subject` field is populated instead of this field. For privacy
3041
+ # reasons, the principal email address is sometimes redacted. For more
3042
+ # information, see [Caller identities in audit logs](https://cloud.google.com/
3043
+ # logging/docs/audit#user-id).
3044
+ # Corresponds to the JSON property `principalEmail`
3045
+ # @return [String]
3046
+ attr_accessor :principal_email
3047
+
3048
+ # A string that represents the principal_subject that is associated with the
3049
+ # identity. Unlike `principal_email`, `principal_subject` supports principals
3050
+ # that aren't associated with email addresses, such as third party principals.
3051
+ # For most identities, the format is `principal://iam.googleapis.com/`identity
3052
+ # pool name`/subject/`subject``. Some GKE identities, such as GKE_WORKLOAD,
3053
+ # FREEFORM, and GKE_HUB_WORKLOAD, still use the legacy format `serviceAccount:`
3054
+ # identity pool name`[`subject`]`.
3055
+ # Corresponds to the JSON property `principalSubject`
3056
+ # @return [String]
3057
+ attr_accessor :principal_subject
3058
+
3059
+ # The identity delegation history of an authenticated service account that made
3060
+ # the request. The `serviceAccountDelegationInfo[]` object contains information
3061
+ # about the real authorities that try to access Google Cloud resources by
3062
+ # delegating on a service account. When multiple authorities are present, they
3063
+ # are guaranteed to be sorted based on the original ordering of the identity
3064
+ # delegation events.
3065
+ # Corresponds to the JSON property `serviceAccountDelegationInfo`
3066
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2ServiceAccountDelegationInfo>]
3067
+ attr_accessor :service_account_delegation_info
3068
+
3069
+ # The name of the service account key that was used to create or exchange
3070
+ # credentials when authenticating the service account that made the request.
3071
+ # This is a scheme-less URI full resource name. For example: "//iam.googleapis.
3072
+ # com/projects/`PROJECT_ID`/serviceAccounts/`ACCOUNT`/keys/`key`".
3073
+ # Corresponds to the JSON property `serviceAccountKeyName`
3074
+ # @return [String]
3075
+ attr_accessor :service_account_key_name
3076
+
3077
+ # This is the API service that the service account made a call to, e.g. "iam.
3078
+ # googleapis.com"
3079
+ # Corresponds to the JSON property `serviceName`
3080
+ # @return [String]
3081
+ attr_accessor :service_name
3082
+
3083
+ # The caller's user agent string associated with the finding.
3084
+ # Corresponds to the JSON property `userAgent`
3085
+ # @return [String]
3086
+ attr_accessor :user_agent
3087
+
3088
+ # Type of user agent associated with the finding. For example, an operating
3089
+ # system shell or an embedded or standalone application.
3090
+ # Corresponds to the JSON property `userAgentFamily`
3091
+ # @return [String]
3092
+ attr_accessor :user_agent_family
3093
+
3094
+ # A string that represents a username. The username provided depends on the type
3095
+ # of the finding and is likely not an IAM principal. For example, this can be a
3096
+ # system username if the finding is related to a virtual machine, or it can be
3097
+ # an application login username.
3098
+ # Corresponds to the JSON property `userName`
3099
+ # @return [String]
3100
+ attr_accessor :user_name
3101
+
3102
+ def initialize(**args)
3103
+ update!(**args)
3104
+ end
3105
+
3106
+ # Update properties of this object
3107
+ def update!(**args)
3108
+ @caller_ip = args[:caller_ip] if args.key?(:caller_ip)
3109
+ @caller_ip_geo = args[:caller_ip_geo] if args.key?(:caller_ip_geo)
3110
+ @method_name = args[:method_name] if args.key?(:method_name)
3111
+ @principal_email = args[:principal_email] if args.key?(:principal_email)
3112
+ @principal_subject = args[:principal_subject] if args.key?(:principal_subject)
3113
+ @service_account_delegation_info = args[:service_account_delegation_info] if args.key?(:service_account_delegation_info)
3114
+ @service_account_key_name = args[:service_account_key_name] if args.key?(:service_account_key_name)
3115
+ @service_name = args[:service_name] if args.key?(:service_name)
3116
+ @user_agent = args[:user_agent] if args.key?(:user_agent)
3117
+ @user_agent_family = args[:user_agent_family] if args.key?(:user_agent_family)
3118
+ @user_name = args[:user_name] if args.key?(:user_name)
3119
+ end
3120
+ end
3121
+
3122
+ # Conveys information about a Kubernetes access review (such as one returned by
3123
+ # a [`kubectl auth can-i`](https://kubernetes.io/docs/reference/access-authn-
3124
+ # authz/authorization/#checking-api-access) command) that was involved in a
3125
+ # finding.
3126
+ class GoogleCloudSecuritycenterV2AccessReview
3127
+ include Google::Apis::Core::Hashable
3128
+
3129
+ # The API group of the resource. "*" means all.
3130
+ # Corresponds to the JSON property `group`
3131
+ # @return [String]
3132
+ attr_accessor :group
3133
+
3134
+ # The name of the resource being requested. Empty means all.
3135
+ # Corresponds to the JSON property `name`
3136
+ # @return [String]
3137
+ attr_accessor :name
3138
+
3139
+ # Namespace of the action being requested. Currently, there is no distinction
3140
+ # between no namespace and all namespaces. Both are represented by "" (empty).
3141
+ # Corresponds to the JSON property `ns`
3142
+ # @return [String]
3143
+ attr_accessor :ns
3144
+
3145
+ # The optional resource type requested. "*" means all.
3146
+ # Corresponds to the JSON property `resource`
3147
+ # @return [String]
3148
+ attr_accessor :resource
3149
+
3150
+ # The optional subresource type.
3151
+ # Corresponds to the JSON property `subresource`
3152
+ # @return [String]
3153
+ attr_accessor :subresource
3154
+
3155
+ # A Kubernetes resource API verb, like get, list, watch, create, update, delete,
3156
+ # proxy. "*" means all.
3157
+ # Corresponds to the JSON property `verb`
3158
+ # @return [String]
3159
+ attr_accessor :verb
3160
+
3161
+ # The API version of the resource. "*" means all.
3162
+ # Corresponds to the JSON property `version`
3163
+ # @return [String]
3164
+ attr_accessor :version
3165
+
3166
+ def initialize(**args)
3167
+ update!(**args)
3168
+ end
3169
+
3170
+ # Update properties of this object
3171
+ def update!(**args)
3172
+ @group = args[:group] if args.key?(:group)
3173
+ @name = args[:name] if args.key?(:name)
3174
+ @ns = args[:ns] if args.key?(:ns)
3175
+ @resource = args[:resource] if args.key?(:resource)
3176
+ @subresource = args[:subresource] if args.key?(:subresource)
3177
+ @verb = args[:verb] if args.key?(:verb)
3178
+ @version = args[:version] if args.key?(:version)
3179
+ end
3180
+ end
3181
+
3182
+ # Represents an application associated with a finding.
3183
+ class GoogleCloudSecuritycenterV2Application
3184
+ include Google::Apis::Core::Hashable
3185
+
3186
+ # The base URI that identifies the network location of the application in which
3187
+ # the vulnerability was detected. Examples: http://11.22.33.44, http://foo.com,
3188
+ # http://11.22.33.44:8080
3189
+ # Corresponds to the JSON property `baseUri`
3190
+ # @return [String]
3191
+ attr_accessor :base_uri
3192
+
3193
+ # The full URI with payload that could be used to reproduce the vulnerability.
3194
+ # Example: http://11.22.33.44/reflected/parameter/attribute/singlequoted/js?p=
3195
+ # aMmYgI6H
3196
+ # Corresponds to the JSON property `fullUri`
3197
+ # @return [String]
3198
+ attr_accessor :full_uri
3199
+
3200
+ def initialize(**args)
3201
+ update!(**args)
3202
+ end
3203
+
3204
+ # Update properties of this object
3205
+ def update!(**args)
3206
+ @base_uri = args[:base_uri] if args.key?(:base_uri)
3207
+ @full_uri = args[:full_uri] if args.key?(:full_uri)
3208
+ end
3209
+ end
3210
+
3211
+ # An attack exposure contains the results of an attack path simulation run.
3212
+ class GoogleCloudSecuritycenterV2AttackExposure
3213
+ include Google::Apis::Core::Hashable
3214
+
3215
+ # The resource name of the attack path simulation result that contains the
3216
+ # details regarding this attack exposure score. Example: organizations/123/
3217
+ # attackExposureResults/456
3218
+ # Corresponds to the JSON property `attackExposureResult`
3219
+ # @return [String]
3220
+ attr_accessor :attack_exposure_result
3221
+
3222
+ # The number of high value resources that are exposed as a result of this
3223
+ # finding.
3224
+ # Corresponds to the JSON property `exposedHighValueResourcesCount`
3225
+ # @return [Fixnum]
3226
+ attr_accessor :exposed_high_value_resources_count
3227
+
3228
+ # The number of high value resources that are exposed as a result of this
3229
+ # finding.
3230
+ # Corresponds to the JSON property `exposedLowValueResourcesCount`
3231
+ # @return [Fixnum]
3232
+ attr_accessor :exposed_low_value_resources_count
3233
+
3234
+ # The number of medium value resources that are exposed as a result of this
3235
+ # finding.
3236
+ # Corresponds to the JSON property `exposedMediumValueResourcesCount`
3237
+ # @return [Fixnum]
3238
+ attr_accessor :exposed_medium_value_resources_count
3239
+
3240
+ # The most recent time the attack exposure was updated on this finding.
3241
+ # Corresponds to the JSON property `latestCalculationTime`
3242
+ # @return [String]
3243
+ attr_accessor :latest_calculation_time
3244
+
3245
+ # A number between 0 (inclusive) and infinity that represents how important this
3246
+ # finding is to remediate. The higher the score, the more important it is to
3247
+ # remediate.
3248
+ # Corresponds to the JSON property `score`
3249
+ # @return [Float]
3250
+ attr_accessor :score
3251
+
3252
+ # Output only. What state this AttackExposure is in. This captures whether or
3253
+ # not an attack exposure has been calculated or not.
3254
+ # Corresponds to the JSON property `state`
3255
+ # @return [String]
3256
+ attr_accessor :state
3257
+
3258
+ def initialize(**args)
3259
+ update!(**args)
3260
+ end
3261
+
3262
+ # Update properties of this object
3263
+ def update!(**args)
3264
+ @attack_exposure_result = args[:attack_exposure_result] if args.key?(:attack_exposure_result)
3265
+ @exposed_high_value_resources_count = args[:exposed_high_value_resources_count] if args.key?(:exposed_high_value_resources_count)
3266
+ @exposed_low_value_resources_count = args[:exposed_low_value_resources_count] if args.key?(:exposed_low_value_resources_count)
3267
+ @exposed_medium_value_resources_count = args[:exposed_medium_value_resources_count] if args.key?(:exposed_medium_value_resources_count)
3268
+ @latest_calculation_time = args[:latest_calculation_time] if args.key?(:latest_calculation_time)
3269
+ @score = args[:score] if args.key?(:score)
3270
+ @state = args[:state] if args.key?(:state)
3271
+ end
3272
+ end
3273
+
3274
+ # Information related to Google Cloud Backup and DR Service findings.
3275
+ class GoogleCloudSecuritycenterV2BackupDisasterRecovery
3276
+ include Google::Apis::Core::Hashable
3277
+
3278
+ # The name of the Backup and DR appliance that captures, moves, and manages the
3279
+ # lifecycle of backup data. For example, “backup-server-57137”.
3280
+ # Corresponds to the JSON property `appliance`
3281
+ # @return [String]
3282
+ attr_accessor :appliance
3283
+
3284
+ # The names of Backup and DR applications. An application is a VM, database, or
3285
+ # file system on a managed host monitored by a backup and recovery appliance.
3286
+ # For example, “centos7-01-vol00”, “centos7-01-vol01”, “centos7-01-vol02”.
3287
+ # Corresponds to the JSON property `applications`
3288
+ # @return [Array<String>]
3289
+ attr_accessor :applications
3290
+
3291
+ # The timestamp at which the Backup and DR backup was created.
3292
+ # Corresponds to the JSON property `backupCreateTime`
3293
+ # @return [String]
3294
+ attr_accessor :backup_create_time
3295
+
3296
+ # The name of a Backup and DR template which comprises one or more backup
3297
+ # policies. See the [Backup and DR documentation](https://cloud.google.com/
3298
+ # backup-disaster-recovery/docs/concepts/backup-plan#temp) for more information.
3299
+ # For example, “snap-ov”.
3300
+ # Corresponds to the JSON property `backupTemplate`
3301
+ # @return [String]
3302
+ attr_accessor :backup_template
3303
+
3304
+ # The backup type of the Backup and DR image. For example, “Snapshot”, “Remote
3305
+ # Snapshot”, “OnVault”.
3306
+ # Corresponds to the JSON property `backupType`
3307
+ # @return [String]
3308
+ attr_accessor :backup_type
3309
+
3310
+ # The name of a Backup and DR host, which is managed by the backup and recovery
3311
+ # appliance and known to the management console. The host can be of type Generic
3312
+ # (for example, Compute Engine, SQL Server, Oracle DB, SMB file system, etc.),
3313
+ # vCenter, or an ESX server. See the [Backup and DR documentation on hosts](
3314
+ # https://cloud.google.com/backup-disaster-recovery/docs/configuration/manage-
3315
+ # hosts-and-their-applications) for more information. For example, “centos7-01”.
3316
+ # Corresponds to the JSON property `host`
3317
+ # @return [String]
3318
+ attr_accessor :host
3319
+
3320
+ # The names of Backup and DR policies that are associated with a template and
3321
+ # that define when to run a backup, how frequently to run a backup, and how long
3322
+ # to retain the backup image. For example, “onvaults”.
3323
+ # Corresponds to the JSON property `policies`
3324
+ # @return [Array<String>]
3325
+ attr_accessor :policies
3326
+
3327
+ # The names of Backup and DR advanced policy options of a policy applying to an
3328
+ # application. See the [Backup and DR documentation on policy options](https://
3329
+ # cloud.google.com/backup-disaster-recovery/docs/create-plan/policy-settings).
3330
+ # For example, “skipofflineappsincongrp, nounmap”.
3331
+ # Corresponds to the JSON property `policyOptions`
3332
+ # @return [Array<String>]
3333
+ attr_accessor :policy_options
3334
+
3335
+ # The name of the Backup and DR resource profile that specifies the storage
3336
+ # media for backups of application and VM data. See the [Backup and DR
3337
+ # documentation on profiles](https://cloud.google.com/backup-disaster-recovery/
3338
+ # docs/concepts/backup-plan#profile). For example, “GCP”.
3339
+ # Corresponds to the JSON property `profile`
3340
+ # @return [String]
3341
+ attr_accessor :profile
3342
+
3343
+ # The name of the Backup and DR storage pool that the backup and recovery
3344
+ # appliance is storing data in. The storage pool could be of type Cloud, Primary,
3345
+ # Snapshot, or OnVault. See the [Backup and DR documentation on storage pools](
3346
+ # https://cloud.google.com/backup-disaster-recovery/docs/concepts/storage-pools).
3347
+ # For example, “DiskPoolOne”.
3348
+ # Corresponds to the JSON property `storagePool`
3349
+ # @return [String]
3350
+ attr_accessor :storage_pool
3351
+
3352
+ def initialize(**args)
3353
+ update!(**args)
3354
+ end
3355
+
3356
+ # Update properties of this object
3357
+ def update!(**args)
3358
+ @appliance = args[:appliance] if args.key?(:appliance)
3359
+ @applications = args[:applications] if args.key?(:applications)
3360
+ @backup_create_time = args[:backup_create_time] if args.key?(:backup_create_time)
3361
+ @backup_template = args[:backup_template] if args.key?(:backup_template)
3362
+ @backup_type = args[:backup_type] if args.key?(:backup_type)
3363
+ @host = args[:host] if args.key?(:host)
3364
+ @policies = args[:policies] if args.key?(:policies)
3365
+ @policy_options = args[:policy_options] if args.key?(:policy_options)
3366
+ @profile = args[:profile] if args.key?(:profile)
3367
+ @storage_pool = args[:storage_pool] if args.key?(:storage_pool)
3368
+ end
3369
+ end
3370
+
3371
+ # Configures how to deliver Findings to BigQuery Instance.
3372
+ class GoogleCloudSecuritycenterV2BigQueryExport
3373
+ include Google::Apis::Core::Hashable
3374
+
3375
+ # Output only. The time at which the BigQuery export was created. This field is
3376
+ # set by the server and will be ignored if provided on export on creation.
3377
+ # Corresponds to the JSON property `createTime`
3378
+ # @return [String]
3379
+ attr_accessor :create_time
3380
+
3381
+ # The dataset to write findings' updates to. Its format is "projects/[project_id]
3382
+ # /datasets/[bigquery_dataset_id]". BigQuery Dataset unique ID must contain only
3383
+ # letters (a-z, A-Z), numbers (0-9), or underscores (_).
3384
+ # Corresponds to the JSON property `dataset`
3385
+ # @return [String]
3386
+ attr_accessor :dataset
3387
+
3388
+ # The description of the export (max of 1024 characters).
3389
+ # Corresponds to the JSON property `description`
3390
+ # @return [String]
3391
+ attr_accessor :description
3392
+
3393
+ # Expression that defines the filter to apply across create/update events of
3394
+ # findings. The expression is a list of zero or more restrictions combined via
3395
+ # logical operators `AND` and `OR`. Parentheses are supported, and `OR` has
3396
+ # higher precedence than `AND`. Restrictions have the form ` ` and may have a `-`
3397
+ # character in front of them to indicate negation. The fields map to those
3398
+ # defined in the corresponding resource. The supported operators are: * `=` for
3399
+ # all value types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning
3400
+ # substring matching, for strings. The supported value types are: * string
3401
+ # literals in quotes. * integer literals without quotes. * boolean literals `
3402
+ # true` and `false` without quotes.
3403
+ # Corresponds to the JSON property `filter`
3404
+ # @return [String]
3405
+ attr_accessor :filter
3406
+
3407
+ # Output only. Email address of the user who last edited the BigQuery export.
3408
+ # This field is set by the server and will be ignored if provided on export
3409
+ # creation or update.
3410
+ # Corresponds to the JSON property `mostRecentEditor`
3411
+ # @return [String]
3412
+ attr_accessor :most_recent_editor
3413
+
3414
+ # The relative resource name of this export. See: https://cloud.google.com/apis/
3415
+ # design/resource_names#relative_resource_name. The following list shows some
3416
+ # examples: + `organizations/`organization_id`/locations/`location_id`/
3417
+ # bigQueryExports/`export_id`` + `folders/`folder_id`/locations/`location_id`/
3418
+ # bigQueryExports/`export_id`` + `projects/`project_id`/locations/`location_id`/
3419
+ # bigQueryExports/`export_id`` This field is provided in responses, and is
3420
+ # ignored when provided in create requests.
3421
+ # Corresponds to the JSON property `name`
3422
+ # @return [String]
3423
+ attr_accessor :name
3424
+
3425
+ # Output only. The service account that needs permission to create table and
3426
+ # upload data to the BigQuery dataset.
3427
+ # Corresponds to the JSON property `principal`
3428
+ # @return [String]
3429
+ attr_accessor :principal
3430
+
3431
+ # Output only. The most recent time at which the BigQuery export was updated.
3432
+ # This field is set by the server and will be ignored if provided on export
3433
+ # creation or update.
3434
+ # Corresponds to the JSON property `updateTime`
3435
+ # @return [String]
3436
+ attr_accessor :update_time
3437
+
3438
+ def initialize(**args)
3439
+ update!(**args)
3440
+ end
3441
+
3442
+ # Update properties of this object
3443
+ def update!(**args)
3444
+ @create_time = args[:create_time] if args.key?(:create_time)
3445
+ @dataset = args[:dataset] if args.key?(:dataset)
3446
+ @description = args[:description] if args.key?(:description)
3447
+ @filter = args[:filter] if args.key?(:filter)
3448
+ @most_recent_editor = args[:most_recent_editor] if args.key?(:most_recent_editor)
3449
+ @name = args[:name] if args.key?(:name)
3450
+ @principal = args[:principal] if args.key?(:principal)
3451
+ @update_time = args[:update_time] if args.key?(:update_time)
3452
+ end
3453
+ end
3454
+
3455
+ # Represents a Kubernetes RoleBinding or ClusterRoleBinding.
3456
+ class GoogleCloudSecuritycenterV2Binding
3457
+ include Google::Apis::Core::Hashable
3458
+
3459
+ # Name for the binding.
3460
+ # Corresponds to the JSON property `name`
3461
+ # @return [String]
3462
+ attr_accessor :name
3463
+
3464
+ # Namespace for the binding.
3465
+ # Corresponds to the JSON property `ns`
3466
+ # @return [String]
3467
+ attr_accessor :ns
3468
+
3469
+ # Kubernetes Role or ClusterRole.
3470
+ # Corresponds to the JSON property `role`
3471
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Role]
3472
+ attr_accessor :role
3473
+
3474
+ # Represents one or more subjects that are bound to the role. Not always
3475
+ # available for PATCH requests.
3476
+ # Corresponds to the JSON property `subjects`
3477
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Subject>]
3478
+ attr_accessor :subjects
3479
+
3480
+ def initialize(**args)
3481
+ update!(**args)
3482
+ end
3483
+
3484
+ # Update properties of this object
3485
+ def update!(**args)
3486
+ @name = args[:name] if args.key?(:name)
3487
+ @ns = args[:ns] if args.key?(:ns)
3488
+ @role = args[:role] if args.key?(:role)
3489
+ @subjects = args[:subjects] if args.key?(:subjects)
3490
+ end
3491
+ end
3492
+
3493
+ # The response to a BulkMute request. Contains the LRO information.
3494
+ class GoogleCloudSecuritycenterV2BulkMuteFindingsResponse
3495
+ include Google::Apis::Core::Hashable
3496
+
3497
+ def initialize(**args)
3498
+ update!(**args)
3499
+ end
3500
+
3501
+ # Update properties of this object
3502
+ def update!(**args)
3503
+ end
3504
+ end
3505
+
3506
+ # The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated
3507
+ # with the finding.
3508
+ class GoogleCloudSecuritycenterV2CloudDlpDataProfile
3509
+ include Google::Apis::Core::Hashable
3510
+
3511
+ # Name of the data profile, for example, `projects/123/locations/europe/
3512
+ # tableProfiles/8383929`.
3513
+ # Corresponds to the JSON property `dataProfile`
3514
+ # @return [String]
3515
+ attr_accessor :data_profile
3516
+
3517
+ # The resource hierarchy level at which the data profile was generated.
3518
+ # Corresponds to the JSON property `parentType`
3519
+ # @return [String]
3520
+ attr_accessor :parent_type
3521
+
3522
+ def initialize(**args)
3523
+ update!(**args)
3524
+ end
3525
+
3526
+ # Update properties of this object
3527
+ def update!(**args)
3528
+ @data_profile = args[:data_profile] if args.key?(:data_profile)
3529
+ @parent_type = args[:parent_type] if args.key?(:parent_type)
3530
+ end
3531
+ end
3532
+
3533
+ # Details about the Cloud Data Loss Prevention (Cloud DLP) [inspection job](
3534
+ # https://cloud.google.com/dlp/docs/concepts-job-triggers) that produced the
3535
+ # finding.
3536
+ class GoogleCloudSecuritycenterV2CloudDlpInspection
3537
+ include Google::Apis::Core::Hashable
3538
+
3539
+ # Whether Cloud DLP scanned the complete resource or a sampled subset.
3540
+ # Corresponds to the JSON property `fullScan`
3541
+ # @return [Boolean]
3542
+ attr_accessor :full_scan
3543
+ alias_method :full_scan?, :full_scan
3544
+
3545
+ # The type of information (or *[infoType](https://cloud.google.com/dlp/docs/
3546
+ # infotypes-reference)*) found, for example, `EMAIL_ADDRESS` or `STREET_ADDRESS`.
3547
+ # Corresponds to the JSON property `infoType`
3548
+ # @return [String]
3549
+ attr_accessor :info_type
3550
+
3551
+ # The number of times Cloud DLP found this infoType within this job and resource.
3552
+ # Corresponds to the JSON property `infoTypeCount`
3553
+ # @return [Fixnum]
3554
+ attr_accessor :info_type_count
3555
+
3556
+ # Name of the inspection job, for example, `projects/123/locations/europe/
3557
+ # dlpJobs/i-8383929`.
3558
+ # Corresponds to the JSON property `inspectJob`
3559
+ # @return [String]
3560
+ attr_accessor :inspect_job
3561
+
3562
+ def initialize(**args)
3563
+ update!(**args)
3564
+ end
3565
+
3566
+ # Update properties of this object
3567
+ def update!(**args)
3568
+ @full_scan = args[:full_scan] if args.key?(:full_scan)
3569
+ @info_type = args[:info_type] if args.key?(:info_type)
3570
+ @info_type_count = args[:info_type_count] if args.key?(:info_type_count)
3571
+ @inspect_job = args[:inspect_job] if args.key?(:inspect_job)
3572
+ end
3573
+ end
3574
+
3575
+ # Metadata taken from a [Cloud Logging LogEntry](https://cloud.google.com/
3576
+ # logging/docs/reference/v2/rest/v2/LogEntry)
3577
+ class GoogleCloudSecuritycenterV2CloudLoggingEntry
3578
+ include Google::Apis::Core::Hashable
3579
+
3580
+ # A unique identifier for the log entry.
3581
+ # Corresponds to the JSON property `insertId`
3582
+ # @return [String]
3583
+ attr_accessor :insert_id
3584
+
3585
+ # The type of the log (part of `log_name`. `log_name` is the resource name of
3586
+ # the log to which this log entry belongs). For example: `cloudresourcemanager.
3587
+ # googleapis.com/activity` Note that this field is not URL-encoded, unlike in `
3588
+ # LogEntry`.
3589
+ # Corresponds to the JSON property `logId`
3590
+ # @return [String]
3591
+ attr_accessor :log_id
3592
+
3593
+ # The organization, folder, or project of the monitored resource that produced
3594
+ # this log entry.
3595
+ # Corresponds to the JSON property `resourceContainer`
3596
+ # @return [String]
3597
+ attr_accessor :resource_container
3598
+
3599
+ # The time the event described by the log entry occurred.
3600
+ # Corresponds to the JSON property `timestamp`
3601
+ # @return [String]
3602
+ attr_accessor :timestamp
3603
+
3604
+ def initialize(**args)
3605
+ update!(**args)
3606
+ end
3607
+
3608
+ # Update properties of this object
3609
+ def update!(**args)
3610
+ @insert_id = args[:insert_id] if args.key?(:insert_id)
3611
+ @log_id = args[:log_id] if args.key?(:log_id)
3612
+ @resource_container = args[:resource_container] if args.key?(:resource_container)
3613
+ @timestamp = args[:timestamp] if args.key?(:timestamp)
3614
+ end
3615
+ end
3616
+
3617
+ # Contains compliance information about a security standard indicating unmet
3618
+ # recommendations.
3619
+ class GoogleCloudSecuritycenterV2Compliance
3620
+ include Google::Apis::Core::Hashable
3621
+
3622
+ # Policies within the standard or benchmark, for example, A.12.4.1
3623
+ # Corresponds to the JSON property `ids`
3624
+ # @return [Array<String>]
3625
+ attr_accessor :ids
3626
+
3627
+ # Industry-wide compliance standards or benchmarks, such as CIS, PCI, and OWASP.
3628
+ # Corresponds to the JSON property `standard`
3629
+ # @return [String]
3630
+ attr_accessor :standard
3631
+
3632
+ # Version of the standard or benchmark, for example, 1.1
3633
+ # Corresponds to the JSON property `version`
3634
+ # @return [String]
3635
+ attr_accessor :version
3636
+
3637
+ def initialize(**args)
3638
+ update!(**args)
3639
+ end
3640
+
3641
+ # Update properties of this object
3642
+ def update!(**args)
3643
+ @ids = args[:ids] if args.key?(:ids)
3644
+ @standard = args[:standard] if args.key?(:standard)
3645
+ @version = args[:version] if args.key?(:version)
3646
+ end
3647
+ end
3648
+
3649
+ # Contains information about the IP connection associated with the finding.
3650
+ class GoogleCloudSecuritycenterV2Connection
3651
+ include Google::Apis::Core::Hashable
3652
+
3653
+ # Destination IP address. Not present for sockets that are listening and not
3654
+ # connected.
3655
+ # Corresponds to the JSON property `destinationIp`
3656
+ # @return [String]
3657
+ attr_accessor :destination_ip
3658
+
3659
+ # Destination port. Not present for sockets that are listening and not connected.
3660
+ # Corresponds to the JSON property `destinationPort`
3661
+ # @return [Fixnum]
3662
+ attr_accessor :destination_port
3663
+
3664
+ # IANA Internet Protocol Number such as TCP(6) and UDP(17).
3665
+ # Corresponds to the JSON property `protocol`
3666
+ # @return [String]
3667
+ attr_accessor :protocol
3668
+
3669
+ # Source IP address.
3670
+ # Corresponds to the JSON property `sourceIp`
3671
+ # @return [String]
3672
+ attr_accessor :source_ip
3673
+
3674
+ # Source port.
3675
+ # Corresponds to the JSON property `sourcePort`
3676
+ # @return [Fixnum]
3677
+ attr_accessor :source_port
3678
+
3679
+ def initialize(**args)
3680
+ update!(**args)
3681
+ end
3682
+
3683
+ # Update properties of this object
3684
+ def update!(**args)
3685
+ @destination_ip = args[:destination_ip] if args.key?(:destination_ip)
3686
+ @destination_port = args[:destination_port] if args.key?(:destination_port)
3687
+ @protocol = args[:protocol] if args.key?(:protocol)
3688
+ @source_ip = args[:source_ip] if args.key?(:source_ip)
3689
+ @source_port = args[:source_port] if args.key?(:source_port)
3690
+ end
3691
+ end
3692
+
3693
+ # The email address of a contact.
3694
+ class GoogleCloudSecuritycenterV2Contact
3695
+ include Google::Apis::Core::Hashable
3696
+
3697
+ # An email address. For example, "`person123@company.com`".
3698
+ # Corresponds to the JSON property `email`
3699
+ # @return [String]
3700
+ attr_accessor :email
3701
+
3702
+ def initialize(**args)
3703
+ update!(**args)
3704
+ end
3705
+
3706
+ # Update properties of this object
3707
+ def update!(**args)
3708
+ @email = args[:email] if args.key?(:email)
3709
+ end
3710
+ end
3711
+
3712
+ # Details about specific contacts
3713
+ class GoogleCloudSecuritycenterV2ContactDetails
3714
+ include Google::Apis::Core::Hashable
3715
+
3716
+ # A list of contacts
3717
+ # Corresponds to the JSON property `contacts`
3718
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Contact>]
3719
+ attr_accessor :contacts
3720
+
3721
+ def initialize(**args)
3722
+ update!(**args)
3723
+ end
3724
+
3725
+ # Update properties of this object
3726
+ def update!(**args)
3727
+ @contacts = args[:contacts] if args.key?(:contacts)
3728
+ end
3729
+ end
3730
+
3731
+ # Container associated with the finding.
3732
+ class GoogleCloudSecuritycenterV2Container
3733
+ include Google::Apis::Core::Hashable
3734
+
3735
+ # The time that the container was created.
3736
+ # Corresponds to the JSON property `createTime`
3737
+ # @return [String]
3738
+ attr_accessor :create_time
3739
+
3740
+ # Optional container image ID, if provided by the container runtime. Uniquely
3741
+ # identifies the container image launched using a container image digest.
3742
+ # Corresponds to the JSON property `imageId`
3743
+ # @return [String]
3744
+ attr_accessor :image_id
3745
+
3746
+ # Container labels, as provided by the container runtime.
3747
+ # Corresponds to the JSON property `labels`
3748
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Label>]
3749
+ attr_accessor :labels
3750
+
3751
+ # Name of the container.
3752
+ # Corresponds to the JSON property `name`
3753
+ # @return [String]
3754
+ attr_accessor :name
3755
+
3756
+ # Container image URI provided when configuring a pod or container. This string
3757
+ # can identify a container image version using mutable tags.
3758
+ # Corresponds to the JSON property `uri`
3759
+ # @return [String]
3760
+ attr_accessor :uri
3761
+
3762
+ def initialize(**args)
3763
+ update!(**args)
3764
+ end
3765
+
3766
+ # Update properties of this object
3767
+ def update!(**args)
3768
+ @create_time = args[:create_time] if args.key?(:create_time)
3769
+ @image_id = args[:image_id] if args.key?(:image_id)
3770
+ @labels = args[:labels] if args.key?(:labels)
3771
+ @name = args[:name] if args.key?(:name)
3772
+ @uri = args[:uri] if args.key?(:uri)
3773
+ end
3774
+ end
3775
+
3776
+ # CVE stands for Common Vulnerabilities and Exposures. More information: https://
3777
+ # cve.mitre.org
3778
+ class GoogleCloudSecuritycenterV2Cve
3779
+ include Google::Apis::Core::Hashable
3780
+
3781
+ # Common Vulnerability Scoring System version 3.
3782
+ # Corresponds to the JSON property `cvssv3`
3783
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Cvssv3]
3784
+ attr_accessor :cvssv3
3785
+
3786
+ # The unique identifier for the vulnerability. e.g. CVE-2021-34527
3787
+ # Corresponds to the JSON property `id`
3788
+ # @return [String]
3789
+ attr_accessor :id
3790
+
3791
+ # Additional information about the CVE. e.g. https://cve.mitre.org/cgi-bin/
3792
+ # cvename.cgi?name=CVE-2021-34527
3793
+ # Corresponds to the JSON property `references`
3794
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Reference>]
3795
+ attr_accessor :references
3796
+
3797
+ # Whether upstream fix is available for the CVE.
3798
+ # Corresponds to the JSON property `upstreamFixAvailable`
3799
+ # @return [Boolean]
3800
+ attr_accessor :upstream_fix_available
3801
+ alias_method :upstream_fix_available?, :upstream_fix_available
3802
+
3803
+ def initialize(**args)
3804
+ update!(**args)
3805
+ end
3806
+
3807
+ # Update properties of this object
3808
+ def update!(**args)
3809
+ @cvssv3 = args[:cvssv3] if args.key?(:cvssv3)
3810
+ @id = args[:id] if args.key?(:id)
3811
+ @references = args[:references] if args.key?(:references)
3812
+ @upstream_fix_available = args[:upstream_fix_available] if args.key?(:upstream_fix_available)
3813
+ end
3814
+ end
3815
+
3816
+ # Common Vulnerability Scoring System version 3.
3817
+ class GoogleCloudSecuritycenterV2Cvssv3
3818
+ include Google::Apis::Core::Hashable
3819
+
3820
+ # This metric describes the conditions beyond the attacker's control that must
3821
+ # exist in order to exploit the vulnerability.
3822
+ # Corresponds to the JSON property `attackComplexity`
3823
+ # @return [String]
3824
+ attr_accessor :attack_complexity
3825
+
3826
+ # Base Metrics Represents the intrinsic characteristics of a vulnerability that
3827
+ # are constant over time and across user environments. This metric reflects the
3828
+ # context by which vulnerability exploitation is possible.
3829
+ # Corresponds to the JSON property `attackVector`
3830
+ # @return [String]
3831
+ attr_accessor :attack_vector
3832
+
3833
+ # This metric measures the impact to the availability of the impacted component
3834
+ # resulting from a successfully exploited vulnerability.
3835
+ # Corresponds to the JSON property `availabilityImpact`
3836
+ # @return [String]
3837
+ attr_accessor :availability_impact
3838
+
3839
+ # The base score is a function of the base metric scores.
3840
+ # Corresponds to the JSON property `baseScore`
3841
+ # @return [Float]
3842
+ attr_accessor :base_score
3843
+
3844
+ # This metric measures the impact to the confidentiality of the information
3845
+ # resources managed by a software component due to a successfully exploited
3846
+ # vulnerability.
3847
+ # Corresponds to the JSON property `confidentialityImpact`
3848
+ # @return [String]
3849
+ attr_accessor :confidentiality_impact
3850
+
3851
+ # This metric measures the impact to integrity of a successfully exploited
3852
+ # vulnerability.
3853
+ # Corresponds to the JSON property `integrityImpact`
3854
+ # @return [String]
3855
+ attr_accessor :integrity_impact
3856
+
3857
+ # This metric describes the level of privileges an attacker must possess before
3858
+ # successfully exploiting the vulnerability.
3859
+ # Corresponds to the JSON property `privilegesRequired`
3860
+ # @return [String]
3861
+ attr_accessor :privileges_required
3862
+
3863
+ # The Scope metric captures whether a vulnerability in one vulnerable component
3864
+ # impacts resources in components beyond its security scope.
3865
+ # Corresponds to the JSON property `scope`
3866
+ # @return [String]
3867
+ attr_accessor :scope
3868
+
3869
+ # This metric captures the requirement for a human user, other than the attacker,
3870
+ # to participate in the successful compromise of the vulnerable component.
3871
+ # Corresponds to the JSON property `userInteraction`
3872
+ # @return [String]
3873
+ attr_accessor :user_interaction
3874
+
3875
+ def initialize(**args)
3876
+ update!(**args)
3877
+ end
3878
+
3879
+ # Update properties of this object
3880
+ def update!(**args)
3881
+ @attack_complexity = args[:attack_complexity] if args.key?(:attack_complexity)
3882
+ @attack_vector = args[:attack_vector] if args.key?(:attack_vector)
3883
+ @availability_impact = args[:availability_impact] if args.key?(:availability_impact)
3884
+ @base_score = args[:base_score] if args.key?(:base_score)
3885
+ @confidentiality_impact = args[:confidentiality_impact] if args.key?(:confidentiality_impact)
3886
+ @integrity_impact = args[:integrity_impact] if args.key?(:integrity_impact)
3887
+ @privileges_required = args[:privileges_required] if args.key?(:privileges_required)
3888
+ @scope = args[:scope] if args.key?(:scope)
3889
+ @user_interaction = args[:user_interaction] if args.key?(:user_interaction)
3890
+ end
3891
+ end
3892
+
3893
+ # Represents database access information, such as queries. A database may be a
3894
+ # sub-resource of an instance (as in the case of Cloud SQL instances or Cloud
3895
+ # Spanner instances), or the database instance itself. Some database resources
3896
+ # might not have the [full resource name](https://google.aip.dev/122#full-
3897
+ # resource-names) populated because these resource types, such as Cloud SQL
3898
+ # databases, are not yet supported by Cloud Asset Inventory. In these cases only
3899
+ # the display name is provided.
3900
+ class GoogleCloudSecuritycenterV2Database
3901
+ include Google::Apis::Core::Hashable
3902
+
3903
+ # The human-readable name of the database that the user connected to.
3904
+ # Corresponds to the JSON property `displayName`
3905
+ # @return [String]
3906
+ attr_accessor :display_name
3907
+
3908
+ # The target usernames, roles, or groups of an SQL privilege grant, which is not
3909
+ # an IAM policy change.
3910
+ # Corresponds to the JSON property `grantees`
3911
+ # @return [Array<String>]
3912
+ attr_accessor :grantees
3913
+
3914
+ # Some database resources may not have the [full resource name](https://google.
3915
+ # aip.dev/122#full-resource-names) populated because these resource types are
3916
+ # not yet supported by Cloud Asset Inventory (e.g. Cloud SQL databases). In
3917
+ # these cases only the display name will be provided. The [full resource name](
3918
+ # https://google.aip.dev/122#full-resource-names) of the database that the user
3919
+ # connected to, if it is supported by Cloud Asset Inventory.
3920
+ # Corresponds to the JSON property `name`
3921
+ # @return [String]
3922
+ attr_accessor :name
3923
+
3924
+ # The SQL statement that is associated with the database access.
3925
+ # Corresponds to the JSON property `query`
3926
+ # @return [String]
3927
+ attr_accessor :query
3928
+
3929
+ # The username used to connect to the database. The username might not be an IAM
3930
+ # principal and does not have a set format.
3931
+ # Corresponds to the JSON property `userName`
3932
+ # @return [String]
3933
+ attr_accessor :user_name
3934
+
3935
+ # The version of the database, for example, POSTGRES_14. See [the complete list](
3936
+ # https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1/SqlDatabaseVersion).
3937
+ # Corresponds to the JSON property `version`
3938
+ # @return [String]
3939
+ attr_accessor :version
3940
+
3941
+ def initialize(**args)
3942
+ update!(**args)
3943
+ end
3944
+
3945
+ # Update properties of this object
3946
+ def update!(**args)
3947
+ @display_name = args[:display_name] if args.key?(:display_name)
3948
+ @grantees = args[:grantees] if args.key?(:grantees)
3949
+ @name = args[:name] if args.key?(:name)
3950
+ @query = args[:query] if args.key?(:query)
3951
+ @user_name = args[:user_name] if args.key?(:user_name)
3952
+ @version = args[:version] if args.key?(:version)
3953
+ end
3954
+ end
3955
+
3956
+ # Memory hash detection contributing to the binary family match.
3957
+ class GoogleCloudSecuritycenterV2Detection
3958
+ include Google::Apis::Core::Hashable
3959
+
3960
+ # The name of the binary associated with the memory hash signature detection.
3961
+ # Corresponds to the JSON property `binary`
3962
+ # @return [String]
3963
+ attr_accessor :binary
3964
+
3965
+ # The percentage of memory page hashes in the signature that were matched.
3966
+ # Corresponds to the JSON property `percentPagesMatched`
3967
+ # @return [Float]
3968
+ attr_accessor :percent_pages_matched
3969
+
3970
+ def initialize(**args)
3971
+ update!(**args)
3972
+ end
3973
+
3974
+ # Update properties of this object
3975
+ def update!(**args)
3976
+ @binary = args[:binary] if args.key?(:binary)
3977
+ @percent_pages_matched = args[:percent_pages_matched] if args.key?(:percent_pages_matched)
3978
+ end
3979
+ end
3980
+
3981
+ # A name-value pair representing an environment variable used in an operating
3982
+ # system process.
3983
+ class GoogleCloudSecuritycenterV2EnvironmentVariable
3984
+ include Google::Apis::Core::Hashable
3985
+
3986
+ # Environment variable name as a JSON encoded string.
3987
+ # Corresponds to the JSON property `name`
3988
+ # @return [String]
3989
+ attr_accessor :name
3990
+
3991
+ # Environment variable value as a JSON encoded string.
3992
+ # Corresponds to the JSON property `val`
3993
+ # @return [String]
3994
+ attr_accessor :val
3995
+
3996
+ def initialize(**args)
3997
+ update!(**args)
3998
+ end
3999
+
4000
+ # Update properties of this object
4001
+ def update!(**args)
4002
+ @name = args[:name] if args.key?(:name)
4003
+ @val = args[:val] if args.key?(:val)
4004
+ end
4005
+ end
4006
+
4007
+ # Resource where data was exfiltrated from or exfiltrated to.
4008
+ class GoogleCloudSecuritycenterV2ExfilResource
4009
+ include Google::Apis::Core::Hashable
4010
+
4011
+ # Subcomponents of the asset that was exfiltrated, like URIs used during
4012
+ # exfiltration, table names, databases, and filenames. For example, multiple
4013
+ # tables might have been exfiltrated from the same Cloud SQL instance, or
4014
+ # multiple files might have been exfiltrated from the same Cloud Storage bucket.
4015
+ # Corresponds to the JSON property `components`
4016
+ # @return [Array<String>]
4017
+ attr_accessor :components
4018
+
4019
+ # The resource's [full resource name](https://cloud.google.com/apis/design/
4020
+ # resource_names#full_resource_name).
4021
+ # Corresponds to the JSON property `name`
4022
+ # @return [String]
4023
+ attr_accessor :name
4024
+
4025
+ def initialize(**args)
4026
+ update!(**args)
4027
+ end
4028
+
4029
+ # Update properties of this object
4030
+ def update!(**args)
4031
+ @components = args[:components] if args.key?(:components)
4032
+ @name = args[:name] if args.key?(:name)
4033
+ end
4034
+ end
4035
+
4036
+ # Exfiltration represents a data exfiltration attempt from one or more sources
4037
+ # to one or more targets. The `sources` attribute lists the sources of the
4038
+ # exfiltrated data. The `targets` attribute lists the destinations the data was
4039
+ # copied to.
4040
+ class GoogleCloudSecuritycenterV2Exfiltration
4041
+ include Google::Apis::Core::Hashable
4042
+
4043
+ # If there are multiple sources, then the data is considered "joined" between
4044
+ # them. For instance, BigQuery can join multiple tables, and each table would be
4045
+ # considered a source.
4046
+ # Corresponds to the JSON property `sources`
4047
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2ExfilResource>]
4048
+ attr_accessor :sources
4049
+
4050
+ # If there are multiple targets, each target would get a complete copy of the "
4051
+ # joined" source data.
4052
+ # Corresponds to the JSON property `targets`
4053
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2ExfilResource>]
4054
+ attr_accessor :targets
4055
+
4056
+ # Total exfiltrated bytes processed for the entire job.
4057
+ # Corresponds to the JSON property `totalExfiltratedBytes`
4058
+ # @return [Fixnum]
4059
+ attr_accessor :total_exfiltrated_bytes
4060
+
4061
+ def initialize(**args)
4062
+ update!(**args)
4063
+ end
4064
+
4065
+ # Update properties of this object
4066
+ def update!(**args)
4067
+ @sources = args[:sources] if args.key?(:sources)
4068
+ @targets = args[:targets] if args.key?(:targets)
4069
+ @total_exfiltrated_bytes = args[:total_exfiltrated_bytes] if args.key?(:total_exfiltrated_bytes)
4070
+ end
4071
+ end
4072
+
4073
+ # Representation of third party SIEM/SOAR fields within SCC.
4074
+ class GoogleCloudSecuritycenterV2ExternalSystem
4075
+ include Google::Apis::Core::Hashable
4076
+
4077
+ # References primary/secondary etc assignees in the external system.
4078
+ # Corresponds to the JSON property `assignees`
4079
+ # @return [Array<String>]
4080
+ attr_accessor :assignees
4081
+
4082
+ # The time when the case was last updated, as reported by the external system.
4083
+ # Corresponds to the JSON property `externalSystemUpdateTime`
4084
+ # @return [String]
4085
+ attr_accessor :external_system_update_time
4086
+
4087
+ # The identifier that's used to track the finding's corresponding case in the
4088
+ # external system.
4089
+ # Corresponds to the JSON property `externalUid`
4090
+ # @return [String]
4091
+ attr_accessor :external_uid
4092
+
4093
+ # Full resource name of the external system. The following list shows some
4094
+ # examples: + `organizations/1234/sources/5678/findings/123456/externalSystems/
4095
+ # jira` + `organizations/1234/sources/5678/locations/us/findings/123456/
4096
+ # externalSystems/jira` + `folders/1234/sources/5678/findings/123456/
4097
+ # externalSystems/jira` + `folders/1234/sources/5678/locations/us/findings/
4098
+ # 123456/externalSystems/jira` + `projects/1234/sources/5678/findings/123456/
4099
+ # externalSystems/jira` + `projects/1234/sources/5678/locations/us/findings/
4100
+ # 123456/externalSystems/jira`
4101
+ # Corresponds to the JSON property `name`
4102
+ # @return [String]
4103
+ attr_accessor :name
4104
+
4105
+ # The most recent status of the finding's corresponding case, as reported by the
4106
+ # external system.
4107
+ # Corresponds to the JSON property `status`
4108
+ # @return [String]
4109
+ attr_accessor :status
4110
+
4111
+ def initialize(**args)
4112
+ update!(**args)
4113
+ end
4114
+
4115
+ # Update properties of this object
4116
+ def update!(**args)
4117
+ @assignees = args[:assignees] if args.key?(:assignees)
4118
+ @external_system_update_time = args[:external_system_update_time] if args.key?(:external_system_update_time)
4119
+ @external_uid = args[:external_uid] if args.key?(:external_uid)
4120
+ @name = args[:name] if args.key?(:name)
4121
+ @status = args[:status] if args.key?(:status)
4122
+ end
4123
+ end
4124
+
4125
+ # File information about the related binary/library used by an executable, or
4126
+ # the script used by a script interpreter
4127
+ class GoogleCloudSecuritycenterV2File
4128
+ include Google::Apis::Core::Hashable
4129
+
4130
+ # Prefix of the file contents as a JSON-encoded string.
4131
+ # Corresponds to the JSON property `contents`
4132
+ # @return [String]
4133
+ attr_accessor :contents
4134
+
4135
+ # The length in bytes of the file prefix that was hashed. If hashed_size == size,
4136
+ # any hashes reported represent the entire file.
4137
+ # Corresponds to the JSON property `hashedSize`
4138
+ # @return [Fixnum]
4139
+ attr_accessor :hashed_size
4140
+
4141
+ # True when the hash covers only a prefix of the file.
4142
+ # Corresponds to the JSON property `partiallyHashed`
4143
+ # @return [Boolean]
4144
+ attr_accessor :partially_hashed
4145
+ alias_method :partially_hashed?, :partially_hashed
4146
+
4147
+ # Absolute path of the file as a JSON encoded string.
4148
+ # Corresponds to the JSON property `path`
4149
+ # @return [String]
4150
+ attr_accessor :path
4151
+
4152
+ # SHA256 hash of the first hashed_size bytes of the file encoded as a hex string.
4153
+ # If hashed_size == size, sha256 represents the SHA256 hash of the entire file.
4154
+ # Corresponds to the JSON property `sha256`
4155
+ # @return [String]
4156
+ attr_accessor :sha256
4157
+
4158
+ # Size of the file in bytes.
4159
+ # Corresponds to the JSON property `size`
4160
+ # @return [Fixnum]
4161
+ attr_accessor :size
4162
+
4163
+ def initialize(**args)
4164
+ update!(**args)
4165
+ end
4166
+
4167
+ # Update properties of this object
4168
+ def update!(**args)
4169
+ @contents = args[:contents] if args.key?(:contents)
4170
+ @hashed_size = args[:hashed_size] if args.key?(:hashed_size)
4171
+ @partially_hashed = args[:partially_hashed] if args.key?(:partially_hashed)
4172
+ @path = args[:path] if args.key?(:path)
4173
+ @sha256 = args[:sha256] if args.key?(:sha256)
4174
+ @size = args[:size] if args.key?(:size)
4175
+ end
4176
+ end
4177
+
4178
+ # Security Command Center finding. A finding is a record of assessment data like
4179
+ # security, risk, health, or privacy, that is ingested into Security Command
4180
+ # Center for presentation, notification, analysis, policy testing, and
4181
+ # enforcement. For example, a cross-site scripting (XSS) vulnerability in an App
4182
+ # Engine application is a finding.
4183
+ class GoogleCloudSecuritycenterV2Finding
4184
+ include Google::Apis::Core::Hashable
4185
+
4186
+ # Represents an access event.
4187
+ # Corresponds to the JSON property `access`
4188
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Access]
4189
+ attr_accessor :access
4190
+
4191
+ # Represents an application associated with a finding.
4192
+ # Corresponds to the JSON property `application`
4193
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Application]
4194
+ attr_accessor :application
4195
+
4196
+ # An attack exposure contains the results of an attack path simulation run.
4197
+ # Corresponds to the JSON property `attackExposure`
4198
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2AttackExposure]
4199
+ attr_accessor :attack_exposure
4200
+
4201
+ # Information related to Google Cloud Backup and DR Service findings.
4202
+ # Corresponds to the JSON property `backupDisasterRecovery`
4203
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2BackupDisasterRecovery]
4204
+ attr_accessor :backup_disaster_recovery
4205
+
4206
+ # Output only. The canonical name of the finding. The following list shows some
4207
+ # examples: + `organizations/`organization_id`/sources/`source_id`/findings/`
4208
+ # finding_id`` + `organizations/`organization_id`/sources/`source_id`/locations/`
4209
+ # location_id`/findings/`finding_id`` + `folders/`folder_id`/sources/`source_id`/
4210
+ # findings/`finding_id`` + `folders/`folder_id`/sources/`source_id`/locations/`
4211
+ # location_id`/findings/`finding_id`` + `projects/`project_id`/sources/`
4212
+ # source_id`/findings/`finding_id`` + `projects/`project_id`/sources/`source_id`/
4213
+ # locations/`location_id`/findings/`finding_id`` The prefix is the closest CRM
4214
+ # ancestor of the resource associated with the finding.
4215
+ # Corresponds to the JSON property `canonicalName`
4216
+ # @return [String]
4217
+ attr_accessor :canonical_name
4218
+
4219
+ # Immutable. The additional taxonomy group within findings from a given source.
4220
+ # Example: "XSS_FLASH_INJECTION"
4221
+ # Corresponds to the JSON property `category`
4222
+ # @return [String]
4223
+ attr_accessor :category
4224
+
4225
+ # The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated
4226
+ # with the finding.
4227
+ # Corresponds to the JSON property `cloudDlpDataProfile`
4228
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2CloudDlpDataProfile]
4229
+ attr_accessor :cloud_dlp_data_profile
4230
+
4231
+ # Details about the Cloud Data Loss Prevention (Cloud DLP) [inspection job](
4232
+ # https://cloud.google.com/dlp/docs/concepts-job-triggers) that produced the
4233
+ # finding.
4234
+ # Corresponds to the JSON property `cloudDlpInspection`
4235
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2CloudDlpInspection]
4236
+ attr_accessor :cloud_dlp_inspection
4237
+
4238
+ # Contains compliance information for security standards associated to the
4239
+ # finding.
4240
+ # Corresponds to the JSON property `compliances`
4241
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Compliance>]
4242
+ attr_accessor :compliances
4243
+
4244
+ # Contains information about the IP connection associated with the finding.
4245
+ # Corresponds to the JSON property `connections`
4246
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Connection>]
4247
+ attr_accessor :connections
4248
+
4249
+ # Output only. Map containing the points of contact for the given finding. The
4250
+ # key represents the type of contact, while the value contains a list of all the
4251
+ # contacts that pertain. Please refer to: https://cloud.google.com/resource-
4252
+ # manager/docs/managing-notification-contacts#notification-categories ` "
4253
+ # security": ` "contacts": [ ` "email": "person1@company.com" `, ` "email": "
4254
+ # person2@company.com" ` ] ` `
4255
+ # Corresponds to the JSON property `contacts`
4256
+ # @return [Hash<String,Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2ContactDetails>]
4257
+ attr_accessor :contacts
4258
+
4259
+ # Containers associated with the finding. This field provides information for
4260
+ # both Kubernetes and non-Kubernetes containers.
4261
+ # Corresponds to the JSON property `containers`
4262
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Container>]
4263
+ attr_accessor :containers
4264
+
4265
+ # Output only. The time at which the finding was created in Security Command
4266
+ # Center.
4267
+ # Corresponds to the JSON property `createTime`
4268
+ # @return [String]
4269
+ attr_accessor :create_time
4270
+
4271
+ # Represents database access information, such as queries. A database may be a
4272
+ # sub-resource of an instance (as in the case of Cloud SQL instances or Cloud
4273
+ # Spanner instances), or the database instance itself. Some database resources
4274
+ # might not have the [full resource name](https://google.aip.dev/122#full-
4275
+ # resource-names) populated because these resource types, such as Cloud SQL
4276
+ # databases, are not yet supported by Cloud Asset Inventory. In these cases only
4277
+ # the display name is provided.
4278
+ # Corresponds to the JSON property `database`
4279
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Database]
4280
+ attr_accessor :database
4281
+
4282
+ # Contains more details about the finding.
4283
+ # Corresponds to the JSON property `description`
4284
+ # @return [String]
4285
+ attr_accessor :description
4286
+
4287
+ # The time the finding was first detected. If an existing finding is updated,
4288
+ # then this is the time the update occurred. For example, if the finding
4289
+ # represents an open firewall, this property captures the time the detector
4290
+ # believes the firewall became open. The accuracy is determined by the detector.
4291
+ # If the finding is later resolved, then this time reflects when the finding was
4292
+ # resolved. This must not be set to a value greater than the current timestamp.
4293
+ # Corresponds to the JSON property `eventTime`
4294
+ # @return [String]
4295
+ attr_accessor :event_time
4296
+
4297
+ # Exfiltration represents a data exfiltration attempt from one or more sources
4298
+ # to one or more targets. The `sources` attribute lists the sources of the
4299
+ # exfiltrated data. The `targets` attribute lists the destinations the data was
4300
+ # copied to.
4301
+ # Corresponds to the JSON property `exfiltration`
4302
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Exfiltration]
4303
+ attr_accessor :exfiltration
4304
+
4305
+ # Output only. Third party SIEM/SOAR fields within SCC, contains external system
4306
+ # information and external system finding fields.
4307
+ # Corresponds to the JSON property `externalSystems`
4308
+ # @return [Hash<String,Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2ExternalSystem>]
4309
+ attr_accessor :external_systems
4310
+
4311
+ # The URI that, if available, points to a web page outside of Security Command
4312
+ # Center where additional information about the finding can be found. This field
4313
+ # is guaranteed to be either empty or a well formed URL.
4314
+ # Corresponds to the JSON property `externalUri`
4315
+ # @return [String]
4316
+ attr_accessor :external_uri
4317
+
4318
+ # File associated with the finding.
4319
+ # Corresponds to the JSON property `files`
4320
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2File>]
4321
+ attr_accessor :files
4322
+
4323
+ # The class of the finding.
4324
+ # Corresponds to the JSON property `findingClass`
4325
+ # @return [String]
4326
+ attr_accessor :finding_class
4327
+
4328
+ # Represents IAM bindings associated with the finding.
4329
+ # Corresponds to the JSON property `iamBindings`
4330
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2IamBinding>]
4331
+ attr_accessor :iam_bindings
4332
+
4333
+ # Represents what's commonly known as an _indicator of compromise_ (IoC) in
4334
+ # computer forensics. This is an artifact observed on a network or in an
4335
+ # operating system that, with high confidence, indicates a computer intrusion.
4336
+ # For more information, see [Indicator of compromise](https://en.wikipedia.org/
4337
+ # wiki/Indicator_of_compromise).
4338
+ # Corresponds to the JSON property `indicator`
4339
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Indicator]
4340
+ attr_accessor :indicator
4341
+
4342
+ # Kernel mode rootkit signatures.
4343
+ # Corresponds to the JSON property `kernelRootkit`
4344
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2KernelRootkit]
4345
+ attr_accessor :kernel_rootkit
4346
+
4347
+ # Kubernetes-related attributes.
4348
+ # Corresponds to the JSON property `kubernetes`
4349
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Kubernetes]
4350
+ attr_accessor :kubernetes
4351
+
4352
+ # The load balancers associated with the finding.
4353
+ # Corresponds to the JSON property `loadBalancers`
4354
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2LoadBalancer>]
4355
+ attr_accessor :load_balancers
4356
+
4357
+ # Log entries that are relevant to the finding.
4358
+ # Corresponds to the JSON property `logEntries`
4359
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2LogEntry>]
4360
+ attr_accessor :log_entries
4361
+
4362
+ # MITRE ATT&CK tactics and techniques related to this finding. See: https://
4363
+ # attack.mitre.org
4364
+ # Corresponds to the JSON property `mitreAttack`
4365
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2MitreAttack]
4366
+ attr_accessor :mitre_attack
4367
+
4368
+ # Unique identifier of the module which generated the finding. Example: folders/
4369
+ # 598186756061/securityHealthAnalyticsSettings/customModules/56799441161885
4370
+ # Corresponds to the JSON property `moduleName`
4371
+ # @return [String]
4372
+ attr_accessor :module_name
4373
+
4374
+ # Indicates the mute state of a finding (either muted, unmuted or undefined).
4375
+ # Unlike other attributes of a finding, a finding provider shouldn't set the
4376
+ # value of mute.
4377
+ # Corresponds to the JSON property `mute`
4378
+ # @return [String]
4379
+ attr_accessor :mute
4380
+
4381
+ # Records additional information about the mute operation, for example, the [
4382
+ # mute configuration](https://cloud.google.com/security-command-center/docs/how-
4383
+ # to-mute-findings) that muted the finding and the user who muted the finding.
4384
+ # Corresponds to the JSON property `muteInitiator`
4385
+ # @return [String]
4386
+ attr_accessor :mute_initiator
4387
+
4388
+ # Output only. The most recent time this finding was muted or unmuted.
4389
+ # Corresponds to the JSON property `muteUpdateTime`
4390
+ # @return [String]
4391
+ attr_accessor :mute_update_time
4392
+
4393
+ # The [relative resource name](https://cloud.google.com/apis/design/
4394
+ # resource_names#relative_resource_name) of the finding. The following list
4395
+ # shows some examples: + `organizations/`organization_id`/sources/`source_id`/
4396
+ # findings/`finding_id`` + `organizations/`organization_id`/sources/`source_id`/
4397
+ # locations/`location_id`/findings/`finding_id`` + `folders/`folder_id`/sources/`
4398
+ # source_id`/findings/`finding_id`` + `folders/`folder_id`/sources/`source_id`/
4399
+ # locations/`location_id`/findings/`finding_id`` + `projects/`project_id`/
4400
+ # sources/`source_id`/findings/`finding_id`` + `projects/`project_id`/sources/`
4401
+ # source_id`/locations/`location_id`/findings/`finding_id``
4402
+ # Corresponds to the JSON property `name`
4403
+ # @return [String]
4404
+ attr_accessor :name
4405
+
4406
+ # Steps to address the finding.
4407
+ # Corresponds to the JSON property `nextSteps`
4408
+ # @return [String]
4409
+ attr_accessor :next_steps
4410
+
4411
+ # Contains information about the org policies associated with the finding.
4412
+ # Corresponds to the JSON property `orgPolicies`
4413
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2OrgPolicy>]
4414
+ attr_accessor :org_policies
4415
+
4416
+ # The relative resource name of the source and location the finding belongs to.
4417
+ # See: https://cloud.google.com/apis/design/resource_names#
4418
+ # relative_resource_name This field is immutable after creation time. The
4419
+ # following list shows some examples: + `organizations/`organization_id`/sources/
4420
+ # `source_id`` + `folders/`folders_id`/sources/`source_id`` + `projects/`
4421
+ # projects_id`/sources/`source_id`` + `organizations/`organization_id`/sources/`
4422
+ # source_id`/locations/`location_id`` + `folders/`folders_id`/sources/`source_id`
4423
+ # /locations/`location_id`` + `projects/`projects_id`/sources/`source_id`/
4424
+ # locations/`location_id``
4425
+ # Corresponds to the JSON property `parent`
4426
+ # @return [String]
4427
+ attr_accessor :parent
4428
+
4429
+ # Output only. The human readable display name of the finding source such as "
4430
+ # Event Threat Detection" or "Security Health Analytics".
4431
+ # Corresponds to the JSON property `parentDisplayName`
4432
+ # @return [String]
4433
+ attr_accessor :parent_display_name
4434
+
4435
+ # Represents operating system processes associated with the Finding.
4436
+ # Corresponds to the JSON property `processes`
4437
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Process>]
4438
+ attr_accessor :processes
4439
+
4440
+ # Immutable. For findings on Google Cloud resources, the full resource name of
4441
+ # the Google Cloud resource this finding is for. See: https://cloud.google.com/
4442
+ # apis/design/resource_names#full_resource_name When the finding is for a non-
4443
+ # Google Cloud resource, the resourceName can be a customer or partner defined
4444
+ # string.
4445
+ # Corresponds to the JSON property `resourceName`
4446
+ # @return [String]
4447
+ attr_accessor :resource_name
4448
+
4449
+ # User specified security marks that are attached to the parent Security Command
4450
+ # Center resource. Security marks are scoped within a Security Command Center
4451
+ # organization -- they can be modified and viewed by all users who have proper
4452
+ # permissions on the organization.
4453
+ # Corresponds to the JSON property `securityMarks`
4454
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2SecurityMarks]
4455
+ attr_accessor :security_marks
4456
+
4457
+ # Represents a posture that is deployed on Google Cloud by the Security Command
4458
+ # Center Posture Management service. A posture contains one or more policy sets.
4459
+ # A policy set is a group of policies that enforce a set of security rules on
4460
+ # Google Cloud.
4461
+ # Corresponds to the JSON property `securityPosture`
4462
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2SecurityPosture]
4463
+ attr_accessor :security_posture
4464
+
4465
+ # The severity of the finding. This field is managed by the source that writes
4466
+ # the finding.
4467
+ # Corresponds to the JSON property `severity`
4468
+ # @return [String]
4469
+ attr_accessor :severity
4470
+
4471
+ # Source specific properties. These properties are managed by the source that
4472
+ # writes the finding. The key names in the source_properties map must be between
4473
+ # 1 and 255 characters, and must start with a letter and contain alphanumeric
4474
+ # characters or underscores only.
4475
+ # Corresponds to the JSON property `sourceProperties`
4476
+ # @return [Hash<String,Object>]
4477
+ attr_accessor :source_properties
4478
+
4479
+ # Output only. The state of the finding.
4480
+ # Corresponds to the JSON property `state`
4481
+ # @return [String]
4482
+ attr_accessor :state
4483
+
4484
+ # Refers to common vulnerability fields e.g. cve, cvss, cwe etc.
4485
+ # Corresponds to the JSON property `vulnerability`
4486
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Vulnerability]
4487
+ attr_accessor :vulnerability
4488
+
4489
+ def initialize(**args)
4490
+ update!(**args)
4491
+ end
4492
+
4493
+ # Update properties of this object
4494
+ def update!(**args)
4495
+ @access = args[:access] if args.key?(:access)
4496
+ @application = args[:application] if args.key?(:application)
4497
+ @attack_exposure = args[:attack_exposure] if args.key?(:attack_exposure)
4498
+ @backup_disaster_recovery = args[:backup_disaster_recovery] if args.key?(:backup_disaster_recovery)
4499
+ @canonical_name = args[:canonical_name] if args.key?(:canonical_name)
4500
+ @category = args[:category] if args.key?(:category)
4501
+ @cloud_dlp_data_profile = args[:cloud_dlp_data_profile] if args.key?(:cloud_dlp_data_profile)
4502
+ @cloud_dlp_inspection = args[:cloud_dlp_inspection] if args.key?(:cloud_dlp_inspection)
4503
+ @compliances = args[:compliances] if args.key?(:compliances)
4504
+ @connections = args[:connections] if args.key?(:connections)
4505
+ @contacts = args[:contacts] if args.key?(:contacts)
4506
+ @containers = args[:containers] if args.key?(:containers)
4507
+ @create_time = args[:create_time] if args.key?(:create_time)
4508
+ @database = args[:database] if args.key?(:database)
4509
+ @description = args[:description] if args.key?(:description)
4510
+ @event_time = args[:event_time] if args.key?(:event_time)
4511
+ @exfiltration = args[:exfiltration] if args.key?(:exfiltration)
4512
+ @external_systems = args[:external_systems] if args.key?(:external_systems)
4513
+ @external_uri = args[:external_uri] if args.key?(:external_uri)
4514
+ @files = args[:files] if args.key?(:files)
4515
+ @finding_class = args[:finding_class] if args.key?(:finding_class)
4516
+ @iam_bindings = args[:iam_bindings] if args.key?(:iam_bindings)
4517
+ @indicator = args[:indicator] if args.key?(:indicator)
4518
+ @kernel_rootkit = args[:kernel_rootkit] if args.key?(:kernel_rootkit)
4519
+ @kubernetes = args[:kubernetes] if args.key?(:kubernetes)
4520
+ @load_balancers = args[:load_balancers] if args.key?(:load_balancers)
4521
+ @log_entries = args[:log_entries] if args.key?(:log_entries)
4522
+ @mitre_attack = args[:mitre_attack] if args.key?(:mitre_attack)
4523
+ @module_name = args[:module_name] if args.key?(:module_name)
4524
+ @mute = args[:mute] if args.key?(:mute)
4525
+ @mute_initiator = args[:mute_initiator] if args.key?(:mute_initiator)
4526
+ @mute_update_time = args[:mute_update_time] if args.key?(:mute_update_time)
4527
+ @name = args[:name] if args.key?(:name)
4528
+ @next_steps = args[:next_steps] if args.key?(:next_steps)
4529
+ @org_policies = args[:org_policies] if args.key?(:org_policies)
4530
+ @parent = args[:parent] if args.key?(:parent)
4531
+ @parent_display_name = args[:parent_display_name] if args.key?(:parent_display_name)
4532
+ @processes = args[:processes] if args.key?(:processes)
4533
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
4534
+ @security_marks = args[:security_marks] if args.key?(:security_marks)
4535
+ @security_posture = args[:security_posture] if args.key?(:security_posture)
4536
+ @severity = args[:severity] if args.key?(:severity)
4537
+ @source_properties = args[:source_properties] if args.key?(:source_properties)
4538
+ @state = args[:state] if args.key?(:state)
4539
+ @vulnerability = args[:vulnerability] if args.key?(:vulnerability)
4540
+ end
4541
+ end
4542
+
4543
+ # Represents a geographical location for a given access.
4544
+ class GoogleCloudSecuritycenterV2Geolocation
4545
+ include Google::Apis::Core::Hashable
4546
+
4547
+ # A CLDR.
4548
+ # Corresponds to the JSON property `regionCode`
4549
+ # @return [String]
4550
+ attr_accessor :region_code
4551
+
4552
+ def initialize(**args)
4553
+ update!(**args)
4554
+ end
4555
+
4556
+ # Update properties of this object
4557
+ def update!(**args)
4558
+ @region_code = args[:region_code] if args.key?(:region_code)
4559
+ end
4560
+ end
4561
+
4562
+ # Represents a particular IAM binding, which captures a member's role addition,
4563
+ # removal, or state.
4564
+ class GoogleCloudSecuritycenterV2IamBinding
4565
+ include Google::Apis::Core::Hashable
4566
+
4567
+ # The action that was performed on a Binding.
4568
+ # Corresponds to the JSON property `action`
4569
+ # @return [String]
4570
+ attr_accessor :action
4571
+
4572
+ # A single identity requesting access for a Cloud Platform resource, for example,
4573
+ # "foo@google.com".
4574
+ # Corresponds to the JSON property `member`
4575
+ # @return [String]
4576
+ attr_accessor :member
4577
+
4578
+ # Role that is assigned to "members". For example, "roles/viewer", "roles/editor"
4579
+ # , or "roles/owner".
4580
+ # Corresponds to the JSON property `role`
4581
+ # @return [String]
4582
+ attr_accessor :role
4583
+
4584
+ def initialize(**args)
4585
+ update!(**args)
4586
+ end
4587
+
4588
+ # Update properties of this object
4589
+ def update!(**args)
4590
+ @action = args[:action] if args.key?(:action)
4591
+ @member = args[:member] if args.key?(:member)
4592
+ @role = args[:role] if args.key?(:role)
4593
+ end
4594
+ end
4595
+
4596
+ # Represents what's commonly known as an _indicator of compromise_ (IoC) in
4597
+ # computer forensics. This is an artifact observed on a network or in an
4598
+ # operating system that, with high confidence, indicates a computer intrusion.
4599
+ # For more information, see [Indicator of compromise](https://en.wikipedia.org/
4600
+ # wiki/Indicator_of_compromise).
4601
+ class GoogleCloudSecuritycenterV2Indicator
4602
+ include Google::Apis::Core::Hashable
4603
+
4604
+ # List of domains associated to the Finding.
4605
+ # Corresponds to the JSON property `domains`
4606
+ # @return [Array<String>]
4607
+ attr_accessor :domains
4608
+
4609
+ # The list of IP addresses that are associated with the finding.
4610
+ # Corresponds to the JSON property `ipAddresses`
4611
+ # @return [Array<String>]
4612
+ attr_accessor :ip_addresses
4613
+
4614
+ # The list of matched signatures indicating that the given process is present in
4615
+ # the environment.
4616
+ # Corresponds to the JSON property `signatures`
4617
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2ProcessSignature>]
4618
+ attr_accessor :signatures
4619
+
4620
+ # The list of URIs associated to the Findings.
4621
+ # Corresponds to the JSON property `uris`
4622
+ # @return [Array<String>]
4623
+ attr_accessor :uris
4624
+
4625
+ def initialize(**args)
4626
+ update!(**args)
4627
+ end
4628
+
4629
+ # Update properties of this object
4630
+ def update!(**args)
4631
+ @domains = args[:domains] if args.key?(:domains)
4632
+ @ip_addresses = args[:ip_addresses] if args.key?(:ip_addresses)
4633
+ @signatures = args[:signatures] if args.key?(:signatures)
4634
+ @uris = args[:uris] if args.key?(:uris)
4635
+ end
4636
+ end
4637
+
4638
+ # Kernel mode rootkit signatures.
4639
+ class GoogleCloudSecuritycenterV2KernelRootkit
4640
+ include Google::Apis::Core::Hashable
4641
+
4642
+ # Rootkit name, when available.
4643
+ # Corresponds to the JSON property `name`
4644
+ # @return [String]
4645
+ attr_accessor :name
4646
+
4647
+ # True if unexpected modifications of kernel code memory are present.
4648
+ # Corresponds to the JSON property `unexpectedCodeModification`
4649
+ # @return [Boolean]
4650
+ attr_accessor :unexpected_code_modification
4651
+ alias_method :unexpected_code_modification?, :unexpected_code_modification
4652
+
4653
+ # True if `ftrace` points are present with callbacks pointing to regions that
4654
+ # are not in the expected kernel or module code range.
4655
+ # Corresponds to the JSON property `unexpectedFtraceHandler`
4656
+ # @return [Boolean]
4657
+ attr_accessor :unexpected_ftrace_handler
4658
+ alias_method :unexpected_ftrace_handler?, :unexpected_ftrace_handler
4659
+
4660
+ # True if interrupt handlers that are are not in the expected kernel or module
4661
+ # code regions are present.
4662
+ # Corresponds to the JSON property `unexpectedInterruptHandler`
4663
+ # @return [Boolean]
4664
+ attr_accessor :unexpected_interrupt_handler
4665
+ alias_method :unexpected_interrupt_handler?, :unexpected_interrupt_handler
4666
+
4667
+ # True if kernel code pages that are not in the expected kernel or module code
4668
+ # regions are present.
4669
+ # Corresponds to the JSON property `unexpectedKernelCodePages`
4670
+ # @return [Boolean]
4671
+ attr_accessor :unexpected_kernel_code_pages
4672
+ alias_method :unexpected_kernel_code_pages?, :unexpected_kernel_code_pages
4673
+
4674
+ # True if `kprobe` points are present with callbacks pointing to regions that
4675
+ # are not in the expected kernel or module code range.
4676
+ # Corresponds to the JSON property `unexpectedKprobeHandler`
4677
+ # @return [Boolean]
4678
+ attr_accessor :unexpected_kprobe_handler
4679
+ alias_method :unexpected_kprobe_handler?, :unexpected_kprobe_handler
4680
+
4681
+ # True if unexpected processes in the scheduler run queue are present. Such
4682
+ # processes are in the run queue, but not in the process task list.
4683
+ # Corresponds to the JSON property `unexpectedProcessesInRunqueue`
4684
+ # @return [Boolean]
4685
+ attr_accessor :unexpected_processes_in_runqueue
4686
+ alias_method :unexpected_processes_in_runqueue?, :unexpected_processes_in_runqueue
4687
+
4688
+ # True if unexpected modifications of kernel read-only data memory are present.
4689
+ # Corresponds to the JSON property `unexpectedReadOnlyDataModification`
4690
+ # @return [Boolean]
4691
+ attr_accessor :unexpected_read_only_data_modification
4692
+ alias_method :unexpected_read_only_data_modification?, :unexpected_read_only_data_modification
4693
+
4694
+ # True if system call handlers that are are not in the expected kernel or module
4695
+ # code regions are present.
4696
+ # Corresponds to the JSON property `unexpectedSystemCallHandler`
4697
+ # @return [Boolean]
4698
+ attr_accessor :unexpected_system_call_handler
4699
+ alias_method :unexpected_system_call_handler?, :unexpected_system_call_handler
4700
+
4701
+ def initialize(**args)
4702
+ update!(**args)
4703
+ end
4704
+
4705
+ # Update properties of this object
4706
+ def update!(**args)
4707
+ @name = args[:name] if args.key?(:name)
4708
+ @unexpected_code_modification = args[:unexpected_code_modification] if args.key?(:unexpected_code_modification)
4709
+ @unexpected_ftrace_handler = args[:unexpected_ftrace_handler] if args.key?(:unexpected_ftrace_handler)
4710
+ @unexpected_interrupt_handler = args[:unexpected_interrupt_handler] if args.key?(:unexpected_interrupt_handler)
4711
+ @unexpected_kernel_code_pages = args[:unexpected_kernel_code_pages] if args.key?(:unexpected_kernel_code_pages)
4712
+ @unexpected_kprobe_handler = args[:unexpected_kprobe_handler] if args.key?(:unexpected_kprobe_handler)
4713
+ @unexpected_processes_in_runqueue = args[:unexpected_processes_in_runqueue] if args.key?(:unexpected_processes_in_runqueue)
4714
+ @unexpected_read_only_data_modification = args[:unexpected_read_only_data_modification] if args.key?(:unexpected_read_only_data_modification)
4715
+ @unexpected_system_call_handler = args[:unexpected_system_call_handler] if args.key?(:unexpected_system_call_handler)
4716
+ end
4717
+ end
4718
+
4719
+ # Kubernetes-related attributes.
4720
+ class GoogleCloudSecuritycenterV2Kubernetes
4721
+ include Google::Apis::Core::Hashable
4722
+
4723
+ # Provides information on any Kubernetes access reviews (privilege checks)
4724
+ # relevant to the finding.
4725
+ # Corresponds to the JSON property `accessReviews`
4726
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2AccessReview>]
4727
+ attr_accessor :access_reviews
4728
+
4729
+ # Provides Kubernetes role binding information for findings that involve [
4730
+ # RoleBindings or ClusterRoleBindings](https://cloud.google.com/kubernetes-
4731
+ # engine/docs/how-to/role-based-access-control).
4732
+ # Corresponds to the JSON property `bindings`
4733
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Binding>]
4734
+ attr_accessor :bindings
4735
+
4736
+ # GKE [node pools](https://cloud.google.com/kubernetes-engine/docs/concepts/node-
4737
+ # pools) associated with the finding. This field contains node pool information
4738
+ # for each node, when it is available.
4739
+ # Corresponds to the JSON property `nodePools`
4740
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2NodePool>]
4741
+ attr_accessor :node_pools
4742
+
4743
+ # Provides Kubernetes [node](https://cloud.google.com/kubernetes-engine/docs/
4744
+ # concepts/cluster-architecture#nodes) information.
4745
+ # Corresponds to the JSON property `nodes`
4746
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Node>]
4747
+ attr_accessor :nodes
4748
+
4749
+ # Kubernetes objects related to the finding.
4750
+ # Corresponds to the JSON property `objects`
4751
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Object>]
4752
+ attr_accessor :objects
4753
+
4754
+ # Kubernetes [Pods](https://cloud.google.com/kubernetes-engine/docs/concepts/pod)
4755
+ # associated with the finding. This field contains Pod records for each
4756
+ # container that is owned by a Pod.
4757
+ # Corresponds to the JSON property `pods`
4758
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Pod>]
4759
+ attr_accessor :pods
4760
+
4761
+ # Provides Kubernetes role information for findings that involve [Roles or
4762
+ # ClusterRoles](https://cloud.google.com/kubernetes-engine/docs/how-to/role-
4763
+ # based-access-control).
4764
+ # Corresponds to the JSON property `roles`
4765
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Role>]
4766
+ attr_accessor :roles
4767
+
4768
+ def initialize(**args)
4769
+ update!(**args)
4770
+ end
4771
+
4772
+ # Update properties of this object
4773
+ def update!(**args)
4774
+ @access_reviews = args[:access_reviews] if args.key?(:access_reviews)
4775
+ @bindings = args[:bindings] if args.key?(:bindings)
4776
+ @node_pools = args[:node_pools] if args.key?(:node_pools)
4777
+ @nodes = args[:nodes] if args.key?(:nodes)
4778
+ @objects = args[:objects] if args.key?(:objects)
4779
+ @pods = args[:pods] if args.key?(:pods)
4780
+ @roles = args[:roles] if args.key?(:roles)
4781
+ end
4782
+ end
4783
+
4784
+ # Represents a generic name-value label. A label has separate name and value
4785
+ # fields to support filtering with the `contains()` function. For more
4786
+ # information, see [Filtering on array-type fields](https://cloud.google.com/
4787
+ # security-command-center/docs/how-to-api-list-findings#array-contains-filtering)
4788
+ # .
4789
+ class GoogleCloudSecuritycenterV2Label
4790
+ include Google::Apis::Core::Hashable
4791
+
4792
+ # Name of the label.
4793
+ # Corresponds to the JSON property `name`
4794
+ # @return [String]
4795
+ attr_accessor :name
4796
+
4797
+ # Value that corresponds to the label's name.
4798
+ # Corresponds to the JSON property `value`
4799
+ # @return [String]
4800
+ attr_accessor :value
4801
+
4802
+ def initialize(**args)
4803
+ update!(**args)
4804
+ end
4805
+
4806
+ # Update properties of this object
4807
+ def update!(**args)
4808
+ @name = args[:name] if args.key?(:name)
4809
+ @value = args[:value] if args.key?(:value)
4810
+ end
4811
+ end
4812
+
4813
+ # Contains information related to the load balancer associated with the finding.
4814
+ class GoogleCloudSecuritycenterV2LoadBalancer
4815
+ include Google::Apis::Core::Hashable
4816
+
4817
+ # The name of the load balancer associated with the finding.
4818
+ # Corresponds to the JSON property `name`
4819
+ # @return [String]
4820
+ attr_accessor :name
4821
+
4822
+ def initialize(**args)
4823
+ update!(**args)
4824
+ end
4825
+
4826
+ # Update properties of this object
4827
+ def update!(**args)
4828
+ @name = args[:name] if args.key?(:name)
4829
+ end
4830
+ end
4831
+
4832
+ # An individual entry in a log.
4833
+ class GoogleCloudSecuritycenterV2LogEntry
4834
+ include Google::Apis::Core::Hashable
4835
+
4836
+ # Metadata taken from a [Cloud Logging LogEntry](https://cloud.google.com/
4837
+ # logging/docs/reference/v2/rest/v2/LogEntry)
4838
+ # Corresponds to the JSON property `cloudLoggingEntry`
4839
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2CloudLoggingEntry]
4840
+ attr_accessor :cloud_logging_entry
4841
+
4842
+ def initialize(**args)
4843
+ update!(**args)
4844
+ end
4845
+
4846
+ # Update properties of this object
4847
+ def update!(**args)
4848
+ @cloud_logging_entry = args[:cloud_logging_entry] if args.key?(:cloud_logging_entry)
4849
+ end
4850
+ end
4851
+
4852
+ # A signature corresponding to memory page hashes.
4853
+ class GoogleCloudSecuritycenterV2MemoryHashSignature
4854
+ include Google::Apis::Core::Hashable
4855
+
4856
+ # The binary family.
4857
+ # Corresponds to the JSON property `binaryFamily`
4858
+ # @return [String]
4859
+ attr_accessor :binary_family
4860
+
4861
+ # The list of memory hash detections contributing to the binary family match.
4862
+ # Corresponds to the JSON property `detections`
4863
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Detection>]
4864
+ attr_accessor :detections
4865
+
4866
+ def initialize(**args)
4867
+ update!(**args)
4868
+ end
4869
+
4870
+ # Update properties of this object
4871
+ def update!(**args)
4872
+ @binary_family = args[:binary_family] if args.key?(:binary_family)
4873
+ @detections = args[:detections] if args.key?(:detections)
4874
+ end
4875
+ end
4876
+
4877
+ # MITRE ATT&CK tactics and techniques related to this finding. See: https://
4878
+ # attack.mitre.org
4879
+ class GoogleCloudSecuritycenterV2MitreAttack
4880
+ include Google::Apis::Core::Hashable
4881
+
4882
+ # Additional MITRE ATT&CK tactics related to this finding, if any.
4883
+ # Corresponds to the JSON property `additionalTactics`
4884
+ # @return [Array<String>]
4885
+ attr_accessor :additional_tactics
4886
+
4887
+ # Additional MITRE ATT&CK techniques related to this finding, if any, along with
4888
+ # any of their respective parent techniques.
4889
+ # Corresponds to the JSON property `additionalTechniques`
4890
+ # @return [Array<String>]
4891
+ attr_accessor :additional_techniques
4892
+
4893
+ # The MITRE ATT&CK tactic most closely represented by this finding, if any.
4894
+ # Corresponds to the JSON property `primaryTactic`
4895
+ # @return [String]
4896
+ attr_accessor :primary_tactic
4897
+
4898
+ # The MITRE ATT&CK technique most closely represented by this finding, if any.
4899
+ # primary_techniques is a repeated field because there are multiple levels of
4900
+ # MITRE ATT&CK techniques. If the technique most closely represented by this
4901
+ # finding is a sub-technique (e.g. `SCANNING_IP_BLOCKS`), both the sub-technique
4902
+ # and its parent technique(s) will be listed (e.g. `SCANNING_IP_BLOCKS`, `
4903
+ # ACTIVE_SCANNING`).
4904
+ # Corresponds to the JSON property `primaryTechniques`
4905
+ # @return [Array<String>]
4906
+ attr_accessor :primary_techniques
4907
+
4908
+ # The MITRE ATT&CK version referenced by the above fields. E.g. "8".
4909
+ # Corresponds to the JSON property `version`
4910
+ # @return [String]
4911
+ attr_accessor :version
4912
+
4913
+ def initialize(**args)
4914
+ update!(**args)
4915
+ end
4916
+
4917
+ # Update properties of this object
4918
+ def update!(**args)
4919
+ @additional_tactics = args[:additional_tactics] if args.key?(:additional_tactics)
4920
+ @additional_techniques = args[:additional_techniques] if args.key?(:additional_techniques)
4921
+ @primary_tactic = args[:primary_tactic] if args.key?(:primary_tactic)
4922
+ @primary_techniques = args[:primary_techniques] if args.key?(:primary_techniques)
4923
+ @version = args[:version] if args.key?(:version)
4924
+ end
4925
+ end
4926
+
4927
+ # A mute config is a Cloud SCC resource that contains the configuration to mute
4928
+ # create/update events of findings.
4929
+ class GoogleCloudSecuritycenterV2MuteConfig
4930
+ include Google::Apis::Core::Hashable
4931
+
4932
+ # Output only. The time at which the mute config was created. This field is set
4933
+ # by the server and will be ignored if provided on config creation.
4934
+ # Corresponds to the JSON property `createTime`
4935
+ # @return [String]
4936
+ attr_accessor :create_time
4937
+
4938
+ # A description of the mute config.
4939
+ # Corresponds to the JSON property `description`
4940
+ # @return [String]
4941
+ attr_accessor :description
4942
+
4943
+ # Required. An expression that defines the filter to apply across create/update
4944
+ # events of findings. While creating a filter string, be mindful of the scope in
4945
+ # which the mute configuration is being created. E.g., If a filter contains
4946
+ # project = X but is created under the project = Y scope, it might not match any
4947
+ # findings. The following field and operator combinations are supported: *
4948
+ # severity: `=`, `:` * category: `=`, `:` * resource.name: `=`, `:` * resource.
4949
+ # project_name: `=`, `:` * resource.project_display_name: `=`, `:` * resource.
4950
+ # folders.resource_folder: `=`, `:` * resource.parent_name: `=`, `:` * resource.
4951
+ # parent_display_name: `=`, `:` * resource.type: `=`, `:` * finding_class: `=`, `
4952
+ # :` * indicator.ip_addresses: `=`, `:` * indicator.domains: `=`, `:`
4953
+ # Corresponds to the JSON property `filter`
4954
+ # @return [String]
4955
+ attr_accessor :filter
4956
+
4957
+ # Output only. Email address of the user who last edited the mute config. This
4958
+ # field is set by the server and will be ignored if provided on config creation
4959
+ # or update.
4960
+ # Corresponds to the JSON property `mostRecentEditor`
4961
+ # @return [String]
4962
+ attr_accessor :most_recent_editor
4963
+
4964
+ # This field will be ignored if provided on config creation. The following list
4965
+ # shows some examples of the format: + `organizations/`organization`/muteConfigs/
4966
+ # `mute_config`` + `organizations/`organization`locations/`location`//
4967
+ # muteConfigs/`mute_config`` + `folders/`folder`/muteConfigs/`mute_config`` + `
4968
+ # folders/`folder`/locations/`location`/muteConfigs/`mute_config`` + `projects/`
4969
+ # project`/muteConfigs/`mute_config`` + `projects/`project`/locations/`location`/
4970
+ # muteConfigs/`mute_config``
4971
+ # Corresponds to the JSON property `name`
4972
+ # @return [String]
4973
+ attr_accessor :name
4974
+
4975
+ # Output only. The most recent time at which the mute config was updated. This
4976
+ # field is set by the server and will be ignored if provided on config creation
4977
+ # or update.
4978
+ # Corresponds to the JSON property `updateTime`
4979
+ # @return [String]
4980
+ attr_accessor :update_time
4981
+
4982
+ def initialize(**args)
4983
+ update!(**args)
4984
+ end
4985
+
4986
+ # Update properties of this object
4987
+ def update!(**args)
4988
+ @create_time = args[:create_time] if args.key?(:create_time)
4989
+ @description = args[:description] if args.key?(:description)
4990
+ @filter = args[:filter] if args.key?(:filter)
4991
+ @most_recent_editor = args[:most_recent_editor] if args.key?(:most_recent_editor)
4992
+ @name = args[:name] if args.key?(:name)
4993
+ @update_time = args[:update_time] if args.key?(:update_time)
4994
+ end
4995
+ end
4996
+
4997
+ # Kubernetes nodes associated with the finding.
4998
+ class GoogleCloudSecuritycenterV2Node
4999
+ include Google::Apis::Core::Hashable
5000
+
5001
+ # [Full resource name](https://google.aip.dev/122#full-resource-names) of the
5002
+ # Compute Engine VM running the cluster node.
5003
+ # Corresponds to the JSON property `name`
5004
+ # @return [String]
5005
+ attr_accessor :name
5006
+
5007
+ def initialize(**args)
5008
+ update!(**args)
5009
+ end
5010
+
5011
+ # Update properties of this object
5012
+ def update!(**args)
5013
+ @name = args[:name] if args.key?(:name)
5014
+ end
5015
+ end
5016
+
5017
+ # Provides GKE node pool information.
5018
+ class GoogleCloudSecuritycenterV2NodePool
5019
+ include Google::Apis::Core::Hashable
5020
+
5021
+ # Kubernetes node pool name.
5022
+ # Corresponds to the JSON property `name`
5023
+ # @return [String]
5024
+ attr_accessor :name
5025
+
5026
+ # Nodes associated with the finding.
5027
+ # Corresponds to the JSON property `nodes`
5028
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Node>]
5029
+ attr_accessor :nodes
5030
+
5031
+ def initialize(**args)
5032
+ update!(**args)
5033
+ end
5034
+
5035
+ # Update properties of this object
5036
+ def update!(**args)
5037
+ @name = args[:name] if args.key?(:name)
5038
+ @nodes = args[:nodes] if args.key?(:nodes)
5039
+ end
5040
+ end
5041
+
5042
+ # Cloud SCC's Notification
5043
+ class GoogleCloudSecuritycenterV2NotificationMessage
5044
+ include Google::Apis::Core::Hashable
5045
+
5046
+ # Security Command Center finding. A finding is a record of assessment data like
5047
+ # security, risk, health, or privacy, that is ingested into Security Command
5048
+ # Center for presentation, notification, analysis, policy testing, and
5049
+ # enforcement. For example, a cross-site scripting (XSS) vulnerability in an App
5050
+ # Engine application is a finding.
5051
+ # Corresponds to the JSON property `finding`
5052
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Finding]
5053
+ attr_accessor :finding
5054
+
5055
+ # Name of the notification config that generated current notification.
5056
+ # Corresponds to the JSON property `notificationConfigName`
5057
+ # @return [String]
5058
+ attr_accessor :notification_config_name
5059
+
5060
+ # Information related to the Google Cloud resource.
5061
+ # Corresponds to the JSON property `resource`
5062
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Resource]
5063
+ attr_accessor :resource
5064
+
5065
+ def initialize(**args)
5066
+ update!(**args)
5067
+ end
5068
+
5069
+ # Update properties of this object
5070
+ def update!(**args)
5071
+ @finding = args[:finding] if args.key?(:finding)
5072
+ @notification_config_name = args[:notification_config_name] if args.key?(:notification_config_name)
5073
+ @resource = args[:resource] if args.key?(:resource)
5074
+ end
5075
+ end
5076
+
5077
+ # Kubernetes object related to the finding, uniquely identified by GKNN. Used if
5078
+ # the object Kind is not one of Pod, Node, NodePool, Binding, or AccessReview.
5079
+ class GoogleCloudSecuritycenterV2Object
5080
+ include Google::Apis::Core::Hashable
5081
+
5082
+ # Pod containers associated with this finding, if any.
5083
+ # Corresponds to the JSON property `containers`
5084
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Container>]
5085
+ attr_accessor :containers
5086
+
5087
+ # Kubernetes object group, such as "policy.k8s.io/v1".
5088
+ # Corresponds to the JSON property `group`
5089
+ # @return [String]
5090
+ attr_accessor :group
5091
+
5092
+ # Kubernetes object kind, such as "Namespace".
5093
+ # Corresponds to the JSON property `kind`
5094
+ # @return [String]
5095
+ attr_accessor :kind
5096
+
5097
+ # Kubernetes object name. For details see https://kubernetes.io/docs/concepts/
5098
+ # overview/working-with-objects/names/.
5099
+ # Corresponds to the JSON property `name`
5100
+ # @return [String]
5101
+ attr_accessor :name
5102
+
5103
+ # Kubernetes object namespace. Must be a valid DNS label. Named "ns" to avoid
5104
+ # collision with C++ namespace keyword. For details see https://kubernetes.io/
5105
+ # docs/tasks/administer-cluster/namespaces/.
5106
+ # Corresponds to the JSON property `ns`
5107
+ # @return [String]
5108
+ attr_accessor :ns
5109
+
5110
+ def initialize(**args)
5111
+ update!(**args)
5112
+ end
5113
+
5114
+ # Update properties of this object
5115
+ def update!(**args)
5116
+ @containers = args[:containers] if args.key?(:containers)
5117
+ @group = args[:group] if args.key?(:group)
5118
+ @kind = args[:kind] if args.key?(:kind)
5119
+ @name = args[:name] if args.key?(:name)
5120
+ @ns = args[:ns] if args.key?(:ns)
5121
+ end
5122
+ end
5123
+
5124
+ # Contains information about the org policies associated with the finding.
5125
+ class GoogleCloudSecuritycenterV2OrgPolicy
5126
+ include Google::Apis::Core::Hashable
5127
+
5128
+ # The resource name of the org policy. Example: "organizations/`organization_id`/
5129
+ # policies/`constraint_name`"
5130
+ # Corresponds to the JSON property `name`
5131
+ # @return [String]
5132
+ attr_accessor :name
5133
+
5134
+ def initialize(**args)
5135
+ update!(**args)
5136
+ end
5137
+
5138
+ # Update properties of this object
5139
+ def update!(**args)
5140
+ @name = args[:name] if args.key?(:name)
5141
+ end
5142
+ end
5143
+
5144
+ # A Kubernetes Pod.
5145
+ class GoogleCloudSecuritycenterV2Pod
5146
+ include Google::Apis::Core::Hashable
5147
+
5148
+ # Pod containers associated with this finding, if any.
5149
+ # Corresponds to the JSON property `containers`
5150
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Container>]
5151
+ attr_accessor :containers
5152
+
5153
+ # Pod labels. For Kubernetes containers, these are applied to the container.
5154
+ # Corresponds to the JSON property `labels`
5155
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Label>]
5156
+ attr_accessor :labels
5157
+
5158
+ # Kubernetes Pod name.
5159
+ # Corresponds to the JSON property `name`
5160
+ # @return [String]
5161
+ attr_accessor :name
5162
+
5163
+ # Kubernetes Pod namespace.
5164
+ # Corresponds to the JSON property `ns`
5165
+ # @return [String]
5166
+ attr_accessor :ns
5167
+
5168
+ def initialize(**args)
5169
+ update!(**args)
5170
+ end
5171
+
5172
+ # Update properties of this object
5173
+ def update!(**args)
5174
+ @containers = args[:containers] if args.key?(:containers)
5175
+ @labels = args[:labels] if args.key?(:labels)
5176
+ @name = args[:name] if args.key?(:name)
5177
+ @ns = args[:ns] if args.key?(:ns)
5178
+ end
5179
+ end
5180
+
5181
+ # Represents an operating system process.
5182
+ class GoogleCloudSecuritycenterV2Process
5183
+ include Google::Apis::Core::Hashable
5184
+
5185
+ # Process arguments as JSON encoded strings.
5186
+ # Corresponds to the JSON property `args`
5187
+ # @return [Array<String>]
5188
+ attr_accessor :args
5189
+
5190
+ # True if `args` is incomplete.
5191
+ # Corresponds to the JSON property `argumentsTruncated`
5192
+ # @return [Boolean]
5193
+ attr_accessor :arguments_truncated
5194
+ alias_method :arguments_truncated?, :arguments_truncated
5195
+
5196
+ # File information about the related binary/library used by an executable, or
5197
+ # the script used by a script interpreter
5198
+ # Corresponds to the JSON property `binary`
5199
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2File]
5200
+ attr_accessor :binary
5201
+
5202
+ # Process environment variables.
5203
+ # Corresponds to the JSON property `envVariables`
5204
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2EnvironmentVariable>]
5205
+ attr_accessor :env_variables
5206
+
5207
+ # True if `env_variables` is incomplete.
5208
+ # Corresponds to the JSON property `envVariablesTruncated`
5209
+ # @return [Boolean]
5210
+ attr_accessor :env_variables_truncated
5211
+ alias_method :env_variables_truncated?, :env_variables_truncated
5212
+
5213
+ # File information for libraries loaded by the process.
5214
+ # Corresponds to the JSON property `libraries`
5215
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2File>]
5216
+ attr_accessor :libraries
5217
+
5218
+ # The process name, as displayed in utilities like `top` and `ps`. This name can
5219
+ # be accessed through `/proc/[pid]/comm` and changed with `prctl(PR_SET_NAME)`.
5220
+ # Corresponds to the JSON property `name`
5221
+ # @return [String]
5222
+ attr_accessor :name
5223
+
5224
+ # The parent process ID.
5225
+ # Corresponds to the JSON property `parentPid`
5226
+ # @return [Fixnum]
5227
+ attr_accessor :parent_pid
5228
+
5229
+ # The process ID.
5230
+ # Corresponds to the JSON property `pid`
5231
+ # @return [Fixnum]
5232
+ attr_accessor :pid
5233
+
5234
+ # File information about the related binary/library used by an executable, or
5235
+ # the script used by a script interpreter
5236
+ # Corresponds to the JSON property `script`
5237
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2File]
5238
+ attr_accessor :script
5239
+
5240
+ def initialize(**args)
5241
+ update!(**args)
5242
+ end
5243
+
5244
+ # Update properties of this object
5245
+ def update!(**args)
5246
+ @args = args[:args] if args.key?(:args)
5247
+ @arguments_truncated = args[:arguments_truncated] if args.key?(:arguments_truncated)
5248
+ @binary = args[:binary] if args.key?(:binary)
5249
+ @env_variables = args[:env_variables] if args.key?(:env_variables)
5250
+ @env_variables_truncated = args[:env_variables_truncated] if args.key?(:env_variables_truncated)
5251
+ @libraries = args[:libraries] if args.key?(:libraries)
5252
+ @name = args[:name] if args.key?(:name)
5253
+ @parent_pid = args[:parent_pid] if args.key?(:parent_pid)
5254
+ @pid = args[:pid] if args.key?(:pid)
5255
+ @script = args[:script] if args.key?(:script)
5256
+ end
5257
+ end
5258
+
5259
+ # Indicates what signature matched this process.
5260
+ class GoogleCloudSecuritycenterV2ProcessSignature
5261
+ include Google::Apis::Core::Hashable
5262
+
5263
+ # A signature corresponding to memory page hashes.
5264
+ # Corresponds to the JSON property `memoryHashSignature`
5265
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2MemoryHashSignature]
5266
+ attr_accessor :memory_hash_signature
5267
+
5268
+ # A signature corresponding to a YARA rule.
5269
+ # Corresponds to the JSON property `yaraRuleSignature`
5270
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2YaraRuleSignature]
5271
+ attr_accessor :yara_rule_signature
5272
+
5273
+ def initialize(**args)
5274
+ update!(**args)
5275
+ end
5276
+
5277
+ # Update properties of this object
5278
+ def update!(**args)
5279
+ @memory_hash_signature = args[:memory_hash_signature] if args.key?(:memory_hash_signature)
5280
+ @yara_rule_signature = args[:yara_rule_signature] if args.key?(:yara_rule_signature)
5281
+ end
5282
+ end
5283
+
5284
+ # Additional Links
5285
+ class GoogleCloudSecuritycenterV2Reference
5286
+ include Google::Apis::Core::Hashable
5287
+
5288
+ # Source of the reference e.g. NVD
5289
+ # Corresponds to the JSON property `source`
5290
+ # @return [String]
5291
+ attr_accessor :source
5292
+
5293
+ # Uri for the mentioned source e.g. https://cve.mitre.org/cgi-bin/cvename.cgi?
5294
+ # name=CVE-2021-34527.
5295
+ # Corresponds to the JSON property `uri`
5296
+ # @return [String]
5297
+ attr_accessor :uri
5298
+
5299
+ def initialize(**args)
5300
+ update!(**args)
5301
+ end
5302
+
5303
+ # Update properties of this object
5304
+ def update!(**args)
5305
+ @source = args[:source] if args.key?(:source)
5306
+ @uri = args[:uri] if args.key?(:uri)
5307
+ end
5308
+ end
5309
+
5310
+ # Information related to the Google Cloud resource.
5311
+ class GoogleCloudSecuritycenterV2Resource
5312
+ include Google::Apis::Core::Hashable
5313
+
5314
+ # The human readable name of the resource.
5315
+ # Corresponds to the JSON property `displayName`
5316
+ # @return [String]
5317
+ attr_accessor :display_name
5318
+
5319
+ # The full resource name of the resource. See: https://cloud.google.com/apis/
5320
+ # design/resource_names#full_resource_name
5321
+ # Corresponds to the JSON property `name`
5322
+ # @return [String]
5323
+ attr_accessor :name
5324
+
5325
+ # The full resource type of the resource.
5326
+ # Corresponds to the JSON property `type`
5327
+ # @return [String]
5328
+ attr_accessor :type
5329
+
5330
+ def initialize(**args)
5331
+ update!(**args)
5332
+ end
5333
+
5334
+ # Update properties of this object
5335
+ def update!(**args)
5336
+ @display_name = args[:display_name] if args.key?(:display_name)
5337
+ @name = args[:name] if args.key?(:name)
5338
+ @type = args[:type] if args.key?(:type)
5339
+ end
5340
+ end
5341
+
5342
+ # A resource value config (RVC) is a mapping configuration of user's resources
5343
+ # to resource values. Used in Attack path simulations.
5344
+ class GoogleCloudSecuritycenterV2ResourceValueConfig
5345
+ include Google::Apis::Core::Hashable
5346
+
5347
+ # Output only. Timestamp this resource value config was created.
5348
+ # Corresponds to the JSON property `createTime`
5349
+ # @return [String]
5350
+ attr_accessor :create_time
5351
+
5352
+ # Description of the resource value config.
5353
+ # Corresponds to the JSON property `description`
5354
+ # @return [String]
5355
+ attr_accessor :description
5356
+
5357
+ # Name for the resource value config
5358
+ # Corresponds to the JSON property `name`
5359
+ # @return [String]
5360
+ attr_accessor :name
5361
+
5362
+ # List of resource labels to search for, evaluated with AND. E.g. "
5363
+ # resource_labels_selector": `"key": "value", "env": "prod"` will match
5364
+ # resources with labels "key": "value" AND "env": "prod" https://cloud.google.
5365
+ # com/resource-manager/docs/creating-managing-labels
5366
+ # Corresponds to the JSON property `resourceLabelsSelector`
5367
+ # @return [Hash<String,String>]
5368
+ attr_accessor :resource_labels_selector
5369
+
5370
+ # Apply resource_value only to resources that match resource_type. resource_type
5371
+ # will be checked with "AND" of other resources. E.g. "storage.googleapis.com/
5372
+ # Bucket" with resource_value "HIGH" will apply "HIGH" value only to "storage.
5373
+ # googleapis.com/Bucket" resources.
5374
+ # Corresponds to the JSON property `resourceType`
5375
+ # @return [String]
5376
+ attr_accessor :resource_type
5377
+
5378
+ # Required. Resource value level this expression represents
5379
+ # Corresponds to the JSON property `resourceValue`
5380
+ # @return [String]
5381
+ attr_accessor :resource_value
5382
+
5383
+ # Project or folder to scope this config to. For example, "project/456" would
5384
+ # apply this config only to resources in "project/456" scope will be checked
5385
+ # with "AND" of other resources.
5386
+ # Corresponds to the JSON property `scope`
5387
+ # @return [String]
5388
+ attr_accessor :scope
5389
+
5390
+ # Required. Tag values combined with AND to check against. Values in the form "
5391
+ # tagValues/123" E.g. [ "tagValues/123", "tagValues/456", "tagValues/789" ]
5392
+ # https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing
5393
+ # Corresponds to the JSON property `tagValues`
5394
+ # @return [Array<String>]
5395
+ attr_accessor :tag_values
5396
+
5397
+ # Output only. Timestamp this resource value config was last updated.
5398
+ # Corresponds to the JSON property `updateTime`
5399
+ # @return [String]
5400
+ attr_accessor :update_time
5401
+
5402
+ def initialize(**args)
5403
+ update!(**args)
5404
+ end
5405
+
5406
+ # Update properties of this object
5407
+ def update!(**args)
5408
+ @create_time = args[:create_time] if args.key?(:create_time)
5409
+ @description = args[:description] if args.key?(:description)
5410
+ @name = args[:name] if args.key?(:name)
5411
+ @resource_labels_selector = args[:resource_labels_selector] if args.key?(:resource_labels_selector)
5412
+ @resource_type = args[:resource_type] if args.key?(:resource_type)
5413
+ @resource_value = args[:resource_value] if args.key?(:resource_value)
5414
+ @scope = args[:scope] if args.key?(:scope)
5415
+ @tag_values = args[:tag_values] if args.key?(:tag_values)
5416
+ @update_time = args[:update_time] if args.key?(:update_time)
5417
+ end
5418
+ end
5419
+
5420
+ # Kubernetes Role or ClusterRole.
5421
+ class GoogleCloudSecuritycenterV2Role
5422
+ include Google::Apis::Core::Hashable
5423
+
5424
+ # Role type.
5425
+ # Corresponds to the JSON property `kind`
5426
+ # @return [String]
5427
+ attr_accessor :kind
5428
+
5429
+ # Role name.
5430
+ # Corresponds to the JSON property `name`
5431
+ # @return [String]
5432
+ attr_accessor :name
5433
+
5434
+ # Role namespace.
5435
+ # Corresponds to the JSON property `ns`
5436
+ # @return [String]
5437
+ attr_accessor :ns
5438
+
5439
+ def initialize(**args)
5440
+ update!(**args)
5441
+ end
5442
+
5443
+ # Update properties of this object
5444
+ def update!(**args)
5445
+ @kind = args[:kind] if args.key?(:kind)
5446
+ @name = args[:name] if args.key?(:name)
5447
+ @ns = args[:ns] if args.key?(:ns)
5448
+ end
5449
+ end
5450
+
5451
+ # User specified security marks that are attached to the parent Security Command
5452
+ # Center resource. Security marks are scoped within a Security Command Center
5453
+ # organization -- they can be modified and viewed by all users who have proper
5454
+ # permissions on the organization.
5455
+ class GoogleCloudSecuritycenterV2SecurityMarks
5456
+ include Google::Apis::Core::Hashable
5457
+
5458
+ # The canonical name of the marks. The following list shows some examples: + `
5459
+ # organizations/`organization_id`/assets/`asset_id`/securityMarks" + `
5460
+ # organizations/`organization_id`/sources/`source_id`/findings/`finding_id`/
5461
+ # securityMarks" + `organizations/`organization_id`/sources/`source_id`/
5462
+ # locations/`location`/findings/`finding_id`/securityMarks" + `folders/`
5463
+ # folder_id`/assets/`asset_id`/securityMarks" + `folders/`folder_id`/sources/`
5464
+ # source_id`/findings/`finding_id`/securityMarks" + `folders/`folder_id`/sources/
5465
+ # `source_id`/locations/`location`/findings/`finding_id`/securityMarks" + `
5466
+ # projects/`project_number`/assets/`asset_id`/securityMarks" + `projects/`
5467
+ # project_number`/sources/`source_id`/findings/`finding_id`/securityMarks" + `
5468
+ # projects/`project_number`/sources/`source_id`/locations/`location`/findings/`
5469
+ # finding_id`/securityMarks"
5470
+ # Corresponds to the JSON property `canonicalName`
5471
+ # @return [String]
5472
+ attr_accessor :canonical_name
5473
+
5474
+ # Mutable user specified security marks belonging to the parent resource.
5475
+ # Constraints are as follows: * Keys and values are treated as case insensitive *
5476
+ # Keys must be between 1 - 256 characters (inclusive) * Keys must be letters,
5477
+ # numbers, underscores, or dashes * Values have leading and trailing whitespace
5478
+ # trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
5479
+ # Corresponds to the JSON property `marks`
5480
+ # @return [Hash<String,String>]
5481
+ attr_accessor :marks
5482
+
5483
+ # The relative resource name of the SecurityMarks. See: https://cloud.google.com/
5484
+ # apis/design/resource_names#relative_resource_name The following list shows
5485
+ # some examples: + `organizations/`organization_id`/assets/`asset_id`/
5486
+ # securityMarks` + `organizations/`organization_id`/sources/`source_id`/findings/
5487
+ # `finding_id`/securityMarks` + `organizations/`organization_id`/sources/`
5488
+ # source_id`/locations/`location`/findings/`finding_id`/securityMarks`
5489
+ # Corresponds to the JSON property `name`
5490
+ # @return [String]
5491
+ attr_accessor :name
5492
+
5493
+ def initialize(**args)
5494
+ update!(**args)
5495
+ end
5496
+
5497
+ # Update properties of this object
5498
+ def update!(**args)
5499
+ @canonical_name = args[:canonical_name] if args.key?(:canonical_name)
5500
+ @marks = args[:marks] if args.key?(:marks)
5501
+ @name = args[:name] if args.key?(:name)
5502
+ end
5503
+ end
5504
+
5505
+ # Represents a posture that is deployed on Google Cloud by the Security Command
5506
+ # Center Posture Management service. A posture contains one or more policy sets.
5507
+ # A policy set is a group of policies that enforce a set of security rules on
5508
+ # Google Cloud.
5509
+ class GoogleCloudSecuritycenterV2SecurityPosture
5510
+ include Google::Apis::Core::Hashable
5511
+
5512
+ # The name of the policy that has been updated, for example, `projects/`
5513
+ # project_id`/policies/`constraint_name``.
5514
+ # Corresponds to the JSON property `changedPolicy`
5515
+ # @return [String]
5516
+ attr_accessor :changed_policy
5517
+
5518
+ # Name of the posture, for example, `organizations/`org_id`/locations/`location`/
5519
+ # postures/`posture_name``.
5520
+ # Corresponds to the JSON property `name`
5521
+ # @return [String]
5522
+ attr_accessor :name
5523
+
5524
+ # The name of the posture deployment, for example, `projects/`project_id`/
5525
+ # posturedeployments/`posture_deployment_id``.
5526
+ # Corresponds to the JSON property `postureDeployment`
5527
+ # @return [String]
5528
+ attr_accessor :posture_deployment
5529
+
5530
+ # The project, folder, or organization on which the posture is deployed, for
5531
+ # example, `projects/`project_id``.
5532
+ # Corresponds to the JSON property `postureDeploymentResource`
5533
+ # @return [String]
5534
+ attr_accessor :posture_deployment_resource
5535
+
5536
+ # The version of the posture, for example, `c7cfa2a8`.
5537
+ # Corresponds to the JSON property `revisionId`
5538
+ # @return [String]
5539
+ attr_accessor :revision_id
5540
+
5541
+ def initialize(**args)
5542
+ update!(**args)
5543
+ end
5544
+
5545
+ # Update properties of this object
5546
+ def update!(**args)
5547
+ @changed_policy = args[:changed_policy] if args.key?(:changed_policy)
5548
+ @name = args[:name] if args.key?(:name)
5549
+ @posture_deployment = args[:posture_deployment] if args.key?(:posture_deployment)
5550
+ @posture_deployment_resource = args[:posture_deployment_resource] if args.key?(:posture_deployment_resource)
5551
+ @revision_id = args[:revision_id] if args.key?(:revision_id)
5552
+ end
5553
+ end
5554
+
5555
+ # Identity delegation history of an authenticated service account.
5556
+ class GoogleCloudSecuritycenterV2ServiceAccountDelegationInfo
5557
+ include Google::Apis::Core::Hashable
5558
+
5559
+ # The email address of a Google account.
5560
+ # Corresponds to the JSON property `principalEmail`
5561
+ # @return [String]
5562
+ attr_accessor :principal_email
5563
+
5564
+ # A string representing the principal_subject associated with the identity. As
5565
+ # compared to `principal_email`, supports principals that aren't associated with
5566
+ # email addresses, such as third party principals. For most identities, the
5567
+ # format will be `principal://iam.googleapis.com/`identity pool name`/subjects/`
5568
+ # subject`` except for some GKE identities (GKE_WORKLOAD, FREEFORM,
5569
+ # GKE_HUB_WORKLOAD) that are still in the legacy format `serviceAccount:`
5570
+ # identity pool name`[`subject`]`
5571
+ # Corresponds to the JSON property `principalSubject`
5572
+ # @return [String]
5573
+ attr_accessor :principal_subject
5574
+
5575
+ def initialize(**args)
5576
+ update!(**args)
5577
+ end
5578
+
5579
+ # Update properties of this object
5580
+ def update!(**args)
5581
+ @principal_email = args[:principal_email] if args.key?(:principal_email)
5582
+ @principal_subject = args[:principal_subject] if args.key?(:principal_subject)
5583
+ end
5584
+ end
5585
+
5586
+ # Represents a Kubernetes subject.
5587
+ class GoogleCloudSecuritycenterV2Subject
5588
+ include Google::Apis::Core::Hashable
5589
+
5590
+ # Authentication type for the subject.
5591
+ # Corresponds to the JSON property `kind`
5592
+ # @return [String]
5593
+ attr_accessor :kind
5594
+
5595
+ # Name for the subject.
5596
+ # Corresponds to the JSON property `name`
5597
+ # @return [String]
5598
+ attr_accessor :name
5599
+
5600
+ # Namespace for the subject.
5601
+ # Corresponds to the JSON property `ns`
5602
+ # @return [String]
5603
+ attr_accessor :ns
5604
+
5605
+ def initialize(**args)
5606
+ update!(**args)
5607
+ end
5608
+
5609
+ # Update properties of this object
5610
+ def update!(**args)
5611
+ @kind = args[:kind] if args.key?(:kind)
5612
+ @name = args[:name] if args.key?(:name)
5613
+ @ns = args[:ns] if args.key?(:ns)
5614
+ end
5615
+ end
5616
+
5617
+ # Refers to common vulnerability fields e.g. cve, cvss, cwe etc.
5618
+ class GoogleCloudSecuritycenterV2Vulnerability
5619
+ include Google::Apis::Core::Hashable
5620
+
5621
+ # CVE stands for Common Vulnerabilities and Exposures. More information: https://
5622
+ # cve.mitre.org
5623
+ # Corresponds to the JSON property `cve`
5624
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Cve]
5625
+ attr_accessor :cve
5626
+
5627
+ def initialize(**args)
5628
+ update!(**args)
5629
+ end
5630
+
5631
+ # Update properties of this object
5632
+ def update!(**args)
5633
+ @cve = args[:cve] if args.key?(:cve)
5634
+ end
5635
+ end
5636
+
5637
+ # A signature corresponding to a YARA rule.
5638
+ class GoogleCloudSecuritycenterV2YaraRuleSignature
5639
+ include Google::Apis::Core::Hashable
5640
+
5641
+ # The name of the YARA rule.
5642
+ # Corresponds to the JSON property `yaraRule`
5643
+ # @return [String]
5644
+ attr_accessor :yara_rule
5645
+
5646
+ def initialize(**args)
5647
+ update!(**args)
5648
+ end
5649
+
5650
+ # Update properties of this object
5651
+ def update!(**args)
5652
+ @yara_rule = args[:yara_rule] if args.key?(:yara_rule)
5653
+ end
5654
+ end
5655
+
2818
5656
  # Request message for grouping by assets.
2819
5657
  class GroupAssetsRequest
2820
5658
  include Google::Apis::Core::Hashable
@@ -3635,7 +6473,7 @@ module Google
3635
6473
  # @return [String]
3636
6474
  attr_accessor :group
3637
6475
 
3638
- # Kubernetes object kind, such as Namespace”.
6476
+ # Kubernetes object kind, such as "Namespace".
3639
6477
  # Corresponds to the JSON property `kind`
3640
6478
  # @return [String]
3641
6479
  attr_accessor :kind