google-apis-securitycenter_v1beta1 0.74.0 → 0.75.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.
@@ -186,6 +186,31 @@ module Google
186
186
  end
187
187
  end
188
188
 
189
+ # Information about [Google Cloud Armor Adaptive Protection](https://cloud.
190
+ # google.com/armor/docs/cloud-armor-overview#google-cloud-armor-adaptive-
191
+ # protection).
192
+ class AdaptiveProtection
193
+ include Google::Apis::Core::Hashable
194
+
195
+ # A score of 0 means that there is low confidence that the detected event is an
196
+ # actual attack. A score of 1 means that there is high confidence that the
197
+ # detected event is an attack. See the [Adaptive Protection documentation](https:
198
+ # //cloud.google.com/armor/docs/adaptive-protection-overview#configure-alert-
199
+ # tuning) for further explanation.
200
+ # Corresponds to the JSON property `confidence`
201
+ # @return [Float]
202
+ attr_accessor :confidence
203
+
204
+ def initialize(**args)
205
+ update!(**args)
206
+ end
207
+
208
+ # Update properties of this object
209
+ def update!(**args)
210
+ @confidence = args[:confidence] if args.key?(:confidence)
211
+ end
212
+ end
213
+
189
214
  # Represents an application associated with a finding.
190
215
  class Application
191
216
  include Google::Apis::Core::Hashable
@@ -299,6 +324,37 @@ module Google
299
324
  end
300
325
  end
301
326
 
327
+ # Information about DDoS attack volume and classification.
328
+ class Attack
329
+ include Google::Apis::Core::Hashable
330
+
331
+ # Type of attack, for example, ‘SYN-flood’, ‘NTP-udp’, or ‘CHARGEN-udp’.
332
+ # Corresponds to the JSON property `classification`
333
+ # @return [String]
334
+ attr_accessor :classification
335
+
336
+ # Total BPS (bytes per second) volume of attack.
337
+ # Corresponds to the JSON property `volumeBps`
338
+ # @return [Fixnum]
339
+ attr_accessor :volume_bps
340
+
341
+ # Total PPS (packets per second) volume of attack.
342
+ # Corresponds to the JSON property `volumePps`
343
+ # @return [Fixnum]
344
+ attr_accessor :volume_pps
345
+
346
+ def initialize(**args)
347
+ update!(**args)
348
+ end
349
+
350
+ # Update properties of this object
351
+ def update!(**args)
352
+ @classification = args[:classification] if args.key?(:classification)
353
+ @volume_bps = args[:volume_bps] if args.key?(:volume_bps)
354
+ @volume_pps = args[:volume_pps] if args.key?(:volume_pps)
355
+ end
356
+ end
357
+
302
358
  # An attack exposure contains the results of an attack path simulation run.
303
359
  class AttackExposure
304
360
  include Google::Apis::Core::Hashable
@@ -433,6 +489,120 @@ module Google
433
489
  end
434
490
  end
435
491
 
492
+ # An AWS account that is a member of an organization.
493
+ class AwsAccount
494
+ include Google::Apis::Core::Hashable
495
+
496
+ # The unique identifier (ID) of the account, containing exactly 12 digits.
497
+ # Corresponds to the JSON property `id`
498
+ # @return [String]
499
+ attr_accessor :id
500
+
501
+ # The friendly name of this account.
502
+ # Corresponds to the JSON property `name`
503
+ # @return [String]
504
+ attr_accessor :name
505
+
506
+ def initialize(**args)
507
+ update!(**args)
508
+ end
509
+
510
+ # Update properties of this object
511
+ def update!(**args)
512
+ @id = args[:id] if args.key?(:id)
513
+ @name = args[:name] if args.key?(:name)
514
+ end
515
+ end
516
+
517
+ # AWS metadata associated with the resource, only applicable if the finding's
518
+ # cloud provider is Amazon Web Services.
519
+ class AwsMetadata
520
+ include Google::Apis::Core::Hashable
521
+
522
+ # An AWS account that is a member of an organization.
523
+ # Corresponds to the JSON property `account`
524
+ # @return [Google::Apis::SecuritycenterV1beta1::AwsAccount]
525
+ attr_accessor :account
526
+
527
+ # An organization is a collection of accounts that are centrally managed
528
+ # together using consolidated billing, organized hierarchically with
529
+ # organizational units (OUs), and controlled with policies.
530
+ # Corresponds to the JSON property `organization`
531
+ # @return [Google::Apis::SecuritycenterV1beta1::AwsOrganization]
532
+ attr_accessor :organization
533
+
534
+ # A list of AWS organizational units associated with the resource, ordered from
535
+ # lowest level (closest to the account) to highest level.
536
+ # Corresponds to the JSON property `organizationalUnits`
537
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::AwsOrganizationalUnit>]
538
+ attr_accessor :organizational_units
539
+
540
+ def initialize(**args)
541
+ update!(**args)
542
+ end
543
+
544
+ # Update properties of this object
545
+ def update!(**args)
546
+ @account = args[:account] if args.key?(:account)
547
+ @organization = args[:organization] if args.key?(:organization)
548
+ @organizational_units = args[:organizational_units] if args.key?(:organizational_units)
549
+ end
550
+ end
551
+
552
+ # An organization is a collection of accounts that are centrally managed
553
+ # together using consolidated billing, organized hierarchically with
554
+ # organizational units (OUs), and controlled with policies.
555
+ class AwsOrganization
556
+ include Google::Apis::Core::Hashable
557
+
558
+ # The unique identifier (ID) for the organization. The regex pattern for an
559
+ # organization ID string requires "o-" followed by from 10 to 32 lowercase
560
+ # letters or digits.
561
+ # Corresponds to the JSON property `id`
562
+ # @return [String]
563
+ attr_accessor :id
564
+
565
+ def initialize(**args)
566
+ update!(**args)
567
+ end
568
+
569
+ # Update properties of this object
570
+ def update!(**args)
571
+ @id = args[:id] if args.key?(:id)
572
+ end
573
+ end
574
+
575
+ # An Organizational Unit (OU) is a container of AWS accounts within a root of an
576
+ # organization. Policies that are attached to an OU apply to all accounts
577
+ # contained in that OU and in any child OUs.
578
+ class AwsOrganizationalUnit
579
+ include Google::Apis::Core::Hashable
580
+
581
+ # The unique identifier (ID) associated with this OU. The regex pattern for an
582
+ # organizational unit ID string requires "ou-" followed by from 4 to 32
583
+ # lowercase letters or digits (the ID of the root that contains the OU). This
584
+ # string is followed by a second "-" dash and from 8 to 32 additional lowercase
585
+ # letters or digits. For example, "ou-ab12-cd34ef56".
586
+ # Corresponds to the JSON property `id`
587
+ # @return [String]
588
+ attr_accessor :id
589
+
590
+ # The friendly name of the OU.
591
+ # Corresponds to the JSON property `name`
592
+ # @return [String]
593
+ attr_accessor :name
594
+
595
+ def initialize(**args)
596
+ update!(**args)
597
+ end
598
+
599
+ # Update properties of this object
600
+ def update!(**args)
601
+ @id = args[:id] if args.key?(:id)
602
+ @name = args[:name] if args.key?(:name)
603
+ end
604
+ end
605
+
436
606
  # Information related to Google Cloud Backup and DR Service findings.
437
607
  class BackupDisasterRecovery
438
608
  include Google::Apis::Core::Hashable
@@ -644,6 +814,61 @@ module Google
644
814
  end
645
815
  end
646
816
 
