google-apis-securitycenter_v1beta1 0.79.0 → 0.81.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.
@@ -650,6 +650,11 @@ module Google
650
650
  # @return [Google::Apis::SecuritycenterV1beta1::AzureSubscription]
651
651
  attr_accessor :subscription
652
652
 
653
+ # Represents a Microsoft Entra tenant.
654
+ # Corresponds to the JSON property `tenant`
655
+ # @return [Google::Apis::SecuritycenterV1beta1::AzureTenant]
656
+ attr_accessor :tenant
657
+
653
658
  def initialize(**args)
654
659
  update!(**args)
655
660
  end
@@ -659,6 +664,7 @@ module Google
659
664
  @management_groups = args[:management_groups] if args.key?(:management_groups)
660
665
  @resource_group = args[:resource_group] if args.key?(:resource_group)
661
666
  @subscription = args[:subscription] if args.key?(:subscription)
667
+ @tenant = args[:tenant] if args.key?(:tenant)
662
668
  end
663
669
  end
664
670
 
@@ -666,6 +672,11 @@ module Google
666
672
  class AzureResourceGroup
667
673
  include Google::Apis::Core::Hashable
668
674
 
675
+ # The ID of the Azure resource group.
676
+ # Corresponds to the JSON property `id`
677
+ # @return [String]
678
+ attr_accessor :id
679
+
669
680
  # The name of the Azure resource group. This is not a UUID.
670
681
  # Corresponds to the JSON property `name`
671
682
  # @return [String]
@@ -677,6 +688,7 @@ module Google
677
688
 
678
689
  # Update properties of this object
679
690
  def update!(**args)
691
+ @id = args[:id] if args.key?(:id)
680
692
  @name = args[:name] if args.key?(:name)
681
693
  end
682
694
  end
@@ -707,6 +719,32 @@ module Google
707
719
  end
708
720
  end
709
721
 
722
+ # Represents a Microsoft Entra tenant.
723
+ class AzureTenant
724
+ include Google::Apis::Core::Hashable
725
+
726
+ # The display name of the Azure tenant.
727
+ # Corresponds to the JSON property `displayName`
728
+ # @return [String]
729
+ attr_accessor :display_name
730
+
731
+ # The ID of the Microsoft Entra tenant, for example, "a11aaa11-aa11-1aa1-11aa-
732
+ # 1aaa11a".
733
+ # Corresponds to the JSON property `id`
734
+ # @return [String]
735
+ attr_accessor :id
736
+
737
+ def initialize(**args)
738
+ update!(**args)
739
+ end
740
+
741
+ # Update properties of this object
742
+ def update!(**args)
743
+ @display_name = args[:display_name] if args.key?(:display_name)
744
+ @id = args[:id] if args.key?(:id)
745
+ end
746
+ end
747
+
710
748
  # Information related to Google Cloud Backup and DR Service findings.
711
749
  class BackupDisasterRecovery
712
750
  include Google::Apis::Core::Hashable
@@ -1315,11 +1353,21 @@ module Google
1315
1353
  # @return [Google::Apis::SecuritycenterV1beta1::Cvssv3]
1316
1354
  attr_accessor :cvssv3
1317
1355
 
1356
+ # Date the first publicly available exploit or PoC was released.
1357
+ # Corresponds to the JSON property `exploitReleaseDate`
1358
+ # @return [String]
1359
+ attr_accessor :exploit_release_date
1360
+
1318
1361
  # The exploitation activity of the vulnerability in the wild.
1319
1362
  # Corresponds to the JSON property `exploitationActivity`
1320
1363
  # @return [String]
1321
1364
  attr_accessor :exploitation_activity
1322
1365
 
1366
+ # Date of the earliest known exploitation.
1367
+ # Corresponds to the JSON property `firstExploitationDate`
1368
+ # @return [String]
1369
+ attr_accessor :first_exploitation_date
1370
+
1323
1371
  # The unique identifier for the vulnerability. e.g. CVE-2021-34527
1324
1372
  # Corresponds to the JSON property `id`
1325
1373
  # @return [String]
@@ -1361,7 +1409,9 @@ module Google
1361
1409
  # Update properties of this object
1362
1410
  def update!(**args)
1363
1411
  @cvssv3 = args[:cvssv3] if args.key?(:cvssv3)
1412
+ @exploit_release_date = args[:exploit_release_date] if args.key?(:exploit_release_date)
1364
1413
  @exploitation_activity = args[:exploitation_activity] if args.key?(:exploitation_activity)
1414
+ @first_exploitation_date = args[:first_exploitation_date] if args.key?(:first_exploitation_date)
1365
1415
  @id = args[:id] if args.key?(:id)
1366
1416
  @impact = args[:impact] if args.key?(:impact)
1367
1417
  @observed_in_the_wild = args[:observed_in_the_wild] if args.key?(:observed_in_the_wild)
@@ -1448,6 +1498,144 @@ module Google
1448
1498
  end
1449
1499
  end
1450
1500
 
1501
+ # Details about a data access attempt made by a principal not authorized under
1502
+ # applicable data security policy.
1503
+ class DataAccessEvent
1504
+ include Google::Apis::Core::Hashable
1505
+
1506
+ # Unique identifier for data access event.
1507
+ # Corresponds to the JSON property `eventId`
1508
+ # @return [String]
1509
+ attr_accessor :event_id
1510
+
1511
+ # Timestamp of data access event.
1512
+ # Corresponds to the JSON property `eventTime`
1513
+ # @return [String]
1514
+ attr_accessor :event_time
1515
+
1516
+ # The operation performed by the principal to access the data.
1517
+ # Corresponds to the JSON property `operation`
1518
+ # @return [String]
1519
+ attr_accessor :operation
1520
+
1521
+ # The email address of the principal that accessed the data. The principal could
1522
+ # be a user account, service account, Google group, or other.
1523
+ # Corresponds to the JSON property `principalEmail`
1524
+ # @return [String]
1525
+ attr_accessor :principal_email
1526
+
1527
+ def initialize(**args)
1528
+ update!(**args)
1529
+ end
1530
+
1531
+ # Update properties of this object
1532
+ def update!(**args)
1533
+ @event_id = args[:event_id] if args.key?(:event_id)
1534
+ @event_time = args[:event_time] if args.key?(:event_time)
1535
+ @operation = args[:operation] if args.key?(:operation)
1536
+ @principal_email = args[:principal_email] if args.key?(:principal_email)
1537
+ end
1538
+ end
1539
+
1540
+ # Details about a data flow event, in which either the data is moved to or is
1541
+ # accessed from a non-compliant geo-location, as defined in the applicable data
1542
+ # security policy.
1543
+ class DataFlowEvent
1544
+ include Google::Apis::Core::Hashable
1545
+
1546
+ # Unique identifier for data flow event.
1547
+ # Corresponds to the JSON property `eventId`
1548
+ # @return [String]
1549
+ attr_accessor :event_id
1550
+
1551
+ # Timestamp of data flow event.
1552
+ # Corresponds to the JSON property `eventTime`
1553
+ # @return [String]
1554
+ attr_accessor :event_time
1555
+
1556
+ # The operation performed by the principal for the data flow event.
1557
+ # Corresponds to the JSON property `operation`
1558
+ # @return [String]
1559
+ attr_accessor :operation
1560
+
1561
+ # The email address of the principal that initiated the data flow event. The
1562
+ # principal could be a user account, service account, Google group, or other.
1563
+ # Corresponds to the JSON property `principalEmail`
1564
+ # @return [String]
1565
+ attr_accessor :principal_email
1566
+
1567
+ # Non-compliant location of the principal or the data destination.
1568
+ # Corresponds to the JSON property `violatedLocation`
1569
+ # @return [String]
1570
+ attr_accessor :violated_location
1571
+
1572
+ def initialize(**args)
1573
+ update!(**args)
1574
+ end
1575
+
1576
+ # Update properties of this object
1577
+ def update!(**args)
1578
+ @event_id = args[:event_id] if args.key?(:event_id)
1579
+ @event_time = args[:event_time] if args.key?(:event_time)
1580
+ @operation = args[:operation] if args.key?(:operation)
1581
+ @principal_email = args[:principal_email] if args.key?(:principal_email)
1582
+ @violated_location = args[:violated_location] if args.key?(:violated_location)
1583
+ end
1584
+ end
1585
+
1586
+ # Details about data retention deletion violations, in which the data is non-
1587
+ # compliant based on their retention or deletion time, as defined in the
1588
+ # applicable data security policy. The Data Retention Deletion (DRD) control is
1589
+ # a control of the DSPM (Data Security Posture Management) suite that enables
1590
+ # organizations to manage data retention and deletion policies in compliance
1591
+ # with regulations, such as GDPR and CRPA. DRD supports two primary policy types:
1592
+ # maximum storage length (max TTL) and minimum storage length (min TTL). Both
1593
+ # are aimed at helping organizations meet regulatory and data management
1594
+ # commitments.
1595
+ class DataRetentionDeletionEvent
1596
+ include Google::Apis::Core::Hashable
1597
+
1598
+ # Number of objects that violated the policy for this resource. If the number is
1599
+ # less than 1,000, then the value of this field is the exact number. If the
1600
+ # number of objects that violated the policy is greater than or equal to 1,000,
1601
+ # then the value of this field is 1000.
1602
+ # Corresponds to the JSON property `dataObjectCount`
1603
+ # @return [Fixnum]
1604
+ attr_accessor :data_object_count
1605
+
1606
+ # Timestamp indicating when the event was detected.
1607
+ # Corresponds to the JSON property `eventDetectionTime`
1608
+ # @return [String]
1609
+ attr_accessor :event_detection_time
1610
+
1611
+ # Type of the DRD event.
1612
+ # Corresponds to the JSON property `eventType`
1613
+ # @return [String]
1614
+ attr_accessor :event_type
1615
+
1616
+ # Maximum duration of retention allowed from the DRD control. This comes from
1617
+ # the DRD control where users set a max TTL for their data. For example, suppose
1618
+ # that a user set the max TTL for a Cloud Storage bucket to 90 days. However, an
1619
+ # object in that bucket is 100 days old. In this case, a
1620
+ # DataRetentionDeletionEvent will be generated for that Cloud Storage bucket,
1621
+ # and the max_retention_allowed is 90 days.
1622
+ # Corresponds to the JSON property `maxRetentionAllowed`
1623
+ # @return [String]
1624
+ attr_accessor :max_retention_allowed
1625
+
1626
+ def initialize(**args)
1627
+ update!(**args)
1628
+ end
1629
+
1630
+ # Update properties of this object
1631
+ def update!(**args)
1632
+ @data_object_count = args[:data_object_count] if args.key?(:data_object_count)
1633
+ @event_detection_time = args[:event_detection_time] if args.key?(:event_detection_time)
1634
+ @event_type = args[:event_type] if args.key?(:event_type)
1635
+ @max_retention_allowed = args[:max_retention_allowed] if args.key?(:max_retention_allowed)
1636
+ end
1637
+ end
1638
+
1451
1639
  # Represents database access information, such as queries. A database may be a
1452
1640
  # sub-resource of an instance (as in the case of Cloud SQL instances or Cloud
1453
1641
  # Spanner instances), or the database instance itself. Some database resources
@@ -1536,6 +1724,26 @@ module Google
1536
1724
  end
1537
1725
  end
1538
1726
 
1727
+ # Contains information about the disk associated with the finding.
1728
+ class Disk
1729
+ include Google::Apis::Core::Hashable
1730
+
1731
+ # The name of the disk, for example, "https://www.googleapis.com/compute/v1/
1732
+ # projects/project-id/zones/zone-id/disks/disk-id".
1733
+ # Corresponds to the JSON property `name`
1734
+ # @return [String]
1735
+ attr_accessor :name
1736
+
1737
+ def initialize(**args)
1738
+ update!(**args)
1739
+ end
1740
+
1741
+ # Update properties of this object
1742
+ def update!(**args)
1743
+ @name = args[:name] if args.key?(:name)
1744
+ end
1745
+ end
1746
+
1539
1747
  # Path of the file in terms of underlying disk/partition identifiers.
