google-apis-securitycenter_v1beta2 0.71.0 → 0.73.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -493,6 +493,11 @@ module Google
493
493
  # @return [Google::Apis::SecuritycenterV1beta2::AzureSubscription]
494
494
  attr_accessor :subscription
495
495
 
496
+ # Represents a Microsoft Entra tenant.
497
+ # Corresponds to the JSON property `tenant`
498
+ # @return [Google::Apis::SecuritycenterV1beta2::AzureTenant]
499
+ attr_accessor :tenant
500
+
496
501
  def initialize(**args)
497
502
  update!(**args)
498
503
  end
@@ -502,6 +507,7 @@ module Google
502
507
  @management_groups = args[:management_groups] if args.key?(:management_groups)
503
508
  @resource_group = args[:resource_group] if args.key?(:resource_group)
504
509
  @subscription = args[:subscription] if args.key?(:subscription)
510
+ @tenant = args[:tenant] if args.key?(:tenant)
505
511
  end
506
512
  end
507
513
 
@@ -509,6 +515,11 @@ module Google
509
515
  class AzureResourceGroup
510
516
  include Google::Apis::Core::Hashable
511
517
 
518
+ # The ID of the Azure resource group.
519
+ # Corresponds to the JSON property `id`
520
+ # @return [String]
521
+ attr_accessor :id
522
+
512
523
  # The name of the Azure resource group. This is not a UUID.
513
524
  # Corresponds to the JSON property `name`
514
525
  # @return [String]
@@ -520,6 +531,7 @@ module Google
520
531
 
521
532
  # Update properties of this object
522
533
  def update!(**args)
534
+ @id = args[:id] if args.key?(:id)
523
535
  @name = args[:name] if args.key?(:name)
524
536
  end
525
537
  end
@@ -550,6 +562,32 @@ module Google
550
562
  end
551
563
  end
552
564
 
565
+ # Represents a Microsoft Entra tenant.
566
+ class AzureTenant
567
+ include Google::Apis::Core::Hashable
568
+
569
+ # The display name of the Azure tenant.
570
+ # Corresponds to the JSON property `displayName`
571
+ # @return [String]
572
+ attr_accessor :display_name
573
+
574
+ # The ID of the Microsoft Entra tenant, for example, "a11aaa11-aa11-1aa1-11aa-
575
+ # 1aaa11a".
576
+ # Corresponds to the JSON property `id`
577
+ # @return [String]
578
+ attr_accessor :id
579
+
580
+ def initialize(**args)
581
+ update!(**args)
582
+ end
583
+
584
+ # Update properties of this object
585
+ def update!(**args)
586
+ @display_name = args[:display_name] if args.key?(:display_name)
587
+ @id = args[:id] if args.key?(:id)
588
+ end
589
+ end
590
+
553
591
  # Information related to Google Cloud Backup and DR Service findings.
554
592
  class BackupDisasterRecovery
555
593
  include Google::Apis::Core::Hashable
@@ -1122,11 +1160,21 @@ module Google
1122
1160
  # @return [Google::Apis::SecuritycenterV1beta2::Cvssv3]
1123
1161
  attr_accessor :cvssv3
1124
1162
 
1163
+ # Date the first publicly available exploit or PoC was released.
1164
+ # Corresponds to the JSON property `exploitReleaseDate`
1165
+ # @return [String]
1166
+ attr_accessor :exploit_release_date
1167
+
1125
1168
  # The exploitation activity of the vulnerability in the wild.
1126
1169
  # Corresponds to the JSON property `exploitationActivity`
1127
1170
  # @return [String]
1128
1171
  attr_accessor :exploitation_activity
1129
1172
 
1173
+ # Date of the earliest known exploitation.
1174
+ # Corresponds to the JSON property `firstExploitationDate`
1175
+ # @return [String]
1176
+ attr_accessor :first_exploitation_date
1177
+
1130
1178
  # The unique identifier for the vulnerability. e.g. CVE-2021-34527
1131
1179
  # Corresponds to the JSON property `id`
1132
1180
  # @return [String]
@@ -1168,7 +1216,9 @@ module Google
1168
1216
  # Update properties of this object
1169
1217
  def update!(**args)
1170
1218
  @cvssv3 = args[:cvssv3] if args.key?(:cvssv3)
1219
+ @exploit_release_date = args[:exploit_release_date] if args.key?(:exploit_release_date)
1171
1220
  @exploitation_activity = args[:exploitation_activity] if args.key?(:exploitation_activity)
1221
+ @first_exploitation_date = args[:first_exploitation_date] if args.key?(:first_exploitation_date)
1172
1222
  @id = args[:id] if args.key?(:id)
1173
1223
  @impact = args[:impact] if args.key?(:impact)
1174
1224
  @observed_in_the_wild = args[:observed_in_the_wild] if args.key?(:observed_in_the_wild)
@@ -1255,6 +1305,144 @@ module Google
1255
1305
  end
1256
1306
  end
1257
1307
 
1308
+ # Details about a data access attempt made by a principal not authorized under
1309
+ # applicable data security policy.
1310
+ class DataAccessEvent
1311
+ include Google::Apis::Core::Hashable
1312
+
1313
+ # Unique identifier for data access event.
1314
+ # Corresponds to the JSON property `eventId`
1315
+ # @return [String]
1316
+ attr_accessor :event_id
1317
+
1318
+ # Timestamp of data access event.
1319
+ # Corresponds to the JSON property `eventTime`
1320
+ # @return [String]
1321
+ attr_accessor :event_time
1322
+
1323
+ # The operation performed by the principal to access the data.
1324
+ # Corresponds to the JSON property `operation`
1325
+ # @return [String]
1326
+ attr_accessor :operation
1327
+
1328
+ # The email address of the principal that accessed the data. The principal could
1329
+ # be a user account, service account, Google group, or other.
1330
+ # Corresponds to the JSON property `principalEmail`
1331
+ # @return [String]
1332
+ attr_accessor :principal_email
1333
+
1334
+ def initialize(**args)
1335
+ update!(**args)
1336
+ end
1337
+
1338
+ # Update properties of this object
1339
+ def update!(**args)
1340
+ @event_id = args[:event_id] if args.key?(:event_id)
1341
+ @event_time = args[:event_time] if args.key?(:event_time)
1342
+ @operation = args[:operation] if args.key?(:operation)
1343
+ @principal_email = args[:principal_email] if args.key?(:principal_email)
1344
+ end
1345
+ end
1346
+
1347
+ # Details about a data flow event, in which either the data is moved to or is
1348
+ # accessed from a non-compliant geo-location, as defined in the applicable data
1349
+ # security policy.
1350
+ class DataFlowEvent
1351
+ include Google::Apis::Core::Hashable
1352
+
1353
+ # Unique identifier for data flow event.
1354
+ # Corresponds to the JSON property `eventId`
1355
+ # @return [String]
1356
+ attr_accessor :event_id
1357
+
1358
+ # Timestamp of data flow event.
1359
+ # Corresponds to the JSON property `eventTime`
1360
+ # @return [String]
1361
+ attr_accessor :event_time
1362
+
1363
+ # The operation performed by the principal for the data flow event.
1364
+ # Corresponds to the JSON property `operation`
1365
+ # @return [String]
1366
+ attr_accessor :operation
1367
+
1368
+ # The email address of the principal that initiated the data flow event. The
1369
+ # principal could be a user account, service account, Google group, or other.
1370
+ # Corresponds to the JSON property `principalEmail`
1371
+ # @return [String]
1372
+ attr_accessor :principal_email
1373
+
1374
+ # Non-compliant location of the principal or the data destination.
1375
+ # Corresponds to the JSON property `violatedLocation`
1376
+ # @return [String]
1377
+ attr_accessor :violated_location
1378
+
1379
+ def initialize(**args)
1380
+ update!(**args)
1381
+ end
1382
+
1383
+ # Update properties of this object
1384
+ def update!(**args)
1385
+ @event_id = args[:event_id] if args.key?(:event_id)
1386
+ @event_time = args[:event_time] if args.key?(:event_time)
1387
+ @operation = args[:operation] if args.key?(:operation)
1388
+ @principal_email = args[:principal_email] if args.key?(:principal_email)
1389
+ @violated_location = args[:violated_location] if args.key?(:violated_location)
1390
+ end
1391
+ end
1392
+
1393
+ # Details about data retention deletion violations, in which the data is non-
1394
+ # compliant based on their retention or deletion time, as defined in the
1395
+ # applicable data security policy. The Data Retention Deletion (DRD) control is
1396
+ # a control of the DSPM (Data Security Posture Management) suite that enables
1397
+ # organizations to manage data retention and deletion policies in compliance
1398
+ # with regulations, such as GDPR and CRPA. DRD supports two primary policy types:
1399
+ # maximum storage length (max TTL) and minimum storage length (min TTL). Both
1400
+ # are aimed at helping organizations meet regulatory and data management
1401
+ # commitments.
1402
+ class DataRetentionDeletionEvent
1403
+ include Google::Apis::Core::Hashable
1404
+
1405
+ # Number of objects that violated the policy for this resource. If the number is
1406
+ # less than 1,000, then the value of this field is the exact number. If the
1407
+ # number of objects that violated the policy is greater than or equal to 1,000,
1408
+ # then the value of this field is 1000.
1409
+ # Corresponds to the JSON property `dataObjectCount`
1410
+ # @return [Fixnum]
1411
+ attr_accessor :data_object_count
1412
+
1413
+ # Timestamp indicating when the event was detected.
1414
+ # Corresponds to the JSON property `eventDetectionTime`
1415
+ # @return [String]
1416
+ attr_accessor :event_detection_time
1417
+
1418
+ # Type of the DRD event.
1419
+ # Corresponds to the JSON property `eventType`
1420
+ # @return [String]
1421
+ attr_accessor :event_type
1422
+
1423
+ # Maximum duration of retention allowed from the DRD control. This comes from
1424
+ # the DRD control where users set a max TTL for their data. For example, suppose
1425
+ # that a user set the max TTL for a Cloud Storage bucket to 90 days. However, an
1426
+ # object in that bucket is 100 days old. In this case, a
1427
+ # DataRetentionDeletionEvent will be generated for that Cloud Storage bucket,
1428
+ # and the max_retention_allowed is 90 days.
1429
+ # Corresponds to the JSON property `maxRetentionAllowed`
1430
+ # @return [String]
1431
+ attr_accessor :max_retention_allowed
1432
+
1433
+ def initialize(**args)
1434
+ update!(**args)
1435
+ end
1436
+
1437
+ # Update properties of this object
1438
+ def update!(**args)
1439
+ @data_object_count = args[:data_object_count] if args.key?(:data_object_count)
1440
+ @event_detection_time = args[:event_detection_time] if args.key?(:event_detection_time)
1441
+ @event_type = args[:event_type] if args.key?(:event_type)
1442
+ @max_retention_allowed = args[:max_retention_allowed] if args.key?(:max_retention_allowed)
1443
+ end
1444
+ end
1445
+
1258
1446
  # Represents database access information, such as queries. A database may be a
1259
1447
  # sub-resource of an instance (as in the case of Cloud SQL instances or Cloud
1260
1448
  # Spanner instances), or the database instance itself. Some database resources
@@ -1374,6 +1562,26 @@ module Google
1374
1562
  end
1375
1563
  end
1376
1564
 
1565
+ # Contains information about the disk associated with the finding.
1566
+ class Disk
1567
+ include Google::Apis::Core::Hashable
1568
+
1569
+ # The name of the disk, for example, "https://www.googleapis.com/compute/v1/
1570
+ # projects/project-id/zones/zone-id/disks/disk-id".
1571
+ # Corresponds to the JSON property `name`
1572
+ # @return [String]
1573
+ attr_accessor :name
1574
+
1575
+ def initialize(**args)
1576
+ update!(**args)
1577
+ end
1578
+
1579
+ # Update properties of this object
1580
+ def update!(**args)
1581
+ @name = args[:name] if args.key?(:name)
1582
+ end
1583
+ end
1584
+
1377
1585
  # Path of the file in terms of underlying disk/partition identifiers.
