google-apis-securitycenter_v1beta2 0.66.0 → 0.68.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
@@ -213,6 +238,37 @@ module Google
213
238
  end
214
239
  end
215
240
 
241
+ # Information about DDoS attack volume and classification.
242
+ class Attack
243
+ include Google::Apis::Core::Hashable
244
+
245
+ # Type of attack, for example, 'SYN-flood', 'NTP-udp', or 'CHARGEN-udp'.
246
+ # Corresponds to the JSON property `classification`
247
+ # @return [String]
248
+ attr_accessor :classification
249
+
250
+ # Total BPS (bytes per second) volume of attack.
251
+ # Corresponds to the JSON property `volumeBps`
252
+ # @return [Fixnum]
253
+ attr_accessor :volume_bps
254
+
255
+ # Total PPS (packets per second) volume of attack.
256
+ # Corresponds to the JSON property `volumePps`
257
+ # @return [Fixnum]
258
+ attr_accessor :volume_pps
259
+
260
+ def initialize(**args)
261
+ update!(**args)
262
+ end
263
+
264
+ # Update properties of this object
265
+ def update!(**args)
266
+ @classification = args[:classification] if args.key?(:classification)
267
+ @volume_bps = args[:volume_bps] if args.key?(:volume_bps)
268
+ @volume_pps = args[:volume_pps] if args.key?(:volume_pps)
269
+ end
270
+ end
271
+
216
272
  # An attack exposure contains the results of an attack path simulation run.
217
273
  class AttackExposure
218
274
  include Google::Apis::Core::Hashable
@@ -276,6 +332,120 @@ module Google
276
332
  end
277
333
  end
278
334
 
335
+ # An AWS account that is a member of an organization.
336
+ class AwsAccount
337
+ include Google::Apis::Core::Hashable
338
+
339
+ # The unique identifier (ID) of the account, containing exactly 12 digits.
340
+ # Corresponds to the JSON property `id`
341
+ # @return [String]
342
+ attr_accessor :id
343
+
344
+ # The friendly name of this account.
345
+ # Corresponds to the JSON property `name`
346
+ # @return [String]
347
+ attr_accessor :name
348
+
349
+ def initialize(**args)
350
+ update!(**args)
351
+ end
352
+
353
+ # Update properties of this object
354
+ def update!(**args)
355
+ @id = args[:id] if args.key?(:id)
356
+ @name = args[:name] if args.key?(:name)
357
+ end
358
+ end
359
+
360
+ # AWS metadata associated with the resource, only applicable if the finding's
361
+ # cloud provider is Amazon Web Services.
362
+ class AwsMetadata
363
+ include Google::Apis::Core::Hashable
364
+
365
+ # An AWS account that is a member of an organization.
366
+ # Corresponds to the JSON property `account`
367
+ # @return [Google::Apis::SecuritycenterV1beta2::AwsAccount]
368
+ attr_accessor :account
369
+
370
+ # An organization is a collection of accounts that are centrally managed
371
+ # together using consolidated billing, organized hierarchically with
372
+ # organizational units (OUs), and controlled with policies.
373
+ # Corresponds to the JSON property `organization`
374
+ # @return [Google::Apis::SecuritycenterV1beta2::AwsOrganization]
375
+ attr_accessor :organization
376
+
377
+ # A list of AWS organizational units associated with the resource, ordered from
378
+ # lowest level (closest to the account) to highest level.
379
+ # Corresponds to the JSON property `organizationalUnits`
380
+ # @return [Array<Google::Apis::SecuritycenterV1beta2::AwsOrganizationalUnit>]
381
+ attr_accessor :organizational_units
382
+
383
+ def initialize(**args)
384
+ update!(**args)
385
+ end
386
+
387
+ # Update properties of this object
388
+ def update!(**args)
389
+ @account = args[:account] if args.key?(:account)
390
+ @organization = args[:organization] if args.key?(:organization)
391
+ @organizational_units = args[:organizational_units] if args.key?(:organizational_units)
392
+ end
393
+ end
394
+
395
+ # An organization is a collection of accounts that are centrally managed
396
+ # together using consolidated billing, organized hierarchically with
397
+ # organizational units (OUs), and controlled with policies.
398
+ class AwsOrganization
399
+ include Google::Apis::Core::Hashable
400
+
401
+ # The unique identifier (ID) for the organization. The regex pattern for an
402
+ # organization ID string requires "o-" followed by from 10 to 32 lowercase
403
+ # letters or digits.
404
+ # Corresponds to the JSON property `id`
405
+ # @return [String]
406
+ attr_accessor :id
407
+
408
+ def initialize(**args)
409
+ update!(**args)
410
+ end
411
+
412
+ # Update properties of this object
413
+ def update!(**args)
414
+ @id = args[:id] if args.key?(:id)
415
+ end
416
+ end
417
+
418
+ # An Organizational Unit (OU) is a container of AWS accounts within a root of an
419
+ # organization. Policies that are attached to an OU apply to all accounts
420
+ # contained in that OU and in any child OUs.
421
+ class AwsOrganizationalUnit
422
+ include Google::Apis::Core::Hashable
423
+
424
+ # The unique identifier (ID) associated with this OU. The regex pattern for an
425
+ # organizational unit ID string requires "ou-" followed by from 4 to 32
426
+ # lowercase letters or digits (the ID of the root that contains the OU). This
427
+ # string is followed by a second "-" dash and from 8 to 32 additional lowercase
428
+ # letters or digits. For example, "ou-ab12-cd34ef56".
429
+ # Corresponds to the JSON property `id`
430
+ # @return [String]
431
+ attr_accessor :id
432
+
433
+ # The friendly name of the OU.
434
+ # Corresponds to the JSON property `name`
435
+ # @return [String]
436
+ attr_accessor :name
437
+
438
+ def initialize(**args)
439
+ update!(**args)
440
+ end
441
+
442
+ # Update properties of this object
443
+ def update!(**args)
444
+ @id = args[:id] if args.key?(:id)
445
+ @name = args[:name] if args.key?(:name)
446
+ end
447
+ end
448
+
279
449
  # Information related to Google Cloud Backup and DR Service findings.
280
450
  class BackupDisasterRecovery
281
451
  include Google::Apis::Core::Hashable
@@ -373,6 +543,61 @@ module Google
373
543
  end
374
544
  end
375
545
 
546
+ # Fields related to Google Cloud Armor findings.
547
+ class CloudArmor
548
+ include Google::Apis::Core::Hashable
549
+
550
+ # Information about [Google Cloud Armor Adaptive Protection](https://cloud.
551
+ # google.com/armor/docs/cloud-armor-overview#google-cloud-armor-adaptive-
552
+ # protection).
553
+ # Corresponds to the JSON property `adaptiveProtection`
554
+ # @return [Google::Apis::SecuritycenterV1beta2::AdaptiveProtection]
555
+ attr_accessor :adaptive_protection
556
+
557
+ # Information about DDoS attack volume and classification.
558
+ # Corresponds to the JSON property `attack`
559
+ # @return [Google::Apis::SecuritycenterV1beta2::Attack]
560
+ attr_accessor :attack
561
+
562
+ # Duration of attack from the start until the current moment (updated every 5
563
+ # minutes).
564
+ # Corresponds to the JSON property `duration`
565
+ # @return [String]
566
+ attr_accessor :duration
567
+
568
+ # Information about the requests relevant to the finding.
569
+ # Corresponds to the JSON property `requests`
570
+ # @return [Google::Apis::SecuritycenterV1beta2::Requests]
571
+ attr_accessor :requests
572
+
573
+ # Information about the [Google Cloud Armor security policy](https://cloud.
574
+ # google.com/armor/docs/security-policy-overview) relevant to the finding.
575
+ # Corresponds to the JSON property `securityPolicy`
576
+ # @return [Google::Apis::SecuritycenterV1beta2::SecurityPolicy]
577
+ attr_accessor :security_policy
578
+
579
+ # Distinguish between volumetric & protocol DDoS attack and application layer
580
+ # attacks. For example, "L3_4" for Layer 3 and Layer 4 DDoS attacks, or "L_7"
581
+ # for Layer 7 DDoS attacks.
582
+ # Corresponds to the JSON property `threatVector`
583
+ # @return [String]
584
+ attr_accessor :threat_vector
585
+
586
+ def initialize(**args)
587
+ update!(**args)
588
+ end
589
+
590
+ # Update properties of this object
591
+ def update!(**args)
592
+ @adaptive_protection = args[:adaptive_protection] if args.key?(:adaptive_protection)
593
+ @attack = args[:attack] if args.key?(:attack)
594
+ @duration = args[:duration] if args.key?(:duration)
595
+ @requests = args[:requests] if args.key?(:requests)
596
+ @security_policy = args[:security_policy] if args.key?(:security_policy)
597
+ @threat_vector = args[:threat_vector] if args.key?(:threat_vector)
598
+ end
599
+ end
600
+
376
601
  # The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated
377
602
  # with the finding.
378
603
  class CloudDlpDataProfile
@@ -525,6 +750,11 @@ module Google
525
750
  # @return [String]
526
751
  attr_accessor :category
527
752
 
753
+ # The cloud provider for the compliance snapshot.
754
+ # Corresponds to the JSON property `cloudProvider`
755
+ # @return [String]
756
+ attr_accessor :cloud_provider
757
+
528
758
  # The compliance standard (ie CIS).
529
759
  # Corresponds to the JSON property `complianceStandard`
530
760
  # @return [String]
@@ -550,12 +780,6 @@ module Google
550
780
  # @return [String]
551
781
  attr_accessor :name
552
782
 
553
- # The CRM resource display name that is closest to the snapshot the Findings
554
- # belong to.
555
- # Corresponds to the JSON property `projectDisplayName`
556
- # @return [String]
557
- attr_accessor :project_display_name
558
-
559
783
  # The snapshot time of the snapshot.
560
784
  # Corresponds to the JSON property `snapshotTime`
561
785
  # @return [String]
@@ -568,12 +792,12 @@ module Google
568
792
  # Update properties of this object
569
793
  def update!(**args)
570
794
  @category = args[:category] if args.key?(:category)
795
+ @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider)
571
796
  @compliance_standard = args[:compliance_standard] if args.key?(:compliance_standard)
572
797
  @compliance_version = args[:compliance_version] if args.key?(:compliance_version)
573
798
  @count = args[:count] if args.key?(:count)
574
799
  @leaf_container_resource = args[:leaf_container_resource] if args.key?(:leaf_container_resource)
575
800
  @name = args[:name] if args.key?(:name)
576
- @project_display_name = args[:project_display_name] if args.key?(:project_display_name)
577
801
  @snapshot_time = args[:snapshot_time] if args.key?(:snapshot_time)
578
802
  end
579
803
  end
@@ -1363,6 +1587,11 @@ module Google
1363
1587
  # @return [String]
1364
1588
  attr_accessor :category
1365
1589
 
1590
+ # Fields related to Google Cloud Armor findings.
1591
+ # Corresponds to the JSON property `cloudArmor`
1592
+ # @return [Google::Apis::SecuritycenterV1beta2::CloudArmor]
1593
+ attr_accessor :cloud_armor
1594
+
1366
1595
  # The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated
1367
1596
  # with the finding.
1368
1597
  # Corresponds to the JSON property `cloudDlpDataProfile`
@@ -1544,6 +1773,13 @@ module Google
1544
1773
  # @return [String]
1545
1774
  attr_accessor :next_steps
1546
1775
 
1776
+ # Represents a Jupyter notebook IPYNB file, such as a [Colab Enterprise notebook]
1777
+ # (https://cloud.google.com/colab/docs/introduction) file, that is associated
1778
+ # with a finding.
1779
+ # Corresponds to the JSON property `notebook`
1780
+ # @return [Google::Apis::SecuritycenterV1beta2::Notebook]
1781
+ attr_accessor :notebook
1782
+
1547
1783
  # Contains information about the org policies associated with the finding.
1548
1784
  # Corresponds to the JSON property `orgPolicies`
1549
1785
  # @return [Array<Google::Apis::SecuritycenterV1beta2::OrgPolicy>]
@@ -1629,6 +1865,7 @@ module Google
1629
1865
  @backup_disaster_recovery = args[:backup_disaster_recovery] if args.key?(:backup_disaster_recovery)
1630
1866
  @canonical_name = args[:canonical_name] if args.key?(:canonical_name)
1631
1867
  @category = args[:category] if args.key?(:category)
1868
+ @cloud_armor = args[:cloud_armor] if args.key?(:cloud_armor)
1632
1869
  @cloud_dlp_data_profile = args[:cloud_dlp_data_profile] if args.key?(:cloud_dlp_data_profile)
1633
1870
  @cloud_dlp_inspection = args[:cloud_dlp_inspection] if args.key?(:cloud_dlp_inspection)
1634
1871
  @compliances = args[:compliances] if args.key?(:compliances)
@@ -1657,6 +1894,7 @@ module Google
1657
1894
  @mute_update_time = args[:mute_update_time] if args.key?(:mute_update_time)
1658
1895
  @name = args[:name] if args.key?(:name)
1659
1896
  @next_steps = args[:next_steps] if args.key?(:next_steps)
1897
+ @notebook = args[:notebook] if args.key?(:notebook)
1660
1898
  @org_policies = args[:org_policies] if args.key?(:org_policies)
1661
1899
  @parent = args[:parent] if args.key?(:parent)
1662
1900
  @parent_display_name = args[:parent_display_name] if args.key?(:parent_display_name)
@@ -1697,6 +1935,58 @@ module Google
1697
1935
  end
1698
1936
  end
1699
1937
 
1938
+ # GCP metadata associated with the resource, only applicable if the finding's
1939
+ # cloud provider is Google Cloud Platform.
1940
+ class GcpMetadata
1941
+ include Google::Apis::Core::Hashable
1942
+
1943
+ # Output only. Contains a Folder message for each folder in the assets ancestry.
1944
+ # The first folder is the deepest nested folder, and the last folder is the
1945
+ # folder directly under the Organization.
1946
+ # Corresponds to the JSON property `folders`
1947
+ # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Folder>]
1948
+ attr_accessor :folders
1949
+
1950
+ # The name of the organization that the resource belongs to.
1951
+ # Corresponds to the JSON property `organization`
1952
+ # @return [String]
1953
+ attr_accessor :organization
1954
+
1955
+ # The full resource name of resource's parent.
1956
+ # Corresponds to the JSON property `parent`
1957
+ # @return [String]
1958
+ attr_accessor :parent
1959
+
1960
+ # The human readable name of resource's parent.
1961
+ # Corresponds to the JSON property `parentDisplayName`
1962
+ # @return [String]
1963
+ attr_accessor :parent_display_name
1964
+
1965
+ # The full resource name of project that the resource belongs to.
1966
+ # Corresponds to the JSON property `project`
1967
+ # @return [String]
1968
+ attr_accessor :project
1969
+
1970
+ # The project ID that the resource belongs to.
1971
+ # Corresponds to the JSON property `projectDisplayName`
1972
+ # @return [String]
1973
+ attr_accessor :project_display_name
1974
+
1975
+ def initialize(**args)
1976
+ update!(**args)
1977
+ end
1978
+
1979
+ # Update properties of this object
1980
+ def update!(**args)
1981
+ @folders = args[:folders] if args.key?(:folders)
1982
+ @organization = args[:organization] if args.key?(:organization)
1983
+ @parent = args[:parent] if args.key?(:parent)
1984
+ @parent_display_name = args[:parent_display_name] if args.key?(:parent_display_name)
1985
+ @project = args[:project] if args.key?(:project)
1986
+ @project_display_name = args[:project_display_name] if args.key?(:project_display_name)
1987
+ end
1988
+ end
1989
+
1700
1990
  # Represents a geographical location for a given access.
1701
1991
  class Geolocation
1702
1992
  include Google::Apis::Core::Hashable
@@ -2238,6 +2528,17 @@ module Google
2238
2528
  class GoogleCloudSecuritycenterV1Resource
2239
2529
  include Google::Apis::Core::Hashable
2240
2530
 