817
+ # Fields related to Google Cloud Armor findings.
818
+ class CloudArmor
819
+ include Google::Apis::Core::Hashable
820
+
821
+ # Information about [Google Cloud Armor Adaptive Protection](https://cloud.
822
+ # google.com/armor/docs/cloud-armor-overview#google-cloud-armor-adaptive-
823
+ # protection).
824
+ # Corresponds to the JSON property `adaptiveProtection`
825
+ # @return [Google::Apis::SecuritycenterV1beta1::AdaptiveProtection]
826
+ attr_accessor :adaptive_protection
827
+
828
+ # Information about DDoS attack volume and classification.
829
+ # Corresponds to the JSON property `attack`
830
+ # @return [Google::Apis::SecuritycenterV1beta1::Attack]
831
+ attr_accessor :attack
832
+
833
+ # Duration of attack from the start until the current moment (updated every 5
834
+ # minutes).
835
+ # Corresponds to the JSON property `duration`
836
+ # @return [String]
837
+ attr_accessor :duration
838
+
839
+ # Information about the requests relevant to the finding.
840
+ # Corresponds to the JSON property `requests`
841
+ # @return [Google::Apis::SecuritycenterV1beta1::Requests]
842
+ attr_accessor :requests
843
+
844
+ # Information about the [Google Cloud Armor security policy](https://cloud.
845
+ # google.com/armor/docs/security-policy-overview) relevant to the finding.
846
+ # Corresponds to the JSON property `securityPolicy`
847
+ # @return [Google::Apis::SecuritycenterV1beta1::SecurityPolicy]
848
+ attr_accessor :security_policy
849
+
850
+ # Distinguish between volumetric & protocol DDoS attack and application layer
851
+ # attacks. For example, “L3_4” for Layer 3 and Layer 4 DDoS attacks, or “L_7”
852
+ # for Layer 7 DDoS attacks.
853
+ # Corresponds to the JSON property `threatVector`
854
+ # @return [String]
855
+ attr_accessor :threat_vector
856
+
857
+ def initialize(**args)
858
+ update!(**args)
859
+ end
860
+
861
+ # Update properties of this object
862
+ def update!(**args)
863
+ @adaptive_protection = args[:adaptive_protection] if args.key?(:adaptive_protection)
864
+ @attack = args[:attack] if args.key?(:attack)
865
+ @duration = args[:duration] if args.key?(:duration)
866
+ @requests = args[:requests] if args.key?(:requests)
867
+ @security_policy = args[:security_policy] if args.key?(:security_policy)
868
+ @threat_vector = args[:threat_vector] if args.key?(:threat_vector)
869
+ end
870
+ end
871
+
647
872
  # The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated
648
873
  # with the finding.
649
874
  class CloudDlpDataProfile
@@ -796,6 +1021,11 @@ module Google
796
1021
  # @return [String]
797
1022
  attr_accessor :category
798
1023
 
1024
+ # The cloud provider for the compliance snapshot.
1025
+ # Corresponds to the JSON property `cloudProvider`
1026
+ # @return [String]
1027
+ attr_accessor :cloud_provider
1028
+
799
1029
  # The compliance standard (ie CIS).
800
1030
  # Corresponds to the JSON property `complianceStandard`
801
1031
  # @return [String]
@@ -821,12 +1051,6 @@ module Google
821
1051
  # @return [String]
822
1052
  attr_accessor :name
823
1053
 
824
- # The CRM resource display name that is closest to the snapshot the Findings
825
- # belong to.
826
- # Corresponds to the JSON property `projectDisplayName`
827
- # @return [String]
828
- attr_accessor :project_display_name
829
-
830
1054
  # The snapshot time of the snapshot.
831
1055
  # Corresponds to the JSON property `snapshotTime`
832
1056
  # @return [String]
@@ -839,12 +1063,12 @@ module Google
839
1063
  # Update properties of this object
840
1064
  def update!(**args)
841
1065
  @category = args[:category] if args.key?(:category)
1066
+ @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider)
842
1067
  @compliance_standard = args[:compliance_standard] if args.key?(:compliance_standard)
843
1068
  @compliance_version = args[:compliance_version] if args.key?(:compliance_version)
844
1069
  @count = args[:count] if args.key?(:count)
845
1070
  @leaf_container_resource = args[:leaf_container_resource] if args.key?(:leaf_container_resource)
846
1071
  @name = args[:name] if args.key?(:name)
847
- @project_display_name = args[:project_display_name] if args.key?(:project_display_name)
848
1072
  @snapshot_time = args[:snapshot_time] if args.key?(:snapshot_time)
849
1073
  end
850
1074
  end
@@ -1499,6 +1723,11 @@ module Google
1499
1723
  # @return [String]
1500
1724
  attr_accessor :category
1501
1725
 
1726
+ # Fields related to Google Cloud Armor findings.
1727
+ # Corresponds to the JSON property `cloudArmor`
1728
+ # @return [Google::Apis::SecuritycenterV1beta1::CloudArmor]
1729
+ attr_accessor :cloud_armor
1730
+
1502
1731
  # The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated
1503
1732
  # with the finding.
1504
1733
  # Corresponds to the JSON property `cloudDlpDataProfile`
@@ -1680,6 +1909,13 @@ module Google
1680
1909
  # @return [String]
1681
1910
  attr_accessor :next_steps
1682
1911
 
1912
+ # Represents a Jupyter notebook IPYNB file, such as a [Colab Enterprise notebook]
1913
+ # (https://cloud.google.com/colab/docs/introduction) file, that is associated
1914
+ # with a finding.
1915
+ # Corresponds to the JSON property `notebook`
1916
+ # @return [Google::Apis::SecuritycenterV1beta1::Notebook]
1917
+ attr_accessor :notebook
1918
+
1683
1919
  # Contains information about the org policies associated with the finding.
1684
1920
  # Corresponds to the JSON property `orgPolicies`
1685
1921
  # @return [Array<Google::Apis::SecuritycenterV1beta1::OrgPolicy>]
@@ -1765,6 +2001,7 @@ module Google
1765
2001
  @backup_disaster_recovery = args[:backup_disaster_recovery] if args.key?(:backup_disaster_recovery)
1766
2002
  @canonical_name = args[:canonical_name] if args.key?(:canonical_name)
1767
2003
  @category = args[:category] if args.key?(:category)
2004
+ @cloud_armor = args[:cloud_armor] if args.key?(:cloud_armor)
1768
2005
  @cloud_dlp_data_profile = args[:cloud_dlp_data_profile] if args.key?(:cloud_dlp_data_profile)
1769
2006
  @cloud_dlp_inspection = args[:cloud_dlp_inspection] if args.key?(:cloud_dlp_inspection)
1770
2007
  @compliances = args[:compliances] if args.key?(:compliances)
@@ -1793,6 +2030,7 @@ module Google
1793
2030
  @mute_update_time = args[:mute_update_time] if args.key?(:mute_update_time)
1794
2031
  @name = args[:name] if args.key?(:name)
1795
2032
  @next_steps = args[:next_steps] if args.key?(:next_steps)
2033
+ @notebook = args[:notebook] if args.key?(:notebook)
1796
2034
  @org_policies = args[:org_policies] if args.key?(:org_policies)
1797
2035
  @parent = args[:parent] if args.key?(:parent)
1798
2036
  @parent_display_name = args[:parent_display_name] if args.key?(:parent_display_name)
@@ -1833,6 +2071,58 @@ module Google
1833
2071
  end
1834
2072
  end
1835
2073
 
2074
+ # GCP metadata associated with the resource, only applicable if the finding's
2075
+ # cloud provider is Google Cloud Platform.
2076
+ class GcpMetadata
2077
+ include Google::Apis::Core::Hashable
2078
+
2079
+ # Output only. Contains a Folder message for each folder in the assets ancestry.
2080
+ # The first folder is the deepest nested folder, and the last folder is the
2081
+ # folder directly under the Organization.
2082
+ # Corresponds to the JSON property `folders`
2083
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Folder>]
2084
+ attr_accessor :folders
2085
+
2086
+ # The name of the organization that the resource belongs to.
2087
+ # Corresponds to the JSON property `organization`
2088
+ # @return [String]
2089
+ attr_accessor :organization
2090
+
2091
+ # The full resource name of resource's parent.
2092
+ # Corresponds to the JSON property `parent`
2093
+ # @return [String]
2094
+ attr_accessor :parent
2095
+
2096
+ # The human readable name of resource's parent.
2097
+ # Corresponds to the JSON property `parentDisplayName`
2098
+ # @return [String]
2099
+ attr_accessor :parent_display_name
2100
+
2101
+ # The full resource name of project that the resource belongs to.
2102
+ # Corresponds to the JSON property `project`
2103
+ # @return [String]
2104
+ attr_accessor :project
2105
+
2106
+ # The project ID that the resource belongs to.
2107
+ # Corresponds to the JSON property `projectDisplayName`
2108
+ # @return [String]
2109
+ attr_accessor :project_display_name
2110
+
2111
+ def initialize(**args)
2112
+ update!(**args)
2113
+ end
2114
+
2115
+ # Update properties of this object
2116
+ def update!(**args)
2117
+ @folders = args[:folders] if args.key?(:folders)
2118
+ @organization = args[:organization] if args.key?(:organization)
2119
+ @parent = args[:parent] if args.key?(:parent)
2120
+ @parent_display_name = args[:parent_display_name] if args.key?(:parent_display_name)
2121
+ @project = args[:project] if args.key?(:project)
2122
+ @project_display_name = args[:project_display_name] if args.key?(:project_display_name)
2123
+ end
2124
+ end
2125
+
1836
2126
  # Represents a geographical location for a given access.