1378
1586
  class DiskPath
1379
1587
  include Google::Apis::Core::Hashable
@@ -1401,6 +1609,33 @@ module Google
1401
1609
  end
1402
1610
  end
1403
1611
 
1612
+ # The record of a dynamic mute rule that matches the finding.
1613
+ class DynamicMuteRecord
1614
+ include Google::Apis::Core::Hashable
1615
+
1616
+ # When the dynamic mute rule first matched the finding.
1617
+ # Corresponds to the JSON property `matchTime`
1618
+ # @return [String]
1619
+ attr_accessor :match_time
1620
+
1621
+ # The relative resource name of the mute rule, represented by a mute config,
1622
+ # that created this record, for example `organizations/123/muteConfigs/
1623
+ # mymuteconfig` or `organizations/123/locations/global/muteConfigs/mymuteconfig`.
1624
+ # Corresponds to the JSON property `muteConfig`
1625
+ # @return [String]
1626
+ attr_accessor :mute_config
1627
+
1628
+ def initialize(**args)
1629
+ update!(**args)
1630
+ end
1631
+
1632
+ # Update properties of this object
1633
+ def update!(**args)
1634
+ @match_time = args[:match_time] if args.key?(:match_time)
1635
+ @mute_config = args[:mute_config] if args.key?(:mute_config)
1636
+ end
1637
+ end
1638
+
1404
1639
  # A name-value pair representing an environment variable used in an operating
1405
1640
  # system process.
1406
1641
  class EnvironmentVariable
@@ -1741,6 +1976,21 @@ module Google
1741
1976
  # @return [String]
1742
1977
  attr_accessor :create_time
1743
1978
 
1979
+ # Data access events associated with the finding.
1980
+ # Corresponds to the JSON property `dataAccessEvents`
1981
+ # @return [Array<Google::Apis::SecuritycenterV1beta2::DataAccessEvent>]
1982
+ attr_accessor :data_access_events
1983
+
1984
+ # Data flow events associated with the finding.
1985
+ # Corresponds to the JSON property `dataFlowEvents`
1986
+ # @return [Array<Google::Apis::SecuritycenterV1beta2::DataFlowEvent>]
1987
+ attr_accessor :data_flow_events
1988
+
1989
+ # Data retention deletion events associated with the finding.
1990
+ # Corresponds to the JSON property `dataRetentionDeletionEvents`
1991
+ # @return [Array<Google::Apis::SecuritycenterV1beta2::DataRetentionDeletionEvent>]
1992
+ attr_accessor :data_retention_deletion_events
1993
+
1744
1994
  # Represents database access information, such as queries. A database may be a
1745
1995
  # sub-resource of an instance (as in the case of Cloud SQL instances or Cloud
1746
1996
  # Spanner instances), or the database instance itself. Some database resources
@@ -1757,6 +2007,11 @@ module Google
1757
2007
  # @return [String]
1758
2008
  attr_accessor :description
1759
2009
 
2010
+ # Contains information about the disk associated with the finding.
2011
+ # Corresponds to the JSON property `disk`
2012
+ # @return [Google::Apis::SecuritycenterV1beta2::Disk]
2013
+ attr_accessor :disk
2014
+
1760
2015
  # The time the finding was first detected. If an existing finding is updated,
1761
2016
  # then this is the time the update occurred. For example, if the finding
1762
2017
  # represents an open firewall, this property captures the time the detector
@@ -1858,6 +2113,12 @@ module Google
1858
2113
  # @return [String]
1859
2114
  attr_accessor :mute
1860
2115
 
2116
+ # Mute information about the finding, including whether the finding has a static
2117
+ # mute or any matching dynamic mute rules.
2118
+ # Corresponds to the JSON property `muteInfo`
2119
+ # @return [Google::Apis::SecuritycenterV1beta2::MuteInfo]
2120
+ attr_accessor :mute_info
2121
+
1861
2122
  # Records additional information about the mute operation, for example, the [
1862
2123
  # mute configuration](/security-command-center/docs/how-to-mute-findings) that
1863
2124
  # muted the finding and the user who muted the finding.
@@ -1991,8 +2252,12 @@ module Google
1991
2252
  @contacts = args[:contacts] if args.key?(:contacts)
1992
2253
  @containers = args[:containers] if args.key?(:containers)
1993
2254
  @create_time = args[:create_time] if args.key?(:create_time)
2255
+ @data_access_events = args[:data_access_events] if args.key?(:data_access_events)
2256
+ @data_flow_events = args[:data_flow_events] if args.key?(:data_flow_events)
2257
+ @data_retention_deletion_events = args[:data_retention_deletion_events] if args.key?(:data_retention_deletion_events)
1994
2258
  @database = args[:database] if args.key?(:database)
1995
2259
  @description = args[:description] if args.key?(:description)
2260
+ @disk = args[:disk] if args.key?(:disk)
1996
2261
  @event_time = args[:event_time] if args.key?(:event_time)
1997
2262
  @exfiltration = args[:exfiltration] if args.key?(:exfiltration)
1998
2263
  @external_systems = args[:external_systems] if args.key?(:external_systems)
@@ -2009,6 +2274,7 @@ module Google
2009
2274
  @mitre_attack = args[:mitre_attack] if args.key?(:mitre_attack)
2010
2275
  @module_name = args[:module_name] if args.key?(:module_name)
2011
2276
  @mute = args[:mute] if args.key?(:mute)
2277
+ @mute_info = args[:mute_info] if args.key?(:mute_info)
2012
2278
  @mute_initiator = args[:mute_initiator] if args.key?(:mute_initiator)
2013
2279
  @mute_update_time = args[:mute_update_time] if args.key?(:mute_update_time)
2014
2280
  @name = args[:name] if args.key?(:name)
@@ -2367,6 +2633,11 @@ module Google
2367
2633
  class GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule
2368
2634
  include Google::Apis::Core::Hashable
2369
2635
 
2636
+ # The cloud provider of the custom module.
2637
+ # Corresponds to the JSON property `cloudProvider`
2638
+ # @return [String]
2639
+ attr_accessor :cloud_provider
2640
+
2370
2641
  # Defines the properties in a custom module configuration for Security Health
2371
2642
  # Analytics. Use the custom module configuration to create custom detectors that
2372
2643
  # generate custom findings for resources that you specify.
@@ -2403,6 +2674,7 @@ module Google
2403
2674
 
2404
2675
  # Update properties of this object
2405
2676
  def update!(**args)
2677
+ @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider)
2406
2678
  @custom_config = args[:custom_config] if args.key?(:custom_config)
2407
2679
  @display_name = args[:display_name] if args.key?(:display_name)
2408
2680
  @enablement_state = args[:enablement_state] if args.key?(:enablement_state)
@@ -2516,6 +2788,12 @@ module Google
2516
2788
  # @return [String]
2517
2789
  attr_accessor :display_name
2518
2790
 
2791
+ # Optional. The expiry of the mute config. Only applicable for dynamic configs.
2792
+ # If the expiry is set, when the config expires, it is removed from all findings.
2793
+ # Corresponds to the JSON property `expiryTime`
2794
+ # @return [String]
2795
+ attr_accessor :expiry_time
2796
+
2519
2797
  # Required. An expression that defines the filter to apply across create/update
2520
2798
  # events of findings. While creating a filter string, be mindful of the scope in
2521
2799
  # which the mute configuration is being created. E.g., If a filter contains
@@ -2547,6 +2825,14 @@ module Google
2547
2825
  # @return [String]
2548
2826
  attr_accessor :name
2549
2827
 
2828
+ # Optional. The type of the mute config, which determines what type of mute
2829
+ # state the config affects. The static mute state takes precedence over the
2830
+ # dynamic mute state. Immutable after creation. STATIC by default if not set
2831
+ # during creation.
2832
+ # Corresponds to the JSON property `type`
2833
+ # @return [String]
2834
+ attr_accessor :type
2835
+
2550
2836
  # Output only. The most recent time at which the mute config was updated. This
2551
2837
  # field is set by the server and will be ignored if provided on config creation
2552
2838
  # or update.
@@ -2563,9 +2849,11 @@ module Google
2563
2849
  @create_time = args[:create_time] if args.key?(:create_time)
2564
2850
  @description = args[:description] if args.key?(:description)
2565
2851
  @display_name = args[:display_name] if args.key?(:display_name)
2852
+ @expiry_time = args[:expiry_time] if args.key?(:expiry_time)
2566
2853
  @filter = args[:filter] if args.key?(:filter)
2567
2854
  @most_recent_editor = args[:most_recent_editor] if args.key?(:most_recent_editor)
2568
2855
  @name = args[:name] if args.key?(:name)
2856
+ @type = args[:type] if args.key?(:type)
2569
2857
  @update_time = args[:update_time] if args.key?(:update_time)
2570
2858
  end
2571
2859
  end
@@ -2848,10 +3136,10 @@ module Google
2848
3136
  # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV1SensitiveDataProtectionMapping]
2849
3137
  attr_accessor :sensitive_data_protection_mapping
2850
3138
 
2851
- # Required. Tag values combined with `AND` to check against. Values in the form "
2852
- # tagValues/123" Example: `[ "tagValues/123", "tagValues/456", "tagValues/789" ]`
2853
- # https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-
2854
- # managing
3139
+ # Required. Tag values combined with `AND` to check against. For Google Cloud
3140
+ # resources, they are tag value IDs in the form of "tagValues/123". Example: `[ "
3141
+ # tagValues/123", "tagValues/456", "tagValues/789" ]` https://cloud.google.com/
3142
+ # resource-manager/docs/tags/tags-creating-and-managing
2855
3143
  # Corresponds to the JSON property `tagValues`
2856
3144
  # @return [Array<String>]
2857
3145
  attr_accessor :tag_values
@@ -2922,6 +3210,11 @@ module Google
2922
3210
  # @return [String]
2923
3211
  attr_accessor :ancestor_module
2924
3212
 
3213
+ # The cloud provider of the custom module.
3214
+ # Corresponds to the JSON property `cloudProvider`
3215
+ # @return [String]
3216
+ attr_accessor :cloud_provider
3217
+
2925
3218
  # Defines the properties in a custom module configuration for Security Health
2926
3219
  # Analytics. Use the custom module configuration to create custom detectors that
2927
3220
  # generate custom findings for resources that you specify.
@@ -2971,6 +3264,7 @@ module Google
2971
3264
  # Update properties of this object
2972
3265
  def update!(**args)
2973
3266
  @ancestor_module = args[:ancestor_module] if args.key?(:ancestor_module)
3267
+ @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider)
2974
3268
  @custom_config = args[:custom_config] if args.key?(:custom_config)
2975
3269
  @display_name = args[:display_name] if args.key?(:display_name)
2976
3270
  @enablement_state = args[:enablement_state] if args.key?(:enablement_state)
@@ -3804,6 +4098,11 @@ module Google
3804
4098
  # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2AzureSubscription]
3805
4099
  attr_accessor :subscription
3806
4100
 
4101
+ # Represents a Microsoft Entra tenant.
4102
+ # Corresponds to the JSON property `tenant`
4103
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2AzureTenant]
4104
+ attr_accessor :tenant
4105
+
3807
4106
  def initialize(**args)
3808
4107
  update!(**args)
3809
4108
  end
@@ -3813,6 +4112,7 @@ module Google
3813
4112
  @management_groups = args[:management_groups] if args.key?(:management_groups)
3814
4113
  @resource_group = args[:resource_group] if args.key?(:resource_group)
3815
4114
  @subscription = args[:subscription] if args.key?(:subscription)