2531
+ # AWS metadata associated with the resource, only applicable if the finding's
2532
+ # cloud provider is Amazon Web Services.
2533
+ # Corresponds to the JSON property `awsMetadata`
2534
+ # @return [Google::Apis::SecuritycenterV1beta2::AwsMetadata]
2535
+ attr_accessor :aws_metadata
2536
+
2537
+ # Indicates which cloud provider the resource resides in.
2538
+ # Corresponds to the JSON property `cloudProvider`
2539
+ # @return [String]
2540
+ attr_accessor :cloud_provider
2541
+
2241
2542
  # The human readable name of the resource.
2242
2543
  # Corresponds to the JSON property `displayName`
2243
2544
  # @return [String]
@@ -2250,12 +2551,23 @@ module Google
2250
2551
  # @return [Array<Google::Apis::SecuritycenterV1beta2::Folder>]
2251
2552
  attr_accessor :folders
2252
2553
 
2554
+ # The region or location of the service (if applicable).
2555
+ # Corresponds to the JSON property `location`
2556
+ # @return [String]
2557
+ attr_accessor :location
2558
+
2253
2559
  # The full resource name of the resource. See: https://cloud.google.com/apis/
2254
2560
  # design/resource_names#full_resource_name
2255
2561
  # Corresponds to the JSON property `name`
2256
2562
  # @return [String]
2257
2563
  attr_accessor :name
2258
2564
 
2565
+ # Indicates which organization or tenant in the cloud provider the finding
2566
+ # applies to.
2567
+ # Corresponds to the JSON property `organization`
2568
+ # @return [String]
2569
+ attr_accessor :organization
2570
+
2259
2571
  # The full resource name of resource's parent.
2260
2572
  # Corresponds to the JSON property `parent`
2261
2573
  # @return [String]
@@ -2276,6 +2588,30 @@ module Google
2276
2588
  # @return [String]
2277
2589
  attr_accessor :project_display_name
2278
2590
 
2591
+ # Represents the path of resources leading up to the resource this finding is
2592
+ # about.
2593
+ # Corresponds to the JSON property `resourcePath`
2594
+ # @return [Google::Apis::SecuritycenterV1beta2::ResourcePath]
2595
+ attr_accessor :resource_path
2596
+
2597
+ # A string representation of the resource path. For Google Cloud, it has the
2598
+ # format of organizations/`organization_id`/folders/`folder_id`/folders/`
2599
+ # folder_id`/projects/`project_id` where there can be any number of folders. For
2600
+ # AWS, it has the format of org/`organization_id`/ou/`organizational_unit_id`/ou/
2601
+ # `organizational_unit_id`/account/`account_id` where there can be any number of
2602
+ # organizational units. For Azure, it has the format of mg/`management_group_id`/
2603
+ # mg/`management_group_id`/subscription/`subscription_id`/rg/`
2604
+ # resource_group_name` where there can be any number of management groups.
2605
+ # Corresponds to the JSON property `resourcePathString`
2606
+ # @return [String]
2607
+ attr_accessor :resource_path_string
2608
+
2609
+ # The parent service or product from which the resource is provided, for example,
2610
+ # GKE or SNS.
2611
+ # Corresponds to the JSON property `service`
2612
+ # @return [String]
2613
+ attr_accessor :service
2614
+
2279
2615
  # The full resource type of the resource.
2280
2616
  # Corresponds to the JSON property `type`
2281
2617
  # @return [String]
@@ -2287,13 +2623,20 @@ module Google
2287
2623
 
2288
2624
  # Update properties of this object
2289
2625
  def update!(**args)
2626
+ @aws_metadata = args[:aws_metadata] if args.key?(:aws_metadata)
2627
+ @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider)
2290
2628
  @display_name = args[:display_name] if args.key?(:display_name)
2291
2629
  @folders = args[:folders] if args.key?(:folders)
2630
+ @location = args[:location] if args.key?(:location)
2292
2631
  @name = args[:name] if args.key?(:name)
2632
+ @organization = args[:organization] if args.key?(:organization)
2293
2633
  @parent = args[:parent] if args.key?(:parent)
2294
2634
  @parent_display_name = args[:parent_display_name] if args.key?(:parent_display_name)
2295
2635
  @project = args[:project] if args.key?(:project)
2296
2636
  @project_display_name = args[:project_display_name] if args.key?(:project_display_name)
2637
+ @resource_path = args[:resource_path] if args.key?(:resource_path)
2638
+ @resource_path_string = args[:resource_path_string] if args.key?(:resource_path_string)
2639
+ @service = args[:service] if args.key?(:service)
2297
2640
  @type = args[:type] if args.key?(:type)
2298
2641
  end
2299
2642
  end
@@ -2322,6 +2665,11 @@ module Google
2322
2665
  class GoogleCloudSecuritycenterV1ResourceValueConfig
2323
2666
  include Google::Apis::Core::Hashable
2324
2667
 
2668
+ # Cloud provider this configuration applies to
2669
+ # Corresponds to the JSON property `cloudProvider`
2670
+ # @return [String]
2671
+ attr_accessor :cloud_provider
2672
+
2325
2673
  # Output only. Timestamp this resource value config was created.
2326
2674
  # Corresponds to the JSON property `createTime`
2327
2675
  # @return [String]
@@ -2390,6 +2738,7 @@ module Google
2390
2738
 
2391
2739
  # Update properties of this object
2392
2740
  def update!(**args)
2741
+ @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider)
2393
2742
  @create_time = args[:create_time] if args.key?(:create_time)
2394
2743
  @description = args[:description] if args.key?(:description)
2395
2744
  @name = args[:name] if args.key?(:name)
@@ -3019,6 +3368,31 @@ module Google
3019
3368
  end
3020
3369
  end
3021
3370
 
3371
+ # Information about [Google Cloud Armor Adaptive Protection](https://cloud.
3372
+ # google.com/armor/docs/cloud-armor-overview#google-cloud-armor-adaptive-
3373
+ # protection).
3374
+ class GoogleCloudSecuritycenterV2AdaptiveProtection
3375
+ include Google::Apis::Core::Hashable
3376
+
3377
+ # A score of 0 means that there is low confidence that the detected event is an
3378
+ # actual attack. A score of 1 means that there is high confidence that the
3379
+ # detected event is an attack. See the [Adaptive Protection documentation](https:
3380
+ # //cloud.google.com/armor/docs/adaptive-protection-overview#configure-alert-
3381
+ # tuning) for further explanation.
3382
+ # Corresponds to the JSON property `confidence`
3383
+ # @return [Float]
3384
+ attr_accessor :confidence
3385
+
3386
+ def initialize(**args)
3387
+ update!(**args)
3388
+ end
3389
+
3390
+ # Update properties of this object
3391
+ def update!(**args)
3392
+ @confidence = args[:confidence] if args.key?(:confidence)
3393
+ end
3394
+ end
3395
+
3022
3396
  # Represents an application associated with a finding.
3023
3397
  class GoogleCloudSecuritycenterV2Application
3024
3398
  include Google::Apis::Core::Hashable
@@ -3046,6 +3420,37 @@ module Google
3046
3420
  end
3047
3421
  end
3048
3422
 
3423
+ # Information about DDoS attack volume and classification.
3424
+ class GoogleCloudSecuritycenterV2Attack
3425
+ include Google::Apis::Core::Hashable
3426
+
3427
+ # Type of attack, for example, 'SYN-flood', 'NTP-udp', or 'CHARGEN-udp'.
3428
+ # Corresponds to the JSON property `classification`
3429
+ # @return [String]
3430
+ attr_accessor :classification
3431
+
3432
+ # Total BPS (bytes per second) volume of attack.
3433
+ # Corresponds to the JSON property `volumeBps`
3434
+ # @return [Fixnum]
3435
+ attr_accessor :volume_bps
3436
+
3437
+ # Total PPS (packets per second) volume of attack.
3438
+ # Corresponds to the JSON property `volumePps`
3439
+ # @return [Fixnum]
3440
+ attr_accessor :volume_pps
3441
+
3442
+ def initialize(**args)
3443
+ update!(**args)
3444
+ end
3445
+
3446
+ # Update properties of this object
3447
+ def update!(**args)
3448
+ @classification = args[:classification] if args.key?(:classification)
3449
+ @volume_bps = args[:volume_bps] if args.key?(:volume_bps)
3450
+ @volume_pps = args[:volume_pps] if args.key?(:volume_pps)
3451
+ end
3452
+ end
3453
+
3049
3454
  # An attack exposure contains the results of an attack path simulation run.