1540
1748
  class DiskPath
1541
1749
  include Google::Apis::Core::Hashable
@@ -1563,6 +1771,33 @@ module Google
1563
1771
  end
1564
1772
  end
1565
1773
 
1774
+ # The record of a dynamic mute rule that matches the finding.
1775
+ class DynamicMuteRecord
1776
+ include Google::Apis::Core::Hashable
1777
+
1778
+ # When the dynamic mute rule first matched the finding.
1779
+ # Corresponds to the JSON property `matchTime`
1780
+ # @return [String]
1781
+ attr_accessor :match_time
1782
+
1783
+ # The relative resource name of the mute rule, represented by a mute config,
1784
+ # that created this record, for example `organizations/123/muteConfigs/
1785
+ # mymuteconfig` or `organizations/123/locations/global/muteConfigs/mymuteconfig`.
1786
+ # Corresponds to the JSON property `muteConfig`
1787
+ # @return [String]
1788
+ attr_accessor :mute_config
1789
+
1790
+ def initialize(**args)
1791
+ update!(**args)
1792
+ end
1793
+
1794
+ # Update properties of this object
1795
+ def update!(**args)
1796
+ @match_time = args[:match_time] if args.key?(:match_time)
1797
+ @mute_config = args[:mute_config] if args.key?(:mute_config)
1798
+ end
1799
+ end
1800
+
1566
1801
  # A generic empty message that you can re-use to avoid defining duplicated empty
1567
1802
  # messages in your APIs. A typical example is to use it as the request or the
1568
1803
  # response type of an API method. For instance: service Foo ` rpc Bar(google.
@@ -1877,6 +2112,21 @@ module Google
1877
2112
  # @return [String]
1878
2113
  attr_accessor :create_time
1879
2114
 
2115
+ # Data access events associated with the finding.
2116
+ # Corresponds to the JSON property `dataAccessEvents`
2117
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::DataAccessEvent>]
2118
+ attr_accessor :data_access_events
2119
+
2120
+ # Data flow events associated with the finding.
2121
+ # Corresponds to the JSON property `dataFlowEvents`
2122
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::DataFlowEvent>]
2123
+ attr_accessor :data_flow_events
2124
+
2125
+ # Data retention deletion events associated with the finding.
2126
+ # Corresponds to the JSON property `dataRetentionDeletionEvents`
2127
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::DataRetentionDeletionEvent>]
2128
+ attr_accessor :data_retention_deletion_events
2129
+
1880
2130
  # Represents database access information, such as queries. A database may be a
1881
2131
  # sub-resource of an instance (as in the case of Cloud SQL instances or Cloud
1882
2132
  # Spanner instances), or the database instance itself. Some database resources
@@ -1893,6 +2143,11 @@ module Google
1893
2143
  # @return [String]
1894
2144
  attr_accessor :description
1895
2145
 
2146
+ # Contains information about the disk associated with the finding.
2147
+ # Corresponds to the JSON property `disk`
2148
+ # @return [Google::Apis::SecuritycenterV1beta1::Disk]
2149
+ attr_accessor :disk
2150
+
1896
2151
  # The time the finding was first detected. If an existing finding is updated,
1897
2152
  # then this is the time the update occurred. For example, if the finding
1898
2153
  # represents an open firewall, this property captures the time the detector
@@ -1994,6 +2249,12 @@ module Google
1994
2249
  # @return [String]
1995
2250
  attr_accessor :mute
1996
2251
 
2252
+ # Mute information about the finding, including whether the finding has a static
2253
+ # mute or any matching dynamic mute rules.
2254
+ # Corresponds to the JSON property `muteInfo`
2255
+ # @return [Google::Apis::SecuritycenterV1beta1::MuteInfo]
2256
+ attr_accessor :mute_info
2257
+
1997
2258
  # Records additional information about the mute operation, for example, the [
1998
2259
  # mute configuration](/security-command-center/docs/how-to-mute-findings) that
1999
2260
  # muted the finding and the user who muted the finding.
@@ -2127,8 +2388,12 @@ module Google
2127
2388
  @contacts = args[:contacts] if args.key?(:contacts)
2128
2389
  @containers = args[:containers] if args.key?(:containers)
2129
2390
  @create_time = args[:create_time] if args.key?(:create_time)
2391
+ @data_access_events = args[:data_access_events] if args.key?(:data_access_events)
2392
+ @data_flow_events = args[:data_flow_events] if args.key?(:data_flow_events)
2393
+ @data_retention_deletion_events = args[:data_retention_deletion_events] if args.key?(:data_retention_deletion_events)
2130
2394
  @database = args[:database] if args.key?(:database)
2131
2395
  @description = args[:description] if args.key?(:description)
2396
+ @disk = args[:disk] if args.key?(:disk)
2132
2397
  @event_time = args[:event_time] if args.key?(:event_time)
2133
2398
  @exfiltration = args[:exfiltration] if args.key?(:exfiltration)
2134
2399
  @external_systems = args[:external_systems] if args.key?(:external_systems)
@@ -2145,6 +2410,7 @@ module Google
2145
2410
  @mitre_attack = args[:mitre_attack] if args.key?(:mitre_attack)
2146
2411
  @module_name = args[:module_name] if args.key?(:module_name)
2147
2412
  @mute = args[:mute] if args.key?(:mute)
2413
+ @mute_info = args[:mute_info] if args.key?(:mute_info)
2148
2414
  @mute_initiator = args[:mute_initiator] if args.key?(:mute_initiator)
2149
2415
  @mute_update_time = args[:mute_update_time] if args.key?(:mute_update_time)
2150
2416
  @name = args[:name] if args.key?(:name)
@@ -2550,6 +2816,11 @@ module Google
2550
2816
  class GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule
2551
2817
  include Google::Apis::Core::Hashable
2552
2818
 
2819
+ # The cloud provider of the custom module.
2820
+ # Corresponds to the JSON property `cloudProvider`
2821
+ # @return [String]
2822
+ attr_accessor :cloud_provider
2823
+
2553
2824
  # Defines the properties in a custom module configuration for Security Health
2554
2825
  # Analytics. Use the custom module configuration to create custom detectors that
2555
2826
  # generate custom findings for resources that you specify.
@@ -2586,6 +2857,7 @@ module Google
2586
2857
 
2587
2858
  # Update properties of this object
2588
2859
  def update!(**args)
2860
+ @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider)
2589
2861
  @custom_config = args[:custom_config] if args.key?(:custom_config)
2590
2862
  @display_name = args[:display_name] if args.key?(:display_name)
2591
2863
  @enablement_state = args[:enablement_state] if args.key?(:enablement_state)
@@ -2699,6 +2971,12 @@ module Google
2699
2971
  # @return [String]
2700
2972
  attr_accessor :display_name
2701
2973
 
2974
+ # Optional. The expiry of the mute config. Only applicable for dynamic configs.
2975
+ # If the expiry is set, when the config expires, it is removed from all findings.
2976
+ # Corresponds to the JSON property `expiryTime`
2977
+ # @return [String]
2978
+ attr_accessor :expiry_time
2979
+
2702
2980
  # Required. An expression that defines the filter to apply across create/update
2703
2981
  # events of findings. While creating a filter string, be mindful of the scope in
2704
2982
  # which the mute configuration is being created. E.g., If a filter contains
@@ -2730,6 +3008,14 @@ module Google
2730
3008
  # @return [String]
2731
3009
  attr_accessor :name
2732
3010
 
3011
+ # Optional. The type of the mute config, which determines what type of mute
3012
+ # state the config affects. The static mute state takes precedence over the
3013
+ # dynamic mute state. Immutable after creation. STATIC by default if not set
3014
+ # during creation.
3015
+ # Corresponds to the JSON property `type`
3016
+ # @return [String]
3017
+ attr_accessor :type
3018
+
2733
3019
  # Output only. The most recent time at which the mute config was updated. This
2734
3020
  # field is set by the server and will be ignored if provided on config creation
2735
3021
  # or update.
@@ -2746,9 +3032,11 @@ module Google
2746
3032
  @create_time = args[:create_time] if args.key?(:create_time)
2747
3033
  @description = args[:description] if args.key?(:description)
2748
3034
  @display_name = args[:display_name] if args.key?(:display_name)
3035
+ @expiry_time = args[:expiry_time] if args.key?(:expiry_time)
2749
3036
  @filter = args[:filter] if args.key?(:filter)
2750
3037
  @most_recent_editor = args[:most_recent_editor] if args.key?(:most_recent_editor)
2751
3038
  @name = args[:name] if args.key?(:name)
3039
+ @type = args[:type] if args.key?(:type)
2752
3040
  @update_time = args[:update_time] if args.key?(:update_time)
2753
3041
  end
2754
3042
  end
@@ -3031,10 +3319,10 @@ module Google
3031
3319
  # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV1SensitiveDataProtectionMapping]
3032
3320
  attr_accessor :sensitive_data_protection_mapping
3033
3321
 
3034
- # Required. Tag values combined with `AND` to check against. Values in the form "
3035
- # tagValues/123" Example: `[ "tagValues/123", "tagValues/456", "tagValues/789" ]`
3036
- # https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-
3037
- # managing
3322
+ # Required. Tag values combined with `AND` to check against. For Google Cloud
3323
+ # resources, they are tag value IDs in the form of "tagValues/123". Example: `[ "
3324
+ # tagValues/123", "tagValues/456", "tagValues/789" ]` https://cloud.google.com/
3325
+ # resource-manager/docs/tags/tags-creating-and-managing
3038
3326
  # Corresponds to the JSON property `tagValues`
3039
3327
  # @return [Array<String>]
3040
3328
  attr_accessor :tag_values
@@ -3105,6 +3393,11 @@ module Google
3105
3393
  # @return [String]
3106
3394
  attr_accessor :ancestor_module
3107
3395
 
3396
+ # The cloud provider of the custom module.
3397
+ # Corresponds to the JSON property `cloudProvider`
3398
+ # @return [String]
3399
+ attr_accessor :cloud_provider
3400
+
3108
3401
  # Defines the properties in a custom module configuration for Security Health
3109
3402
  # Analytics. Use the custom module configuration to create custom detectors that
3110
3403
  # generate custom findings for resources that you specify.
@@ -3154,6 +3447,7 @@ module Google
3154
3447
  # Update properties of this object
3155
3448
  def update!(**args)
3156
3449
  @ancestor_module = args[:ancestor_module] if args.key?(:ancestor_module)
3450
+ @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider)
3157
3451
  @custom_config = args[:custom_config] if args.key?(:custom_config)
3158
3452
  @display_name = args[:display_name] if args.key?(:display_name)
3159
3453
  @enablement_state = args[:enablement_state] if args.key?(:enablement_state)
@@ -4120,6 +4414,11 @@ module Google
4120
4414
  # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2AzureSubscription]
4121
4415
  attr_accessor :subscription
4122
4416
 
4417
+ # Represents a Microsoft Entra tenant.
4418
+ # Corresponds to the JSON property `tenant`
4419
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2AzureTenant]
4420
+ attr_accessor :tenant
4421
+
4123
4422
  def initialize(**args)
4124
4423
  update!(**args)
4125
4424
  end
@@ -4129,6 +4428,7 @@ module Google
4129
4428
  @management_groups = args[:management_groups] if args.key?(:management_groups)
4130
4429
  @resource_group = args[:resource_group] if args.key?(:resource_group)
4131
4430
  @subscription = args[:subscription] if args.key?(:subscription)
4431
+ @tenant = args[:tenant] if args.key?(:tenant)
4132
4432
  end
4133
4433
  end
4134
4434
 
