google-apis-securitycenter_v1beta1 0.74.0 → 0.75.0

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