3050
3455
  class GoogleCloudSecuritycenterV2AttackExposure
3051
3456
  include Google::Apis::Core::Hashable
@@ -3109,40 +3514,154 @@ module Google
3109
3514
  end
3110
3515
  end
3111
3516
 
3112
- # Information related to Google Cloud Backup and DR Service findings.
3113
- class GoogleCloudSecuritycenterV2BackupDisasterRecovery
3517
+ # An AWS account that is a member of an organization.
3518
+ class GoogleCloudSecuritycenterV2AwsAccount
3114
3519
  include Google::Apis::Core::Hashable
3115
3520
 
3116
- # The name of the Backup and DR appliance that captures, moves, and manages the
3117
- # lifecycle of backup data. For example, `backup-server-57137`.
3118
- # Corresponds to the JSON property `appliance`
3521
+ # The unique identifier (ID) of the account, containing exactly 12 digits.
3522
+ # Corresponds to the JSON property `id`
3119
3523
  # @return [String]
3120
- attr_accessor :appliance
3121
-
3122
- # The names of Backup and DR applications. An application is a VM, database, or
3123
- # file system on a managed host monitored by a backup and recovery appliance.
3124
- # For example, `centos7-01-vol00`, `centos7-01-vol01`, `centos7-01-vol02`.
3125
- # Corresponds to the JSON property `applications`
3126
- # @return [Array<String>]
3127
- attr_accessor :applications
3524
+ attr_accessor :id
3128
3525
 
3129
- # The timestamp at which the Backup and DR backup was created.
3130
- # Corresponds to the JSON property `backupCreateTime`
3526
+ # The friendly name of this account.
3527
+ # Corresponds to the JSON property `name`
3131
3528
  # @return [String]
3132
- attr_accessor :backup_create_time
3529
+ attr_accessor :name
3133
3530
 
3134
- # The name of a Backup and DR template which comprises one or more backup
3135
- # policies. See the [Backup and DR documentation](https://cloud.google.com/
3136
- # backup-disaster-recovery/docs/concepts/backup-plan#temp) for more information.
3137
- # For example, `snap-ov`.
3138
- # Corresponds to the JSON property `backupTemplate`
3139
- # @return [String]
3140
- attr_accessor :backup_template
3531
+ def initialize(**args)
3532
+ update!(**args)
3533
+ end
3141
3534
 
3142
- # The backup type of the Backup and DR image. For example, `Snapshot`, `Remote
3143
- # Snapshot`, `OnVault`.
3144
- # Corresponds to the JSON property `backupType`
3145
- # @return [String]
3535
+ # Update properties of this object
3536
+ def update!(**args)
3537
+ @id = args[:id] if args.key?(:id)
3538
+ @name = args[:name] if args.key?(:name)
3539
+ end
3540
+ end
3541
+
3542
+ # AWS metadata associated with the resource, only applicable if the finding's
3543
+ # cloud provider is Amazon Web Services.
3544
+ class GoogleCloudSecuritycenterV2AwsMetadata
3545
+ include Google::Apis::Core::Hashable
3546
+
3547
+ # An AWS account that is a member of an organization.
3548
+ # Corresponds to the JSON property `account`
3549
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2AwsAccount]
3550
+ attr_accessor :account
3551
+
3552
+ # An organization is a collection of accounts that are centrally managed
3553
+ # together using consolidated billing, organized hierarchically with
3554
+ # organizational units (OUs), and controlled with policies.
3555
+ # Corresponds to the JSON property `organization`
3556
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2AwsOrganization]
3557
+ attr_accessor :organization
3558
+
3559
+ # A list of AWS organizational units associated with the resource, ordered from
3560
+ # lowest level (closest to the account) to highest level.
3561
+ # Corresponds to the JSON property `organizationalUnits`
3562
+ # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2AwsOrganizationalUnit>]
3563
+ attr_accessor :organizational_units
3564
+
3565
+ def initialize(**args)
3566
+ update!(**args)
3567
+ end
3568
+
3569
+ # Update properties of this object
3570
+ def update!(**args)
3571
+ @account = args[:account] if args.key?(:account)
3572
+ @organization = args[:organization] if args.key?(:organization)
3573
+ @organizational_units = args[:organizational_units] if args.key?(:organizational_units)
3574
+ end
3575
+ end
3576
+
3577
+ # An organization is a collection of accounts that are centrally managed
3578
+ # together using consolidated billing, organized hierarchically with
3579
+ # organizational units (OUs), and controlled with policies.
3580
+ class GoogleCloudSecuritycenterV2AwsOrganization
3581
+ include Google::Apis::Core::Hashable
3582
+
3583
+ # The unique identifier (ID) for the organization. The regex pattern for an
3584
+ # organization ID string requires "o-" followed by from 10 to 32 lowercase
3585
+ # letters or digits.
3586
+ # Corresponds to the JSON property `id`
3587
+ # @return [String]
3588
+ attr_accessor :id
3589
+
3590
+ def initialize(**args)
3591
+ update!(**args)
3592
+ end
3593
+
3594
+ # Update properties of this object
3595
+ def update!(**args)
3596
+ @id = args[:id] if args.key?(:id)
3597
+ end
3598
+ end
3599
+
3600
+ # An Organizational Unit (OU) is a container of AWS accounts within a root of an
3601
+ # organization. Policies that are attached to an OU apply to all accounts
3602
+ # contained in that OU and in any child OUs.
3603
+ class GoogleCloudSecuritycenterV2AwsOrganizationalUnit
3604
+ include Google::Apis::Core::Hashable
3605
+
3606
+ # The unique identifier (ID) associated with this OU. The regex pattern for an
3607
+ # organizational unit ID string requires "ou-" followed by from 4 to 32
3608
+ # lowercase letters or digits (the ID of the root that contains the OU). This
3609
+ # string is followed by a second "-" dash and from 8 to 32 additional lowercase
3610
+ # letters or digits. For example, "ou-ab12-cd34ef56".
3611
+ # Corresponds to the JSON property `id`
3612
+ # @return [String]
3613
+ attr_accessor :id
3614
+
3615
+ # The friendly name of the OU.
3616
+ # Corresponds to the JSON property `name`
3617
+ # @return [String]
3618
+ attr_accessor :name
3619
+
3620
+ def initialize(**args)
3621
+ update!(**args)
3622
+ end
3623
+
3624
+ # Update properties of this object
3625
+ def update!(**args)
3626
+ @id = args[:id] if args.key?(:id)
3627
+ @name = args[:name] if args.key?(:name)
3628
+ end
3629
+ end
3630
+
3631
+ # Information related to Google Cloud Backup and DR Service findings.
3632
+ class GoogleCloudSecuritycenterV2BackupDisasterRecovery
3633
+ include Google::Apis::Core::Hashable
3634
+
3635
+ # The name of the Backup and DR appliance that captures, moves, and manages the
3636
+ # lifecycle of backup data. For example, `backup-server-57137`.
3637
+ # Corresponds to the JSON property `appliance`
3638
+ # @return [String]
3639
+ attr_accessor :appliance
3640
+
3641
+ # The names of Backup and DR applications. An application is a VM, database, or
3642
+ # file system on a managed host monitored by a backup and recovery appliance.
3643
+ # For example, `centos7-01-vol00`, `centos7-01-vol01`, `centos7-01-vol02`.
3644
+ # Corresponds to the JSON property `applications`
3645
+ # @return [Array<String>]
3646
+ attr_accessor :applications
3647
+
3648
+ # The timestamp at which the Backup and DR backup was created.
3649
+ # Corresponds to the JSON property `backupCreateTime`
3650
+ # @return [String]
3651
+ attr_accessor :backup_create_time
3652
+
3653
+ # The name of a Backup and DR template which comprises one or more backup
3654
+ # policies. See the [Backup and DR documentation](https://cloud.google.com/
3655
+ # backup-disaster-recovery/docs/concepts/backup-plan#temp) for more information.
3656
+ # For example, `snap-ov`.
3657
+ # Corresponds to the JSON property `backupTemplate`
3658
+ # @return [String]
3659
+ attr_accessor :backup_template
3660
+
3661
+ # The backup type of the Backup and DR image. For example, `Snapshot`, `Remote
3662
+ # Snapshot`, `OnVault`.
3663
+ # Corresponds to the JSON property `backupType`
3664
+ # @return [String]
3146
3665
  attr_accessor :backup_type