@@ -4136,6 +4436,11 @@ module Google
4136
4436
  class GoogleCloudSecuritycenterV2AzureResourceGroup
4137
4437
  include Google::Apis::Core::Hashable
4138
4438
 
4439
+ # The ID of the Azure resource group.
4440
+ # Corresponds to the JSON property `id`
4441
+ # @return [String]
4442
+ attr_accessor :id
4443
+
4139
4444
  # The name of the Azure resource group. This is not a UUID.
4140
4445
  # Corresponds to the JSON property `name`
4141
4446
  # @return [String]
@@ -4147,6 +4452,7 @@ module Google
4147
4452
 
4148
4453
  # Update properties of this object
4149
4454
  def update!(**args)
4455
+ @id = args[:id] if args.key?(:id)
4150
4456
  @name = args[:name] if args.key?(:name)
4151
4457
  end
4152
4458
  end
@@ -4177,6 +4483,32 @@ module Google
4177
4483
  end
4178
4484
  end
4179
4485
 
4486
+ # Represents a Microsoft Entra tenant.
4487
+ class GoogleCloudSecuritycenterV2AzureTenant
4488
+ include Google::Apis::Core::Hashable
4489
+
4490
+ # The display name of the Azure tenant.
4491
+ # Corresponds to the JSON property `displayName`
4492
+ # @return [String]
4493
+ attr_accessor :display_name
4494
+
4495
+ # The ID of the Microsoft Entra tenant, for example, "a11aaa11-aa11-1aa1-11aa-
4496
+ # 1aaa11a".
4497
+ # Corresponds to the JSON property `id`
4498
+ # @return [String]
4499
+ attr_accessor :id
4500
+
4501
+ def initialize(**args)
4502
+ update!(**args)
4503
+ end
4504
+
4505
+ # Update properties of this object
4506
+ def update!(**args)
4507
+ @display_name = args[:display_name] if args.key?(:display_name)
4508
+ @id = args[:id] if args.key?(:id)
4509
+ end
4510
+ end
4511
+
4180
4512
  # Information related to Google Cloud Backup and DR Service findings.
4181
4513
  class GoogleCloudSecuritycenterV2BackupDisasterRecovery
4182
4514
  include Google::Apis::Core::Hashable
@@ -4745,11 +5077,21 @@ module Google
4745
5077
  # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Cvssv3]
4746
5078
  attr_accessor :cvssv3
4747
5079
 
5080
+ # Date the first publicly available exploit or PoC was released.
5081
+ # Corresponds to the JSON property `exploitReleaseDate`
5082
+ # @return [String]
5083
+ attr_accessor :exploit_release_date
5084
+
4748
5085
  # The exploitation activity of the vulnerability in the wild.
4749
5086
  # Corresponds to the JSON property `exploitationActivity`
4750
5087
  # @return [String]
4751
5088
  attr_accessor :exploitation_activity
4752
5089
 
5090
+ # Date of the earliest known exploitation.
5091
+ # Corresponds to the JSON property `firstExploitationDate`
5092
+ # @return [String]
5093
+ attr_accessor :first_exploitation_date
5094
+
4753
5095
  # The unique identifier for the vulnerability. e.g. CVE-2021-34527
4754
5096
  # Corresponds to the JSON property `id`
4755
5097
  # @return [String]
@@ -4791,7 +5133,9 @@ module Google
4791
5133
  # Update properties of this object
4792
5134
  def update!(**args)
4793
5135
  @cvssv3 = args[:cvssv3] if args.key?(:cvssv3)
5136
+ @exploit_release_date = args[:exploit_release_date] if args.key?(:exploit_release_date)
4794
5137
  @exploitation_activity = args[:exploitation_activity] if args.key?(:exploitation_activity)
5138
+ @first_exploitation_date = args[:first_exploitation_date] if args.key?(:first_exploitation_date)
4795
5139
  @id = args[:id] if args.key?(:id)
4796
5140
  @impact = args[:impact] if args.key?(:impact)
4797
5141
  @observed_in_the_wild = args[:observed_in_the_wild] if args.key?(:observed_in_the_wild)
@@ -4878,53 +5222,31 @@ module Google
4878
5222
  end
4879
5223
  end
4880
5224
 
4881
- # Represents database access information, such as queries. A database may be a
4882
- # sub-resource of an instance (as in the case of Cloud SQL instances or Cloud
4883
- # Spanner instances), or the database instance itself. Some database resources
4884
- # might not have the [full resource name](https://google.aip.dev/122#full-
4885
- # resource-names) populated because these resource types, such as Cloud SQL
4886
- # databases, are not yet supported by Cloud Asset Inventory. In these cases only
4887
- # the display name is provided.
4888
- class GoogleCloudSecuritycenterV2Database
5225
+ # Details about a data access attempt made by a principal not authorized under
5226
+ # applicable data security policy.
5227
+ class GoogleCloudSecuritycenterV2DataAccessEvent
4889
5228
  include Google::Apis::Core::Hashable
4890
5229
 
4891
- # The human-readable name of the database that the user connected to.
4892
- # Corresponds to the JSON property `displayName`
4893
- # @return [String]
4894
- attr_accessor :display_name
4895
-
4896
- # The target usernames, roles, or groups of an SQL privilege grant, which is not
4897
- # an IAM policy change.
4898
- # Corresponds to the JSON property `grantees`
4899
- # @return [Array<String>]
4900
- attr_accessor :grantees
4901
-
4902
- # Some database resources may not have the [full resource name](https://google.
4903
- # aip.dev/122#full-resource-names) populated because these resource types are
4904
- # not yet supported by Cloud Asset Inventory (e.g. Cloud SQL databases). In
4905
- # these cases only the display name will be provided. The [full resource name](
4906
- # https://google.aip.dev/122#full-resource-names) of the database that the user
4907
- # connected to, if it is supported by Cloud Asset Inventory.
4908
- # Corresponds to the JSON property `name`
5230
+ # Unique identifier for data access event.
5231
+ # Corresponds to the JSON property `eventId`
4909
5232
  # @return [String]
4910
- attr_accessor :name
5233
+ attr_accessor :event_id
4911
5234
 
4912
- # The SQL statement that is associated with the database access.
4913
- # Corresponds to the JSON property `query`
5235
+ # Timestamp of data access event.
5236
+ # Corresponds to the JSON property `eventTime`
4914
5237
  # @return [String]
4915
- attr_accessor :query
5238
+ attr_accessor :event_time
4916
5239
 
4917
- # The username used to connect to the database. The username might not be an IAM
4918
- # principal and does not have a set format.
4919
- # Corresponds to the JSON property `userName`
5240
+ # The operation performed by the principal to access the data.
5241
+ # Corresponds to the JSON property `operation`
4920
5242
  # @return [String]
4921
- attr_accessor :user_name
5243
+ attr_accessor :operation
4922
5244
 
4923
- # The version of the database, for example, POSTGRES_14. See [the complete list](
4924
- # https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1/SqlDatabaseVersion).
4925
- # Corresponds to the JSON property `version`
5245
+ # The email address of the principal that accessed the data. The principal could
5246
+ # be a user account, service account, Google group, or other.
5247
+ # Corresponds to the JSON property `principalEmail`
4926
5248
  # @return [String]
4927
- attr_accessor :version
5249
+ attr_accessor :principal_email
4928
5250
 
4929
5251
  def initialize(**args)
4930
5252
  update!(**args)
@@ -4932,28 +5254,188 @@ module Google
4932
5254
 
4933
5255
  # Update properties of this object
4934
5256
  def update!(**args)
4935
- @display_name = args[:display_name] if args.key?(:display_name)
4936
- @grantees = args[:grantees] if args.key?(:grantees)
4937
- @name = args[:name] if args.key?(:name)
4938
- @query = args[:query] if args.key?(:query)
4939
- @user_name = args[:user_name] if args.key?(:user_name)
4940
- @version = args[:version] if args.key?(:version)
5257
+ @event_id = args[:event_id] if args.key?(:event_id)
5258
+ @event_time = args[:event_time] if args.key?(:event_time)
5259
+ @operation = args[:operation] if args.key?(:operation)
5260
+ @principal_email = args[:principal_email] if args.key?(:principal_email)
4941
5261
  end
4942
5262
  end
4943
5263
 
4944
- # Memory hash detection contributing to the binary family match.
4945
- class GoogleCloudSecuritycenterV2Detection
5264
+ # Details about a data flow event, in which either the data is moved to or is
5265
+ # accessed from a non-compliant geo-location, as defined in the applicable data
5266
+ # security policy.
5267
+ class GoogleCloudSecuritycenterV2DataFlowEvent
4946
5268
  include Google::Apis::Core::Hashable
4947
5269
 
4948
- # The name of the binary associated with the memory hash signature detection.
4949
- # Corresponds to the JSON property `binary`
5270
+ # Unique identifier for data flow event.
5271
+ # Corresponds to the JSON property `eventId`
4950
5272
  # @return [String]
4951
- attr_accessor :binary
5273
+ attr_accessor :event_id
4952
5274
 