1837
2127
  class Geolocation
1838
2128
  include Google::Apis::Core::Hashable
@@ -2421,6 +2711,17 @@ module Google
2421
2711
  class GoogleCloudSecuritycenterV1Resource
2422
2712
  include Google::Apis::Core::Hashable
2423
2713
 
2714
+ # AWS metadata associated with the resource, only applicable if the finding's
2715
+ # cloud provider is Amazon Web Services.
2716
+ # Corresponds to the JSON property `awsMetadata`
2717
+ # @return [Google::Apis::SecuritycenterV1beta1::AwsMetadata]
2718
+ attr_accessor :aws_metadata
2719
+
2720
+ # Indicates which cloud provider the resource resides in.
2721
+ # Corresponds to the JSON property `cloudProvider`
2722
+ # @return [String]
2723
+ attr_accessor :cloud_provider
2724
+
2424
2725
  # The human readable name of the resource.
2425
2726
  # Corresponds to the JSON property `displayName`
2426
2727
  # @return [String]
@@ -2433,12 +2734,23 @@ module Google
2433
2734
  # @return [Array<Google::Apis::SecuritycenterV1beta1::Folder>]
2434
2735
  attr_accessor :folders
2435
2736
 
2737
+ # The region or location of the service (if applicable).
2738
+ # Corresponds to the JSON property `location`
2739
+ # @return [String]
2740
+ attr_accessor :location
2741
+
2436
2742
  # The full resource name of the resource. See: https://cloud.google.com/apis/
2437
2743
  # design/resource_names#full_resource_name
2438
2744
  # Corresponds to the JSON property `name`
2439
2745
  # @return [String]
2440
2746
  attr_accessor :name
2441
2747
 
2748
+ # Indicates which organization or tenant in the cloud provider the finding
2749
+ # applies to.
2750
+ # Corresponds to the JSON property `organization`
2751
+ # @return [String]
2752
+ attr_accessor :organization
2753
+
2442
2754
  # The full resource name of resource's parent.
2443
2755
  # Corresponds to the JSON property `parent`
2444
2756
  # @return [String]
@@ -2459,6 +2771,30 @@ module Google
2459
2771
  # @return [String]
2460
2772
  attr_accessor :project_display_name
2461
2773
 
2774
+ # Represents the path of resources leading up to the resource this finding is
2775
+ # about.
2776
+ # Corresponds to the JSON property `resourcePath`
2777
+ # @return [Google::Apis::SecuritycenterV1beta1::ResourcePath]
2778
+ attr_accessor :resource_path
2779
+
2780
+ # A string representation of the resource path. For GCP, it has the format of:
2781
+ # organizations/`organization_id`/folders/`folder_id`/folders/`folder_id`/
2782
+ # projects/`project_id` where there can be any number of folders. For AWS, it
2783
+ # has the format of: org/`organization_id`/ou/`organizational_unit_id`/ou/`
2784
+ # organizational_unit_id`/account/`account_id` where there can be any number of
2785
+ # organizational units. For Azure, it has the format of: mg/`management_group_id`
2786
+ # /mg/`management_group_id`/subscription/`subscription_id`/rg/`
2787
+ # resource_group_name` where there can be any number of management groups.
2788
+ # Corresponds to the JSON property `resourcePathString`
2789
+ # @return [String]
2790
+ attr_accessor :resource_path_string
2791
+
2792
+ # The parent service or product from which the resource is provided, for example,
2793
+ # GKE or SNS.
2794
+ # Corresponds to the JSON property `service`
2795
+ # @return [String]
2796
+ attr_accessor :service
2797
+
2462
2798
  # The full resource type of the resource.
2463
2799
  # Corresponds to the JSON property `type`
2464
2800
  # @return [String]
@@ -2470,13 +2806,20 @@ module Google
2470
2806
 
2471
2807
  # Update properties of this object
2472
2808
  def update!(**args)
2809
+ @aws_metadata = args[:aws_metadata] if args.key?(:aws_metadata)
2810
+ @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider)
2473
2811
  @display_name = args[:display_name] if args.key?(:display_name)
2474
2812
  @folders = args[:folders] if args.key?(:folders)
2813
+ @location = args[:location] if args.key?(:location)
2475
2814
  @name = args[:name] if args.key?(:name)
2815
+ @organization = args[:organization] if args.key?(:organization)
2476
2816
  @parent = args[:parent] if args.key?(:parent)
2477
2817
  @parent_display_name = args[:parent_display_name] if args.key?(:parent_display_name)
2478
2818
  @project = args[:project] if args.key?(:project)
2479
2819
  @project_display_name = args[:project_display_name] if args.key?(:project_display_name)
2820
+ @resource_path = args[:resource_path] if args.key?(:resource_path)
2821
+ @resource_path_string = args[:resource_path_string] if args.key?(:resource_path_string)
2822
+ @service = args[:service] if args.key?(:service)
2480
2823
  @type = args[:type] if args.key?(:type)
2481
2824
  end
2482
2825
  end
@@ -2505,6 +2848,11 @@ module Google
2505
2848
  class GoogleCloudSecuritycenterV1ResourceValueConfig
2506
2849
  include Google::Apis::Core::Hashable
2507
2850
 
2851
+ # Cloud provider this configuration applies to
2852
+ # Corresponds to the JSON property `cloudProvider`
2853
+ # @return [String]
2854
+ attr_accessor :cloud_provider
2855
+
2508
2856
  # Output only. Timestamp this resource value config was created.
2509
2857
  # Corresponds to the JSON property `createTime`
2510
2858
  # @return [String]
@@ -2573,6 +2921,7 @@ module Google
2573
2921
 
2574
2922
  # Update properties of this object
2575
2923
  def update!(**args)
2924
+ @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider)
2576
2925
  @create_time = args[:create_time] if args.key?(:create_time)
2577
2926
  @description = args[:description] if args.key?(:description)
2578
2927
  @name = args[:name] if args.key?(:name)
@@ -3335,6 +3684,31 @@ module Google
3335
3684
  end
3336
3685
  end
3337
3686
 
3687
+ # Information about [Google Cloud Armor Adaptive Protection](https://cloud.
3688
+ # google.com/armor/docs/cloud-armor-overview#google-cloud-armor-adaptive-
3689
+ # protection).
3690
+ class GoogleCloudSecuritycenterV2AdaptiveProtection
3691
+ include Google::Apis::Core::Hashable
3692
+
3693
+ # A score of 0 means that there is low confidence that the detected event is an
3694
+ # actual attack. A score of 1 means that there is high confidence that the
3695
+ # detected event is an attack. See the [Adaptive Protection documentation](https:
3696
+ # //cloud.google.com/armor/docs/adaptive-protection-overview#configure-alert-
3697
+ # tuning) for further explanation.
3698
+ # Corresponds to the JSON property `confidence`
3699
+ # @return [Float]
3700
+ attr_accessor :confidence
3701
+
3702
+ def initialize(**args)
3703
+ update!(**args)
3704
+ end
3705
+
3706
+ # Update properties of this object
3707
+ def update!(**args)
3708
+ @confidence = args[:confidence] if args.key?(:confidence)
3709
+ end
3710
+ end
3711
+
3338
3712
  # Represents an application associated with a finding.
3339
3713
  class GoogleCloudSecuritycenterV2Application
3340
3714
  include Google::Apis::Core::Hashable
@@ -3362,6 +3736,37 @@ module Google
3362
3736
  end
3363
3737
  end
3364
3738
 