3147
3666
 
3148
3667
  # The name of a Backup and DR host, which is managed by the backup and recovery
@@ -3341,6 +3860,61 @@ module Google
3341
3860
  end
3342
3861
  end
3343
3862
 
3863
+ # Fields related to Google Cloud Armor findings.
3864
+ class GoogleCloudSecuritycenterV2CloudArmor
3865
+ include Google::Apis::Core::Hashable
3866
+
3867
+ # Information about [Google Cloud Armor Adaptive Protection](https://cloud.
3868
+ # google.com/armor/docs/cloud-armor-overview#google-cloud-armor-adaptive-
3869
+ # protection).
3870
+ # Corresponds to the JSON property `adaptiveProtection`
3871
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2AdaptiveProtection]
3872
+ attr_accessor :adaptive_protection
3873
+
3874
+ # Information about DDoS attack volume and classification.
3875
+ # Corresponds to the JSON property `attack`
3876
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Attack]
3877
+ attr_accessor :attack
3878
+
3879
+ # Duration of attack from the start until the current moment (updated every 5
3880
+ # minutes).
3881
+ # Corresponds to the JSON property `duration`
3882
+ # @return [String]
3883
+ attr_accessor :duration
3884
+
3885
+ # Information about the requests relevant to the finding.
3886
+ # Corresponds to the JSON property `requests`
3887
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Requests]
3888
+ attr_accessor :requests
3889
+
3890
+ # Information about the [Google Cloud Armor security policy](https://cloud.
3891
+ # google.com/armor/docs/security-policy-overview) relevant to the finding.
3892
+ # Corresponds to the JSON property `securityPolicy`
3893
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2SecurityPolicy]
3894
+ attr_accessor :security_policy
3895
+
3896
+ # Distinguish between volumetric & protocol DDoS attack and application layer
3897
+ # attacks. For example, "L3_4" for Layer 3 and Layer 4 DDoS attacks, or "L_7"
3898
+ # for Layer 7 DDoS attacks.
3899
+ # Corresponds to the JSON property `threatVector`
3900
+ # @return [String]
3901
+ attr_accessor :threat_vector
3902
+
3903
+ def initialize(**args)
3904
+ update!(**args)
3905
+ end
3906
+
3907
+ # Update properties of this object
3908
+ def update!(**args)
3909
+ @adaptive_protection = args[:adaptive_protection] if args.key?(:adaptive_protection)
3910
+ @attack = args[:attack] if args.key?(:attack)
3911
+ @duration = args[:duration] if args.key?(:duration)
3912
+ @requests = args[:requests] if args.key?(:requests)
3913
+ @security_policy = args[:security_policy] if args.key?(:security_policy)
3914
+ @threat_vector = args[:threat_vector] if args.key?(:threat_vector)
3915
+ end
3916
+ end
3917
+
3344
3918
  # The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated
3345
3919
  # with the finding.
3346
3920
  class GoogleCloudSecuritycenterV2CloudDlpDataProfile
@@ -4157,6 +4731,11 @@ module Google
4157
4731
  # @return [String]
4158
4732
  attr_accessor :category
4159
4733
 
4734
+ # Fields related to Google Cloud Armor findings.
4735
+ # Corresponds to the JSON property `cloudArmor`
4736
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2CloudArmor]
4737
+ attr_accessor :cloud_armor
4738
+
4160
4739
  # The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated
4161
4740
  # with the finding.
4162
4741
  # Corresponds to the JSON property `cloudDlpDataProfile`
@@ -4343,6 +4922,13 @@ module Google
4343
4922
  # @return [String]
4344
4923
  attr_accessor :next_steps
4345
4924
 
4925
+ # Represents a Jupyter notebook IPYNB file, such as a [Colab Enterprise notebook]
4926
+ # (https://cloud.google.com/colab/docs/introduction) file, that is associated
4927
+ # with a finding.
4928
+ # Corresponds to the JSON property `notebook`
4929
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Notebook]
4930
+ attr_accessor :notebook
4931
+
4346
4932
  # Contains information about the org policies associated with the finding.
4347
4933
  # Corresponds to the JSON property `orgPolicies`
4348
4934
  # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2OrgPolicy>]
@@ -4433,6 +5019,7 @@ module Google
4433
5019
  @backup_disaster_recovery = args[:backup_disaster_recovery] if args.key?(:backup_disaster_recovery)
4434
5020
  @canonical_name = args[:canonical_name] if args.key?(:canonical_name)
4435
5021
  @category = args[:category] if args.key?(:category)
5022
+ @cloud_armor = args[:cloud_armor] if args.key?(:cloud_armor)
4436
5023
  @cloud_dlp_data_profile = args[:cloud_dlp_data_profile] if args.key?(:cloud_dlp_data_profile)
4437
5024
  @cloud_dlp_inspection = args[:cloud_dlp_inspection] if args.key?(:cloud_dlp_inspection)
4438
5025
  @compliances = args[:compliances] if args.key?(:compliances)
@@ -4461,6 +5048,7 @@ module Google
4461
5048
  @mute_update_time = args[:mute_update_time] if args.key?(:mute_update_time)
4462
5049
  @name = args[:name] if args.key?(:name)
4463
5050
  @next_steps = args[:next_steps] if args.key?(:next_steps)
5051
+ @notebook = args[:notebook] if args.key?(:notebook)
4464
5052
  @org_policies = args[:org_policies] if args.key?(:org_policies)
4465
5053
  @parent = args[:parent] if args.key?(:parent)
4466
5054
  @parent_display_name = args[:parent_display_name] if args.key?(:parent_display_name)
@@ -4475,6 +5063,32 @@ module Google
4475
5063
  end
4476
5064
  end
4477
5065
 
5066
+ # Message that contains the resource name and display name of a folder resource.
5067
+ class GoogleCloudSecuritycenterV2Folder
5068
+ include Google::Apis::Core::Hashable
5069
+
5070
+ # Full resource name of this folder. See: https://cloud.google.com/apis/design/
5071
+ # resource_names#full_resource_name
5072
+ # Corresponds to the JSON property `resourceFolder`
5073
+ # @return [String]
5074
+ attr_accessor :resource_folder
5075
+
5076
+ # The user defined display name for this folder.
5077
+ # Corresponds to the JSON property `resourceFolderDisplayName`
5078
+ # @return [String]
5079
+ attr_accessor :resource_folder_display_name
5080
+
5081
+ def initialize(**args)
5082
+ update!(**args)
5083
+ end
5084
+
5085
+ # Update properties of this object
5086
+ def update!(**args)
5087
+ @resource_folder = args[:resource_folder] if args.key?(:resource_folder)
5088
+ @resource_folder_display_name = args[:resource_folder_display_name] if args.key?(:resource_folder_display_name)
5089
+ end
5090
+ end
5091
+
4478
5092
  # Represents a geographical location for a given access.
4479
5093
  class GoogleCloudSecuritycenterV2Geolocation
4480
5094
  include Google::Apis::Core::Hashable
@@ -4981,6 +5595,45 @@ module Google
4981
5595
  end
4982
5596
  end
4983
5597
 