4953
- # The percentage of memory page hashes in the signature that were matched.
4954
- # Corresponds to the JSON property `percentPagesMatched`
4955
- # @return [Float]
4956
- attr_accessor :percent_pages_matched
5275
+ # Timestamp of data flow event.
5276
+ # Corresponds to the JSON property `eventTime`
5277
+ # @return [String]
5278
+ attr_accessor :event_time
5279
+
5280
+ # The operation performed by the principal for the data flow event.
5281
+ # Corresponds to the JSON property `operation`
5282
+ # @return [String]
5283
+ attr_accessor :operation
5284
+
5285
+ # The email address of the principal that initiated the data flow event. The
5286
+ # principal could be a user account, service account, Google group, or other.
5287
+ # Corresponds to the JSON property `principalEmail`
5288
+ # @return [String]
5289
+ attr_accessor :principal_email
5290
+
5291
+ # Non-compliant location of the principal or the data destination.
5292
+ # Corresponds to the JSON property `violatedLocation`
5293
+ # @return [String]
5294
+ attr_accessor :violated_location
5295
+
5296
+ def initialize(**args)
5297
+ update!(**args)
5298
+ end
5299
+
5300
+ # Update properties of this object
5301
+ def update!(**args)
5302
+ @event_id = args[:event_id] if args.key?(:event_id)
5303
+ @event_time = args[:event_time] if args.key?(:event_time)
5304
+ @operation = args[:operation] if args.key?(:operation)
5305
+ @principal_email = args[:principal_email] if args.key?(:principal_email)
5306
+ @violated_location = args[:violated_location] if args.key?(:violated_location)
5307
+ end
5308
+ end
5309
+
5310
+ # Details about data retention deletion violations, in which the data is non-
5311
+ # compliant based on their retention or deletion time, as defined in the
5312
+ # applicable data security policy. The Data Retention Deletion (DRD) control is
5313
+ # a control of the DSPM (Data Security Posture Management) suite that enables
5314
+ # organizations to manage data retention and deletion policies in compliance
5315
+ # with regulations, such as GDPR and CRPA. DRD supports two primary policy types:
5316
+ # maximum storage length (max TTL) and minimum storage length (min TTL). Both
5317
+ # are aimed at helping organizations meet regulatory and data management
5318
+ # commitments.
5319
+ class GoogleCloudSecuritycenterV2DataRetentionDeletionEvent
5320
+ include Google::Apis::Core::Hashable
5321
+
5322
+ # Number of objects that violated the policy for this resource. If the number is
5323
+ # less than 1,000, then the value of this field is the exact number. If the
5324
+ # number of objects that violated the policy is greater than or equal to 1,000,
5325
+ # then the value of this field is 1000.
5326
+ # Corresponds to the JSON property `dataObjectCount`
5327
+ # @return [Fixnum]
5328
+ attr_accessor :data_object_count
5329
+
5330
+ # Timestamp indicating when the event was detected.
5331
+ # Corresponds to the JSON property `eventDetectionTime`
5332
+ # @return [String]
5333
+ attr_accessor :event_detection_time
5334
+
5335
+ # Type of the DRD event.
5336
+ # Corresponds to the JSON property `eventType`
5337
+ # @return [String]
5338
+ attr_accessor :event_type
5339
+
5340
+ # Maximum duration of retention allowed from the DRD control. This comes from
5341
+ # the DRD control where users set a max TTL for their data. For example, suppose
5342
+ # that a user set the max TTL for a Cloud Storage bucket to 90 days. However, an
5343
+ # object in that bucket is 100 days old. In this case, a
5344
+ # DataRetentionDeletionEvent will be generated for that Cloud Storage bucket,
5345
+ # and the max_retention_allowed is 90 days.
5346
+ # Corresponds to the JSON property `maxRetentionAllowed`
5347
+ # @return [String]
5348
+ attr_accessor :max_retention_allowed
5349
+
5350
+ def initialize(**args)
5351
+ update!(**args)
5352
+ end
5353
+
5354
+ # Update properties of this object
5355
+ def update!(**args)
5356
+ @data_object_count = args[:data_object_count] if args.key?(:data_object_count)
5357
+ @event_detection_time = args[:event_detection_time] if args.key?(:event_detection_time)
5358
+ @event_type = args[:event_type] if args.key?(:event_type)
5359
+ @max_retention_allowed = args[:max_retention_allowed] if args.key?(:max_retention_allowed)
5360
+ end
5361
+ end
5362
+
5363
+ # Represents database access information, such as queries. A database may be a
5364
+ # sub-resource of an instance (as in the case of Cloud SQL instances or Cloud
5365
+ # Spanner instances), or the database instance itself. Some database resources
5366
+ # might not have the [full resource name](https://google.aip.dev/122#full-
5367
+ # resource-names) populated because these resource types, such as Cloud SQL
5368
+ # databases, are not yet supported by Cloud Asset Inventory. In these cases only
5369
+ # the display name is provided.
5370
+ class GoogleCloudSecuritycenterV2Database
5371
+ include Google::Apis::Core::Hashable
5372
+
5373
+ # The human-readable name of the database that the user connected to.
5374
+ # Corresponds to the JSON property `displayName`
5375
+ # @return [String]
5376
+ attr_accessor :display_name
5377
+
5378
+ # The target usernames, roles, or groups of an SQL privilege grant, which is not
5379
+ # an IAM policy change.
5380
+ # Corresponds to the JSON property `grantees`
5381
+ # @return [Array<String>]
5382
+ attr_accessor :grantees
5383
+
5384
+ # Some database resources may not have the [full resource name](https://google.
5385
+ # aip.dev/122#full-resource-names) populated because these resource types are
5386
+ # not yet supported by Cloud Asset Inventory (e.g. Cloud SQL databases). In
5387
+ # these cases only the display name will be provided. The [full resource name](
5388
+ # https://google.aip.dev/122#full-resource-names) of the database that the user
5389
+ # connected to, if it is supported by Cloud Asset Inventory.
5390
+ # Corresponds to the JSON property `name`
5391
+ # @return [String]
5392
+ attr_accessor :name
5393
+
5394
+ # The SQL statement that is associated with the database access.
5395
+ # Corresponds to the JSON property `query`
5396
+ # @return [String]
5397
+ attr_accessor :query
5398
+
5399
+ # The username used to connect to the database. The username might not be an IAM
5400
+ # principal and does not have a set format.
5401
+ # Corresponds to the JSON property `userName`
5402
+ # @return [String]
5403
+ attr_accessor :user_name
5404
+
5405
+ # The version of the database, for example, POSTGRES_14. See [the complete list](
5406
+ # https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1/SqlDatabaseVersion).
5407
+ # Corresponds to the JSON property `version`
5408
+ # @return [String]
5409
+ attr_accessor :version
5410
+
5411
+ def initialize(**args)
5412
+ update!(**args)
5413
+ end
5414
+
5415
+ # Update properties of this object
5416
+ def update!(**args)
5417
+ @display_name = args[:display_name] if args.key?(:display_name)
5418
+ @grantees = args[:grantees] if args.key?(:grantees)
5419
+ @name = args[:name] if args.key?(:name)
5420
+ @query = args[:query] if args.key?(:query)
5421
+ @user_name = args[:user_name] if args.key?(:user_name)
5422
+ @version = args[:version] if args.key?(:version)
5423
+ end
5424
+ end
5425
+
5426
+ # Memory hash detection contributing to the binary family match.
5427
+ class GoogleCloudSecuritycenterV2Detection
5428
+ include Google::Apis::Core::Hashable
5429
+
5430
+ # The name of the binary associated with the memory hash signature detection.
5431
+ # Corresponds to the JSON property `binary`
5432
+ # @return [String]
5433
+ attr_accessor :binary
5434
+
5435
+ # The percentage of memory page hashes in the signature that were matched.
5436
+ # Corresponds to the JSON property `percentPagesMatched`
5437
+ # @return [Float]
5438
+ attr_accessor :percent_pages_matched
4957
5439
 
4958
5440
  def initialize(**args)
4959
5441
  update!(**args)
@@ -4966,6 +5448,26 @@ module Google
4966
5448
  end
4967
5449
  end
4968
5450
 
5451
+ # Contains information about the disk associated with the finding.
5452
+ class GoogleCloudSecuritycenterV2Disk
5453
+ include Google::Apis::Core::Hashable
5454
+
5455
+ # The name of the disk, for example, "https://www.googleapis.com/compute/v1/
5456
+ # projects/project-id/zones/zone-id/disks/disk-id".
5457
+ # Corresponds to the JSON property `name`
5458
+ # @return [String]
5459
+ attr_accessor :name
5460
+
5461
+ def initialize(**args)
5462
+ update!(**args)
5463
+ end
5464
+
5465
+ # Update properties of this object
5466
+ def update!(**args)
5467
+ @name = args[:name] if args.key?(:name)
5468
+ end
5469
+ end
5470
+
4969
5471
  # Path of the file in terms of underlying disk/partition identifiers.
4970
5472
  class GoogleCloudSecuritycenterV2DiskPath
4971
5473
  include Google::Apis::Core::Hashable
@@ -4993,6 +5495,33 @@ module Google
4993
5495
  end
4994
5496
  end
4995
5497
 
5498
+ # The record of a dynamic mute rule that matches the finding.
5499
+ class GoogleCloudSecuritycenterV2DynamicMuteRecord
5500
+ include Google::Apis::Core::Hashable
5501
+
5502
+ # When the dynamic mute rule first matched the finding.
5503
+ # Corresponds to the JSON property `matchTime`
5504
+ # @return [String]
5505
+ attr_accessor :match_time
5506
+
5507
+ # The relative resource name of the mute rule, represented by a mute config,
5508
+ # that created this record, for example `organizations/123/muteConfigs/
5509
+ # mymuteconfig` or `organizations/123/locations/global/muteConfigs/mymuteconfig`.
5510
+ # Corresponds to the JSON property `muteConfig`
5511
+ # @return [String]
5512
+ attr_accessor :mute_config
5513
+
5514
+ def initialize(**args)
5515
+ update!(**args)
5516
+ end
5517
+
5518
+ # Update properties of this object
5519
+ def update!(**args)
5520
+ @match_time = args[:match_time] if args.key?(:match_time)
5521
+ @mute_config = args[:mute_config] if args.key?(:mute_config)
5522
+ end
5523
+ end
5524
+
4996
5525
  # A name-value pair representing an environment variable used in an operating
4997
5526
  # system process.
4998
5527
  class GoogleCloudSecuritycenterV2EnvironmentVariable
@@ -5331,6 +5860,21 @@ module Google
5331
5860
  # @return [String]
5332
5861
  attr_accessor :create_time
5333
5862
 
5863
+ # Data access events associated with the finding.
5864
+ # Corresponds to the JSON property `dataAccessEvents`
5865
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2DataAccessEvent>]
5866
+ attr_accessor :data_access_events
5867
+
5868
+ # Data flow events associated with the finding.
5869
+ # Corresponds to the JSON property `dataFlowEvents`
5870
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2DataFlowEvent>]
5871
+ attr_accessor :data_flow_events
5872
+
5873
+ # Data retention deletion events associated with the finding.
5874
+ # Corresponds to the JSON property `dataRetentionDeletionEvents`
5875
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2DataRetentionDeletionEvent>]
5876
+ attr_accessor :data_retention_deletion_events
5877
+
5334
5878
  # Represents database access information, such as queries. A database may be a
5335
5879
  # sub-resource of an instance (as in the case of Cloud SQL instances or Cloud
5336
5880
  # Spanner instances), or the database instance itself. Some database resources
@@ -5347,6 +5891,11 @@ module Google
5347
5891
  # @return [String]
5348
5892
  attr_accessor :description
5349
5893
 
5894
+ # Contains information about the disk associated with the finding.
5895
+ # Corresponds to the JSON property `disk`
5896
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Disk]
5897
+ attr_accessor :disk
5898
+
5350
5899
  # The time the finding was first detected. If an existing finding is updated,
5351
5900
  # then this is the time the update occurred. For example, if the finding
5352
5901
  # represents an open firewall, this property captures the time the detector
@@ -5448,6 +5997,12 @@ module Google
5448
5997
  # @return [String]
5449
5998
  attr_accessor :mute
5450
5999
 
6000
+ # Mute information about the finding, including whether the finding has a static
6001
+ # mute or any matching dynamic mute rules.
6002
+ # Corresponds to the JSON property `muteInfo`
6003
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2MuteInfo]
6004
+ attr_accessor :mute_info
6005
+
5451
6006
  # Records additional information about the mute operation, for example, the [
5452
6007
  # mute configuration](https://cloud.google.com/security-command-center/docs/how-
5453
6008
  # to-mute-findings) that muted the finding and the user who muted the finding.
@@ -5531,44 +6086,604 @@ module Google
5531
6086
  # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2SecurityMarks]
5532
6087
  attr_accessor :security_marks
5533
6088
 
