google-apis-securitycenter_v1beta2 0.57.0 → 0.59.0

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