5598
+ # Represents a Jupyter notebook IPYNB file, such as a [Colab Enterprise notebook]
5599
+ # (https://cloud.google.com/colab/docs/introduction) file, that is associated
5600
+ # with a finding.
5601
+ class GoogleCloudSecuritycenterV2Notebook
5602
+ include Google::Apis::Core::Hashable
5603
+
5604
+ # The user ID of the latest author to modify the notebook.
5605
+ # Corresponds to the JSON property `lastAuthor`
5606
+ # @return [String]
5607
+ attr_accessor :last_author
5608
+
5609
+ # The name of the notebook.
5610
+ # Corresponds to the JSON property `name`
5611
+ # @return [String]
5612
+ attr_accessor :name
5613
+
5614
+ # The most recent time the notebook was updated.
5615
+ # Corresponds to the JSON property `notebookUpdateTime`
5616
+ # @return [String]
5617
+ attr_accessor :notebook_update_time
5618
+
5619
+ # The source notebook service, for example, "Colab Enterprise".
5620
+ # Corresponds to the JSON property `service`
5621
+ # @return [String]
5622
+ attr_accessor :service
5623
+
5624
+ def initialize(**args)
5625
+ update!(**args)
5626
+ end
5627
+
5628
+ # Update properties of this object
5629
+ def update!(**args)
5630
+ @last_author = args[:last_author] if args.key?(:last_author)
5631
+ @name = args[:name] if args.key?(:name)
5632
+ @notebook_update_time = args[:notebook_update_time] if args.key?(:notebook_update_time)
5633
+ @service = args[:service] if args.key?(:service)
5634
+ end
5635
+ end
5636
+
4984
5637
  # Cloud SCC's Notification
4985
5638
  class GoogleCloudSecuritycenterV2NotificationMessage
4986
5639
  include Google::Apis::Core::Hashable
@@ -5327,21 +5980,105 @@ module Google
5327
5980
  end
5328
5981
  end
5329
5982
 
5983
+ # Information about the requests relevant to the finding.
5984
+ class GoogleCloudSecuritycenterV2Requests
5985
+ include Google::Apis::Core::Hashable
5986
+
5987
+ # Allowed RPS (requests per second) over the long term.
5988
+ # Corresponds to the JSON property `longTermAllowed`
5989
+ # @return [Fixnum]
5990
+ attr_accessor :long_term_allowed
5991
+
5992
+ # Denied RPS (requests per second) over the long term.
5993
+ # Corresponds to the JSON property `longTermDenied`
5994
+ # @return [Fixnum]
5995
+ attr_accessor :long_term_denied
5996
+
5997
+ # For 'Increasing deny ratio', the ratio is the denied traffic divided by the
5998
+ # allowed traffic. For 'Allowed traffic spike', the ratio is the allowed traffic
5999
+ # in the short term divided by allowed traffic in the long term.
6000
+ # Corresponds to the JSON property `ratio`
6001
+ # @return [Float]
6002
+ attr_accessor :ratio
6003
+
6004
+ # Allowed RPS (requests per second) in the short term.
6005
+ # Corresponds to the JSON property `shortTermAllowed`
6006
+ # @return [Fixnum]
6007
+ attr_accessor :short_term_allowed
6008
+
6009
+ def initialize(**args)
6010
+ update!(**args)
6011
+ end
6012
+
6013
+ # Update properties of this object
6014
+ def update!(**args)
6015
+ @long_term_allowed = args[:long_term_allowed] if args.key?(:long_term_allowed)
6016
+ @long_term_denied = args[:long_term_denied] if args.key?(:long_term_denied)
6017
+ @ratio = args[:ratio] if args.key?(:ratio)
6018
+ @short_term_allowed = args[:short_term_allowed] if args.key?(:short_term_allowed)
6019
+ end
6020
+ end
6021
+
5330
6022
  # Information related to the Google Cloud resource.
5331
6023
  class GoogleCloudSecuritycenterV2Resource
5332
6024
  include Google::Apis::Core::Hashable
5333
6025
 
6026
+ # AWS metadata associated with the resource, only applicable if the finding's
6027
+ # cloud provider is Amazon Web Services.
6028
+ # Corresponds to the JSON property `awsMetadata`
6029
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2AwsMetadata]
6030
+ attr_accessor :aws_metadata
6031
+
6032
+ # Indicates which cloud provider the finding is from.
6033
+ # Corresponds to the JSON property `cloudProvider`
6034
+ # @return [String]
6035
+ attr_accessor :cloud_provider
6036
+
5334
6037
  # The human readable name of the resource.
5335
6038
  # Corresponds to the JSON property `displayName`
5336
6039
  # @return [String]
5337
6040
  attr_accessor :display_name
5338
6041
 
6042
+ # GCP metadata associated with the resource, only applicable if the finding's
6043
+ # cloud provider is Google Cloud Platform.
6044
+ # Corresponds to the JSON property `gcpMetadata`
6045
+ # @return [Google::Apis::SecuritycenterV1beta2::GcpMetadata]
6046
+ attr_accessor :gcp_metadata
6047
+
6048
+ # The region or location of the service (if applicable).
6049
+ # Corresponds to the JSON property `location`
6050
+ # @return [String]
6051
+ attr_accessor :location
6052
+
5339
6053
  # The full resource name of the resource. See: https://cloud.google.com/apis/
5340
6054
  # design/resource_names#full_resource_name
5341
6055
  # Corresponds to the JSON property `name`
5342
6056
  # @return [String]
5343
6057
  attr_accessor :name
5344
6058
 
6059
+ # Represents the path of resources leading up to the resource this finding is
6060
+ # about.
6061
+ # Corresponds to the JSON property `resourcePath`
6062
+ # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2ResourcePath]
6063
+ attr_accessor :resource_path
6064
+
6065
+ # A string representation of the resource path. For Google Cloud, it has the
6066
+ # format of organizations/`organization_id`/folders/`folder_id`/folders/`
6067
+ # folder_id`/projects/`project_id` where there can be any number of folders. For
6068
+ # AWS, it has the format of org/`organization_id`/ou/`organizational_unit_id`/ou/
6069
+ # `organizational_unit_id`/account/`account_id` where there can be any number of
6070
+ # organizational units. For Azure, it has the format of mg/`management_group_id`/
6071
+ # mg/`management_group_id`/subscription/`subscription_id`/rg/`
6072
+ # resource_group_name` where there can be any number of management groups.
6073
+ # Corresponds to the JSON property `resourcePathString`
6074
+ # @return [String]
6075
+ attr_accessor :resource_path_string
6076
+
6077
+ # The service or resource provider associated with the resource.
6078
+ # Corresponds to the JSON property `service`
6079
+ # @return [String]
6080
+ attr_accessor :service
6081
+
5345
6082
  # The full resource type of the resource.
5346
6083
  # Corresponds to the JSON property `type`
5347
6084
  # @return [String]
@@ -5353,17 +6090,82 @@ module Google
5353
6090
 
5354
6091
  # Update properties of this object
5355
6092
  def update!(**args)
6093
+ @aws_metadata = args[:aws_metadata] if args.key?(:aws_metadata)
6094
+ @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider)
5356
6095
  @display_name = args[:display_name] if args.key?(:display_name)
6096
+ @gcp_metadata = args[:gcp_metadata] if args.key?(:gcp_metadata)
6097
+ @location = args[:location] if args.key?(:location)
5357
6098
  @name = args[:name] if args.key?(:name)
6099
+ @resource_path = args[:resource_path] if args.key?(:resource_path)
6100
+ @resource_path_string = args[:resource_path_string] if args.key?(:resource_path_string)
6101
+ @service = args[:service] if args.key?(:service)
5358
6102
  @type = args[:type] if args.key?(:type)
5359
6103
  end
5360
6104
  end
5361
6105
 
6106
+ # Represents the path of resources leading up to the resource this finding is
6107
+ # about.
6108
+ class GoogleCloudSecuritycenterV2ResourcePath
6109
+ include Google::Apis::Core::Hashable
6110
+
6111
+ # The list of nodes that make the up resource path, ordered from lowest level to
6112
+ # highest level.
6113
+ # Corresponds to the JSON property `nodes`
6114
+ # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2ResourcePathNode>]
6115
+ attr_accessor :nodes
6116
+
6117
+ def initialize(**args)
6118
+ update!(**args)
6119
+ end
6120
+
6121
+ # Update properties of this object
6122
+ def update!(**args)
6123
+ @nodes = args[:nodes] if args.key?(:nodes)
6124
+ end
6125
+ end
6126
+
6127
+ # A node within the resource path. Each node represents a resource within the
6128
+ # resource hierarchy.
6129
+ class GoogleCloudSecuritycenterV2ResourcePathNode
6130
+ include Google::Apis::Core::Hashable
6131
+
6132
+ # The display name of the resource this node represents.
6133
+ # Corresponds to the JSON property `displayName`
6134
+ # @return [String]
6135
+ attr_accessor :display_name
6136
+
6137
+ # The ID of the resource this node represents.
6138
+ # Corresponds to the JSON property `id`
6139
+ # @return [String]
6140
+ attr_accessor :id
6141
+
6142
+ # The type of resource this node represents.
6143
+ # Corresponds to the JSON property `nodeType`
6144
+ # @return [String]
6145
+ attr_accessor :node_type
6146
+
6147
+ def initialize(**args)
6148
+ update!(**args)
6149
+ end
6150
+
6151
+ # Update properties of this object
6152
+ def update!(**args)
6153
+ @display_name = args[:display_name] if args.key?(:display_name)
6154
+ @id = args[:id] if args.key?(:id)
6155
+ @node_type = args[:node_type] if args.key?(:node_type)
6156
+ end
6157
+ end
6158
+
5362
6159
  # A resource value config (RVC) is a mapping configuration of user's resources