5534
- # Represents a posture that is deployed on Google Cloud by the Security Command
5535
- # Center Posture Management service. A posture contains one or more policy sets.
5536
- # A policy set is a group of policies that enforce a set of security rules on
5537
- # Google Cloud.
5538
- # Corresponds to the JSON property `securityPosture`
5539
- # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2SecurityPosture]
5540
- attr_accessor :security_posture
6089
+ # Represents a posture that is deployed on Google Cloud by the Security Command
6090
+ # Center Posture Management service. A posture contains one or more policy sets.
6091
+ # A policy set is a group of policies that enforce a set of security rules on
6092
+ # Google Cloud.
6093
+ # Corresponds to the JSON property `securityPosture`
6094
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2SecurityPosture]
6095
+ attr_accessor :security_posture
6096
+
6097
+ # The severity of the finding. This field is managed by the source that writes
6098
+ # the finding.
6099
+ # Corresponds to the JSON property `severity`
6100
+ # @return [String]
6101
+ attr_accessor :severity
6102
+
6103
+ # Source specific properties. These properties are managed by the source that
6104
+ # writes the finding. The key names in the source_properties map must be between
6105
+ # 1 and 255 characters, and must start with a letter and contain alphanumeric
6106
+ # characters or underscores only.
6107
+ # Corresponds to the JSON property `sourceProperties`
6108
+ # @return [Hash<String,Object>]
6109
+ attr_accessor :source_properties
6110
+
6111
+ # Output only. The state of the finding.
6112
+ # Corresponds to the JSON property `state`
6113
+ # @return [String]
6114
+ attr_accessor :state
6115
+
6116
+ # Contains details about a group of security issues that, when the issues occur
6117
+ # together, represent a greater risk than when the issues occur independently. A
6118
+ # group of such issues is referred to as a toxic combination.
6119
+ # Corresponds to the JSON property `toxicCombination`
6120
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2ToxicCombination]
6121
+ attr_accessor :toxic_combination
6122
+
6123
+ # Refers to common vulnerability fields e.g. cve, cvss, cwe etc.
6124
+ # Corresponds to the JSON property `vulnerability`
6125
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Vulnerability]
6126
+ attr_accessor :vulnerability
6127
+
6128
+ def initialize(**args)
6129
+ update!(**args)
6130
+ end
6131
+
6132
+ # Update properties of this object
6133
+ def update!(**args)
6134
+ @access = args[:access] if args.key?(:access)
6135
+ @application = args[:application] if args.key?(:application)
6136
+ @attack_exposure = args[:attack_exposure] if args.key?(:attack_exposure)
6137
+ @backup_disaster_recovery = args[:backup_disaster_recovery] if args.key?(:backup_disaster_recovery)
6138
+ @canonical_name = args[:canonical_name] if args.key?(:canonical_name)
6139
+ @category = args[:category] if args.key?(:category)
6140
+ @cloud_armor = args[:cloud_armor] if args.key?(:cloud_armor)
6141
+ @cloud_dlp_data_profile = args[:cloud_dlp_data_profile] if args.key?(:cloud_dlp_data_profile)
6142
+ @cloud_dlp_inspection = args[:cloud_dlp_inspection] if args.key?(:cloud_dlp_inspection)
6143
+ @compliances = args[:compliances] if args.key?(:compliances)
6144
+ @connections = args[:connections] if args.key?(:connections)
6145
+ @contacts = args[:contacts] if args.key?(:contacts)
6146
+ @containers = args[:containers] if args.key?(:containers)
6147
+ @create_time = args[:create_time] if args.key?(:create_time)
6148
+ @data_access_events = args[:data_access_events] if args.key?(:data_access_events)
6149
+ @data_flow_events = args[:data_flow_events] if args.key?(:data_flow_events)
6150
+ @data_retention_deletion_events = args[:data_retention_deletion_events] if args.key?(:data_retention_deletion_events)
6151
+ @database = args[:database] if args.key?(:database)
6152
+ @description = args[:description] if args.key?(:description)
6153
+ @disk = args[:disk] if args.key?(:disk)
6154
+ @event_time = args[:event_time] if args.key?(:event_time)
6155
+ @exfiltration = args[:exfiltration] if args.key?(:exfiltration)
6156
+ @external_systems = args[:external_systems] if args.key?(:external_systems)
6157
+ @external_uri = args[:external_uri] if args.key?(:external_uri)
6158
+ @files = args[:files] if args.key?(:files)
6159
+ @finding_class = args[:finding_class] if args.key?(:finding_class)
6160
+ @group_memberships = args[:group_memberships] if args.key?(:group_memberships)
6161
+ @iam_bindings = args[:iam_bindings] if args.key?(:iam_bindings)
6162
+ @indicator = args[:indicator] if args.key?(:indicator)
6163
+ @kernel_rootkit = args[:kernel_rootkit] if args.key?(:kernel_rootkit)
6164
+ @kubernetes = args[:kubernetes] if args.key?(:kubernetes)
6165
+ @load_balancers = args[:load_balancers] if args.key?(:load_balancers)
6166
+ @log_entries = args[:log_entries] if args.key?(:log_entries)
6167
+ @mitre_attack = args[:mitre_attack] if args.key?(:mitre_attack)
6168
+ @module_name = args[:module_name] if args.key?(:module_name)
6169
+ @mute = args[:mute] if args.key?(:mute)
6170
+ @mute_info = args[:mute_info] if args.key?(:mute_info)
6171
+ @mute_initiator = args[:mute_initiator] if args.key?(:mute_initiator)
6172
+ @mute_update_time = args[:mute_update_time] if args.key?(:mute_update_time)
6173
+ @name = args[:name] if args.key?(:name)
6174
+ @next_steps = args[:next_steps] if args.key?(:next_steps)
6175
+ @notebook = args[:notebook] if args.key?(:notebook)
6176
+ @org_policies = args[:org_policies] if args.key?(:org_policies)
6177
+ @parent = args[:parent] if args.key?(:parent)
6178
+ @parent_display_name = args[:parent_display_name] if args.key?(:parent_display_name)
6179
+ @processes = args[:processes] if args.key?(:processes)
6180
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
6181
+ @security_marks = args[:security_marks] if args.key?(:security_marks)
6182
+ @security_posture = args[:security_posture] if args.key?(:security_posture)
6183
+ @severity = args[:severity] if args.key?(:severity)
6184
+ @source_properties = args[:source_properties] if args.key?(:source_properties)
6185
+ @state = args[:state] if args.key?(:state)
6186
+ @toxic_combination = args[:toxic_combination] if args.key?(:toxic_combination)
6187
+ @vulnerability = args[:vulnerability] if args.key?(:vulnerability)
6188
+ end
6189
+ end
6190
+
6191
+ # Message that contains the resource name and display name of a folder resource.
6192
+ class GoogleCloudSecuritycenterV2Folder
6193
+ include Google::Apis::Core::Hashable
6194
+
6195
+ # Full resource name of this folder. See: https://cloud.google.com/apis/design/
6196
+ # resource_names#full_resource_name
6197
+ # Corresponds to the JSON property `resourceFolder`
6198
+ # @return [String]
6199
+ attr_accessor :resource_folder
6200
+
6201
+ # The user defined display name for this folder.
6202
+ # Corresponds to the JSON property `resourceFolderDisplayName`
6203
+ # @return [String]
6204
+ attr_accessor :resource_folder_display_name
6205
+
6206
+ def initialize(**args)
6207
+ update!(**args)
6208
+ end
6209
+
6210
+ # Update properties of this object
6211
+ def update!(**args)
6212
+ @resource_folder = args[:resource_folder] if args.key?(:resource_folder)
6213
+ @resource_folder_display_name = args[:resource_folder_display_name] if args.key?(:resource_folder_display_name)
6214
+ end
6215
+ end
6216
+
6217
+ # Represents a geographical location for a given access.
6218
+ class GoogleCloudSecuritycenterV2Geolocation
6219
+ include Google::Apis::Core::Hashable
6220
+
6221
+ # A CLDR.
6222
+ # Corresponds to the JSON property `regionCode`
6223
+ # @return [String]
6224
+ attr_accessor :region_code
6225
+
6226
+ def initialize(**args)
6227
+ update!(**args)
6228
+ end
6229
+
6230
+ # Update properties of this object
6231
+ def update!(**args)
6232
+ @region_code = args[:region_code] if args.key?(:region_code)
6233
+ end
6234
+ end
6235
+
6236
+ # Contains details about groups of which this finding is a member. A group is a
6237
+ # collection of findings that are related in some way.
6238
+ class GoogleCloudSecuritycenterV2GroupMembership
6239
+ include Google::Apis::Core::Hashable
6240
+
6241
+ # ID of the group.
6242
+ # Corresponds to the JSON property `groupId`
6243
+ # @return [String]
6244
+ attr_accessor :group_id
6245
+
6246
+ # Type of group.
6247
+ # Corresponds to the JSON property `groupType`
6248
+ # @return [String]
6249
+ attr_accessor :group_type
6250
+
6251
+ def initialize(**args)
6252
+ update!(**args)
6253
+ end
6254
+
6255
+ # Update properties of this object
6256
+ def update!(**args)
6257
+ @group_id = args[:group_id] if args.key?(:group_id)
6258
+ @group_type = args[:group_type] if args.key?(:group_type)
6259
+ end
6260
+ end
6261
+
6262
+ # Represents a particular IAM binding, which captures a member's role addition,
6263
+ # removal, or state.
6264
+ class GoogleCloudSecuritycenterV2IamBinding
6265
+ include Google::Apis::Core::Hashable
6266
+
6267
+ # The action that was performed on a Binding.
6268
+ # Corresponds to the JSON property `action`
6269
+ # @return [String]
6270
+ attr_accessor :action
6271
+
6272
+ # A single identity requesting access for a Cloud Platform resource, for example,
6273
+ # "foo@google.com".
6274
+ # Corresponds to the JSON property `member`
6275
+ # @return [String]
6276
+ attr_accessor :member
6277
+
6278
+ # Role that is assigned to "members". For example, "roles/viewer", "roles/editor"
6279
+ # , or "roles/owner".
6280
+ # Corresponds to the JSON property `role`
6281
+ # @return [String]
6282
+ attr_accessor :role
6283
+
6284
+ def initialize(**args)
6285
+ update!(**args)
6286
+ end
6287
+
6288
+ # Update properties of this object
6289
+ def update!(**args)
6290
+ @action = args[:action] if args.key?(:action)
6291
+ @member = args[:member] if args.key?(:member)
6292
+ @role = args[:role] if args.key?(:role)
6293
+ end
6294
+ end
6295
+
6296
+ # Represents what's commonly known as an _indicator of compromise_ (IoC) in
6297
+ # computer forensics. This is an artifact observed on a network or in an
6298
+ # operating system that, with high confidence, indicates a computer intrusion.
6299
+ # For more information, see [Indicator of compromise](https://en.wikipedia.org/
6300
+ # wiki/Indicator_of_compromise).
6301
+ class GoogleCloudSecuritycenterV2Indicator
6302
+ include Google::Apis::Core::Hashable
6303
+
6304
+ # List of domains associated to the Finding.
6305
+ # Corresponds to the JSON property `domains`
6306
+ # @return [Array<String>]
6307
+ attr_accessor :domains
6308
+
6309
+ # The list of IP addresses that are associated with the finding.
6310
+ # Corresponds to the JSON property `ipAddresses`
6311
+ # @return [Array<String>]
6312
+ attr_accessor :ip_addresses
6313
+
6314
+ # The list of matched signatures indicating that the given process is present in
6315
+ # the environment.
6316
+ # Corresponds to the JSON property `signatures`
6317
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2ProcessSignature>]
6318
+ attr_accessor :signatures
6319
+
6320
+ # The list of URIs associated to the Findings.
6321
+ # Corresponds to the JSON property `uris`
6322
+ # @return [Array<String>]
6323
+ attr_accessor :uris
6324
+
6325
+ def initialize(**args)
6326
+ update!(**args)
6327
+ end
6328
+
6329
+ # Update properties of this object
6330
+ def update!(**args)
6331
+ @domains = args[:domains] if args.key?(:domains)
6332
+ @ip_addresses = args[:ip_addresses] if args.key?(:ip_addresses)
6333
+ @signatures = args[:signatures] if args.key?(:signatures)
6334
+ @uris = args[:uris] if args.key?(:uris)
6335
+ end
6336
+ end
6337
+
6338
+ # Security Command Center Issue.
6339
+ class GoogleCloudSecuritycenterV2Issue
6340
+ include Google::Apis::Core::Hashable
6341
+
6342
+ # Output only. The time the issue was created.
6343
+ # Corresponds to the JSON property `createTime`
6344
+ # @return [String]
6345
+ attr_accessor :create_time
6346
+
6347
+ # The description of the issue in Markdown format.
6348
+ # Corresponds to the JSON property `description`
6349
+ # @return [String]
6350
+ attr_accessor :description
6351
+
6352
+ # The finding category or rule name that generated the issue.
6353
+ # Corresponds to the JSON property `detection`
6354
+ # @return [String]
6355
+ attr_accessor :detection
6356
+
6357
+ # The domains of the issue.
6358
+ # Corresponds to the JSON property `domains`
6359
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2IssueDomain>]
6360
+ attr_accessor :domains
6361
+
6362
+ # The exposure score of the issue.
6363
+ # Corresponds to the JSON property `exposureScore`
6364
+ # @return [Float]
6365
+ attr_accessor :exposure_score
6366
+
6367
+ # The type of the issue.
6368
+ # Corresponds to the JSON property `issueType`
6369
+ # @return [String]
6370
+ attr_accessor :issue_type
6371
+
6372
+ # The time the issue was last observed.
6373
+ # Corresponds to the JSON property `lastObservationTime`
6374
+ # @return [String]
6375
+ attr_accessor :last_observation_time
6376
+
6377
+ # The mute information of the issue.
6378
+ # Corresponds to the JSON property `mute`
6379
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2IssueMute]
6380
+ attr_accessor :mute
6381
+
6382
+ # Identifier. The name of the issue. Format: organizations/`organization`/
6383
+ # locations/`location`/issues/`issue`
6384
+ # Corresponds to the JSON property `name`
6385
+ # @return [String]
6386
+ attr_accessor :name
6387
+
6388
+ # A resource associated with the an issue.
6389
+ # Corresponds to the JSON property `primaryResource`
6390
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2IssueResource]
6391
+ attr_accessor :primary_resource
6392
+
6393
+ # The findings related to the issue.
6394
+ # Corresponds to the JSON property `relatedFindings`
6395
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2IssueFinding>]
6396
+ attr_accessor :related_findings
6397
+
6398
+ # Approaches to remediate the issue in Markdown format.
6399
+ # Corresponds to the JSON property `remediations`
6400
+ # @return [Array<String>]
6401
+ attr_accessor :remediations
6402
+
6403
+ # Additional resources associated with the issue.
6404
+ # Corresponds to the JSON property `secondaryResources`
6405
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2IssueResource>]
6406
+ attr_accessor :secondary_resources
6407
+
6408
+ # The security context of the issue.
6409
+ # Corresponds to the JSON property `securityContexts`
6410
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2IssueSecurityContext>]
6411
+ attr_accessor :security_contexts
6412
+
6413
+ # The severity of the issue.
6414
+ # Corresponds to the JSON property `severity`
6415
+ # @return [String]
6416
+ attr_accessor :severity
6417
+
6418
+ # Output only. The state of the issue.
6419
+ # Corresponds to the JSON property `state`
6420
+ # @return [String]
6421
+ attr_accessor :state
6422
+
6423
+ # Output only. The time the issue was last updated.
6424
+ # Corresponds to the JSON property `updateTime`
6425
+ # @return [String]
6426
+ attr_accessor :update_time
6427
+
6428
+ def initialize(**args)
6429
+ update!(**args)
6430
+ end
6431
+
6432
+ # Update properties of this object
6433
+ def update!(**args)
6434
+ @create_time = args[:create_time] if args.key?(:create_time)
6435
+ @description = args[:description] if args.key?(:description)
6436
+ @detection = args[:detection] if args.key?(:detection)
6437
+ @domains = args[:domains] if args.key?(:domains)
6438
+ @exposure_score = args[:exposure_score] if args.key?(:exposure_score)
6439
+ @issue_type = args[:issue_type] if args.key?(:issue_type)
6440
+ @last_observation_time = args[:last_observation_time] if args.key?(:last_observation_time)
6441
+ @mute = args[:mute] if args.key?(:mute)
6442
+ @name = args[:name] if args.key?(:name)
6443
+ @primary_resource = args[:primary_resource] if args.key?(:primary_resource)
6444
+ @related_findings = args[:related_findings] if args.key?(:related_findings)
6445
+ @remediations = args[:remediations] if args.key?(:remediations)
6446
+ @secondary_resources = args[:secondary_resources] if args.key?(:secondary_resources)
6447
+ @security_contexts = args[:security_contexts] if args.key?(:security_contexts)
6448
+ @severity = args[:severity] if args.key?(:severity)
6449
+ @state = args[:state] if args.key?(:state)
6450
+ @update_time = args[:update_time] if args.key?(:update_time)
6451
+ end
6452
+ end
6453
+
6454
+ # The domains of an issue.
6455
+ class GoogleCloudSecuritycenterV2IssueDomain
6456
+ include Google::Apis::Core::Hashable
6457
+
6458
+ # The domain category of the issue.
6459
+ # Corresponds to the JSON property `domainCategory`
6460
+ # @return [String]
6461
+ attr_accessor :domain_category
6462
+
6463
+ def initialize(**args)
6464
+ update!(**args)
6465
+ end
6466
+
6467
+ # Update properties of this object
6468
+ def update!(**args)
6469
+ @domain_category = args[:domain_category] if args.key?(:domain_category)
6470
+ end
6471
+ end
6472
+
6473
+ # Finding related to an issue.
6474
+ class GoogleCloudSecuritycenterV2IssueFinding
6475
+ include Google::Apis::Core::Hashable
6476
+
6477
+ # The CVE of the finding.
6478
+ # Corresponds to the JSON property `cve`
6479
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2IssueFindingCve]
6480
+ attr_accessor :cve
6481
+
6482
+ # The name of the finding.
6483
+ # Corresponds to the JSON property `name`
6484
+ # @return [String]
6485
+ attr_accessor :name
6486
+
6487
+ # The security bulletin of the finding.
6488
+ # Corresponds to the JSON property `securityBulletin`
6489
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2IssueFindingSecurityBulletin]
6490
+ attr_accessor :security_bulletin
6491
+
6492
+ def initialize(**args)
6493
+ update!(**args)
6494
+ end
6495
+
6496
+ # Update properties of this object
6497
+ def update!(**args)
6498
+ @cve = args[:cve] if args.key?(:cve)
6499
+ @name = args[:name] if args.key?(:name)
6500
+ @security_bulletin = args[:security_bulletin] if args.key?(:security_bulletin)
6501
+ end
6502
+ end
6503
+
6504
+ # The CVE of the finding.
6505
+ class GoogleCloudSecuritycenterV2IssueFindingCve
6506
+ include Google::Apis::Core::Hashable
6507
+
6508
+ # The CVE name.
6509
+ # Corresponds to the JSON property `name`
6510
+ # @return [String]
6511
+ attr_accessor :name
6512
+
6513
+ def initialize(**args)
6514
+ update!(**args)
6515
+ end
6516
+
6517
+ # Update properties of this object
6518
+ def update!(**args)
6519
+ @name = args[:name] if args.key?(:name)
6520
+ end
6521
+ end
6522
+
6523
+ # The security bulletin of the finding.
6524
+ class GoogleCloudSecuritycenterV2IssueFindingSecurityBulletin
6525
+ include Google::Apis::Core::Hashable
6526
+
6527
+ # The security bulletin name.
6528
+ # Corresponds to the JSON property `name`
6529
+ # @return [String]
6530
+ attr_accessor :name
6531
+
6532
+ def initialize(**args)
6533
+ update!(**args)
6534
+ end
6535
+
6536
+ # Update properties of this object
6537
+ def update!(**args)
6538
+ @name = args[:name] if args.key?(:name)
6539
+ end
6540
+ end
6541
+
6542
+ # The mute information of the issue.
6543
+ class GoogleCloudSecuritycenterV2IssueMute
6544
+ include Google::Apis::Core::Hashable
6545
+
6546
+ # The email address of the user who last changed the mute state of the issue.
6547
+ # Corresponds to the JSON property `muteInitiator`
6548
+ # @return [String]
6549
+ attr_accessor :mute_initiator
6550
+
6551
+ # The user-provided reason for muting the issue.
6552
+ # Corresponds to the JSON property `muteReason`
6553
+ # @return [String]
6554
+ attr_accessor :mute_reason
6555
+
6556
+ # Output only. The mute state of the issue.
6557
+ # Corresponds to the JSON property `muteState`
6558
+ # @return [String]
6559
+ attr_accessor :mute_state
6560
+
6561
+ # The time the issue was muted.
6562
+ # Corresponds to the JSON property `muteUpdateTime`
6563
+ # @return [String]
6564
+ attr_accessor :mute_update_time
6565
+
6566
+ def initialize(**args)
6567
+ update!(**args)
6568
+ end
6569
+
6570
+ # Update properties of this object
6571
+ def update!(**args)
6572
+ @mute_initiator = args[:mute_initiator] if args.key?(:mute_initiator)
6573
+ @mute_reason = args[:mute_reason] if args.key?(:mute_reason)
6574
+ @mute_state = args[:mute_state] if args.key?(:mute_state)
6575
+ @mute_update_time = args[:mute_update_time] if args.key?(:mute_update_time)
6576
+ end
6577
+ end
6578
+
6579
+ # A resource associated with the an issue.
6580
+ class GoogleCloudSecuritycenterV2IssueResource
6581
+ include Google::Apis::Core::Hashable
6582
+
6583
+ # The AWS metadata of a resource associated with an issue.
6584
+ # Corresponds to the JSON property `awsMetadata`
6585
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2IssueResourceAwsMetadata]
6586
+ attr_accessor :aws_metadata
6587
+
6588
+ # The Azure metadata of a resource associated with an issue.
6589
+ # Corresponds to the JSON property `azureMetadata`
6590
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2IssueResourceAzureMetadata]
6591
+ attr_accessor :azure_metadata
6592
+
6593
+ # The cloud provider of the resource associated with the issue.
6594
+ # Corresponds to the JSON property `cloudProvider`
6595
+ # @return [String]
6596
+ attr_accessor :cloud_provider
6597
+
6598
+ # The resource-type specific display name of the resource associated with the
6599
+ # issue.
6600
+ # Corresponds to the JSON property `displayName`
6601
+ # @return [String]
6602
+ attr_accessor :display_name
6603
+
6604
+ # Google Cloud metadata of a resource associated with an issue.
6605
+ # Corresponds to the JSON property `googleCloudMetadata`
6606
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2IssueResourceGoogleCloudMetadata]
6607
+ attr_accessor :google_cloud_metadata
6608
+
6609
+ # The full resource name of the resource associated with the issue.
6610
+ # Corresponds to the JSON property `name`
6611
+ # @return [String]
6612
+ attr_accessor :name
6613
+
6614
+ # The type of the resource associated with the issue.
6615
+ # Corresponds to the JSON property `type`
6616
+ # @return [String]
6617
+ attr_accessor :type
6618
+
6619
+ def initialize(**args)
6620
+ update!(**args)
6621
+ end
6622
+
6623
+ # Update properties of this object
6624
+ def update!(**args)
6625
+ @aws_metadata = args[:aws_metadata] if args.key?(:aws_metadata)
6626
+ @azure_metadata = args[:azure_metadata] if args.key?(:azure_metadata)
6627
+ @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider)
6628
+ @display_name = args[:display_name] if args.key?(:display_name)
6629
+ @google_cloud_metadata = args[:google_cloud_metadata] if args.key?(:google_cloud_metadata)
6630
+ @name = args[:name] if args.key?(:name)
6631
+ @type = args[:type] if args.key?(:type)
6632
+ end
6633
+ end
6634
+
6635
+ # The AWS metadata of a resource associated with an issue.
6636
+ class GoogleCloudSecuritycenterV2IssueResourceAwsMetadata
6637
+ include Google::Apis::Core::Hashable
6638
+
6639
+ # The AWS account of the resource associated with the issue.
6640
+ # Corresponds to the JSON property `account`
6641
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2IssueResourceAwsMetadataAwsAccount]
6642
+ attr_accessor :account
6643
+
6644
+ def initialize(**args)
6645
+ update!(**args)
6646
+ end
6647
+
6648
+ # Update properties of this object
6649
+ def update!(**args)
6650
+ @account = args[:account] if args.key?(:account)
6651
+ end
6652
+ end
6653
+
6654
+ # The AWS account of the resource associated with the issue.
6655
+ class GoogleCloudSecuritycenterV2IssueResourceAwsMetadataAwsAccount
6656
+ include Google::Apis::Core::Hashable
6657
+
6658
+ # The AWS account ID of the resource associated with the issue.
6659
+ # Corresponds to the JSON property `id`
6660
+ # @return [String]
6661
+ attr_accessor :id
5541
6662
 