3739
+ # Information about DDoS attack volume and classification.
3740
+ class GoogleCloudSecuritycenterV2Attack
3741
+ include Google::Apis::Core::Hashable
3742
+
3743
+ # Type of attack, for example, ‘SYN-flood’, ‘NTP-udp’, or ‘CHARGEN-udp’.
3744
+ # Corresponds to the JSON property `classification`
3745
+ # @return [String]
3746
+ attr_accessor :classification
3747
+
3748
+ # Total BPS (bytes per second) volume of attack.
3749
+ # Corresponds to the JSON property `volumeBps`
3750
+ # @return [Fixnum]
3751
+ attr_accessor :volume_bps
3752
+
3753
+ # Total PPS (packets per second) volume of attack.
3754
+ # Corresponds to the JSON property `volumePps`
3755
+ # @return [Fixnum]
3756
+ attr_accessor :volume_pps
3757
+
3758
+ def initialize(**args)
3759
+ update!(**args)
3760
+ end
3761
+
3762
+ # Update properties of this object
3763
+ def update!(**args)
3764
+ @classification = args[:classification] if args.key?(:classification)
3765
+ @volume_bps = args[:volume_bps] if args.key?(:volume_bps)
3766
+ @volume_pps = args[:volume_pps] if args.key?(:volume_pps)
3767
+ end
3768
+ end
3769
+
3365
3770
  # An attack exposure contains the results of an attack path simulation run.
3366
3771
  class GoogleCloudSecuritycenterV2AttackExposure
3367
3772
  include Google::Apis::Core::Hashable
@@ -3425,40 +3830,154 @@ module Google
3425
3830
  end
3426
3831
  end
3427
3832
 
3428
- # Information related to Google Cloud Backup and DR Service findings.
3429
- class GoogleCloudSecuritycenterV2BackupDisasterRecovery
3833
+ # An AWS account that is a member of an organization.
3834
+ class GoogleCloudSecuritycenterV2AwsAccount
3430
3835
  include Google::Apis::Core::Hashable
3431
3836
 
3432
- # The name of the Backup and DR appliance that captures, moves, and manages the
3433
- # lifecycle of backup data. For example, `backup-server-57137`.
3434
- # Corresponds to the JSON property `appliance`
3837
+ # The unique identifier (ID) of the account, containing exactly 12 digits.
3838
+ # Corresponds to the JSON property `id`
3435
3839
  # @return [String]
3436
- attr_accessor :appliance
3437
-
3438
- # The names of Backup and DR applications. An application is a VM, database, or
3439
- # file system on a managed host monitored by a backup and recovery appliance.
3440
- # For example, `centos7-01-vol00`, `centos7-01-vol01`, `centos7-01-vol02`.
3441
- # Corresponds to the JSON property `applications`
3442
- # @return [Array<String>]
3443
- attr_accessor :applications
3840
+ attr_accessor :id
3444
3841
 
3445
- # The timestamp at which the Backup and DR backup was created.
3446
- # Corresponds to the JSON property `backupCreateTime`
3842
+ # The friendly name of this account.
3843
+ # Corresponds to the JSON property `name`
3447
3844
  # @return [String]
3448
- attr_accessor :backup_create_time
3845
+ attr_accessor :name
3449
3846
 
3450
- # The name of a Backup and DR template which comprises one or more backup
3451
- # policies. See the [Backup and DR documentation](https://cloud.google.com/
3452
- # backup-disaster-recovery/docs/concepts/backup-plan#temp) for more information.
3453
- # For example, `snap-ov`.
3454
- # Corresponds to the JSON property `backupTemplate`
3455
- # @return [String]
3456
- attr_accessor :backup_template
3847
+ def initialize(**args)
3848
+ update!(**args)
3849
+ end
3457
3850
 
3458
- # The backup type of the Backup and DR image. For example, `Snapshot`, `Remote
3459
- # Snapshot`, `OnVault`.
3460
- # Corresponds to the JSON property `backupType`
3461
- # @return [String]
3851
+ # Update properties of this object
3852
+ def update!(**args)
3853
+ @id = args[:id] if args.key?(:id)
3854
+ @name = args[:name] if args.key?(:name)
3855
+ end
3856
+ end
3857
+
3858
+ # AWS metadata associated with the resource, only applicable if the finding's
3859
+ # cloud provider is Amazon Web Services.
3860
+ class GoogleCloudSecuritycenterV2AwsMetadata
3861
+ include Google::Apis::Core::Hashable
3862
+
3863
+ # An AWS account that is a member of an organization.
3864
+ # Corresponds to the JSON property `account`
3865
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2AwsAccount]
3866
+ attr_accessor :account
3867
+
3868
+ # An organization is a collection of accounts that are centrally managed
3869
+ # together using consolidated billing, organized hierarchically with
3870
+ # organizational units (OUs), and controlled with policies.
3871
+ # Corresponds to the JSON property `organization`
3872
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2AwsOrganization]
3873
+ attr_accessor :organization
3874
+
3875
+ # A list of AWS organizational units associated with the resource, ordered from
3876
+ # lowest level (closest to the account) to highest level.
3877
+ # Corresponds to the JSON property `organizationalUnits`
3878
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2AwsOrganizationalUnit>]
3879
+ attr_accessor :organizational_units
3880
+
3881
+ def initialize(**args)
3882
+ update!(**args)
3883
+ end
3884
+
3885
+ # Update properties of this object
3886
+ def update!(**args)
3887
+ @account = args[:account] if args.key?(:account)
3888
+ @organization = args[:organization] if args.key?(:organization)
3889
+ @organizational_units = args[:organizational_units] if args.key?(:organizational_units)
3890
+ end
3891
+ end
3892
+
3893
+ # An organization is a collection of accounts that are centrally managed
3894
+ # together using consolidated billing, organized hierarchically with
3895
+ # organizational units (OUs), and controlled with policies.
3896
+ class GoogleCloudSecuritycenterV2AwsOrganization
3897
+ include Google::Apis::Core::Hashable
3898
+
3899
+ # The unique identifier (ID) for the organization. The regex pattern for an
3900
+ # organization ID string requires "o-" followed by from 10 to 32 lowercase
3901
+ # letters or digits.
3902
+ # Corresponds to the JSON property `id`
3903
+ # @return [String]
3904
+ attr_accessor :id
3905
+
3906
+ def initialize(**args)
3907
+ update!(**args)
3908
+ end
3909
+
3910
+ # Update properties of this object
3911
+ def update!(**args)
3912
+ @id = args[:id] if args.key?(:id)
3913
+ end
3914
+ end
3915
+
3916
+ # An Organizational Unit (OU) is a container of AWS accounts within a root of an
3917
+ # organization. Policies that are attached to an OU apply to all accounts
3918
+ # contained in that OU and in any child OUs.
3919
+ class GoogleCloudSecuritycenterV2AwsOrganizationalUnit
3920
+ include Google::Apis::Core::Hashable
3921
+
3922
+ # The unique identifier (ID) associated with this OU. The regex pattern for an
3923
+ # organizational unit ID string requires "ou-" followed by from 4 to 32
3924
+ # lowercase letters or digits (the ID of the root that contains the OU). This
3925
+ # string is followed by a second "-" dash and from 8 to 32 additional lowercase
3926
+ # letters or digits. For example, "ou-ab12-cd34ef56".
3927
+ # Corresponds to the JSON property `id`
3928
+ # @return [String]
3929
+ attr_accessor :id
3930
+
3931
+ # The friendly name of the OU.
3932
+ # Corresponds to the JSON property `name`
3933
+ # @return [String]
3934
+ attr_accessor :name
3935
+
3936
+ def initialize(**args)
3937
+ update!(**args)
3938
+ end
3939
+
3940
+ # Update properties of this object
3941
+ def update!(**args)
3942
+ @id = args[:id] if args.key?(:id)
3943
+ @name = args[:name] if args.key?(:name)
3944
+ end
3945
+ end
3946
+
3947
+ # Information related to Google Cloud Backup and DR Service findings.
3948
+ class GoogleCloudSecuritycenterV2BackupDisasterRecovery
3949
+ include Google::Apis::Core::Hashable
3950
+
3951
+ # The name of the Backup and DR appliance that captures, moves, and manages the
3952
+ # lifecycle of backup data. For example, `backup-server-57137`.
3953
+ # Corresponds to the JSON property `appliance`
3954
+ # @return [String]
3955
+ attr_accessor :appliance
3956
+
3957
+ # The names of Backup and DR applications. An application is a VM, database, or
3958
+ # file system on a managed host monitored by a backup and recovery appliance.
3959
+ # For example, `centos7-01-vol00`, `centos7-01-vol01`, `centos7-01-vol02`.
3960
+ # Corresponds to the JSON property `applications`
3961
+ # @return [Array<String>]
3962
+ attr_accessor :applications
3963
+
3964
+ # The timestamp at which the Backup and DR backup was created.
3965
+ # Corresponds to the JSON property `backupCreateTime`
3966
+ # @return [String]
3967
+ attr_accessor :backup_create_time
3968
+
3969
+ # The name of a Backup and DR template which comprises one or more backup
3970
+ # policies. See the [Backup and DR documentation](https://cloud.google.com/
3971
+ # backup-disaster-recovery/docs/concepts/backup-plan#temp) for more information.
3972
+ # For example, `snap-ov`.
3973
+ # Corresponds to the JSON property `backupTemplate`
3974
+ # @return [String]
3975
+ attr_accessor :backup_template
3976
+
3977
+ # The backup type of the Backup and DR image. For example, `Snapshot`, `Remote
3978
+ # Snapshot`, `OnVault`.
3979
+ # Corresponds to the JSON property `backupType`
3980
+ # @return [String]
3462
3981
  attr_accessor :backup_type