5363
6160
  # to resource values. Used in Attack path simulations.
5364
6161
  class GoogleCloudSecuritycenterV2ResourceValueConfig
5365
6162
  include Google::Apis::Core::Hashable
5366
6163
 
6164
+ # Cloud provider this configuration applies to
6165
+ # Corresponds to the JSON property `cloudProvider`
6166
+ # @return [String]
6167
+ attr_accessor :cloud_provider
6168
+
5367
6169
  # Output only. Timestamp this resource value config was created.
5368
6170
  # Corresponds to the JSON property `createTime`
5369
6171
  # @return [String]
@@ -5433,6 +6235,7 @@ module Google
5433
6235
 
5434
6236
  # Update properties of this object
5435
6237
  def update!(**args)
6238
+ @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider)
5436
6239
  @create_time = args[:create_time] if args.key?(:create_time)
5437
6240
  @description = args[:description] if args.key?(:description)
5438
6241
  @name = args[:name] if args.key?(:name)
@@ -5517,17 +6320,17 @@ module Google
5517
6320
  include Google::Apis::Core::Hashable
5518
6321
 
5519
6322
  # The canonical name of the marks. The following list shows some examples: + `
5520
- # organizations/`organization_id`/assets/`asset_id`/securityMarks" + `
6323
+ # organizations/`organization_id`/assets/`asset_id`/securityMarks` + `
5521
6324
  # organizations/`organization_id`/sources/`source_id`/findings/`finding_id`/
5522
- # securityMarks" + `organizations/`organization_id`/sources/`source_id`/
5523
- # locations/`location`/findings/`finding_id`/securityMarks" + `folders/`
5524
- # folder_id`/assets/`asset_id`/securityMarks" + `folders/`folder_id`/sources/`
5525
- # source_id`/findings/`finding_id`/securityMarks" + `folders/`folder_id`/sources/
5526
- # `source_id`/locations/`location`/findings/`finding_id`/securityMarks" + `
5527
- # projects/`project_number`/assets/`asset_id`/securityMarks" + `projects/`
5528
- # project_number`/sources/`source_id`/findings/`finding_id`/securityMarks" + `
6325
+ # securityMarks` + `organizations/`organization_id`/sources/`source_id`/
6326
+ # locations/`location`/findings/`finding_id`/securityMarks` + `folders/`
6327
+ # folder_id`/assets/`asset_id`/securityMarks` + `folders/`folder_id`/sources/`
6328
+ # source_id`/findings/`finding_id`/securityMarks` + `folders/`folder_id`/sources/
6329
+ # `source_id`/locations/`location`/findings/`finding_id`/securityMarks` + `
6330
+ # projects/`project_number`/assets/`asset_id`/securityMarks` + `projects/`
6331
+ # project_number`/sources/`source_id`/findings/`finding_id`/securityMarks` + `
5529
6332
  # projects/`project_number`/sources/`source_id`/locations/`location`/findings/`
5530
- # finding_id`/securityMarks"
6333
+ # finding_id`/securityMarks`
5531
6334
  # Corresponds to the JSON property `canonicalName`
5532
6335
  # @return [String]
5533
6336
  attr_accessor :canonical_name
@@ -5563,6 +6366,42 @@ module Google
5563
6366
  end
5564
6367
  end
5565
6368
 
6369
+ # Information about the [Google Cloud Armor security policy](https://cloud.
6370
+ # google.com/armor/docs/security-policy-overview) relevant to the finding.
6371
+ class GoogleCloudSecuritycenterV2SecurityPolicy
6372
+ include Google::Apis::Core::Hashable
6373
+
6374
+ # The name of the Google Cloud Armor security policy, for example, "my-security-
6375
+ # policy".
6376
+ # Corresponds to the JSON property `name`
6377
+ # @return [String]
6378
+ attr_accessor :name
6379
+
6380
+ # Whether or not the associated rule or policy is in preview mode.
6381
+ # Corresponds to the JSON property `preview`
6382
+ # @return [Boolean]
6383
+ attr_accessor :preview
6384
+ alias_method :preview?, :preview
6385
+
6386
+ # The type of Google Cloud Armor security policy for example, 'backend security
6387
+ # policy', 'edge security policy', 'network edge security policy', or 'always-on
6388
+ # DDoS protection'.
6389
+ # Corresponds to the JSON property `type`
6390
+ # @return [String]
6391
+ attr_accessor :type
6392
+
6393
+ def initialize(**args)
6394
+ update!(**args)
6395
+ end
6396
+
6397
+ # Update properties of this object
6398
+ def update!(**args)
6399
+ @name = args[:name] if args.key?(:name)
6400
+ @preview = args[:preview] if args.key?(:preview)
6401
+ @type = args[:type] if args.key?(:type)
6402
+ end
6403
+ end
6404
+
5566
6405
  # Represents a posture that is deployed on Google Cloud by the Security Command
5567
6406
  # Center Posture Management service. A posture contains one or more policy sets.
5568
6407
  # A policy set is a group of policies that enforce a set of security rules on
@@ -6239,6 +7078,45 @@ module Google
6239
7078
  end
6240
7079
  end
6241
7080
 
7081
+ # Represents a Jupyter notebook IPYNB file, such as a [Colab Enterprise notebook]
7082
+ # (https://cloud.google.com/colab/docs/introduction) file, that is associated
7083
+ # with a finding.
7084
+ class Notebook
7085
+ include Google::Apis::Core::Hashable
7086
+
7087
+ # The user ID of the latest author to modify the notebook.
7088
+ # Corresponds to the JSON property `lastAuthor`
7089
+ # @return [String]
7090
+ attr_accessor :last_author
7091
+
7092
+ # The name of the notebook.
7093
+ # Corresponds to the JSON property `name`
7094
+ # @return [String]
7095
+ attr_accessor :name
7096
+
7097
+ # The most recent time the notebook was updated.
7098
+ # Corresponds to the JSON property `notebookUpdateTime`
7099
+ # @return [String]
7100
+ attr_accessor :notebook_update_time
7101
+
7102
+ # The source notebook service, for example, "Colab Enterprise".
7103
+ # Corresponds to the JSON property `service`
7104
+ # @return [String]
7105
+ attr_accessor :service
7106
+
7107
+ def initialize(**args)
7108
+ update!(**args)
7109
+ end
7110
+
7111
+ # Update properties of this object
7112
+ def update!(**args)
7113
+ @last_author = args[:last_author] if args.key?(:last_author)
7114
+ @name = args[:name] if args.key?(:name)
7115
+ @notebook_update_time = args[:notebook_update_time] if args.key?(:notebook_update_time)
7116
+ @service = args[:service] if args.key?(:service)
7117
+ end
7118
+ end
7119
+
6242
7120
  # Kubernetes object related to the finding, uniquely identified by GKNN. Used if
6243
7121
  # the object Kind is not one of Pod, Node, NodePool, Binding, or AccessReview.
6244
7122
  class Object
@@ -6593,6 +7471,98 @@ module Google
6593
7471
  end
6594
7472
  end
6595
7473
 
