google-apis-securitycenter_v1beta2 0.66.0 → 0.67.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -186,6 +186,31 @@ module Google
186
186
  end
187
187
  end
188
188
 
189
+ # Information about [Google Cloud Armor Adaptive Protection](https://cloud.
190
+ # google.com/armor/docs/cloud-armor-overview#google-cloud-armor-adaptive-
191
+ # protection).
192
+ class AdaptiveProtection
193
+ include Google::Apis::Core::Hashable
194
+
195
+ # A score of 0 means that there is low confidence that the detected event is an
196
+ # actual attack. A score of 1 means that there is high confidence that the
197
+ # detected event is an attack. See the [Adaptive Protection documentation](https:
198
+ # //cloud.google.com/armor/docs/adaptive-protection-overview#configure-alert-
199
+ # tuning) for further explanation.
200
+ # Corresponds to the JSON property `confidence`
201
+ # @return [Float]
202
+ attr_accessor :confidence
203
+
204
+ def initialize(**args)
205
+ update!(**args)
206
+ end
207
+
208
+ # Update properties of this object
209
+ def update!(**args)
210
+ @confidence = args[:confidence] if args.key?(:confidence)
211
+ end
212
+ end
213
+
189
214
  # Represents an application associated with a finding.
190
215
  class Application
191
216
  include Google::Apis::Core::Hashable
@@ -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 GCP, it has the format of:
2598
+ # organizations/`organization_id`/folders/`folder_id`/folders/`folder_id`/
2599
+ # projects/`project_id` where there can be any number of folders. For AWS, it
2600
+ # 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 GCP, it has the format of:
6066
+ # organizations/`organization_id`/folders/`folder_id`/folders/`folder_id`/
6067
+ # projects/`project_id` where there can be any number of folders. For AWS, it
6068
+ # 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