google-apis-securitycenter_v1beta1 0.79.0 → 0.81.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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