4115
+ @tenant = args[:tenant] if args.key?(:tenant)
3816
4116
  end
3817
4117
  end
3818
4118
 
@@ -3820,6 +4120,11 @@ module Google
3820
4120
  class GoogleCloudSecuritycenterV2AzureResourceGroup
3821
4121
  include Google::Apis::Core::Hashable
3822
4122
 
4123
+ # The ID of the Azure resource group.
4124
+ # Corresponds to the JSON property `id`
4125
+ # @return [String]
4126
+ attr_accessor :id
4127
+
3823
4128
  # The name of the Azure resource group. This is not a UUID.
3824
4129
  # Corresponds to the JSON property `name`
3825
4130
  # @return [String]
@@ -3831,6 +4136,7 @@ module Google
3831
4136
 
3832
4137
  # Update properties of this object
3833
4138
  def update!(**args)
4139
+ @id = args[:id] if args.key?(:id)
3834
4140
  @name = args[:name] if args.key?(:name)
3835
4141
  end
3836
4142
  end
@@ -3861,6 +4167,32 @@ module Google
3861
4167
  end
3862
4168
  end
3863
4169
 
4170
+ # Represents a Microsoft Entra tenant.
4171
+ class GoogleCloudSecuritycenterV2AzureTenant
4172
+ include Google::Apis::Core::Hashable
4173
+
4174
+ # The display name of the Azure tenant.
4175
+ # Corresponds to the JSON property `displayName`
4176
+ # @return [String]
4177
+ attr_accessor :display_name
4178
+
4179
+ # The ID of the Microsoft Entra tenant, for example, "a11aaa11-aa11-1aa1-11aa-
4180
+ # 1aaa11a".
4181
+ # Corresponds to the JSON property `id`
4182
+ # @return [String]
4183
+ attr_accessor :id
4184
+
4185
+ def initialize(**args)
4186
+ update!(**args)
4187
+ end
4188
+
4189
+ # Update properties of this object
4190
+ def update!(**args)
4191
+ @display_name = args[:display_name] if args.key?(:display_name)
4192
+ @id = args[:id] if args.key?(:id)
4193
+ end
4194
+ end
4195
+
3864
4196
  # Information related to Google Cloud Backup and DR Service findings.
3865
4197
  class GoogleCloudSecuritycenterV2BackupDisasterRecovery
3866
4198
  include Google::Apis::Core::Hashable
@@ -4429,11 +4761,21 @@ module Google
4429
4761
  # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Cvssv3]
4430
4762
  attr_accessor :cvssv3
4431
4763
 
4764
+ # Date the first publicly available exploit or PoC was released.
4765
+ # Corresponds to the JSON property `exploitReleaseDate`
4766
+ # @return [String]
4767
+ attr_accessor :exploit_release_date
4768
+
4432
4769
  # The exploitation activity of the vulnerability in the wild.
4433
4770
  # Corresponds to the JSON property `exploitationActivity`
4434
4771
  # @return [String]
4435
4772
  attr_accessor :exploitation_activity
4436
4773
 
4774
+ # Date of the earliest known exploitation.
4775
+ # Corresponds to the JSON property `firstExploitationDate`
4776
+ # @return [String]
4777
+ attr_accessor :first_exploitation_date
4778
+
4437
4779
  # The unique identifier for the vulnerability. e.g. CVE-2021-34527
4438
4780
  # Corresponds to the JSON property `id`
4439
4781
  # @return [String]
@@ -4475,7 +4817,9 @@ module Google
4475
4817
  # Update properties of this object
4476
4818
  def update!(**args)
4477
4819
  @cvssv3 = args[:cvssv3] if args.key?(:cvssv3)
4820
+ @exploit_release_date = args[:exploit_release_date] if args.key?(:exploit_release_date)
4478
4821
  @exploitation_activity = args[:exploitation_activity] if args.key?(:exploitation_activity)
4822
+ @first_exploitation_date = args[:first_exploitation_date] if args.key?(:first_exploitation_date)
4479
4823
  @id = args[:id] if args.key?(:id)
4480
4824
  @impact = args[:impact] if args.key?(:impact)
4481
4825
  @observed_in_the_wild = args[:observed_in_the_wild] if args.key?(:observed_in_the_wild)
@@ -4562,53 +4906,31 @@ module Google
4562
4906
  end
4563
4907
  end
4564
4908
 
4565
- # Represents database access information, such as queries. A database may be a
4566
- # sub-resource of an instance (as in the case of Cloud SQL instances or Cloud
4567
- # Spanner instances), or the database instance itself. Some database resources
4568
- # might not have the [full resource name](https://google.aip.dev/122#full-
4569
- # resource-names) populated because these resource types, such as Cloud SQL
4570
- # databases, are not yet supported by Cloud Asset Inventory. In these cases only
4571
- # the display name is provided.
4572
- class GoogleCloudSecuritycenterV2Database
4909
+ # Details about a data access attempt made by a principal not authorized under
4910
+ # applicable data security policy.
4911
+ class GoogleCloudSecuritycenterV2DataAccessEvent
4573
4912
  include Google::Apis::Core::Hashable
4574
4913
 
4575
- # The human-readable name of the database that the user connected to.
4576
- # Corresponds to the JSON property `displayName`
4577
- # @return [String]
4578
- attr_accessor :display_name
4579
-
4580
- # The target usernames, roles, or groups of an SQL privilege grant, which is not
4581
- # an IAM policy change.
4582
- # Corresponds to the JSON property `grantees`
4583
- # @return [Array<String>]
4584
- attr_accessor :grantees
4585
-
4586
- # Some database resources may not have the [full resource name](https://google.
4587
- # aip.dev/122#full-resource-names) populated because these resource types are
4588
- # not yet supported by Cloud Asset Inventory (e.g. Cloud SQL databases). In
4589
- # these cases only the display name will be provided. The [full resource name](
4590
- # https://google.aip.dev/122#full-resource-names) of the database that the user
4591
- # connected to, if it is supported by Cloud Asset Inventory.
4592
- # Corresponds to the JSON property `name`
4914
+ # Unique identifier for data access event.
4915
+ # Corresponds to the JSON property `eventId`
4593
4916
  # @return [String]
4594
- attr_accessor :name
4917
+ attr_accessor :event_id
4595
4918
 
4596
- # The SQL statement that is associated with the database access.
4597
- # Corresponds to the JSON property `query`
4919
+ # Timestamp of data access event.
4920
+ # Corresponds to the JSON property `eventTime`
4598
4921
  # @return [String]
4599
- attr_accessor :query
4922
+ attr_accessor :event_time
4600
4923
 
4601
- # The username used to connect to the database. The username might not be an IAM
4602
- # principal and does not have a set format.
4603
- # Corresponds to the JSON property `userName`
4924
+ # The operation performed by the principal to access the data.
4925
+ # Corresponds to the JSON property `operation`
4604
4926
  # @return [String]
4605
- attr_accessor :user_name
4927
+ attr_accessor :operation
4606
4928
 
4607
- # The version of the database, for example, POSTGRES_14. See [the complete list](
4608
- # https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1/SqlDatabaseVersion).
4609
- # Corresponds to the JSON property `version`
4929
+ # The email address of the principal that accessed the data. The principal could
4930
+ # be a user account, service account, Google group, or other.
4931
+ # Corresponds to the JSON property `principalEmail`
4610
4932
  # @return [String]
4611
- attr_accessor :version
4933
+ attr_accessor :principal_email
4612
4934
 
4613
4935
  def initialize(**args)
4614
4936
  update!(**args)
@@ -4616,28 +4938,188 @@ module Google
4616
4938
 
4617
4939
  # Update properties of this object
4618
4940
  def update!(**args)
4619
- @display_name = args[:display_name] if args.key?(:display_name)
4620
- @grantees = args[:grantees] if args.key?(:grantees)
4621
- @name = args[:name] if args.key?(:name)
4622
- @query = args[:query] if args.key?(:query)
4623
- @user_name = args[:user_name] if args.key?(:user_name)
4624
- @version = args[:version] if args.key?(:version)
4941
+ @event_id = args[:event_id] if args.key?(:event_id)
4942
+ @event_time = args[:event_time] if args.key?(:event_time)
4943
+ @operation = args[:operation] if args.key?(:operation)
4944
+ @principal_email = args[:principal_email] if args.key?(:principal_email)
4625
4945
  end
4626
4946
  end
4627
4947
 
4628
- # Memory hash detection contributing to the binary family match.
4629
- class GoogleCloudSecuritycenterV2Detection
4948
+ # Details about a data flow event, in which either the data is moved to or is
4949
+ # accessed from a non-compliant geo-location, as defined in the applicable data
4950
+ # security policy.
4951
+ class GoogleCloudSecuritycenterV2DataFlowEvent
4630
4952
  include Google::Apis::Core::Hashable
4631
4953
 
4632
- # The name of the binary associated with the memory hash signature detection.
4633
- # Corresponds to the JSON property `binary`
4954
+ # Unique identifier for data flow event.
4955
+ # Corresponds to the JSON property `eventId`
4634
4956
  # @return [String]
4635
- attr_accessor :binary
4957
+ attr_accessor :event_id
4636
4958
 
