google-apis-securitycenter_v1beta1 0.65.0 → 0.67.0

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