3463
3982
 
3464
3983
  # The name of a Backup and DR host, which is managed by the backup and recovery
@@ -3657,6 +4176,61 @@ module Google
3657
4176
  end
3658
4177
  end
3659
4178
 
4179
+ # Fields related to Google Cloud Armor findings.
4180
+ class GoogleCloudSecuritycenterV2CloudArmor
4181
+ include Google::Apis::Core::Hashable
4182
+
4183
+ # Information about [Google Cloud Armor Adaptive Protection](https://cloud.
4184
+ # google.com/armor/docs/cloud-armor-overview#google-cloud-armor-adaptive-
4185
+ # protection).
4186
+ # Corresponds to the JSON property `adaptiveProtection`
4187
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2AdaptiveProtection]
4188
+ attr_accessor :adaptive_protection
4189
+
4190
+ # Information about DDoS attack volume and classification.
4191
+ # Corresponds to the JSON property `attack`
4192
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Attack]
4193
+ attr_accessor :attack
4194
+
4195
+ # Duration of attack from the start until the current moment (updated every 5
4196
+ # minutes).
4197
+ # Corresponds to the JSON property `duration`
4198
+ # @return [String]
4199
+ attr_accessor :duration
4200
+
4201
+ # Information about the requests relevant to the finding.
4202
+ # Corresponds to the JSON property `requests`
4203
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Requests]
4204
+ attr_accessor :requests
4205
+
4206
+ # Information about the [Google Cloud Armor security policy](https://cloud.
4207
+ # google.com/armor/docs/security-policy-overview) relevant to the finding.
4208
+ # Corresponds to the JSON property `securityPolicy`
4209
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2SecurityPolicy]
4210
+ attr_accessor :security_policy
4211
+
4212
+ # Distinguish between volumetric & protocol DDoS attack and application layer
4213
+ # attacks. For example, “L3_4” for Layer 3 and Layer 4 DDoS attacks, or “L_7”
4214
+ # for Layer 7 DDoS attacks.
4215
+ # Corresponds to the JSON property `threatVector`
4216
+ # @return [String]
4217
+ attr_accessor :threat_vector
4218
+
4219
+ def initialize(**args)
4220
+ update!(**args)
4221
+ end
4222
+
4223
+ # Update properties of this object
4224
+ def update!(**args)
4225
+ @adaptive_protection = args[:adaptive_protection] if args.key?(:adaptive_protection)
4226
+ @attack = args[:attack] if args.key?(:attack)
4227
+ @duration = args[:duration] if args.key?(:duration)
4228
+ @requests = args[:requests] if args.key?(:requests)
4229
+ @security_policy = args[:security_policy] if args.key?(:security_policy)
4230
+ @threat_vector = args[:threat_vector] if args.key?(:threat_vector)
4231
+ end
4232
+ end
4233
+
3660
4234
  # The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated
3661
4235
  # with the finding.
3662
4236
  class GoogleCloudSecuritycenterV2CloudDlpDataProfile
@@ -4473,6 +5047,11 @@ module Google
4473
5047
  # @return [String]
4474
5048
  attr_accessor :category
4475
5049
 
5050
+ # Fields related to Google Cloud Armor findings.
5051
+ # Corresponds to the JSON property `cloudArmor`
5052
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2CloudArmor]
5053
+ attr_accessor :cloud_armor
5054
+
4476
5055
  # The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated
4477
5056
  # with the finding.
4478
5057
  # Corresponds to the JSON property `cloudDlpDataProfile`
@@ -4659,6 +5238,13 @@ module Google
4659
5238
  # @return [String]
4660
5239
  attr_accessor :next_steps
4661
5240
 
5241
+ # Represents a Jupyter notebook IPYNB file, such as a [Colab Enterprise notebook]
5242
+ # (https://cloud.google.com/colab/docs/introduction) file, that is associated
5243
+ # with a finding.
5244
+ # Corresponds to the JSON property `notebook`
5245
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2Notebook]
5246
+ attr_accessor :notebook
5247
+
4662
5248
  # Contains information about the org policies associated with the finding.
4663
5249
  # Corresponds to the JSON property `orgPolicies`
4664
5250
  # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2OrgPolicy>]
@@ -4749,6 +5335,7 @@ module Google
4749
5335
  @backup_disaster_recovery = args[:backup_disaster_recovery] if args.key?(:backup_disaster_recovery)
4750
5336
  @canonical_name = args[:canonical_name] if args.key?(:canonical_name)
4751
5337
  @category = args[:category] if args.key?(:category)
5338
+ @cloud_armor = args[:cloud_armor] if args.key?(:cloud_armor)
4752
5339
  @cloud_dlp_data_profile = args[:cloud_dlp_data_profile] if args.key?(:cloud_dlp_data_profile)
4753
5340
  @cloud_dlp_inspection = args[:cloud_dlp_inspection] if args.key?(:cloud_dlp_inspection)
4754
5341
  @compliances = args[:compliances] if args.key?(:compliances)
@@ -4777,6 +5364,7 @@ module Google
4777
5364
  @mute_update_time = args[:mute_update_time] if args.key?(:mute_update_time)
4778
5365
  @name = args[:name] if args.key?(:name)
4779
5366
  @next_steps = args[:next_steps] if args.key?(:next_steps)
5367
+ @notebook = args[:notebook] if args.key?(:notebook)
4780
5368
  @org_policies = args[:org_policies] if args.key?(:org_policies)
4781
5369
  @parent = args[:parent] if args.key?(:parent)
4782
5370
  @parent_display_name = args[:parent_display_name] if args.key?(:parent_display_name)
@@ -4791,6 +5379,32 @@ module Google
4791
5379
  end
4792
5380
  end
4793
5381
 
5382
+ # Message that contains the resource name and display name of a folder resource.
5383
+ class GoogleCloudSecuritycenterV2Folder
5384
+ include Google::Apis::Core::Hashable
5385
+
5386
+ # Full resource name of this folder. See: https://cloud.google.com/apis/design/
5387
+ # resource_names#full_resource_name
5388
+ # Corresponds to the JSON property `resourceFolder`
5389
+ # @return [String]
5390
+ attr_accessor :resource_folder
5391
+
5392
+ # The user defined display name for this folder.
5393
+ # Corresponds to the JSON property `resourceFolderDisplayName`
5394
+ # @return [String]
5395
+ attr_accessor :resource_folder_display_name
5396
+
5397
+ def initialize(**args)
5398
+ update!(**args)
5399
+ end
5400
+
5401
+ # Update properties of this object
5402
+ def update!(**args)
5403
+ @resource_folder = args[:resource_folder] if args.key?(:resource_folder)
5404
+ @resource_folder_display_name = args[:resource_folder_display_name] if args.key?(:resource_folder_display_name)
5405
+ end
5406
+ end
5407
+
4794
5408
  # Represents a geographical location for a given access.
4795
5409
  class GoogleCloudSecuritycenterV2Geolocation
4796
5410
  include Google::Apis::Core::Hashable
@@ -5297,6 +5911,45 @@ module Google
5297
5911
  end
5298
5912
  end
5299
5913
 