4637
- # The percentage of memory page hashes in the signature that were matched.
4638
- # Corresponds to the JSON property `percentPagesMatched`
4639
- # @return [Float]
4640
- attr_accessor :percent_pages_matched
4959
+ # Timestamp of data flow event.
4960
+ # Corresponds to the JSON property `eventTime`
4961
+ # @return [String]
4962
+ attr_accessor :event_time
4963
+
4964
+ # The operation performed by the principal for the data flow event.
4965
+ # Corresponds to the JSON property `operation`
4966
+ # @return [String]
4967
+ attr_accessor :operation
4968
+
4969
+ # The email address of the principal that initiated the data flow event. The
4970
+ # principal could be a user account, service account, Google group, or other.
4971
+ # Corresponds to the JSON property `principalEmail`
4972
+ # @return [String]
4973
+ attr_accessor :principal_email
4974
+
4975
+ # Non-compliant location of the principal or the data destination.
4976
+ # Corresponds to the JSON property `violatedLocation`
4977
+ # @return [String]
4978
+ attr_accessor :violated_location
4979
+
4980
+ def initialize(**args)
4981
+ update!(**args)
4982
+ end
4983
+
4984
+ # Update properties of this object
4985
+ def update!(**args)
4986
+ @event_id = args[:event_id] if args.key?(:event_id)
4987
+ @event_time = args[:event_time] if args.key?(:event_time)
4988
+ @operation = args[:operation] if args.key?(:operation)
4989
+ @principal_email = args[:principal_email] if args.key?(:principal_email)
4990
+ @violated_location = args[:violated_location] if args.key?(:violated_location)
4991
+ end
4992
+ end
4993
+
4994
+ # Details about data retention deletion violations, in which the data is non-
4995
+ # compliant based on their retention or deletion time, as defined in the
4996
+ # applicable data security policy. The Data Retention Deletion (DRD) control is
4997
+ # a control of the DSPM (Data Security Posture Management) suite that enables
4998
+ # organizations to manage data retention and deletion policies in compliance
4999
+ # with regulations, such as GDPR and CRPA. DRD supports two primary policy types:
5000
+ # maximum storage length (max TTL) and minimum storage length (min TTL). Both
5001
+ # are aimed at helping organizations meet regulatory and data management
5002
+ # commitments.
5003
+ class GoogleCloudSecuritycenterV2DataRetentionDeletionEvent
5004
+ include Google::Apis::Core::Hashable
5005
+
5006
+ # Number of objects that violated the policy for this resource. If the number is
5007
+ # less than 1,000, then the value of this field is the exact number. If the
5008
+ # number of objects that violated the policy is greater than or equal to 1,000,
5009
+ # then the value of this field is 1000.
5010
+ # Corresponds to the JSON property `dataObjectCount`
5011
+ # @return [Fixnum]
5012
+ attr_accessor :data_object_count
5013
+
5014
+ # Timestamp indicating when the event was detected.
5015
+ # Corresponds to the JSON property `eventDetectionTime`
5016
+ # @return [String]
5017
+ attr_accessor :event_detection_time
5018
+
5019
+ # Type of the DRD event.
5020
+ # Corresponds to the JSON property `eventType`
5021
+ # @return [String]
5022
+ attr_accessor :event_type
5023
+
5024
+ # Maximum duration of retention allowed from the DRD control. This comes from
5025
+ # the DRD control where users set a max TTL for their data. For example, suppose
5026
+ # that a user set the max TTL for a Cloud Storage bucket to 90 days. However, an
5027
+ # object in that bucket is 100 days old. In this case, a
5028
+ # DataRetentionDeletionEvent will be generated for that Cloud Storage bucket,
5029
+ # and the max_retention_allowed is 90 days.
5030
+ # Corresponds to the JSON property `maxRetentionAllowed`
5031
+ # @return [String]
5032
+ attr_accessor :max_retention_allowed
5033
+
5034
+ def initialize(**args)
5035
+ update!(**args)
5036
+ end
5037
+
5038
+ # Update properties of this object
5039
+ def update!(**args)
5040
+ @data_object_count = args[:data_object_count] if args.key?(:data_object_count)
5041
+ @event_detection_time = args[:event_detection_time] if args.key?(:event_detection_time)
5042
+ @event_type = args[:event_type] if args.key?(:event_type)
5043
+ @max_retention_allowed = args[:max_retention_allowed] if args.key?(:max_retention_allowed)
5044
+ end
5045
+ end
5046
+
5047
+ # Represents database access information, such as queries. A database may be a
5048
+ # sub-resource of an instance (as in the case of Cloud SQL instances or Cloud
5049
+ # Spanner instances), or the database instance itself. Some database resources
5050
+ # might not have the [full resource name](https://google.aip.dev/122#full-
5051
+ # resource-names) populated because these resource types, such as Cloud SQL
5052
+ # databases, are not yet supported by Cloud Asset Inventory. In these cases only
5053
+ # the display name is provided.
5054
+ class GoogleCloudSecuritycenterV2Database
5055
+ include Google::Apis::Core::Hashable
5056
+
5057
+ # The human-readable name of the database that the user connected to.
5058
+ # Corresponds to the JSON property `displayName`
5059
+ # @return [String]
5060
+ attr_accessor :display_name
5061
+
5062
+ # The target usernames, roles, or groups of an SQL privilege grant, which is not
5063
+ # an IAM policy change.
5064
+ # Corresponds to the JSON property `grantees`
5065
+ # @return [Array<String>]
5066
+ attr_accessor :grantees
5067
+
5068
+ # Some database resources may not have the [full resource name](https://google.
5069
+ # aip.dev/122#full-resource-names) populated because these resource types are
5070
+ # not yet supported by Cloud Asset Inventory (e.g. Cloud SQL databases). In
5071
+ # these cases only the display name will be provided. The [full resource name](
5072
+ # https://google.aip.dev/122#full-resource-names) of the database that the user
5073
+ # connected to, if it is supported by Cloud Asset Inventory.
5074
+ # Corresponds to the JSON property `name`
5075
+ # @return [String]
5076
+ attr_accessor :name
5077
+
5078
+ # The SQL statement that is associated with the database access.
5079
+ # Corresponds to the JSON property `query`
5080
+ # @return [String]
5081
+ attr_accessor :query
5082
+
5083
+ # The username used to connect to the database. The username might not be an IAM
5084
+ # principal and does not have a set format.
5085
+ # Corresponds to the JSON property `userName`
5086
+ # @return [String]
5087
+ attr_accessor :user_name
5088
+
5089
+ # The version of the database, for example, POSTGRES_14. See [the complete list](
5090
+ # https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1/SqlDatabaseVersion).
5091
+ # Corresponds to the JSON property `version`
5092
+ # @return [String]
5093
+ attr_accessor :version
5094
+
5095
+ def initialize(**args)
5096
+ update!(**args)
5097
+ end
5098
+
5099
+ # Update properties of this object
5100
+ def update!(**args)
5101
+ @display_name = args[:display_name] if args.key?(:display_name)
5102
+ @grantees = args[:grantees] if args.key?(:grantees)
5103
+ @name = args[:name] if args.key?(:name)
5104
+ @query = args[:query] if args.key?(:query)
5105
+ @user_name = args[:user_name] if args.key?(:user_name)
5106
+ @version = args[:version] if args.key?(:version)
5107
+ end
5108
+ end
5109
+
5110
+ # Memory hash detection contributing to the binary family match.
5111
+ class GoogleCloudSecuritycenterV2Detection
5112
+ include Google::Apis::Core::Hashable
5113
+
5114
+ # The name of the binary associated with the memory hash signature detection.
5115
+ # Corresponds to the JSON property `binary`
5116
+ # @return [String]
5117
+ attr_accessor :binary
5118
+
5119
+ # The percentage of memory page hashes in the signature that were matched.
5120
+ # Corresponds to the JSON property `percentPagesMatched`
5121
+ # @return [Float]
5122
+ attr_accessor :percent_pages_matched
4641
5123
 
4642
5124
  def initialize(**args)
4643
5125
  update!(**args)
@@ -4650,6 +5132,26 @@ module Google
4650
5132
  end
4651
5133
  end
4652
5134
 
5135
+ # Contains information about the disk associated with the finding.
5136
+ class GoogleCloudSecuritycenterV2Disk
5137
+ include Google::Apis::Core::Hashable
5138
+
5139
+ # The name of the disk, for example, "https://www.googleapis.com/compute/v1/
5140
+ # projects/project-id/zones/zone-id/disks/disk-id".
5141
+ # Corresponds to the JSON property `name`
5142
+ # @return [String]
5143
+ attr_accessor :name
5144
+
5145
+ def initialize(**args)
5146
+ update!(**args)
5147
+ end
5148
+
5149
+ # Update properties of this object
5150
+ def update!(**args)
5151
+ @name = args[:name] if args.key?(:name)
5152
+ end
5153
+ end
5154
+
4653
5155
  # Path of the file in terms of underlying disk/partition identifiers.
4654
5156
  class GoogleCloudSecuritycenterV2DiskPath
4655
5157
  include Google::Apis::Core::Hashable
@@ -4677,6 +5179,33 @@ module Google
4677
5179
  end
4678
5180
  end
4679
5181
 
5182
+ # The record of a dynamic mute rule that matches the finding.
5183
+ class GoogleCloudSecuritycenterV2DynamicMuteRecord
5184
+ include Google::Apis::Core::Hashable
5185
+
5186
+ # When the dynamic mute rule first matched the finding.
5187
+ # Corresponds to the JSON property `matchTime`
5188
+ # @return [String]
5189
+ attr_accessor :match_time
5190
+
5191
+ # The relative resource name of the mute rule, represented by a mute config,
5192
+ # that created this record, for example `organizations/123/muteConfigs/
5193
+ # mymuteconfig` or `organizations/123/locations/global/muteConfigs/mymuteconfig`.
5194
+ # Corresponds to the JSON property `muteConfig`
5195
+ # @return [String]
5196
+ attr_accessor :mute_config
5197
+
5198
+ def initialize(**args)
5199
+ update!(**args)
5200
+ end
5201
+
5202
+ # Update properties of this object
5203
+ def update!(**args)
5204
+ @match_time = args[:match_time] if args.key?(:match_time)
5205
+ @mute_config = args[:mute_config] if args.key?(:mute_config)
5206
+ end
5207
+ end
5208
+
4680
5209
  # A name-value pair representing an environment variable used in an operating
4681
5210
  # system process.
4682
5211
  class GoogleCloudSecuritycenterV2EnvironmentVariable
@@ -5015,6 +5544,21 @@ module Google
5015
5544
  # @return [String]
5016
5545
  attr_accessor :create_time
5017
5546
 
5547
+ # Data access events associated with the finding.
5548
+ # Corresponds to the JSON property `dataAccessEvents`
5549
+ # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2DataAccessEvent>]
5550
+ attr_accessor :data_access_events
5551
+
5552
+ # Data flow events associated with the finding.
5553
+ # Corresponds to the JSON property `dataFlowEvents`
5554
+ # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2DataFlowEvent>]
5555
+ attr_accessor :data_flow_events
5556
+
5557
+ # Data retention deletion events associated with the finding.
5558
+ # Corresponds to the JSON property `dataRetentionDeletionEvents`
5559
+ # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2DataRetentionDeletionEvent>]
5560
+ attr_accessor :data_retention_deletion_events
5561
+
5018
5562
  # Represents database access information, such as queries. A database may be a
5019
5563
  # sub-resource of an instance (as in the case of Cloud SQL instances or Cloud
5020
5564
  # Spanner instances), or the database instance itself. Some database resources
@@ -5031,6 +5575,11 @@ module Google
5031
5575
  # @return [String]
5032
5576
  attr_accessor :description
5033
5577
 
5578
+ # Contains information about the disk associated with the finding.
5579
+ # Corresponds to the JSON property `disk`
5580
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Disk]
5581
+ attr_accessor :disk
5582
+
5034
5583
  # The time the finding was first detected. If an existing finding is updated,
5035
5584
  # then this is the time the update occurred. For example, if the finding
5036
5585
  # represents an open firewall, this property captures the time the detector
@@ -5132,6 +5681,12 @@ module Google
5132
5681
  # @return [String]
5133
5682
  attr_accessor :mute
5134
5683
 
5684
+ # Mute information about the finding, including whether the finding has a static
5685
+ # mute or any matching dynamic mute rules.
5686
+ # Corresponds to the JSON property `muteInfo`
5687
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2MuteInfo]
5688
+ attr_accessor :mute_info
5689
+
5135
5690
  # Records additional information about the mute operation, for example, the [
5136
5691
  # mute configuration](https://cloud.google.com/security-command-center/docs/how-
5137
5692
  # to-mute-findings) that muted the finding and the user who muted the finding.
@@ -5215,44 +5770,604 @@ module Google
5215
5770
  # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2SecurityMarks]
5216
5771
  attr_accessor :security_marks
5217
5772
 