5542
- # The severity of the finding. This field is managed by the source that writes
5543
- # the finding.
5544
- # Corresponds to the JSON property `severity`
6663
+ # The AWS account name of the resource associated with the issue.
6664
+ # Corresponds to the JSON property `name`
5545
6665
  # @return [String]
5546
- attr_accessor :severity
6666
+ attr_accessor :name
5547
6667
 
5548
- # Source specific properties. These properties are managed by the source that
5549
- # writes the finding. The key names in the source_properties map must be between
5550
- # 1 and 255 characters, and must start with a letter and contain alphanumeric
5551
- # characters or underscores only.
5552
- # Corresponds to the JSON property `sourceProperties`
5553
- # @return [Hash<String,Object>]
5554
- attr_accessor :source_properties
6668
+ def initialize(**args)
6669
+ update!(**args)
6670
+ end
5555
6671
 
5556
- # Output only. The state of the finding.
5557
- # Corresponds to the JSON property `state`
5558
- # @return [String]
5559
- attr_accessor :state
6672
+ # Update properties of this object
6673
+ def update!(**args)
6674
+ @id = args[:id] if args.key?(:id)
6675
+ @name = args[:name] if args.key?(:name)
6676
+ end
6677
+ end
5560
6678
 
5561
- # Contains details about a group of security issues that, when the issues occur
5562
- # together, represent a greater risk than when the issues occur independently. A
5563
- # group of such issues is referred to as a toxic combination.
5564
- # Corresponds to the JSON property `toxicCombination`
5565
- # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2ToxicCombination]
5566
- attr_accessor :toxic_combination
6679
+ # The Azure metadata of a resource associated with an issue.
6680
+ class GoogleCloudSecuritycenterV2IssueResourceAzureMetadata
6681
+ include Google::Apis::Core::Hashable
5567
6682
 