5914
+ # Represents a Jupyter notebook IPYNB file, such as a [Colab Enterprise notebook]
5915
+ # (https://cloud.google.com/colab/docs/introduction) file, that is associated
5916
+ # with a finding.
5917
+ class GoogleCloudSecuritycenterV2Notebook
5918
+ include Google::Apis::Core::Hashable
5919
+
5920
+ # The user ID of the latest author to modify the notebook.
5921
+ # Corresponds to the JSON property `lastAuthor`
5922
+ # @return [String]
5923
+ attr_accessor :last_author
5924
+
5925
+ # The name of the notebook.
5926
+ # Corresponds to the JSON property `name`
5927
+ # @return [String]
5928
+ attr_accessor :name
5929
+
5930
+ # The most recent time the notebook was updated.
5931
+ # Corresponds to the JSON property `notebookUpdateTime`
5932
+ # @return [String]
5933
+ attr_accessor :notebook_update_time
5934
+
5935
+ # The source notebook service, for example, "Colab Enterprise".
5936
+ # Corresponds to the JSON property `service`
5937
+ # @return [String]
5938
+ attr_accessor :service
5939
+
5940
+ def initialize(**args)
5941
+ update!(**args)
5942
+ end
5943
+
5944
+ # Update properties of this object
5945
+ def update!(**args)
5946
+ @last_author = args[:last_author] if args.key?(:last_author)
5947
+ @name = args[:name] if args.key?(:name)
5948
+ @notebook_update_time = args[:notebook_update_time] if args.key?(:notebook_update_time)
5949
+ @service = args[:service] if args.key?(:service)
5950
+ end
5951
+ end
5952
+
5300
5953
  # Cloud SCC's Notification
5301
5954
  class GoogleCloudSecuritycenterV2NotificationMessage
5302
5955
  include Google::Apis::Core::Hashable
@@ -5643,21 +6296,105 @@ module Google
5643
6296
  end
5644
6297
  end
5645
6298
 
6299
+ # Information about the requests relevant to the finding.
6300
+ class GoogleCloudSecuritycenterV2Requests
6301
+ include Google::Apis::Core::Hashable
6302
+
6303
+ # Allowed RPS (requests per second) over the long term.
6304
+ # Corresponds to the JSON property `longTermAllowed`
6305
+ # @return [Fixnum]
6306
+ attr_accessor :long_term_allowed
6307
+
6308
+ # Denied RPS (requests per second) over the long term.
6309
+ # Corresponds to the JSON property `longTermDenied`
6310
+ # @return [Fixnum]
6311
+ attr_accessor :long_term_denied
6312
+
6313
+ # For 'Increasing deny ratio', the ratio is the denied traffic divided by the
6314
+ # allowed traffic. For 'Allowed traffic spike', the ratio is the allowed traffic
6315
+ # in the short term divided by allowed traffic in the long term.
6316
+ # Corresponds to the JSON property `ratio`
6317
+ # @return [Float]
6318
+ attr_accessor :ratio
6319
+
6320
+ # Allowed RPS (requests per second) in the short term.
6321
+ # Corresponds to the JSON property `shortTermAllowed`
6322
+ # @return [Fixnum]
6323
+ attr_accessor :short_term_allowed
6324
+
6325
+ def initialize(**args)
6326
+ update!(**args)
6327
+ end
6328
+
6329
+ # Update properties of this object
6330
+ def update!(**args)
6331
+ @long_term_allowed = args[:long_term_allowed] if args.key?(:long_term_allowed)
6332
+ @long_term_denied = args[:long_term_denied] if args.key?(:long_term_denied)
6333
+ @ratio = args[:ratio] if args.key?(:ratio)
6334
+ @short_term_allowed = args[:short_term_allowed] if args.key?(:short_term_allowed)
6335
+ end
6336
+ end
6337
+
5646
6338
  # Information related to the Google Cloud resource.
5647
6339
  class GoogleCloudSecuritycenterV2Resource
5648
6340
  include Google::Apis::Core::Hashable
5649
6341
 
6342
+ # AWS metadata associated with the resource, only applicable if the finding's
6343
+ # cloud provider is Amazon Web Services.
6344
+ # Corresponds to the JSON property `awsMetadata`
6345
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2AwsMetadata]
6346
+ attr_accessor :aws_metadata
6347
+
6348
+ # Indicates which cloud provider the finding is from.
6349
+ # Corresponds to the JSON property `cloudProvider`
6350
+ # @return [String]
6351
+ attr_accessor :cloud_provider
6352
+
5650
6353
  # The human readable name of the resource.
5651
6354
  # Corresponds to the JSON property `displayName`
5652
6355
  # @return [String]
5653
6356
  attr_accessor :display_name
5654
6357
 
6358
+ # GCP metadata associated with the resource, only applicable if the finding's
6359
+ # cloud provider is Google Cloud Platform.
6360
+ # Corresponds to the JSON property `gcpMetadata`
6361
+ # @return [Google::Apis::SecuritycenterV1beta1::GcpMetadata]
6362
+ attr_accessor :gcp_metadata
6363
+
6364
+ # The region or location of the service (if applicable).
6365
+ # Corresponds to the JSON property `location`
6366
+ # @return [String]
6367
+ attr_accessor :location
6368
+
5655
6369
  # The full resource name of the resource. See: https://cloud.google.com/apis/
5656
6370
  # design/resource_names#full_resource_name
5657
6371
  # Corresponds to the JSON property `name`
5658
6372
  # @return [String]
5659
6373
  attr_accessor :name
5660
6374
 
6375
+ # Represents the path of resources leading up to the resource this finding is
6376
+ # about.
6377
+ # Corresponds to the JSON property `resourcePath`
6378
+ # @return [Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2ResourcePath]
6379
+ attr_accessor :resource_path
6380
+
6381
+ # A string representation of the resource path. For GCP, it has the format of:
6382
+ # organizations/`organization_id`/folders/`folder_id`/folders/`folder_id`/
6383
+ # projects/`project_id` where there can be any number of folders. For AWS, it
6384
+ # has the format of: org/`organization_id`/ou/`organizational_unit_id`/ou/`
6385
+ # organizational_unit_id`/account/`account_id` where there can be any number of
6386
+ # organizational units. For Azure, it has the format of: mg/`management_group_id`
6387
+ # /mg/`management_group_id`/subscription/`subscription_id`/rg/`
6388
+ # resource_group_name` where there can be any number of management groups.
6389
+ # Corresponds to the JSON property `resourcePathString`
6390
+ # @return [String]
6391
+ attr_accessor :resource_path_string
6392
+
6393
+ # The service or resource provider associated with the resource.
6394
+ # Corresponds to the JSON property `service`
6395
+ # @return [String]
6396
+ attr_accessor :service
6397
+
5661
6398
  # The full resource type of the resource.
5662
6399
  # Corresponds to the JSON property `type`
5663
6400
  # @return [String]
@@ -5669,17 +6406,82 @@ module Google
5669
6406
 
5670
6407
  # Update properties of this object
5671
6408
  def update!(**args)
6409
+ @aws_metadata = args[:aws_metadata] if args.key?(:aws_metadata)
6410
+ @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider)
5672
6411
  @display_name = args[:display_name] if args.key?(:display_name)
6412
+ @gcp_metadata = args[:gcp_metadata] if args.key?(:gcp_metadata)
6413
+ @location = args[:location] if args.key?(:location)
5673
6414
  @name = args[:name] if args.key?(:name)
6415
+ @resource_path = args[:resource_path] if args.key?(:resource_path)
6416
+ @resource_path_string = args[:resource_path_string] if args.key?(:resource_path_string)
6417
+ @service = args[:service] if args.key?(:service)
5674
6418
  @type = args[:type] if args.key?(:type)
5675
6419
  end
5676
6420
  end
5677
6421
 