5218
- # Represents a posture that is deployed on Google Cloud by the Security Command
5219
- # Center Posture Management service. A posture contains one or more policy sets.
5220
- # A policy set is a group of policies that enforce a set of security rules on
5221
- # Google Cloud.
5222
- # Corresponds to the JSON property `securityPosture`
5223
- # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2SecurityPosture]
5224
- attr_accessor :security_posture
5773
+ # Represents a posture that is deployed on Google Cloud by the Security Command
5774
+ # Center Posture Management service. A posture contains one or more policy sets.
5775
+ # A policy set is a group of policies that enforce a set of security rules on
5776
+ # Google Cloud.
5777
+ # Corresponds to the JSON property `securityPosture`
5778
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2SecurityPosture]
5779
+ attr_accessor :security_posture
5780
+
5781
+ # The severity of the finding. This field is managed by the source that writes
5782
+ # the finding.
5783
+ # Corresponds to the JSON property `severity`
5784
+ # @return [String]
5785
+ attr_accessor :severity
5786
+
5787
+ # Source specific properties. These properties are managed by the source that
5788
+ # writes the finding. The key names in the source_properties map must be between
5789
+ # 1 and 255 characters, and must start with a letter and contain alphanumeric
5790
+ # characters or underscores only.
5791
+ # Corresponds to the JSON property `sourceProperties`
5792
+ # @return [Hash<String,Object>]
5793
+ attr_accessor :source_properties
5794
+
5795
+ # Output only. The state of the finding.
5796
+ # Corresponds to the JSON property `state`
5797
+ # @return [String]
5798
+ attr_accessor :state
5799
+
5800
+ # Contains details about a group of security issues that, when the issues occur
5801
+ # together, represent a greater risk than when the issues occur independently. A
5802
+ # group of such issues is referred to as a toxic combination.
5803
+ # Corresponds to the JSON property `toxicCombination`
5804
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2ToxicCombination]
5805
+ attr_accessor :toxic_combination
5806
+
5807
+ # Refers to common vulnerability fields e.g. cve, cvss, cwe etc.
5808
+ # Corresponds to the JSON property `vulnerability`
5809
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Vulnerability]
5810
+ attr_accessor :vulnerability
5811
+
5812
+ def initialize(**args)
5813
+ update!(**args)
5814
+ end
5815
+
5816
+ # Update properties of this object
5817
+ def update!(**args)
5818
+ @access = args[:access] if args.key?(:access)
5819
+ @application = args[:application] if args.key?(:application)
5820
+ @attack_exposure = args[:attack_exposure] if args.key?(:attack_exposure)
5821
+ @backup_disaster_recovery = args[:backup_disaster_recovery] if args.key?(:backup_disaster_recovery)
5822
+ @canonical_name = args[:canonical_name] if args.key?(:canonical_name)
5823
+ @category = args[:category] if args.key?(:category)
5824
+ @cloud_armor = args[:cloud_armor] if args.key?(:cloud_armor)
5825
+ @cloud_dlp_data_profile = args[:cloud_dlp_data_profile] if args.key?(:cloud_dlp_data_profile)
5826
+ @cloud_dlp_inspection = args[:cloud_dlp_inspection] if args.key?(:cloud_dlp_inspection)
5827
+ @compliances = args[:compliances] if args.key?(:compliances)
5828
+ @connections = args[:connections] if args.key?(:connections)
5829
+ @contacts = args[:contacts] if args.key?(:contacts)
5830
+ @containers = args[:containers] if args.key?(:containers)
5831
+ @create_time = args[:create_time] if args.key?(:create_time)
5832
+ @data_access_events = args[:data_access_events] if args.key?(:data_access_events)
5833
+ @data_flow_events = args[:data_flow_events] if args.key?(:data_flow_events)
5834
+ @data_retention_deletion_events = args[:data_retention_deletion_events] if args.key?(:data_retention_deletion_events)
5835
+ @database = args[:database] if args.key?(:database)
5836
+ @description = args[:description] if args.key?(:description)
5837
+ @disk = args[:disk] if args.key?(:disk)
5838
+ @event_time = args[:event_time] if args.key?(:event_time)
5839
+ @exfiltration = args[:exfiltration] if args.key?(:exfiltration)
5840
+ @external_systems = args[:external_systems] if args.key?(:external_systems)
5841
+ @external_uri = args[:external_uri] if args.key?(:external_uri)
5842
+ @files = args[:files] if args.key?(:files)
5843
+ @finding_class = args[:finding_class] if args.key?(:finding_class)
5844
+ @group_memberships = args[:group_memberships] if args.key?(:group_memberships)
5845
+ @iam_bindings = args[:iam_bindings] if args.key?(:iam_bindings)
5846
+ @indicator = args[:indicator] if args.key?(:indicator)
5847
+ @kernel_rootkit = args[:kernel_rootkit] if args.key?(:kernel_rootkit)
5848
+ @kubernetes = args[:kubernetes] if args.key?(:kubernetes)
5849
+ @load_balancers = args[:load_balancers] if args.key?(:load_balancers)
5850
+ @log_entries = args[:log_entries] if args.key?(:log_entries)
5851
+ @mitre_attack = args[:mitre_attack] if args.key?(:mitre_attack)
5852
+ @module_name = args[:module_name] if args.key?(:module_name)
5853
+ @mute = args[:mute] if args.key?(:mute)
5854
+ @mute_info = args[:mute_info] if args.key?(:mute_info)
5855
+ @mute_initiator = args[:mute_initiator] if args.key?(:mute_initiator)
5856
+ @mute_update_time = args[:mute_update_time] if args.key?(:mute_update_time)
5857
+ @name = args[:name] if args.key?(:name)
5858
+ @next_steps = args[:next_steps] if args.key?(:next_steps)
5859
+ @notebook = args[:notebook] if args.key?(:notebook)
5860
+ @org_policies = args[:org_policies] if args.key?(:org_policies)
5861
+ @parent = args[:parent] if args.key?(:parent)
5862
+ @parent_display_name = args[:parent_display_name] if args.key?(:parent_display_name)
5863
+ @processes = args[:processes] if args.key?(:processes)
5864
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
5865
+ @security_marks = args[:security_marks] if args.key?(:security_marks)
5866
+ @security_posture = args[:security_posture] if args.key?(:security_posture)
5867
+ @severity = args[:severity] if args.key?(:severity)
5868
+ @source_properties = args[:source_properties] if args.key?(:source_properties)
5869
+ @state = args[:state] if args.key?(:state)
5870
+ @toxic_combination = args[:toxic_combination] if args.key?(:toxic_combination)
5871
+ @vulnerability = args[:vulnerability] if args.key?(:vulnerability)
5872
+ end
5873
+ end
5874
+
5875
+ # Message that contains the resource name and display name of a folder resource.
5876
+ class GoogleCloudSecuritycenterV2Folder
5877
+ include Google::Apis::Core::Hashable
5878
+
5879
+ # Full resource name of this folder. See: https://cloud.google.com/apis/design/
5880
+ # resource_names#full_resource_name
5881
+ # Corresponds to the JSON property `resourceFolder`
5882
+ # @return [String]
5883
+ attr_accessor :resource_folder
5884
+
5885
+ # The user defined display name for this folder.
5886
+ # Corresponds to the JSON property `resourceFolderDisplayName`
5887
+ # @return [String]
5888
+ attr_accessor :resource_folder_display_name
5889
+
5890
+ def initialize(**args)
5891
+ update!(**args)
5892
+ end
5893
+
5894
+ # Update properties of this object
5895
+ def update!(**args)
5896
+ @resource_folder = args[:resource_folder] if args.key?(:resource_folder)
5897
+ @resource_folder_display_name = args[:resource_folder_display_name] if args.key?(:resource_folder_display_name)
5898
+ end
5899
+ end
5900
+
5901
+ # Represents a geographical location for a given access.
5902
+ class GoogleCloudSecuritycenterV2Geolocation
5903
+ include Google::Apis::Core::Hashable
5904
+
5905
+ # A CLDR.
5906
+ # Corresponds to the JSON property `regionCode`
5907
+ # @return [String]
5908
+ attr_accessor :region_code
5909
+
5910
+ def initialize(**args)
5911
+ update!(**args)
5912
+ end
5913
+
5914
+ # Update properties of this object
5915
+ def update!(**args)
5916
+ @region_code = args[:region_code] if args.key?(:region_code)
5917
+ end
5918
+ end
5919
+
5920
+ # Contains details about groups of which this finding is a member. A group is a
5921
+ # collection of findings that are related in some way.
5922
+ class GoogleCloudSecuritycenterV2GroupMembership
5923
+ include Google::Apis::Core::Hashable
5924
+
5925
+ # ID of the group.
5926
+ # Corresponds to the JSON property `groupId`
5927
+ # @return [String]
5928
+ attr_accessor :group_id
5929
+
5930
+ # Type of group.
5931
+ # Corresponds to the JSON property `groupType`
5932
+ # @return [String]
5933
+ attr_accessor :group_type
5934
+
5935
+ def initialize(**args)
5936
+ update!(**args)
5937
+ end
5938
+
5939
+ # Update properties of this object
5940
+ def update!(**args)
5941
+ @group_id = args[:group_id] if args.key?(:group_id)
5942
+ @group_type = args[:group_type] if args.key?(:group_type)
5943
+ end
5944
+ end
5945
+
5946
+ # Represents a particular IAM binding, which captures a member's role addition,
5947
+ # removal, or state.
5948
+ class GoogleCloudSecuritycenterV2IamBinding
5949
+ include Google::Apis::Core::Hashable
5950
+
5951
+ # The action that was performed on a Binding.
5952
+ # Corresponds to the JSON property `action`
5953
+ # @return [String]
5954
+ attr_accessor :action
5955
+
5956
+ # A single identity requesting access for a Cloud Platform resource, for example,
5957
+ # "foo@google.com".
5958
+ # Corresponds to the JSON property `member`
5959
+ # @return [String]
5960
+ attr_accessor :member
5961
+
5962
+ # Role that is assigned to "members". For example, "roles/viewer", "roles/editor"
5963
+ # , or "roles/owner".
5964
+ # Corresponds to the JSON property `role`
5965
+ # @return [String]
5966
+ attr_accessor :role
5967
+
5968
+ def initialize(**args)
5969
+ update!(**args)
5970
+ end
5971
+
5972
+ # Update properties of this object
5973
+ def update!(**args)
5974
+ @action = args[:action] if args.key?(:action)
5975
+ @member = args[:member] if args.key?(:member)
5976
+ @role = args[:role] if args.key?(:role)
5977
+ end
5978
+ end
5979
+
5980
+ # Represents what's commonly known as an _indicator of compromise_ (IoC) in
5981
+ # computer forensics. This is an artifact observed on a network or in an
5982
+ # operating system that, with high confidence, indicates a computer intrusion.
5983
+ # For more information, see [Indicator of compromise](https://en.wikipedia.org/
5984
+ # wiki/Indicator_of_compromise).
5985
+ class GoogleCloudSecuritycenterV2Indicator
5986
+ include Google::Apis::Core::Hashable
5987
+
5988
+ # List of domains associated to the Finding.
5989
+ # Corresponds to the JSON property `domains`
5990
+ # @return [Array<String>]
5991
+ attr_accessor :domains
5992
+
5993
+ # The list of IP addresses that are associated with the finding.
5994
+ # Corresponds to the JSON property `ipAddresses`
5995
+ # @return [Array<String>]
5996
+ attr_accessor :ip_addresses
5997
+
5998
+ # The list of matched signatures indicating that the given process is present in
5999
+ # the environment.
6000
+ # Corresponds to the JSON property `signatures`
6001
+ # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2ProcessSignature>]
6002
+ attr_accessor :signatures
6003
+
6004
+ # The list of URIs associated to the Findings.
6005
+ # Corresponds to the JSON property `uris`
6006
+ # @return [Array<String>]
6007
+ attr_accessor :uris
6008
+
6009
+ def initialize(**args)
6010
+ update!(**args)
6011
+ end
6012
+
6013
+ # Update properties of this object
6014
+ def update!(**args)
6015
+ @domains = args[:domains] if args.key?(:domains)
6016
+ @ip_addresses = args[:ip_addresses] if args.key?(:ip_addresses)
6017
+ @signatures = args[:signatures] if args.key?(:signatures)
6018
+ @uris = args[:uris] if args.key?(:uris)
6019
+ end
6020
+ end
6021
+
6022
+ # Security Command Center Issue.
6023
+ class GoogleCloudSecuritycenterV2Issue
6024
+ include Google::Apis::Core::Hashable
6025
+
6026
+ # Output only. The time the issue was created.
6027
+ # Corresponds to the JSON property `createTime`
6028
+ # @return [String]
6029
+ attr_accessor :create_time
6030
+
6031
+ # The description of the issue in Markdown format.
6032
+ # Corresponds to the JSON property `description`
6033
+ # @return [String]
6034
+ attr_accessor :description
6035
+
6036
+ # The finding category or rule name that generated the issue.
6037
+ # Corresponds to the JSON property `detection`
6038
+ # @return [String]
6039
+ attr_accessor :detection
6040
+
6041
+ # The domains of the issue.
6042
+ # Corresponds to the JSON property `domains`
6043
+ # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2IssueDomain>]
6044
+ attr_accessor :domains
6045
+
6046
+ # The exposure score of the issue.
6047
+ # Corresponds to the JSON property `exposureScore`
6048
+ # @return [Float]
6049
+ attr_accessor :exposure_score
6050
+
6051
+ # The type of the issue.
6052
+ # Corresponds to the JSON property `issueType`
6053
+ # @return [String]
6054
+ attr_accessor :issue_type
6055
+
6056
+ # The time the issue was last observed.
6057
+ # Corresponds to the JSON property `lastObservationTime`
6058
+ # @return [String]
6059
+ attr_accessor :last_observation_time
6060
+
6061
+ # The mute information of the issue.
6062
+ # Corresponds to the JSON property `mute`
6063
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2IssueMute]
6064
+ attr_accessor :mute
6065
+
6066
+ # Identifier. The name of the issue. Format: organizations/`organization`/
6067
+ # locations/`location`/issues/`issue`
6068
+ # Corresponds to the JSON property `name`
6069
+ # @return [String]
6070
+ attr_accessor :name
6071
+
6072
+ # A resource associated with the an issue.
6073
+ # Corresponds to the JSON property `primaryResource`
6074
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2IssueResource]
6075
+ attr_accessor :primary_resource
6076
+
6077
+ # The findings related to the issue.
6078
+ # Corresponds to the JSON property `relatedFindings`
6079
+ # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2IssueFinding>]
6080
+ attr_accessor :related_findings
6081
+
6082
+ # Approaches to remediate the issue in Markdown format.
6083
+ # Corresponds to the JSON property `remediations`
6084
+ # @return [Array<String>]
6085
+ attr_accessor :remediations
6086
+
6087
+ # Additional resources associated with the issue.
6088
+ # Corresponds to the JSON property `secondaryResources`
6089
+ # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2IssueResource>]
6090
+ attr_accessor :secondary_resources
6091
+
6092
+ # The security context of the issue.
6093
+ # Corresponds to the JSON property `securityContexts`
6094
+ # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2IssueSecurityContext>]
6095
+ attr_accessor :security_contexts
6096
+
6097
+ # The severity of the issue.
6098
+ # Corresponds to the JSON property `severity`
6099
+ # @return [String]
6100
+ attr_accessor :severity
6101
+
6102
+ # Output only. The state of the issue.
6103
+ # Corresponds to the JSON property `state`
6104
+ # @return [String]
6105
+ attr_accessor :state
6106
+
6107
+ # Output only. The time the issue was last updated.
6108
+ # Corresponds to the JSON property `updateTime`
6109
+ # @return [String]
6110
+ attr_accessor :update_time
6111
+
6112
+ def initialize(**args)
6113
+ update!(**args)
6114
+ end
6115
+
6116
+ # Update properties of this object
6117
+ def update!(**args)
6118
+ @create_time = args[:create_time] if args.key?(:create_time)
6119
+ @description = args[:description] if args.key?(:description)
6120
+ @detection = args[:detection] if args.key?(:detection)
6121
+ @domains = args[:domains] if args.key?(:domains)
6122
+ @exposure_score = args[:exposure_score] if args.key?(:exposure_score)
6123
+ @issue_type = args[:issue_type] if args.key?(:issue_type)
6124
+ @last_observation_time = args[:last_observation_time] if args.key?(:last_observation_time)
6125
+ @mute = args[:mute] if args.key?(:mute)
6126
+ @name = args[:name] if args.key?(:name)
6127
+ @primary_resource = args[:primary_resource] if args.key?(:primary_resource)
6128
+ @related_findings = args[:related_findings] if args.key?(:related_findings)
6129
+ @remediations = args[:remediations] if args.key?(:remediations)
6130
+ @secondary_resources = args[:secondary_resources] if args.key?(:secondary_resources)
6131
+ @security_contexts = args[:security_contexts] if args.key?(:security_contexts)
6132
+ @severity = args[:severity] if args.key?(:severity)
6133
+ @state = args[:state] if args.key?(:state)
6134
+ @update_time = args[:update_time] if args.key?(:update_time)
6135
+ end
6136
+ end
6137
+
6138
+ # The domains of an issue.
6139
+ class GoogleCloudSecuritycenterV2IssueDomain
6140
+ include Google::Apis::Core::Hashable
6141
+
6142
+ # The domain category of the issue.
6143
+ # Corresponds to the JSON property `domainCategory`
6144
+ # @return [String]
6145
+ attr_accessor :domain_category
6146
+
6147
+ def initialize(**args)
6148
+ update!(**args)
6149
+ end
6150
+
6151
+ # Update properties of this object
6152
+ def update!(**args)
6153
+ @domain_category = args[:domain_category] if args.key?(:domain_category)
6154
+ end
6155
+ end
6156
+
6157
+ # Finding related to an issue.
6158
+ class GoogleCloudSecuritycenterV2IssueFinding
6159
+ include Google::Apis::Core::Hashable
6160
+
6161
+ # The CVE of the finding.
6162
+ # Corresponds to the JSON property `cve`
6163
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2IssueFindingCve]
6164
+ attr_accessor :cve
6165
+
6166
+ # The name of the finding.
6167
+ # Corresponds to the JSON property `name`
6168
+ # @return [String]
6169
+ attr_accessor :name
6170
+
6171
+ # The security bulletin of the finding.
6172
+ # Corresponds to the JSON property `securityBulletin`
6173
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2IssueFindingSecurityBulletin]
6174
+ attr_accessor :security_bulletin
6175
+
6176
+ def initialize(**args)
6177
+ update!(**args)
6178
+ end
6179
+
6180
+ # Update properties of this object
6181
+ def update!(**args)
6182
+ @cve = args[:cve] if args.key?(:cve)
6183
+ @name = args[:name] if args.key?(:name)
6184
+ @security_bulletin = args[:security_bulletin] if args.key?(:security_bulletin)
6185
+ end
6186
+ end
6187
+
6188
+ # The CVE of the finding.
6189
+ class GoogleCloudSecuritycenterV2IssueFindingCve
6190
+ include Google::Apis::Core::Hashable
6191
+
6192
+ # The CVE name.
6193
+ # Corresponds to the JSON property `name`
6194
+ # @return [String]
6195
+ attr_accessor :name
6196
+
6197
+ def initialize(**args)
6198
+ update!(**args)
6199
+ end
6200
+
6201
+ # Update properties of this object
6202
+ def update!(**args)
6203
+ @name = args[:name] if args.key?(:name)
6204
+ end
6205
+ end
6206
+
6207
+ # The security bulletin of the finding.
6208
+ class GoogleCloudSecuritycenterV2IssueFindingSecurityBulletin
6209
+ include Google::Apis::Core::Hashable
6210
+
6211
+ # The security bulletin name.
6212
+ # Corresponds to the JSON property `name`
6213
+ # @return [String]
6214
+ attr_accessor :name
6215
+
6216
+ def initialize(**args)
6217
+ update!(**args)
6218
+ end
6219
+
6220
+ # Update properties of this object
6221
+ def update!(**args)
6222
+ @name = args[:name] if args.key?(:name)
6223
+ end
6224
+ end
6225
+
6226
+ # The mute information of the issue.
6227
+ class GoogleCloudSecuritycenterV2IssueMute
6228
+ include Google::Apis::Core::Hashable
6229
+
6230
+ # The email address of the user who last changed the mute state of the issue.
6231
+ # Corresponds to the JSON property `muteInitiator`
6232
+ # @return [String]
6233
+ attr_accessor :mute_initiator
6234
+
6235
+ # The user-provided reason for muting the issue.
6236
+ # Corresponds to the JSON property `muteReason`
6237
+ # @return [String]
6238
+ attr_accessor :mute_reason
6239
+
6240
+ # Output only. The mute state of the issue.
6241
+ # Corresponds to the JSON property `muteState`
6242
+ # @return [String]
6243
+ attr_accessor :mute_state
6244
+
6245
+ # The time the issue was muted.
6246
+ # Corresponds to the JSON property `muteUpdateTime`
6247
+ # @return [String]
6248
+ attr_accessor :mute_update_time
6249
+
6250
+ def initialize(**args)
6251
+ update!(**args)
6252
+ end
6253
+
6254
+ # Update properties of this object
6255
+ def update!(**args)
6256
+ @mute_initiator = args[:mute_initiator] if args.key?(:mute_initiator)
6257
+ @mute_reason = args[:mute_reason] if args.key?(:mute_reason)
6258
+ @mute_state = args[:mute_state] if args.key?(:mute_state)
6259
+ @mute_update_time = args[:mute_update_time] if args.key?(:mute_update_time)
6260
+ end
6261
+ end
6262
+
6263
+ # A resource associated with the an issue.
6264
+ class GoogleCloudSecuritycenterV2IssueResource
6265
+ include Google::Apis::Core::Hashable
6266
+
6267
+ # The AWS metadata of a resource associated with an issue.
6268
+ # Corresponds to the JSON property `awsMetadata`
6269
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2IssueResourceAwsMetadata]
6270
+ attr_accessor :aws_metadata
6271
+
6272
+ # The Azure metadata of a resource associated with an issue.
6273
+ # Corresponds to the JSON property `azureMetadata`
6274
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2IssueResourceAzureMetadata]
6275
+ attr_accessor :azure_metadata
6276
+
6277
+ # The cloud provider of the resource associated with the issue.
6278
+ # Corresponds to the JSON property `cloudProvider`
6279
+ # @return [String]
6280
+ attr_accessor :cloud_provider
6281
+
6282
+ # The resource-type specific display name of the resource associated with the
6283
+ # issue.
6284
+ # Corresponds to the JSON property `displayName`
6285
+ # @return [String]
6286
+ attr_accessor :display_name
6287
+
6288
+ # Google Cloud metadata of a resource associated with an issue.
6289
+ # Corresponds to the JSON property `googleCloudMetadata`
6290
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2IssueResourceGoogleCloudMetadata]
6291
+ attr_accessor :google_cloud_metadata
6292
+
6293
+ # The full resource name of the resource associated with the issue.
6294
+ # Corresponds to the JSON property `name`
6295
+ # @return [String]
6296
+ attr_accessor :name
6297
+
6298
+ # The type of the resource associated with the issue.
6299
+ # Corresponds to the JSON property `type`
6300
+ # @return [String]
6301
+ attr_accessor :type
6302
+
6303
+ def initialize(**args)
6304
+ update!(**args)
6305
+ end
6306
+
6307
+ # Update properties of this object
6308
+ def update!(**args)
6309
+ @aws_metadata = args[:aws_metadata] if args.key?(:aws_metadata)
6310
+ @azure_metadata = args[:azure_metadata] if args.key?(:azure_metadata)
6311
+ @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider)
6312
+ @display_name = args[:display_name] if args.key?(:display_name)
6313
+ @google_cloud_metadata = args[:google_cloud_metadata] if args.key?(:google_cloud_metadata)
6314
+ @name = args[:name] if args.key?(:name)
6315
+ @type = args[:type] if args.key?(:type)
6316
+ end
6317
+ end
6318
+
6319
+ # The AWS metadata of a resource associated with an issue.
6320
+ class GoogleCloudSecuritycenterV2IssueResourceAwsMetadata
6321
+ include Google::Apis::Core::Hashable
6322
+
6323
+ # The AWS account of the resource associated with the issue.
6324
+ # Corresponds to the JSON property `account`
6325
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2IssueResourceAwsMetadataAwsAccount]
6326
+ attr_accessor :account
6327
+
6328
+ def initialize(**args)
6329
+ update!(**args)
6330
+ end
6331
+
6332
+ # Update properties of this object
6333
+ def update!(**args)
6334
+ @account = args[:account] if args.key?(:account)
6335
+ end
6336
+ end
6337
+
6338
+ # The AWS account of the resource associated with the issue.
6339
+ class GoogleCloudSecuritycenterV2IssueResourceAwsMetadataAwsAccount
6340
+ include Google::Apis::Core::Hashable
6341
+
6342
+ # The AWS account ID of the resource associated with the issue.
6343
+ # Corresponds to the JSON property `id`
6344
+ # @return [String]
6345
+ attr_accessor :id
5225
6346
 