5568
- # Refers to common vulnerability fields e.g. cve, cvss, cwe etc.
5569
- # Corresponds to the JSON property `vulnerability`
5570
- # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Vulnerability]
5571
- attr_accessor :vulnerability
6683
+ # The Azure subscription of the resource associated with the issue.
6684
+ # Corresponds to the JSON property `subscription`
6685
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2IssueResourceAzureMetadataAzureSubscription]
6686
+ attr_accessor :subscription
5572
6687
 
5573
6688
  def initialize(**args)
5574
6689
  update!(**args)
@@ -5576,72 +6691,23 @@ module Google
5576
6691
 
5577
6692
  # Update properties of this object
5578
6693
  def update!(**args)
5579
- @access = args[:access] if args.key?(:access)
5580
- @application = args[:application] if args.key?(:application)
5581
- @attack_exposure = args[:attack_exposure] if args.key?(:attack_exposure)
5582
- @backup_disaster_recovery = args[:backup_disaster_recovery] if args.key?(:backup_disaster_recovery)
5583
- @canonical_name = args[:canonical_name] if args.key?(:canonical_name)
5584
- @category = args[:category] if args.key?(:category)
5585
- @cloud_armor = args[:cloud_armor] if args.key?(:cloud_armor)
5586
- @cloud_dlp_data_profile = args[:cloud_dlp_data_profile] if args.key?(:cloud_dlp_data_profile)
5587
- @cloud_dlp_inspection = args[:cloud_dlp_inspection] if args.key?(:cloud_dlp_inspection)
5588
- @compliances = args[:compliances] if args.key?(:compliances)
5589
- @connections = args[:connections] if args.key?(:connections)
5590
- @contacts = args[:contacts] if args.key?(:contacts)
5591
- @containers = args[:containers] if args.key?(:containers)
5592
- @create_time = args[:create_time] if args.key?(:create_time)
5593
- @database = args[:database] if args.key?(:database)
5594
- @description = args[:description] if args.key?(:description)
5595
- @event_time = args[:event_time] if args.key?(:event_time)
5596
- @exfiltration = args[:exfiltration] if args.key?(:exfiltration)
5597
- @external_systems = args[:external_systems] if args.key?(:external_systems)
5598
- @external_uri = args[:external_uri] if args.key?(:external_uri)
5599
- @files = args[:files] if args.key?(:files)
5600
- @finding_class = args[:finding_class] if args.key?(:finding_class)
5601
- @group_memberships = args[:group_memberships] if args.key?(:group_memberships)
5602
- @iam_bindings = args[:iam_bindings] if args.key?(:iam_bindings)
5603
- @indicator = args[:indicator] if args.key?(:indicator)
5604
- @kernel_rootkit = args[:kernel_rootkit] if args.key?(:kernel_rootkit)
5605
- @kubernetes = args[:kubernetes] if args.key?(:kubernetes)
5606
- @load_balancers = args[:load_balancers] if args.key?(:load_balancers)
5607
- @log_entries = args[:log_entries] if args.key?(:log_entries)
5608
- @mitre_attack = args[:mitre_attack] if args.key?(:mitre_attack)
5609
- @module_name = args[:module_name] if args.key?(:module_name)
5610
- @mute = args[:mute] if args.key?(:mute)
5611
- @mute_initiator = args[:mute_initiator] if args.key?(:mute_initiator)
5612
- @mute_update_time = args[:mute_update_time] if args.key?(:mute_update_time)
5613
- @name = args[:name] if args.key?(:name)
5614
- @next_steps = args[:next_steps] if args.key?(:next_steps)
5615
- @notebook = args[:notebook] if args.key?(:notebook)
5616
- @org_policies = args[:org_policies] if args.key?(:org_policies)
5617
- @parent = args[:parent] if args.key?(:parent)
5618
- @parent_display_name = args[:parent_display_name] if args.key?(:parent_display_name)
5619
- @processes = args[:processes] if args.key?(:processes)
5620
- @resource_name = args[:resource_name] if args.key?(:resource_name)
5621
- @security_marks = args[:security_marks] if args.key?(:security_marks)
5622
- @security_posture = args[:security_posture] if args.key?(:security_posture)
5623
- @severity = args[:severity] if args.key?(:severity)
5624
- @source_properties = args[:source_properties] if args.key?(:source_properties)
5625
- @state = args[:state] if args.key?(:state)
5626
- @toxic_combination = args[:toxic_combination] if args.key?(:toxic_combination)
5627
- @vulnerability = args[:vulnerability] if args.key?(:vulnerability)
6694
+ @subscription = args[:subscription] if args.key?(:subscription)
5628
6695
  end
5629
6696
  end
5630
6697
 
5631
- # Message that contains the resource name and display name of a folder resource.
5632
- class GoogleCloudSecuritycenterV2Folder
6698
+ # The Azure subscription of the resource associated with the issue.
6699
+ class GoogleCloudSecuritycenterV2IssueResourceAzureMetadataAzureSubscription
5633
6700
  include Google::Apis::Core::Hashable
5634
6701
 
5635
- # Full resource name of this folder. See: https://cloud.google.com/apis/design/
5636
- # resource_names#full_resource_name
5637
- # Corresponds to the JSON property `resourceFolder`
6702
+ # The Azure subscription display name of the resource associated with the issue.
6703
+ # Corresponds to the JSON property `displayName`
5638
6704
  # @return [String]
5639
- attr_accessor :resource_folder
6705
+ attr_accessor :display_name
5640
6706
 
5641
- # The user defined display name for this folder.
5642
- # Corresponds to the JSON property `resourceFolderDisplayName`
6707
+ # The Azure subscription ID of the resource associated with the issue.
6708
+ # Corresponds to the JSON property `id`
5643
6709
  # @return [String]
5644
- attr_accessor :resource_folder_display_name
6710
+ attr_accessor :id
5645
6711
 
5646
6712
  def initialize(**args)
5647
6713
  update!(**args)
@@ -5649,19 +6715,19 @@ module Google
5649
6715
 
5650
6716
  # Update properties of this object
5651
6717
  def update!(**args)
5652
- @resource_folder = args[:resource_folder] if args.key?(:resource_folder)
5653
- @resource_folder_display_name = args[:resource_folder_display_name] if args.key?(:resource_folder_display_name)
6718
+ @display_name = args[:display_name] if args.key?(:display_name)
6719
+ @id = args[:id] if args.key?(:id)
5654
6720
  end
5655
6721
  end
5656
6722
 
5657
- # Represents a geographical location for a given access.
5658
- class GoogleCloudSecuritycenterV2Geolocation
6723
+ # Google Cloud metadata of a resource associated with an issue.
6724
+ class GoogleCloudSecuritycenterV2IssueResourceGoogleCloudMetadata
5659
6725
  include Google::Apis::Core::Hashable
5660
6726
 
5661
- # A CLDR.
5662
- # Corresponds to the JSON property `regionCode`
6727
+ # The project ID that the resource associated with the issue belongs to.
6728
+ # Corresponds to the JSON property `projectId`
5663
6729
  # @return [String]
5664
- attr_accessor :region_code
6730
+ attr_accessor :project_id
5665
6731
 
5666
6732
  def initialize(**args)
5667
6733
  update!(**args)
@@ -5669,24 +6735,23 @@ module Google
5669
6735
 
5670
6736
  # Update properties of this object
5671
6737
  def update!(**args)
5672
- @region_code = args[:region_code] if args.key?(:region_code)
6738
+ @project_id = args[:project_id] if args.key?(:project_id)
5673
6739
  end
5674
6740
  end
5675
6741
 
5676
- # Contains details about groups of which this finding is a member. A group is a
5677
- # collection of findings that are related in some way.
5678
- class GoogleCloudSecuritycenterV2GroupMembership
6742
+ # Security context associated with an issue.
6743
+ class GoogleCloudSecuritycenterV2IssueSecurityContext
5679
6744
  include Google::Apis::Core::Hashable
5680
6745
 
5681
- # ID of the group.
5682
- # Corresponds to the JSON property `groupId`
5683
- # @return [String]
5684
- attr_accessor :group_id
6746
+ # Aggregated count of a security context.
6747
+ # Corresponds to the JSON property `aggregatedCount`
6748
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2IssueSecurityContextAggregatedCount]
6749
+ attr_accessor :aggregated_count
5685
6750
 
5686
- # Type of group.
5687
- # Corresponds to the JSON property `groupType`
5688
- # @return [String]
5689
- attr_accessor :group_type
6751
+ # Context of a security context.
6752
+ # Corresponds to the JSON property `context`
6753
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2IssueSecurityContextContext]
6754
+ attr_accessor :context
5690
6755
 
5691
6756
  def initialize(**args)
5692
6757
  update!(**args)
@@ -5694,32 +6759,24 @@ module Google
5694
6759
 
5695
6760
  # Update properties of this object
5696
6761
  def update!(**args)
5697
- @group_id = args[:group_id] if args.key?(:group_id)
5698
- @group_type = args[:group_type] if args.key?(:group_type)
6762
+ @aggregated_count = args[:aggregated_count] if args.key?(:aggregated_count)
6763
+ @context = args[:context] if args.key?(:context)
5699
6764
  end
5700
6765
  end
5701
6766
 
5702
- # Represents a particular IAM binding, which captures a member's role addition,
5703
- # removal, or state.
5704
- class GoogleCloudSecuritycenterV2IamBinding
6767
+ # Aggregated count of a security context.
6768
+ class GoogleCloudSecuritycenterV2IssueSecurityContextAggregatedCount
5705
6769
  include Google::Apis::Core::Hashable
5706
6770
 
5707
- # The action that was performed on a Binding.
5708
- # Corresponds to the JSON property `action`
5709
- # @return [String]
5710
- attr_accessor :action
5711
-
5712
- # A single identity requesting access for a Cloud Platform resource, for example,
5713
- # "foo@google.com".
5714
- # Corresponds to the JSON property `member`
6771
+ # Aggregation key.
6772
+ # Corresponds to the JSON property `key`
5715
6773
  # @return [String]
5716
- attr_accessor :member
6774
+ attr_accessor :key
5717
6775
 