6422
+ # Represents the path of resources leading up to the resource this finding is
6423
+ # about.
6424
+ class GoogleCloudSecuritycenterV2ResourcePath
6425
+ include Google::Apis::Core::Hashable
6426
+
6427
+ # The list of nodes that make the up resource path, ordered from lowest level to
6428
+ # highest level.
6429
+ # Corresponds to the JSON property `nodes`
6430
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::GoogleCloudSecuritycenterV2ResourcePathNode>]
6431
+ attr_accessor :nodes
6432
+
6433
+ def initialize(**args)
6434
+ update!(**args)
6435
+ end
6436
+
6437
+ # Update properties of this object
6438
+ def update!(**args)
6439
+ @nodes = args[:nodes] if args.key?(:nodes)
6440
+ end
6441
+ end
6442
+
6443
+ # A node within the resource path. Each node represents a resource within the
6444
+ # resource hierarchy.
6445
+ class GoogleCloudSecuritycenterV2ResourcePathNode
6446
+ include Google::Apis::Core::Hashable
6447
+
6448
+ # The display name of the resource this node represents.
6449
+ # Corresponds to the JSON property `displayName`
6450
+ # @return [String]
6451
+ attr_accessor :display_name
6452
+
6453
+ # The ID of the resource this node represents.
6454
+ # Corresponds to the JSON property `id`
6455
+ # @return [String]
6456
+ attr_accessor :id
6457
+
6458
+ # The type of resource this node represents.
6459
+ # Corresponds to the JSON property `nodeType`
6460
+ # @return [String]
6461
+ attr_accessor :node_type
6462
+
6463
+ def initialize(**args)
6464
+ update!(**args)
6465
+ end
6466
+
6467
+ # Update properties of this object
6468
+ def update!(**args)
6469
+ @display_name = args[:display_name] if args.key?(:display_name)
6470
+ @id = args[:id] if args.key?(:id)
6471
+ @node_type = args[:node_type] if args.key?(:node_type)
6472
+ end
6473
+ end
6474
+
5678
6475
  # A resource value config (RVC) is a mapping configuration of user's resources
5679
6476
  # to resource values. Used in Attack path simulations.
5680
6477
  class GoogleCloudSecuritycenterV2ResourceValueConfig
5681
6478
  include Google::Apis::Core::Hashable
5682
6479
 
6480
+ # Cloud provider this configuration applies to
6481
+ # Corresponds to the JSON property `cloudProvider`
6482
+ # @return [String]
6483
+ attr_accessor :cloud_provider
6484
+
5683
6485
  # Output only. Timestamp this resource value config was created.
5684
6486
  # Corresponds to the JSON property `createTime`
5685
6487
  # @return [String]
@@ -5749,6 +6551,7 @@ module Google
5749
6551
 
5750
6552
  # Update properties of this object
5751
6553
  def update!(**args)
6554
+ @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider)
5752
6555
  @create_time = args[:create_time] if args.key?(:create_time)
5753
6556
  @description = args[:description] if args.key?(:description)
5754
6557
  @name = args[:name] if args.key?(:name)
@@ -5833,17 +6636,17 @@ module Google
5833
6636
  include Google::Apis::Core::Hashable
5834
6637
 
5835
6638
  # The canonical name of the marks. The following list shows some examples: + `
5836
- # organizations/`organization_id`/assets/`asset_id`/securityMarks" + `
6639
+ # organizations/`organization_id`/assets/`asset_id`/securityMarks` + `
5837
6640
  # organizations/`organization_id`/sources/`source_id`/findings/`finding_id`/
5838
- # securityMarks" + `organizations/`organization_id`/sources/`source_id`/
5839
- # locations/`location`/findings/`finding_id`/securityMarks" + `folders/`
5840
- # folder_id`/assets/`asset_id`/securityMarks" + `folders/`folder_id`/sources/`
5841
- # source_id`/findings/`finding_id`/securityMarks" + `folders/`folder_id`/sources/
5842
- # `source_id`/locations/`location`/findings/`finding_id`/securityMarks" + `
5843
- # projects/`project_number`/assets/`asset_id`/securityMarks" + `projects/`
5844
- # project_number`/sources/`source_id`/findings/`finding_id`/securityMarks" + `
6641
+ # securityMarks` + `organizations/`organization_id`/sources/`source_id`/
6642
+ # locations/`location`/findings/`finding_id`/securityMarks` + `folders/`
6643
+ # folder_id`/assets/`asset_id`/securityMarks` + `folders/`folder_id`/sources/`
6644
+ # source_id`/findings/`finding_id`/securityMarks` + `folders/`folder_id`/sources/
6645
+ # `source_id`/locations/`location`/findings/`finding_id`/securityMarks` + `
6646
+ # projects/`project_number`/assets/`asset_id`/securityMarks` + `projects/`
6647
+ # project_number`/sources/`source_id`/findings/`finding_id`/securityMarks` + `
5845
6648
  # projects/`project_number`/sources/`source_id`/locations/`location`/findings/`
5846
- # finding_id`/securityMarks"
6649
+ # finding_id`/securityMarks`
5847
6650
  # Corresponds to the JSON property `canonicalName`
5848
6651
  # @return [String]
5849
6652
  attr_accessor :canonical_name
@@ -5879,6 +6682,42 @@ module Google
5879
6682
  end
5880
6683
  end
5881
6684
 
6685
+ # Information about the [Google Cloud Armor security policy](https://cloud.
6686
+ # google.com/armor/docs/security-policy-overview) relevant to the finding.
6687
+ class GoogleCloudSecuritycenterV2SecurityPolicy
6688
+ include Google::Apis::Core::Hashable
6689
+
6690
+ # The name of the Google Cloud Armor security policy, for example, "my-security-
6691
+ # policy".
6692
+ # Corresponds to the JSON property `name`
6693
+ # @return [String]
6694
+ attr_accessor :name
6695
+
6696
+ # Whether or not the associated rule or policy is in preview mode.
6697
+ # Corresponds to the JSON property `preview`
6698
+ # @return [Boolean]
6699
+ attr_accessor :preview
6700
+ alias_method :preview?, :preview
6701
+
6702
+ # The type of Google Cloud Armor security policy for example, ‘backend security
6703
+ # policy’, ‘edge security policy’, ‘network edge security policy’, or ‘always-on
6704
+ # DDoS protection’.
6705
+ # Corresponds to the JSON property `type`
6706
+ # @return [String]
6707
+ attr_accessor :type
6708
+
6709
+ def initialize(**args)
6710
+ update!(**args)
6711
+ end
6712
+
6713
+ # Update properties of this object
6714
+ def update!(**args)
6715
+ @name = args[:name] if args.key?(:name)
6716
+ @preview = args[:preview] if args.key?(:preview)
6717
+ @type = args[:type] if args.key?(:type)
6718
+ end
6719
+ end
6720
+
5882
6721
  # Represents a posture that is deployed on Google Cloud by the Security Command
5883
6722
  # Center Posture Management service. A posture contains one or more policy sets.
5884
6723
  # A policy set is a group of policies that enforce a set of security rules on
@@ -6950,6 +7789,45 @@ module Google
6950
7789
  end
6951
7790
  end
6952
7791
 
7792
+ # Represents a Jupyter notebook IPYNB file, such as a [Colab Enterprise notebook]
7793
+ # (https://cloud.google.com/colab/docs/introduction) file, that is associated
7794
+ # with a finding.
7795
+ class Notebook
7796
+ include Google::Apis::Core::Hashable
7797
+
7798
+ # The user ID of the latest author to modify the notebook.
7799
+ # Corresponds to the JSON property `lastAuthor`
7800
+ # @return [String]
7801
+ attr_accessor :last_author
7802
+
7803
+ # The name of the notebook.
7804
+ # Corresponds to the JSON property `name`
7805
+ # @return [String]
7806
+ attr_accessor :name
7807
+
7808
+ # The most recent time the notebook was updated.
7809
+ # Corresponds to the JSON property `notebookUpdateTime`
7810
+ # @return [String]
7811
+ attr_accessor :notebook_update_time
7812
+
7813
+ # The source notebook service, for example, "Colab Enterprise".
7814
+ # Corresponds to the JSON property `service`
7815
+ # @return [String]
7816
+ attr_accessor :service
7817
+
7818
+ def initialize(**args)
7819
+ update!(**args)
7820
+ end
7821
+
7822
+ # Update properties of this object
7823
+ def update!(**args)
7824
+ @last_author = args[:last_author] if args.key?(:last_author)
7825
+ @name = args[:name] if args.key?(:name)
7826
+ @notebook_update_time = args[:notebook_update_time] if args.key?(:notebook_update_time)
7827
+ @service = args[:service] if args.key?(:service)
7828
+ end
7829
+ end
7830
+
6953
7831
  # Kubernetes object related to the finding, uniquely identified by GKNN. Used if
6954
7832
  # the object Kind is not one of Pod, Node, NodePool, Binding, or AccessReview.
6955
7833
  class Object
@@ -7455,6 +8333,98 @@ module Google
7455
8333
  end