5226
- # The severity of the finding. This field is managed by the source that writes
5227
- # the finding.
5228
- # Corresponds to the JSON property `severity`
6347
+ # The AWS account name of the resource associated with the issue.
6348
+ # Corresponds to the JSON property `name`
5229
6349
  # @return [String]
5230
- attr_accessor :severity
6350
+ attr_accessor :name
5231
6351
 
5232
- # Source specific properties. These properties are managed by the source that
5233
- # writes the finding. The key names in the source_properties map must be between
5234
- # 1 and 255 characters, and must start with a letter and contain alphanumeric
5235
- # characters or underscores only.
5236
- # Corresponds to the JSON property `sourceProperties`
5237
- # @return [Hash<String,Object>]
5238
- attr_accessor :source_properties
6352
+ def initialize(**args)
6353
+ update!(**args)
6354
+ end
5239
6355
 
5240
- # Output only. The state of the finding.
5241
- # Corresponds to the JSON property `state`
5242
- # @return [String]
5243
- attr_accessor :state
6356
+ # Update properties of this object
6357
+ def update!(**args)
6358
+ @id = args[:id] if args.key?(:id)
6359
+ @name = args[:name] if args.key?(:name)
6360
+ end
6361
+ end
5244
6362
 
5245
- # Contains details about a group of security issues that, when the issues occur
5246
- # together, represent a greater risk than when the issues occur independently. A
5247
- # group of such issues is referred to as a toxic combination.
5248
- # Corresponds to the JSON property `toxicCombination`
5249
- # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2ToxicCombination]
5250
- attr_accessor :toxic_combination
6363
+ # The Azure metadata of a resource associated with an issue.
6364
+ class GoogleCloudSecuritycenterV2IssueResourceAzureMetadata
6365
+ include Google::Apis::Core::Hashable
5251
6366
 