7474
+ # Information about the requests relevant to the finding.
7475
+ class Requests
7476
+ include Google::Apis::Core::Hashable
7477
+
7478
+ # Allowed RPS (requests per second) over the long term.
7479
+ # Corresponds to the JSON property `longTermAllowed`
7480
+ # @return [Fixnum]
7481
+ attr_accessor :long_term_allowed
7482
+
7483
+ # Denied RPS (requests per second) over the long term.
7484
+ # Corresponds to the JSON property `longTermDenied`
7485
+ # @return [Fixnum]
7486
+ attr_accessor :long_term_denied
7487
+
7488
+ # For 'Increasing deny ratio', the ratio is the denied traffic divided by the
7489
+ # allowed traffic. For 'Allowed traffic spike', the ratio is the allowed traffic
7490
+ # in the short term divided by allowed traffic in the long term.
7491
+ # Corresponds to the JSON property `ratio`
7492
+ # @return [Float]
7493
+ attr_accessor :ratio
7494
+
7495
+ # Allowed RPS (requests per second) in the short term.
7496
+ # Corresponds to the JSON property `shortTermAllowed`
7497
+ # @return [Fixnum]
7498
+ attr_accessor :short_term_allowed
7499
+
7500
+ def initialize(**args)
7501
+ update!(**args)
7502
+ end
7503
+
7504
+ # Update properties of this object
7505
+ def update!(**args)
7506
+ @long_term_allowed = args[:long_term_allowed] if args.key?(:long_term_allowed)
7507
+ @long_term_denied = args[:long_term_denied] if args.key?(:long_term_denied)
7508
+ @ratio = args[:ratio] if args.key?(:ratio)
7509
+ @short_term_allowed = args[:short_term_allowed] if args.key?(:short_term_allowed)
7510
+ end
7511
+ end
7512
+
7513
+ # Represents the path of resources leading up to the resource this finding is
7514
+ # about.
7515
+ class ResourcePath
7516
+ include Google::Apis::Core::Hashable
7517
+
7518
+ # The list of nodes that make the up resource path, ordered from lowest level to
7519
+ # highest level.
7520
+ # Corresponds to the JSON property `nodes`
7521
+ # @return [Array<Google::Apis::SecuritycenterV1beta2::ResourcePathNode>]
7522
+ attr_accessor :nodes
7523
+
7524
+ def initialize(**args)
7525
+ update!(**args)
7526
+ end
7527
+
7528
+ # Update properties of this object
7529
+ def update!(**args)
7530
+ @nodes = args[:nodes] if args.key?(:nodes)
7531
+ end
7532
+ end
7533
+
7534
+ # A node within the resource path. Each node represents a resource within the
7535
+ # resource hierarchy.
7536
+ class ResourcePathNode
7537
+ include Google::Apis::Core::Hashable
7538
+
7539
+ # The display name of the resource this node represents.
7540
+ # Corresponds to the JSON property `displayName`
7541
+ # @return [String]
7542
+ attr_accessor :display_name
7543
+
7544
+ # The ID of the resource this node represents.
7545
+ # Corresponds to the JSON property `id`
7546
+ # @return [String]
7547
+ attr_accessor :id
7548
+
7549
+ # The type of resource this node represents.
7550
+ # Corresponds to the JSON property `nodeType`
7551
+ # @return [String]
7552
+ attr_accessor :node_type
7553
+
7554
+ def initialize(**args)
7555
+ update!(**args)
7556
+ end
7557
+
7558
+ # Update properties of this object
7559
+ def update!(**args)
7560
+ @display_name = args[:display_name] if args.key?(:display_name)
7561
+ @id = args[:id] if args.key?(:id)
7562
+ @node_type = args[:node_type] if args.key?(:node_type)
7563
+ end
7564
+ end
7565
+
6596
7566
  # Kubernetes Role or ClusterRole.
6597
7567
  class Role
6598
7568
  include Google::Apis::Core::Hashable
@@ -6797,6 +7767,42 @@ module Google
6797
7767
  end
6798
7768
  end
6799
7769
 
7770
+ # Information about the [Google Cloud Armor security policy](https://cloud.
7771
+ # google.com/armor/docs/security-policy-overview) relevant to the finding.
7772
+ class SecurityPolicy
7773
+ include Google::Apis::Core::Hashable
7774
+
7775
+ # The name of the Google Cloud Armor security policy, for example, "my-security-
7776
+ # policy".
7777
+ # Corresponds to the JSON property `name`
7778
+ # @return [String]
7779
+ attr_accessor :name
7780
+
7781
+ # Whether or not the associated rule or policy is in preview mode.
7782
+ # Corresponds to the JSON property `preview`
7783
+ # @return [Boolean]
7784
+ attr_accessor :preview
7785
+ alias_method :preview?, :preview
7786
+
7787
+ # The type of Google Cloud Armor security policy for example, 'backend security
7788
+ # policy', 'edge security policy', 'network edge security policy', or 'always-on
7789
+ # DDoS protection'.
7790
+ # Corresponds to the JSON property `type`
7791
+ # @return [String]
7792
+ attr_accessor :type
7793
+
7794
+ def initialize(**args)
7795
+ update!(**args)
7796
+ end
7797
+
7798
+ # Update properties of this object
7799
+ def update!(**args)
7800
+ @name = args[:name] if args.key?(:name)
7801
+ @preview = args[:preview] if args.key?(:preview)
7802
+ @type = args[:type] if args.key?(:type)
7803
+ end
7804
+ end
7805
+
6800
7806
  # Represents a posture that is deployed on Google Cloud by the Security Command
6801
7807
  # Center Posture Management service. A posture contains one or more policy sets.
6802
7808
  # A policy set is a group of policies that enforce a set of security rules on
@@ -7099,6 +8105,63 @@ module Google
7099
8105
  end
7100
8106
  end
7101
8107
 
8108
+ # Vulnerability count by severity.
8109
+ class VulnerabilityCountBySeverity
8110
+ include Google::Apis::Core::Hashable
8111
+
8112
+ # Key is the Severity enum.
8113
+ # Corresponds to the JSON property `severityToFindingCount`
8114
+ # @return [Hash<String,Fixnum>]
8115
+ attr_accessor :severity_to_finding_count
8116
+
8117
+ def initialize(**args)
8118
+ update!(**args)
8119
+ end
8120
+
8121
+ # Update properties of this object
8122
+ def update!(**args)
8123
+ @severity_to_finding_count = args[:severity_to_finding_count] if args.key?(:severity_to_finding_count)
8124
+ end
8125
+ end
8126
+
8127
+ # Result containing the properties and count of a VulnerabilitySnapshot request.
8128
+ class VulnerabilitySnapshot
8129
+ include Google::Apis::Core::Hashable
8130
+
8131
+ # The cloud provider for the vulnerability snapshot.
8132
+ # Corresponds to the JSON property `cloudProvider`
8133
+ # @return [String]
8134
+ attr_accessor :cloud_provider
8135
+
8136
+ # Vulnerability count by severity.
8137
+ # Corresponds to the JSON property `findingCount`
8138
+ # @return [Google::Apis::SecuritycenterV1beta2::VulnerabilityCountBySeverity]
8139
+ attr_accessor :finding_count
8140
+
8141
+ # Identifier. The vulnerability snapshot name. Format: //locations//
8142
+ # vulnerabilitySnapshots/
8143
+ # Corresponds to the JSON property `name`
8144
+ # @return [String]
8145
+ attr_accessor :name
8146
+
8147
+ # The time that the snapshot was taken.
8148
+ # Corresponds to the JSON property `snapshotTime`
8149
+ # @return [String]
8150
+ attr_accessor :snapshot_time
8151
+
8152
+ def initialize(**args)
8153
+ update!(**args)
8154
+ end
8155
+
8156
+ # Update properties of this object
8157
+ def update!(**args)
8158
+ @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider)
8159
+ @finding_count = args[:finding_count] if args.key?(:finding_count)
8160
+ @name = args[:name] if args.key?(:name)
8161
+ @snapshot_time = args[:snapshot_time] if args.key?(:snapshot_time)
8162
+ end
8163
+ end
8164
+
7102
8165
  # Resource capturing the settings for the Web Security Scanner service.
7103
8166
  class WebSecurityScannerSettings
7104
8167
  include Google::Apis::Core::Hashable