5718
- # Role that is assigned to "members". For example, "roles/viewer", "roles/editor"
5719
- # , or "roles/owner".
5720
- # Corresponds to the JSON property `role`
5721
- # @return [String]
5722
- attr_accessor :role
6776
+ # Aggregation value.
6777
+ # Corresponds to the JSON property `value`
6778
+ # @return [Fixnum]
6779
+ attr_accessor :value
5723
6780
 
5724
6781
  def initialize(**args)
5725
6782
  update!(**args)
@@ -5727,40 +6784,24 @@ module Google
5727
6784
 
5728
6785
  # Update properties of this object
5729
6786
  def update!(**args)
5730
- @action = args[:action] if args.key?(:action)
5731
- @member = args[:member] if args.key?(:member)
5732
- @role = args[:role] if args.key?(:role)
6787
+ @key = args[:key] if args.key?(:key)
6788
+ @value = args[:value] if args.key?(:value)
5733
6789
  end
5734
6790
  end
5735
6791
 
5736
- # Represents what's commonly known as an _indicator of compromise_ (IoC) in
5737
- # computer forensics. This is an artifact observed on a network or in an
5738
- # operating system that, with high confidence, indicates a computer intrusion.
5739
- # For more information, see [Indicator of compromise](https://en.wikipedia.org/
5740
- # wiki/Indicator_of_compromise).
5741
- class GoogleCloudSecuritycenterV2Indicator
6792
+ # Context of a security context.
6793
+ class GoogleCloudSecuritycenterV2IssueSecurityContextContext
5742
6794
  include Google::Apis::Core::Hashable
5743
6795
 
5744
- # List of domains associated to the Finding.
5745
- # Corresponds to the JSON property `domains`
5746
- # @return [Array<String>]
5747
- attr_accessor :domains
5748
-
5749
- # The list of IP addresses that are associated with the finding.
5750
- # Corresponds to the JSON property `ipAddresses`
5751
- # @return [Array<String>]
5752
- attr_accessor :ip_addresses
5753
-
5754
- # The list of matched signatures indicating that the given process is present in
5755
- # the environment.
5756
- # Corresponds to the JSON property `signatures`
5757
- # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2ProcessSignature>]
5758
- attr_accessor :signatures
6796
+ # Context type.
6797
+ # Corresponds to the JSON property `type`
6798
+ # @return [String]
6799
+ attr_accessor :type
5759
6800
 
5760
- # The list of URIs associated to the Findings.
5761
- # Corresponds to the JSON property `uris`
6801
+ # Context values.
6802
+ # Corresponds to the JSON property `values`
5762
6803
  # @return [Array<String>]
5763
- attr_accessor :uris
6804
+ attr_accessor :values
5764
6805
 
5765
6806
  def initialize(**args)
5766
6807
  update!(**args)
@@ -5768,10 +6809,8 @@ module Google
5768
6809
 
5769
6810
  # Update properties of this object
5770
6811
  def update!(**args)
5771
- @domains = args[:domains] if args.key?(:domains)
5772
- @ip_addresses = args[:ip_addresses] if args.key?(:ip_addresses)
5773
- @signatures = args[:signatures] if args.key?(:signatures)
5774
- @uris = args[:uris] if args.key?(:uris)
6812
+ @type = args[:type] if args.key?(:type)
6813
+ @values = args[:values] if args.key?(:values)
5775
6814
  end
5776
6815
  end
5777
6816
 
@@ -6080,6 +7119,12 @@ module Google
6080
7119
  # @return [String]
6081
7120
  attr_accessor :description
6082
7121
 
7122
+ # Optional. The expiry of the mute config. Only applicable for dynamic configs.
7123
+ # If the expiry is set, when the config expires, it is removed from all findings.
7124
+ # Corresponds to the JSON property `expiryTime`
7125
+ # @return [String]
7126
+ attr_accessor :expiry_time
7127
+
6083
7128
  # Required. An expression that defines the filter to apply across create/update
6084
7129
  # events of findings. While creating a filter string, be mindful of the scope in
6085
7130
  # which the mute configuration is being created. E.g., If a filter contains
@@ -6133,6 +7178,7 @@ module Google
6133
7178
  def update!(**args)
6134
7179
  @create_time = args[:create_time] if args.key?(:create_time)
6135
7180
  @description = args[:description] if args.key?(:description)
7181
+ @expiry_time = args[:expiry_time] if args.key?(:expiry_time)
6136
7182
  @filter = args[:filter] if args.key?(:filter)
6137
7183
  @most_recent_editor = args[:most_recent_editor] if args.key?(:most_recent_editor)
6138
7184
  @name = args[:name] if args.key?(:name)
@@ -6141,6 +7187,34 @@ module Google
6141
7187
  end
6142
7188
  end
6143
7189
 
7190
+ # Mute information about the finding, including whether the finding has a static
7191
+ # mute or any matching dynamic mute rules.
7192
+ class GoogleCloudSecuritycenterV2MuteInfo
7193
+ include Google::Apis::Core::Hashable
7194
+
7195
+ # The list of dynamic mute rules that currently match the finding.
7196
+ # Corresponds to the JSON property `dynamicMuteRecords`
7197
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2DynamicMuteRecord>]
7198
+ attr_accessor :dynamic_mute_records
7199
+
7200
+ # Information about the static mute state. A static mute state overrides any
7201
+ # dynamic mute rules that apply to this finding. The static mute state can be
7202
+ # set by a static mute rule or by muting the finding directly.
7203
+ # Corresponds to the JSON property `staticMute`
7204
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2StaticMute]
7205
+ attr_accessor :static_mute
7206
+
7207
+ def initialize(**args)
7208
+ update!(**args)
7209
+ end
7210
+
7211
+ # Update properties of this object
7212
+ def update!(**args)
7213
+ @dynamic_mute_records = args[:dynamic_mute_records] if args.key?(:dynamic_mute_records)
7214
+ @static_mute = args[:static_mute] if args.key?(:static_mute)
7215
+ end
7216
+ end
7217
+
6144
7218
  # Kubernetes nodes associated with the finding.
6145
7219
  class GoogleCloudSecuritycenterV2Node
6146
7220
  include Google::Apis::Core::Hashable
@@ -6816,9 +7890,10 @@ module Google
6816
7890
  # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2SensitiveDataProtectionMapping]
6817
7891
  attr_accessor :sensitive_data_protection_mapping
6818
7892
 
6819
- # Tag values combined with `AND` to check against. Values in the form "tagValues/
6820
- # 123" Example: `[ "tagValues/123", "tagValues/456", "tagValues/789" ]` https://
6821
- # cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing
7893
+ # Tag values combined with `AND` to check against. For Google Cloud resources,
7894
+ # they are tag value IDs in the form of "tagValues/123". Example: `[ "tagValues/
7895
+ # 123", "tagValues/456", "tagValues/789" ]` https://cloud.google.com/resource-
7896
+ # manager/docs/tags/tags-creating-and-managing
6822
7897
  # Corresponds to the JSON property `tagValues`
6823
7898
  # @return [Array<String>]
6824
7899
  attr_accessor :tag_values
@@ -7128,6 +8203,34 @@ module Google
7128
8203
  end
7129
8204
  end
7130
8205
 
8206
+ # Information about the static mute state. A static mute state overrides any
8207
+ # dynamic mute rules that apply to this finding. The static mute state can be
8208
+ # set by a static mute rule or by muting the finding directly.
8209
+ class GoogleCloudSecuritycenterV2StaticMute
8210
+ include Google::Apis::Core::Hashable
8211
+
8212
+ # When the static mute was applied.
8213
+ # Corresponds to the JSON property `applyTime`
8214
+ # @return [String]
8215
+ attr_accessor :apply_time
8216
+
8217
+ # The static mute state. If the value is `MUTED` or `UNMUTED`, then the finding'
8218
+ # s overall mute state will have the same value.
8219
+ # Corresponds to the JSON property `state`
8220
+ # @return [String]
8221
+ attr_accessor :state
8222
+
8223
+ def initialize(**args)
8224
+ update!(**args)
8225
+ end
8226
+
8227
+ # Update properties of this object
8228
+ def update!(**args)
8229
+ @apply_time = args[:apply_time] if args.key?(:apply_time)
8230
+ @state = args[:state] if args.key?(:state)
8231
+ end
8232
+ end
8233
+
7131
8234
  # Represents a Kubernetes subject.
7132
8235
  class GoogleCloudSecuritycenterV2Subject
7133
8236
  include Google::Apis::Core::Hashable
@@ -8084,6 +9187,34 @@ module Google
8084
9187
  end
8085
9188
  end
8086
9189
 
9190
+ # Mute information about the finding, including whether the finding has a static
9191
+ # mute or any matching dynamic mute rules.
9192
+ class MuteInfo
9193
+ include Google::Apis::Core::Hashable
9194
+
9195
+ # The list of dynamic mute rules that currently match the finding.
9196
+ # Corresponds to the JSON property `dynamicMuteRecords`
9197
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::DynamicMuteRecord>]
9198
+ attr_accessor :dynamic_mute_records
9199
+
9200
+ # Information about the static mute state. A static mute state overrides any
9201
+ # dynamic mute rules that apply to this finding. The static mute state can be
9202
+ # set by a static mute rule or by muting the finding directly.
9203
+ # Corresponds to the JSON property `staticMute`
9204
+ # @return [Google::Apis::SecuritycenterV1beta1::StaticMute]
9205
+ attr_accessor :static_mute
9206
+
9207
+ def initialize(**args)
9208
+ update!(**args)
9209
+ end
9210
+
9211
+ # Update properties of this object
9212
+ def update!(**args)
9213
+ @dynamic_mute_records = args[:dynamic_mute_records] if args.key?(:dynamic_mute_records)
9214
+ @static_mute = args[:static_mute] if args.key?(:static_mute)
9215
+ end
9216
+ end
9217
+
8087
9218
  # Kubernetes nodes associated with the finding.
8088
9219
  class Node
8089
9220
  include Google::Apis::Core::Hashable
@@ -9077,7 +10208,8 @@ module Google
9077
10208
  class SetFindingStateRequest
9078
10209
  include Google::Apis::Core::Hashable
9079
10210
 
9080
- # Required. The time at which the updated state takes effect.
10211
+ # Optional. The time at which the updated state takes effect. If not set uses
10212
+ # the current time.
9081
10213
  # Corresponds to the JSON property `startTime`
9082
10214
  # @return [String]
9083
10215
  attr_accessor :start_time
@@ -9193,6 +10325,34 @@ module Google
9193
10325
  end
9194
10326
  end
9195
10327
 
10328
+ # Information about the static mute state. A static mute state overrides any
10329
+ # dynamic mute rules that apply to this finding. The static mute state can be
10330
+ # set by a static mute rule or by muting the finding directly.
10331
+ class StaticMute
10332
+ include Google::Apis::Core::Hashable
10333
+
10334
+ # When the static mute was applied.
10335
+ # Corresponds to the JSON property `applyTime`
10336
+ # @return [String]
10337
+ attr_accessor :apply_time
10338
+
10339
+ # The static mute state. If the value is `MUTED` or `UNMUTED`, then the finding'
10340
+ # s overall mute state will have the same value.
10341
+ # Corresponds to the JSON property `state`
10342
+ # @return [String]
10343
+ attr_accessor :state
10344
+
10345
+ def initialize(**args)
10346
+ update!(**args)
10347
+ end
10348
+
10349
+ # Update properties of this object
10350
+ def update!(**args)
10351
+ @apply_time = args[:apply_time] if args.key?(:apply_time)
10352
+ @state = args[:state] if args.key?(:state)
10353
+ end
10354
+ end
10355
+
9196
10356
  # The `Status` type defines a logical error model that is suitable for different
9197
10357
  # programming environments, including REST APIs and RPC APIs. It is used by [
9198
10358
  # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of