5252
- # Refers to common vulnerability fields e.g. cve, cvss, cwe etc.
5253
- # Corresponds to the JSON property `vulnerability`
5254
- # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Vulnerability]
5255
- attr_accessor :vulnerability
6367
+ # The Azure subscription of the resource associated with the issue.
6368
+ # Corresponds to the JSON property `subscription`
6369
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2IssueResourceAzureMetadataAzureSubscription]
6370
+ attr_accessor :subscription
5256
6371
 
5257
6372
  def initialize(**args)
5258
6373
  update!(**args)
@@ -5260,72 +6375,23 @@ module Google
5260
6375
 
5261
6376
  # Update properties of this object
5262
6377
  def update!(**args)
5263
- @access = args[:access] if args.key?(:access)
5264
- @application = args[:application] if args.key?(:application)
5265
- @attack_exposure = args[:attack_exposure] if args.key?(:attack_exposure)
5266
- @backup_disaster_recovery = args[:backup_disaster_recovery] if args.key?(:backup_disaster_recovery)
5267
- @canonical_name = args[:canonical_name] if args.key?(:canonical_name)
5268
- @category = args[:category] if args.key?(:category)
5269
- @cloud_armor = args[:cloud_armor] if args.key?(:cloud_armor)
5270
- @cloud_dlp_data_profile = args[:cloud_dlp_data_profile] if args.key?(:cloud_dlp_data_profile)
5271
- @cloud_dlp_inspection = args[:cloud_dlp_inspection] if args.key?(:cloud_dlp_inspection)
5272
- @compliances = args[:compliances] if args.key?(:compliances)
5273
- @connections = args[:connections] if args.key?(:connections)
5274
- @contacts = args[:contacts] if args.key?(:contacts)
5275
- @containers = args[:containers] if args.key?(:containers)
5276
- @create_time = args[:create_time] if args.key?(:create_time)
5277
- @database = args[:database] if args.key?(:database)
5278
- @description = args[:description] if args.key?(:description)
5279
- @event_time = args[:event_time] if args.key?(:event_time)
5280
- @exfiltration = args[:exfiltration] if args.key?(:exfiltration)
5281
- @external_systems = args[:external_systems] if args.key?(:external_systems)
5282
- @external_uri = args[:external_uri] if args.key?(:external_uri)
5283
- @files = args[:files] if args.key?(:files)
5284
- @finding_class = args[:finding_class] if args.key?(:finding_class)
5285
- @group_memberships = args[:group_memberships] if args.key?(:group_memberships)
5286
- @iam_bindings = args[:iam_bindings] if args.key?(:iam_bindings)
5287
- @indicator = args[:indicator] if args.key?(:indicator)
5288
- @kernel_rootkit = args[:kernel_rootkit] if args.key?(:kernel_rootkit)
5289
- @kubernetes = args[:kubernetes] if args.key?(:kubernetes)
5290
- @load_balancers = args[:load_balancers] if args.key?(:load_balancers)
5291
- @log_entries = args[:log_entries] if args.key?(:log_entries)
5292
- @mitre_attack = args[:mitre_attack] if args.key?(:mitre_attack)
5293
- @module_name = args[:module_name] if args.key?(:module_name)
5294
- @mute = args[:mute] if args.key?(:mute)
5295
- @mute_initiator = args[:mute_initiator] if args.key?(:mute_initiator)
5296
- @mute_update_time = args[:mute_update_time] if args.key?(:mute_update_time)
5297
- @name = args[:name] if args.key?(:name)
5298
- @next_steps = args[:next_steps] if args.key?(:next_steps)
5299
- @notebook = args[:notebook] if args.key?(:notebook)
5300
- @org_policies = args[:org_policies] if args.key?(:org_policies)
5301
- @parent = args[:parent] if args.key?(:parent)
5302
- @parent_display_name = args[:parent_display_name] if args.key?(:parent_display_name)
5303
- @processes = args[:processes] if args.key?(:processes)
5304
- @resource_name = args[:resource_name] if args.key?(:resource_name)
5305
- @security_marks = args[:security_marks] if args.key?(:security_marks)
5306
- @security_posture = args[:security_posture] if args.key?(:security_posture)
5307
- @severity = args[:severity] if args.key?(:severity)
5308
- @source_properties = args[:source_properties] if args.key?(:source_properties)
5309
- @state = args[:state] if args.key?(:state)
5310
- @toxic_combination = args[:toxic_combination] if args.key?(:toxic_combination)
5311
- @vulnerability = args[:vulnerability] if args.key?(:vulnerability)
6378
+ @subscription = args[:subscription] if args.key?(:subscription)
5312
6379
  end
5313
6380
  end
5314
6381
 
5315
- # Message that contains the resource name and display name of a folder resource.
5316
- class GoogleCloudSecuritycenterV2Folder
6382
+ # The Azure subscription of the resource associated with the issue.
6383
+ class GoogleCloudSecuritycenterV2IssueResourceAzureMetadataAzureSubscription
5317
6384
  include Google::Apis::Core::Hashable
5318
6385
 
5319
- # Full resource name of this folder. See: https://cloud.google.com/apis/design/
5320
- # resource_names#full_resource_name
5321
- # Corresponds to the JSON property `resourceFolder`
6386
+ # The Azure subscription display name of the resource associated with the issue.
6387
+ # Corresponds to the JSON property `displayName`
5322
6388
  # @return [String]
5323
- attr_accessor :resource_folder
6389
+ attr_accessor :display_name
5324
6390
 
5325
- # The user defined display name for this folder.
5326
- # Corresponds to the JSON property `resourceFolderDisplayName`
6391
+ # The Azure subscription ID of the resource associated with the issue.
6392
+ # Corresponds to the JSON property `id`
5327
6393
  # @return [String]
5328
- attr_accessor :resource_folder_display_name
6394
+ attr_accessor :id
5329
6395
 
5330
6396
  def initialize(**args)
5331
6397
  update!(**args)
@@ -5333,19 +6399,19 @@ module Google
5333
6399
 
5334
6400
  # Update properties of this object
5335
6401
  def update!(**args)
5336
- @resource_folder = args[:resource_folder] if args.key?(:resource_folder)
5337
- @resource_folder_display_name = args[:resource_folder_display_name] if args.key?(:resource_folder_display_name)
6402
+ @display_name = args[:display_name] if args.key?(:display_name)
6403
+ @id = args[:id] if args.key?(:id)
5338
6404
  end
5339
6405
  end
5340
6406
 
5341
- # Represents a geographical location for a given access.
5342
- class GoogleCloudSecuritycenterV2Geolocation
6407
+ # Google Cloud metadata of a resource associated with an issue.
6408
+ class GoogleCloudSecuritycenterV2IssueResourceGoogleCloudMetadata
5343
6409
  include Google::Apis::Core::Hashable
5344
6410
 
5345
- # A CLDR.
5346
- # Corresponds to the JSON property `regionCode`
6411
+ # The project ID that the resource associated with the issue belongs to.
6412
+ # Corresponds to the JSON property `projectId`
5347
6413
  # @return [String]
5348
- attr_accessor :region_code
6414
+ attr_accessor :project_id
5349
6415
 
5350
6416
  def initialize(**args)
5351
6417
  update!(**args)
@@ -5353,24 +6419,23 @@ module Google
5353
6419
 
5354
6420
  # Update properties of this object
5355
6421
  def update!(**args)
5356
- @region_code = args[:region_code] if args.key?(:region_code)
6422
+ @project_id = args[:project_id] if args.key?(:project_id)
5357
6423
  end
5358
6424
  end
5359
6425
 
5360
- # Contains details about groups of which this finding is a member. A group is a
5361
- # collection of findings that are related in some way.
5362
- class GoogleCloudSecuritycenterV2GroupMembership
6426
+ # Security context associated with an issue.
6427
+ class GoogleCloudSecuritycenterV2IssueSecurityContext
5363
6428
  include Google::Apis::Core::Hashable
5364
6429
 
5365
- # ID of the group.
5366
- # Corresponds to the JSON property `groupId`
5367
- # @return [String]
5368
- attr_accessor :group_id
6430
+ # Aggregated count of a security context.
6431
+ # Corresponds to the JSON property `aggregatedCount`
6432
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2IssueSecurityContextAggregatedCount]
6433
+ attr_accessor :aggregated_count
5369
6434
 
5370
- # Type of group.
5371
- # Corresponds to the JSON property `groupType`
5372
- # @return [String]
5373
- attr_accessor :group_type
6435
+ # Context of a security context.
6436
+ # Corresponds to the JSON property `context`
6437
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2IssueSecurityContextContext]
6438
+ attr_accessor :context
5374
6439
 
5375
6440
  def initialize(**args)
5376
6441
  update!(**args)
@@ -5378,32 +6443,24 @@ module Google
5378
6443
 
5379
6444
  # Update properties of this object
5380
6445
  def update!(**args)
5381
- @group_id = args[:group_id] if args.key?(:group_id)
5382
- @group_type = args[:group_type] if args.key?(:group_type)
6446
+ @aggregated_count = args[:aggregated_count] if args.key?(:aggregated_count)
6447
+ @context = args[:context] if args.key?(:context)
5383
6448
  end
5384
6449
  end
5385
6450
 
5386
- # Represents a particular IAM binding, which captures a member's role addition,
5387
- # removal, or state.
5388
- class GoogleCloudSecuritycenterV2IamBinding
6451
+ # Aggregated count of a security context.
6452
+ class GoogleCloudSecuritycenterV2IssueSecurityContextAggregatedCount
5389
6453
  include Google::Apis::Core::Hashable
5390
6454
 