7456
8334
  end
7457
8335
 
8336
+ # Information about the requests relevant to the finding.
8337
+ class Requests
8338
+ include Google::Apis::Core::Hashable
8339
+
8340
+ # Allowed RPS (requests per second) over the long term.
8341
+ # Corresponds to the JSON property `longTermAllowed`
8342
+ # @return [Fixnum]
8343
+ attr_accessor :long_term_allowed
8344
+
8345
+ # Denied RPS (requests per second) over the long term.
8346
+ # Corresponds to the JSON property `longTermDenied`
8347
+ # @return [Fixnum]
8348
+ attr_accessor :long_term_denied
8349
+
8350
+ # For 'Increasing deny ratio', the ratio is the denied traffic divided by the
8351
+ # allowed traffic. For 'Allowed traffic spike', the ratio is the allowed traffic
8352
+ # in the short term divided by allowed traffic in the long term.
8353
+ # Corresponds to the JSON property `ratio`
8354
+ # @return [Float]
8355
+ attr_accessor :ratio
8356
+
8357
+ # Allowed RPS (requests per second) in the short term.
8358
+ # Corresponds to the JSON property `shortTermAllowed`
8359
+ # @return [Fixnum]
8360
+ attr_accessor :short_term_allowed
8361
+
8362
+ def initialize(**args)
8363
+ update!(**args)
8364
+ end
8365
+
8366
+ # Update properties of this object
8367
+ def update!(**args)
8368
+ @long_term_allowed = args[:long_term_allowed] if args.key?(:long_term_allowed)
8369
+ @long_term_denied = args[:long_term_denied] if args.key?(:long_term_denied)
8370
+ @ratio = args[:ratio] if args.key?(:ratio)
8371
+ @short_term_allowed = args[:short_term_allowed] if args.key?(:short_term_allowed)
8372
+ end
8373
+ end
8374
+
8375
+ # Represents the path of resources leading up to the resource this finding is
8376
+ # about.
8377
+ class ResourcePath
8378
+ include Google::Apis::Core::Hashable
8379
+
8380
+ # The list of nodes that make the up resource path, ordered from lowest level to
8381
+ # highest level.
8382
+ # Corresponds to the JSON property `nodes`
8383
+ # @return [Array<Google::Apis::SecuritycenterV1beta1::ResourcePathNode>]
8384
+ attr_accessor :nodes
8385
+
8386
+ def initialize(**args)
8387
+ update!(**args)
8388
+ end
8389
+
8390
+ # Update properties of this object
8391
+ def update!(**args)
8392
+ @nodes = args[:nodes] if args.key?(:nodes)
8393
+ end
8394
+ end
8395
+
8396
+ # A node within the resource path. Each node represents a resource within the
8397
+ # resource hierarchy.
8398
+ class ResourcePathNode
8399
+ include Google::Apis::Core::Hashable
8400
+
8401
+ # The display name of the resource this node represents.
8402
+ # Corresponds to the JSON property `displayName`
8403
+ # @return [String]
8404
+ attr_accessor :display_name
8405
+
8406
+ # The ID of the resource this node represents.
8407
+ # Corresponds to the JSON property `id`
8408
+ # @return [String]
8409
+ attr_accessor :id
8410
+
8411
+ # The type of resource this node represents.
8412
+ # Corresponds to the JSON property `nodeType`
8413
+ # @return [String]
8414
+ attr_accessor :node_type
8415
+
8416
+ def initialize(**args)
8417
+ update!(**args)
8418
+ end
8419
+
8420
+ # Update properties of this object
8421
+ def update!(**args)
8422
+ @display_name = args[:display_name] if args.key?(:display_name)
8423
+ @id = args[:id] if args.key?(:id)
8424
+ @node_type = args[:node_type] if args.key?(:node_type)
8425
+ end
8426
+ end
8427
+
7458
8428
  # Kubernetes Role or ClusterRole.
7459
8429
  class Role
7460
8430
  include Google::Apis::Core::Hashable
@@ -7628,6 +8598,42 @@ module Google
7628
8598
  end
7629
8599
  end
7630
8600
 
8601
+ # Information about the [Google Cloud Armor security policy](https://cloud.
8602
+ # google.com/armor/docs/security-policy-overview) relevant to the finding.
8603
+ class SecurityPolicy
8604
+ include Google::Apis::Core::Hashable
8605
+
8606
+ # The name of the Google Cloud Armor security policy, for example, "my-security-
8607
+ # policy".
8608
+ # Corresponds to the JSON property `name`
8609
+ # @return [String]
8610
+ attr_accessor :name
8611
+
8612
+ # Whether or not the associated rule or policy is in preview mode.
8613
+ # Corresponds to the JSON property `preview`
8614
+ # @return [Boolean]
8615
+ attr_accessor :preview
8616
+ alias_method :preview?, :preview
8617
+
8618
+ # The type of Google Cloud Armor security policy for example, ‘backend security
8619
+ # policy’, ‘edge security policy’, ‘network edge security policy’, or ‘always-on
8620
+ # DDoS protection’.
8621
+ # Corresponds to the JSON property `type`
8622
+ # @return [String]
8623
+ attr_accessor :type
8624
+
8625
+ def initialize(**args)
8626
+ update!(**args)
8627
+ end
8628
+
8629
+ # Update properties of this object
8630
+ def update!(**args)
8631
+ @name = args[:name] if args.key?(:name)
8632
+ @preview = args[:preview] if args.key?(:preview)
8633
+ @type = args[:type] if args.key?(:type)
8634
+ end
8635
+ end
8636
+
7631
8637
  # Represents a posture that is deployed on Google Cloud by the Security Command
7632
8638
  # Center Posture Management service. A posture contains one or more policy sets.
7633
8639
  # A policy set is a group of policies that enforce a set of security rules on
@@ -8046,6 +9052,63 @@ module Google
8046
9052
  end
8047
9053
  end
8048
9054
 
9055
+ # Vulnerability count by severity.
9056
+ class VulnerabilityCountBySeverity
9057
+ include Google::Apis::Core::Hashable
9058
+
9059
+ # Key is the Severity enum.
9060
+ # Corresponds to the JSON property `severityToFindingCount`
9061
+ # @return [Hash<String,Fixnum>]
9062
+ attr_accessor :severity_to_finding_count
9063
+
9064
+ def initialize(**args)
9065
+ update!(**args)
9066
+ end
9067
+
9068
+ # Update properties of this object
9069
+ def update!(**args)
9070
+ @severity_to_finding_count = args[:severity_to_finding_count] if args.key?(:severity_to_finding_count)
9071
+ end
9072
+ end
9073
+
9074
+ # Result containing the properties and count of a VulnerabilitySnapshot request.
9075
+ class VulnerabilitySnapshot
9076
+ include Google::Apis::Core::Hashable
9077
+
9078
+ # The cloud provider for the vulnerability snapshot.
9079
+ # Corresponds to the JSON property `cloudProvider`
9080
+ # @return [String]
9081
+ attr_accessor :cloud_provider
9082
+
9083
+ # Vulnerability count by severity.
9084
+ # Corresponds to the JSON property `findingCount`
9085
+ # @return [Google::Apis::SecuritycenterV1beta1::VulnerabilityCountBySeverity]
9086
+ attr_accessor :finding_count
9087
+
9088
+ # Identifier. The vulnerability snapshot name. Format: //locations//
9089
+ # vulnerabilitySnapshots/
9090
+ # Corresponds to the JSON property `name`
9091
+ # @return [String]
9092
+ attr_accessor :name
9093
+
9094
+ # The time that the snapshot was taken.
9095
+ # Corresponds to the JSON property `snapshotTime`
9096
+ # @return [String]
9097
+ attr_accessor :snapshot_time
9098
+
9099
+ def initialize(**args)
9100
+ update!(**args)
9101
+ end
9102
+
9103
+ # Update properties of this object
9104
+ def update!(**args)
9105
+ @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider)
9106
+ @finding_count = args[:finding_count] if args.key?(:finding_count)
9107
+ @name = args[:name] if args.key?(:name)
9108
+ @snapshot_time = args[:snapshot_time] if args.key?(:snapshot_time)
9109
+ end
9110
+ end
9111
+
8049
9112
  # A signature corresponding to a YARA rule.
8050
9113
  class YaraRuleSignature
8051
9114
  include Google::Apis::Core::Hashable