5391
- # The action that was performed on a Binding.
5392
- # Corresponds to the JSON property `action`
5393
- # @return [String]
5394
- attr_accessor :action
5395
-
5396
- # A single identity requesting access for a Cloud Platform resource, for example,
5397
- # "foo@google.com".
5398
- # Corresponds to the JSON property `member`
6455
+ # Aggregation key.
6456
+ # Corresponds to the JSON property `key`
5399
6457
  # @return [String]
5400
- attr_accessor :member
6458
+ attr_accessor :key
5401
6459
 
5402
- # Role that is assigned to "members". For example, "roles/viewer", "roles/editor"
5403
- # , or "roles/owner".
5404
- # Corresponds to the JSON property `role`
5405
- # @return [String]
5406
- attr_accessor :role
6460
+ # Aggregation value.
6461
+ # Corresponds to the JSON property `value`
6462
+ # @return [Fixnum]
6463
+ attr_accessor :value
5407
6464
 
5408
6465
  def initialize(**args)
5409
6466
  update!(**args)
@@ -5411,40 +6468,24 @@ module Google
5411
6468
 
5412
6469
  # Update properties of this object
5413
6470
  def update!(**args)
5414
- @action = args[:action] if args.key?(:action)
5415
- @member = args[:member] if args.key?(:member)
5416
- @role = args[:role] if args.key?(:role)
6471
+ @key = args[:key] if args.key?(:key)
6472
+ @value = args[:value] if args.key?(:value)
5417
6473
  end
5418
6474
  end
5419
6475
 
5420
- # Represents what's commonly known as an _indicator of compromise_ (IoC) in
5421
- # computer forensics. This is an artifact observed on a network or in an
5422
- # operating system that, with high confidence, indicates a computer intrusion.
5423
- # For more information, see [Indicator of compromise](https://en.wikipedia.org/
5424
- # wiki/Indicator_of_compromise).
5425
- class GoogleCloudSecuritycenterV2Indicator
6476
+ # Context of a security context.
6477
+ class GoogleCloudSecuritycenterV2IssueSecurityContextContext
5426
6478
  include Google::Apis::Core::Hashable
5427
6479
 
5428
- # List of domains associated to the Finding.
5429
- # Corresponds to the JSON property `domains`
5430
- # @return [Array<String>]
5431
- attr_accessor :domains
5432
-
5433
- # The list of IP addresses that are associated with the finding.
5434
- # Corresponds to the JSON property `ipAddresses`
5435
- # @return [Array<String>]
5436
- attr_accessor :ip_addresses
5437
-
5438
- # The list of matched signatures indicating that the given process is present in
5439
- # the environment.
5440
- # Corresponds to the JSON property `signatures`
5441
- # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2ProcessSignature>]
5442
- attr_accessor :signatures
6480
+ # Context type.
6481
+ # Corresponds to the JSON property `type`
6482
+ # @return [String]
6483
+ attr_accessor :type
5443
6484
 
5444
- # The list of URIs associated to the Findings.
5445
- # Corresponds to the JSON property `uris`
6485
+ # Context values.
6486
+ # Corresponds to the JSON property `values`
5446
6487
  # @return [Array<String>]
5447
- attr_accessor :uris
6488
+ attr_accessor :values
5448
6489
 
5449
6490
  def initialize(**args)
5450
6491
  update!(**args)
@@ -5452,10 +6493,8 @@ module Google
5452
6493
 
5453
6494
  # Update properties of this object
5454
6495
  def update!(**args)
5455
- @domains = args[:domains] if args.key?(:domains)
5456
- @ip_addresses = args[:ip_addresses] if args.key?(:ip_addresses)
5457
- @signatures = args[:signatures] if args.key?(:signatures)
5458
- @uris = args[:uris] if args.key?(:uris)
6496
+ @type = args[:type] if args.key?(:type)
6497
+ @values = args[:values] if args.key?(:values)
5459
6498
  end
5460
6499
  end
5461
6500
 
@@ -5764,6 +6803,12 @@ module Google
5764
6803
  # @return [String]
5765
6804
  attr_accessor :description
5766
6805
 
6806
+ # Optional. The expiry of the mute config. Only applicable for dynamic configs.
6807
+ # If the expiry is set, when the config expires, it is removed from all findings.
6808
+ # Corresponds to the JSON property `expiryTime`
6809
+ # @return [String]
6810
+ attr_accessor :expiry_time
6811
+
5767
6812
  # Required. An expression that defines the filter to apply across create/update
5768
6813
  # events of findings. While creating a filter string, be mindful of the scope in
5769
6814
  # which the mute configuration is being created. E.g., If a filter contains
@@ -5817,6 +6862,7 @@ module Google
5817
6862
  def update!(**args)
5818
6863
  @create_time = args[:create_time] if args.key?(:create_time)
5819
6864
  @description = args[:description] if args.key?(:description)
6865
+ @expiry_time = args[:expiry_time] if args.key?(:expiry_time)
5820
6866
  @filter = args[:filter] if args.key?(:filter)
5821
6867
  @most_recent_editor = args[:most_recent_editor] if args.key?(:most_recent_editor)
5822
6868
  @name = args[:name] if args.key?(:name)
@@ -5825,6 +6871,34 @@ module Google
5825
6871
  end
5826
6872
  end
5827
6873
 
6874
+ # Mute information about the finding, including whether the finding has a static
6875
+ # mute or any matching dynamic mute rules.
6876
+ class GoogleCloudSecuritycenterV2MuteInfo
6877
+ include Google::Apis::Core::Hashable
6878
+
6879
+ # The list of dynamic mute rules that currently match the finding.
6880
+ # Corresponds to the JSON property `dynamicMuteRecords`
6881
+ # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2DynamicMuteRecord>]
6882
+ attr_accessor :dynamic_mute_records
6883
+
6884
+ # Information about the static mute state. A static mute state overrides any
6885
+ # dynamic mute rules that apply to this finding. The static mute state can be
6886
+ # set by a static mute rule or by muting the finding directly.
6887
+ # Corresponds to the JSON property `staticMute`
6888
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2StaticMute]
6889
+ attr_accessor :static_mute
6890
+
6891
+ def initialize(**args)
6892
+ update!(**args)
6893
+ end
6894
+
6895
+ # Update properties of this object
6896
+ def update!(**args)
6897
+ @dynamic_mute_records = args[:dynamic_mute_records] if args.key?(:dynamic_mute_records)
6898
+ @static_mute = args[:static_mute] if args.key?(:static_mute)
6899
+ end
6900
+ end
6901
+
5828
6902
  # Kubernetes nodes associated with the finding.
5829
6903
  class GoogleCloudSecuritycenterV2Node
5830
6904
  include Google::Apis::Core::Hashable
@@ -6500,9 +7574,10 @@ module Google
6500
7574
  # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2SensitiveDataProtectionMapping]
6501
7575
  attr_accessor :sensitive_data_protection_mapping
6502
7576
 
6503
- # Tag values combined with `AND` to check against. Values in the form "tagValues/
6504
- # 123" Example: `[ "tagValues/123", "tagValues/456", "tagValues/789" ]` https://
6505
- # cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing
7577
+ # Tag values combined with `AND` to check against. For Google Cloud resources,
7578
+ # they are tag value IDs in the form of "tagValues/123". Example: `[ "tagValues/
7579
+ # 123", "tagValues/456", "tagValues/789" ]` https://cloud.google.com/resource-
7580
+ # manager/docs/tags/tags-creating-and-managing
6506
7581
  # Corresponds to the JSON property `tagValues`
6507
7582
  # @return [Array<String>]
6508
7583
  attr_accessor :tag_values
@@ -6812,6 +7887,34 @@ module Google
6812
7887
  end
6813
7888
  end
6814
7889
 
7890
+ # Information about the static mute state. A static mute state overrides any
7891
+ # dynamic mute rules that apply to this finding. The static mute state can be
7892
+ # set by a static mute rule or by muting the finding directly.
7893
+ class GoogleCloudSecuritycenterV2StaticMute
7894
+ include Google::Apis::Core::Hashable
7895
+
7896
+ # When the static mute was applied.
7897
+ # Corresponds to the JSON property `applyTime`
7898
+ # @return [String]
7899
+ attr_accessor :apply_time
7900
+
7901
+ # The static mute state. If the value is `MUTED` or `UNMUTED`, then the finding'
7902
+ # s overall mute state will have the same value.
7903
+ # Corresponds to the JSON property `state`
7904
+ # @return [String]
7905
+ attr_accessor :state
7906
+
7907
+ def initialize(**args)
7908
+ update!(**args)
7909
+ end
7910
+
7911
+ # Update properties of this object
7912
+ def update!(**args)
7913
+ @apply_time = args[:apply_time] if args.key?(:apply_time)
7914
+ @state = args[:state] if args.key?(:state)
7915
+ end
7916
+ end
7917
+
6815
7918
  # Represents a Kubernetes subject.
6816
7919
  class GoogleCloudSecuritycenterV2Subject
6817
7920
  include Google::Apis::Core::Hashable
@@ -7373,6 +8476,34 @@ module Google
7373
8476
  end
7374
8477
  end
7375
8478
 
8479
+ # Mute information about the finding, including whether the finding has a static
8480
+ # mute or any matching dynamic mute rules.
8481
+ class MuteInfo
8482
+ include Google::Apis::Core::Hashable
8483
+
8484
+ # The list of dynamic mute rules that currently match the finding.
8485
+ # Corresponds to the JSON property `dynamicMuteRecords`
8486
+ # @return [Array<Google::Apis::SecuritycenterV1beta2::DynamicMuteRecord>]
8487
+ attr_accessor :dynamic_mute_records
8488
+
8489
+ # Information about the static mute state. A static mute state overrides any
8490
+ # dynamic mute rules that apply to this finding. The static mute state can be
8491
+ # set by a static mute rule or by muting the finding directly.
8492
+ # Corresponds to the JSON property `staticMute`
8493
+ # @return [Google::Apis::SecuritycenterV1beta2::StaticMute]
8494
+ attr_accessor :static_mute
8495
+
8496
+ def initialize(**args)
8497
+ update!(**args)
8498
+ end
8499
+
8500
+ # Update properties of this object
8501
+ def update!(**args)
8502
+ @dynamic_mute_records = args[:dynamic_mute_records] if args.key?(:dynamic_mute_records)
8503
+ @static_mute = args[:static_mute] if args.key?(:static_mute)
8504
+ end
8505
+ end
8506
+
7376
8507
  # Kubernetes nodes associated with the finding.
7377
8508
  class Node
7378
8509
  include Google::Apis::Core::Hashable
@@ -8242,6 +9373,34 @@ module Google
8242
9373
  end
8243
9374
  end
8244
9375
 
9376
+ # Information about the static mute state. A static mute state overrides any
9377
+ # dynamic mute rules that apply to this finding. The static mute state can be
9378
+ # set by a static mute rule or by muting the finding directly.
9379
+ class StaticMute
9380
+ include Google::Apis::Core::Hashable
9381
+
9382
+ # When the static mute was applied.
9383
+ # Corresponds to the JSON property `applyTime`
9384
+ # @return [String]
9385
+ attr_accessor :apply_time
9386
+
9387
+ # The static mute state. If the value is `MUTED` or `UNMUTED`, then the finding'
9388
+ # s overall mute state will have the same value.
9389
+ # Corresponds to the JSON property `state`
9390
+ # @return [String]
9391
+ attr_accessor :state
9392
+
9393
+ def initialize(**args)
9394
+ update!(**args)
9395
+ end
9396
+
9397
+ # Update properties of this object
9398
+ def update!(**args)
9399
+ @apply_time = args[:apply_time] if args.key?(:apply_time)
9400
+ @state = args[:state] if args.key?(:state)
9401
+ end
9402
+ end
9403
+
8245
9404
  # Represents a Kubernetes subject.
8246
9405
  class Subject
8247
9406
  include Google::Apis::Core::Hashable