google-apis-securitycenter_v1 0.77.0 → 0.79.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,20 +186,43 @@ 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
192
217
 
193
218
  # The base URI that identifies the network location of the application in which
194
- # the vulnerability was detected. Examples: http://11.22.33.44, http://foo.com,
195
- # http://11.22.33.44:8080
219
+ # the vulnerability was detected. For example, `http://example.com`.
196
220
  # Corresponds to the JSON property `baseUri`
197
221
  # @return [String]
198
222
  attr_accessor :base_uri
199
223
 
200
- # The full URI with payload that can be used to reproduce the vulnerability.
201
- # Example: http://11.22.33.44/reflected/parameter/attribute/singlequoted/js?p=
202
- # aMmYgI6H
224
+ # The full URI with payload that can be used to reproduce the vulnerability. For
225
+ # example, `http://example.com?p=aMmYgI6H`.
203
226
  # Corresponds to the JSON property `fullUri`
204
227
  # @return [String]
205
228
  attr_accessor :full_uri
@@ -324,6 +347,37 @@ module Google
324
347
  end
325
348
  end
326
349
 
350
+ # Information about DDoS attack volume and classification.
351
+ class Attack
352
+ include Google::Apis::Core::Hashable
353
+
354
+ # Type of attack, for example, ‘SYN-flood’, ‘NTP-udp’, or ‘CHARGEN-udp’.
355
+ # Corresponds to the JSON property `classification`
356
+ # @return [String]
357
+ attr_accessor :classification
358
+
359
+ # Total BPS (bytes per second) volume of attack.
360
+ # Corresponds to the JSON property `volumeBps`
361
+ # @return [Fixnum]
362
+ attr_accessor :volume_bps
363
+
364
+ # Total PPS (packets per second) volume of attack.
365
+ # Corresponds to the JSON property `volumePps`
366
+ # @return [Fixnum]
367
+ attr_accessor :volume_pps
368
+
369
+ def initialize(**args)
370
+ update!(**args)
371
+ end
372
+
373
+ # Update properties of this object
374
+ def update!(**args)
375
+ @classification = args[:classification] if args.key?(:classification)
376
+ @volume_bps = args[:volume_bps] if args.key?(:volume_bps)
377
+ @volume_pps = args[:volume_pps] if args.key?(:volume_pps)
378
+ end
379
+ end
380
+
327
381
  # An attack exposure contains the results of an attack path simulation run.
328
382
  class AttackExposure
329
383
  include Google::Apis::Core::Hashable
@@ -611,19 +665,133 @@ module Google
611
665
  end
612
666
  end
613
667
 
668
+ # An AWS account that is a member of an organization.
669
+ class AwsAccount
670
+ include Google::Apis::Core::Hashable
671
+
672
+ # The unique identifier (ID) of the account, containing exactly 12 digits.
673
+ # Corresponds to the JSON property `id`
674
+ # @return [String]
675
+ attr_accessor :id
676
+
677
+ # The friendly name of this account.
678
+ # Corresponds to the JSON property `name`
679
+ # @return [String]
680
+ attr_accessor :name
681
+
682
+ def initialize(**args)
683
+ update!(**args)
684
+ end
685
+
686
+ # Update properties of this object
687
+ def update!(**args)
688
+ @id = args[:id] if args.key?(:id)
689
+ @name = args[:name] if args.key?(:name)
690
+ end
691
+ end
692
+
693
+ # AWS metadata associated with the resource, only applicable if the finding's
694
+ # cloud provider is Amazon Web Services.
695
+ class AwsMetadata
696
+ include Google::Apis::Core::Hashable
697
+
698
+ # An AWS account that is a member of an organization.
699
+ # Corresponds to the JSON property `account`
700
+ # @return [Google::Apis::SecuritycenterV1::AwsAccount]
701
+ attr_accessor :account
702
+
703
+ # An organization is a collection of accounts that are centrally managed
704
+ # together using consolidated billing, organized hierarchically with
705
+ # organizational units (OUs), and controlled with policies.
706
+ # Corresponds to the JSON property `organization`
707
+ # @return [Google::Apis::SecuritycenterV1::AwsOrganization]
708
+ attr_accessor :organization
709
+
710
+ # A list of AWS organizational units associated with the resource, ordered from
711
+ # lowest level (closest to the account) to highest level.
712
+ # Corresponds to the JSON property `organizationalUnits`
713
+ # @return [Array<Google::Apis::SecuritycenterV1::AwsOrganizationalUnit>]
714
+ attr_accessor :organizational_units
715
+
716
+ def initialize(**args)
717
+ update!(**args)
718
+ end
719
+
720
+ # Update properties of this object
721
+ def update!(**args)
722
+ @account = args[:account] if args.key?(:account)
723
+ @organization = args[:organization] if args.key?(:organization)
724
+ @organizational_units = args[:organizational_units] if args.key?(:organizational_units)
725
+ end
726
+ end
727
+
728
+ # An organization is a collection of accounts that are centrally managed
729
+ # together using consolidated billing, organized hierarchically with
730
+ # organizational units (OUs), and controlled with policies.
731
+ class AwsOrganization
732
+ include Google::Apis::Core::Hashable
733
+
734
+ # The unique identifier (ID) for the organization. The regex pattern for an
735
+ # organization ID string requires "o-" followed by from 10 to 32 lowercase
736
+ # letters or digits.
737
+ # Corresponds to the JSON property `id`
738
+ # @return [String]
739
+ attr_accessor :id
740
+
741
+ def initialize(**args)
742
+ update!(**args)
743
+ end
744
+
745
+ # Update properties of this object
746
+ def update!(**args)
747
+ @id = args[:id] if args.key?(:id)
748
+ end
749
+ end
750
+
751
+ # An Organizational Unit (OU) is a container of AWS accounts within a root of an
752
+ # organization. Policies that are attached to an OU apply to all accounts
753
+ # contained in that OU and in any child OUs.
754
+ class AwsOrganizationalUnit
755
+ include Google::Apis::Core::Hashable
756
+
757
+ # The unique identifier (ID) associated with this OU. The regex pattern for an
758
+ # organizational unit ID string requires "ou-" followed by from 4 to 32
759
+ # lowercase letters or digits (the ID of the root that contains the OU). This
760
+ # string is followed by a second "-" dash and from 8 to 32 additional lowercase
761
+ # letters or digits. For example, "ou-ab12-cd34ef56".
762
+ # Corresponds to the JSON property `id`
763
+ # @return [String]
764
+ attr_accessor :id
765
+
766
+ # The friendly name of the OU.
767
+ # Corresponds to the JSON property `name`
768
+ # @return [String]
769
+ attr_accessor :name
770
+
771
+ def initialize(**args)
772
+ update!(**args)
773
+ end
774
+
775
+ # Update properties of this object
776
+ def update!(**args)
777
+ @id = args[:id] if args.key?(:id)
778
+ @name = args[:name] if args.key?(:name)
779
+ end
780
+ end
781
+
614
782
  # Information related to Google Cloud Backup and DR Service findings.
615
783
  class BackupDisasterRecovery
616
784
  include Google::Apis::Core::Hashable
617
785
 
618
786
  # The name of the Backup and DR appliance that captures, moves, and manages the
619
- # lifecycle of backup data. For example, backup-server-57137”.
787
+ # lifecycle of backup data. For example, `backup-server-57137`.
620
788
  # Corresponds to the JSON property `appliance`
621
789
  # @return [String]
622
790
  attr_accessor :appliance
623
791
 
624
792
  # The names of Backup and DR applications. An application is a VM, database, or
625
793
  # file system on a managed host monitored by a backup and recovery appliance.
626
- # For example, centos7-01-vol00”, centos7-01-vol01”, centos7-01-vol02”.
794
+ # For example, `centos7-01-vol00`, `centos7-01-vol01`, `centos7-01-vol02`.
627
795
  # Corresponds to the JSON property `applications`
628
796
  # @return [Array<String>]
629
797
  attr_accessor :applications
@@ -636,13 +804,13 @@ module Google
636
804
  # The name of a Backup and DR template which comprises one or more backup
637
805
  # policies. See the [Backup and DR documentation](https://cloud.google.com/
638
806
  # backup-disaster-recovery/docs/concepts/backup-plan#temp) for more information.
639
- # For example, snap-ov”.
807
+ # For example, `snap-ov`.
640
808
  # Corresponds to the JSON property `backupTemplate`
641
809
  # @return [String]
642
810
  attr_accessor :backup_template
643
811
 
644
- # The backup type of the Backup and DR image. For example, Snapshot”, Remote
645
- # Snapshot”, OnVault”.
812
+ # The backup type of the Backup and DR image. For example, `Snapshot`, `Remote
813
+ # Snapshot`, `OnVault`.
646
814
  # Corresponds to the JSON property `backupType`
647
815
  # @return [String]
648
816
  attr_accessor :backup_type
@@ -652,14 +820,14 @@ module Google
652
820
  # (for example, Compute Engine, SQL Server, Oracle DB, SMB file system, etc.),
653
821
  # vCenter, or an ESX server. See the [Backup and DR documentation on hosts](
654
822
  # https://cloud.google.com/backup-disaster-recovery/docs/configuration/manage-
655
- # hosts-and-their-applications) for more information. For example, centos7-01”.
823
+ # hosts-and-their-applications) for more information. For example, `centos7-01`.
656
824
  # Corresponds to the JSON property `host`
657
825
  # @return [String]
658
826
  attr_accessor :host
659
827
 
660
828
  # The names of Backup and DR policies that are associated with a template and
661
829
  # that define when to run a backup, how frequently to run a backup, and how long
662
- # to retain the backup image. For example, onvaults”.
830
+ # to retain the backup image. For example, `onvaults`.
663
831
  # Corresponds to the JSON property `policies`
664
832
  # @return [Array<String>]
665
833
  attr_accessor :policies
@@ -667,7 +835,7 @@ module Google
667
835
  # The names of Backup and DR advanced policy options of a policy applying to an
668
836
  # application. See the [Backup and DR documentation on policy options](https://
669
837
  # cloud.google.com/backup-disaster-recovery/docs/create-plan/policy-settings).
670
- # For example, skipofflineappsincongrp, nounmap”.
838
+ # For example, `skipofflineappsincongrp, nounmap`.
671
839
  # Corresponds to the JSON property `policyOptions`
672
840
  # @return [Array<String>]
673
841
  attr_accessor :policy_options
@@ -675,7 +843,7 @@ module Google
675
843
  # The name of the Backup and DR resource profile that specifies the storage
676
844
  # media for backups of application and VM data. See the [Backup and DR
677
845
  # documentation on profiles](https://cloud.google.com/backup-disaster-recovery/
678
- # docs/concepts/backup-plan#profile). For example, GCP”.
846
+ # docs/concepts/backup-plan#profile). For example, `GCP`.
679
847
  # Corresponds to the JSON property `profile`
680
848
  # @return [String]
681
849
  attr_accessor :profile
@@ -684,7 +852,7 @@ module Google
684
852
  # appliance is storing data in. The storage pool could be of type Cloud, Primary,
685
853
  # Snapshot, or OnVault. See the [Backup and DR documentation on storage pools](
686
854
  # https://cloud.google.com/backup-disaster-recovery/docs/concepts/storage-pools).
687
- # For example, DiskPoolOne”.
855
+ # For example, `DiskPoolOne`.
688
856
  # Corresponds to the JSON property `storagePool`
689
857
  # @return [String]
690
858
  attr_accessor :storage_pool
@@ -883,6 +1051,61 @@ module Google
883
1051
  end
884
1052
  end
885
1053
 
1054
+ # Fields related to Google Cloud Armor findings.
1055
+ class CloudArmor
1056
+ include Google::Apis::Core::Hashable
1057
+
1058
+ # Information about [Google Cloud Armor Adaptive Protection](https://cloud.
1059
+ # google.com/armor/docs/cloud-armor-overview#google-cloud-armor-adaptive-
1060
+ # protection).
1061
+ # Corresponds to the JSON property `adaptiveProtection`
1062
+ # @return [Google::Apis::SecuritycenterV1::AdaptiveProtection]
1063
+ attr_accessor :adaptive_protection
1064
+
1065
+ # Information about DDoS attack volume and classification.
1066
+ # Corresponds to the JSON property `attack`
1067
+ # @return [Google::Apis::SecuritycenterV1::Attack]
1068
+ attr_accessor :attack
1069
+
1070
+ # Duration of attack from the start until the current moment (updated every 5
1071
+ # minutes).
1072
+ # Corresponds to the JSON property `duration`
1073
+ # @return [String]
1074
+ attr_accessor :duration
1075
+
1076
+ # Information about the requests relevant to the finding.
1077
+ # Corresponds to the JSON property `requests`
1078
+ # @return [Google::Apis::SecuritycenterV1::Requests]
1079
+ attr_accessor :requests
1080
+
1081
+ # Information about the [Google Cloud Armor security policy](https://cloud.
1082
+ # google.com/armor/docs/security-policy-overview) relevant to the finding.
1083
+ # Corresponds to the JSON property `securityPolicy`
1084
+ # @return [Google::Apis::SecuritycenterV1::SecurityPolicy]
1085
+ attr_accessor :security_policy
1086
+
1087
+ # Distinguish between volumetric & protocol DDoS attack and application layer
1088
+ # attacks. For example, “L3_4” for Layer 3 and Layer 4 DDoS attacks, or “L_7”
1089
+ # for Layer 7 DDoS attacks.
1090
+ # Corresponds to the JSON property `threatVector`
1091
+ # @return [String]
1092
+ attr_accessor :threat_vector
1093
+
1094
+ def initialize(**args)
1095
+ update!(**args)
1096
+ end
1097
+
1098
+ # Update properties of this object
1099
+ def update!(**args)
1100
+ @adaptive_protection = args[:adaptive_protection] if args.key?(:adaptive_protection)
1101
+ @attack = args[:attack] if args.key?(:attack)
1102
+ @duration = args[:duration] if args.key?(:duration)
1103
+ @requests = args[:requests] if args.key?(:requests)
1104
+ @security_policy = args[:security_policy] if args.key?(:security_policy)
1105
+ @threat_vector = args[:threat_vector] if args.key?(:threat_vector)
1106
+ end
1107
+ end
1108
+
886
1109
  # The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated
887
1110
  # with the finding.
888
1111
  class CloudDlpDataProfile
@@ -1035,6 +1258,11 @@ module Google
1035
1258
  # @return [String]
1036
1259
  attr_accessor :category
1037
1260
 
1261
+ # The cloud provider for the compliance snapshot.
1262
+ # Corresponds to the JSON property `cloudProvider`
1263
+ # @return [String]
1264
+ attr_accessor :cloud_provider
1265
+
1038
1266
  # The compliance standard (ie CIS).
1039
1267
  # Corresponds to the JSON property `complianceStandard`
1040
1268
  # @return [String]
@@ -1060,12 +1288,6 @@ module Google
1060
1288
  # @return [String]
1061
1289
  attr_accessor :name
1062
1290
 
1063
- # The CRM resource display name that is closest to the snapshot the Findings
1064
- # belong to.
1065
- # Corresponds to the JSON property `projectDisplayName`
1066
- # @return [String]
1067
- attr_accessor :project_display_name
1068
-
1069
1291
  # The snapshot time of the snapshot.
1070
1292
  # Corresponds to the JSON property `snapshotTime`
1071
1293
  # @return [String]
@@ -1078,12 +1300,12 @@ module Google
1078
1300
  # Update properties of this object
1079
1301
  def update!(**args)
1080
1302
  @category = args[:category] if args.key?(:category)
1303
+ @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider)
1081
1304
  @compliance_standard = args[:compliance_standard] if args.key?(:compliance_standard)
1082
1305
  @compliance_version = args[:compliance_version] if args.key?(:compliance_version)
1083
1306
  @count = args[:count] if args.key?(:count)
1084
1307
  @leaf_container_resource = args[:leaf_container_resource] if args.key?(:leaf_container_resource)
1085
1308
  @name = args[:name] if args.key?(:name)
1086
- @project_display_name = args[:project_display_name] if args.key?(:project_display_name)
1087
1309
  @snapshot_time = args[:snapshot_time] if args.key?(:snapshot_time)
1088
1310
  end
1089
1311
  end
@@ -1964,6 +2186,11 @@ module Google
1964
2186
  # @return [String]
1965
2187
  attr_accessor :category
1966
2188
 
2189
+ # Fields related to Google Cloud Armor findings.
2190
+ # Corresponds to the JSON property `cloudArmor`
2191
+ # @return [Google::Apis::SecuritycenterV1::CloudArmor]
2192
+ attr_accessor :cloud_armor
2193
+
1967
2194
  # The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated
1968
2195
  # with the finding.
1969
2196
  # Corresponds to the JSON property `cloudDlpDataProfile`
@@ -2145,6 +2372,13 @@ module Google
2145
2372
  # @return [String]
2146
2373
  attr_accessor :next_steps
2147
2374
 
2375
+ # Represents a Jupyter notebook IPYNB file, such as a [Colab Enterprise notebook]
2376
+ # (https://cloud.google.com/colab/docs/introduction) file, that is associated
2377
+ # with a finding.
2378
+ # Corresponds to the JSON property `notebook`
2379
+ # @return [Google::Apis::SecuritycenterV1::Notebook]
2380
+ attr_accessor :notebook
2381
+
2148
2382
  # Contains information about the org policies associated with the finding.
2149
2383
  # Corresponds to the JSON property `orgPolicies`
2150
2384
  # @return [Array<Google::Apis::SecuritycenterV1::OrgPolicy>]
@@ -2230,6 +2464,7 @@ module Google
2230
2464
  @backup_disaster_recovery = args[:backup_disaster_recovery] if args.key?(:backup_disaster_recovery)
2231
2465
  @canonical_name = args[:canonical_name] if args.key?(:canonical_name)
2232
2466
  @category = args[:category] if args.key?(:category)
2467
+ @cloud_armor = args[:cloud_armor] if args.key?(:cloud_armor)
2233
2468
  @cloud_dlp_data_profile = args[:cloud_dlp_data_profile] if args.key?(:cloud_dlp_data_profile)
2234
2469
  @cloud_dlp_inspection = args[:cloud_dlp_inspection] if args.key?(:cloud_dlp_inspection)
2235
2470
  @compliances = args[:compliances] if args.key?(:compliances)
@@ -2258,6 +2493,7 @@ module Google
2258
2493
  @mute_update_time = args[:mute_update_time] if args.key?(:mute_update_time)
2259
2494
  @name = args[:name] if args.key?(:name)
2260
2495
  @next_steps = args[:next_steps] if args.key?(:next_steps)
2496
+ @notebook = args[:notebook] if args.key?(:notebook)
2261
2497
  @org_policies = args[:org_policies] if args.key?(:org_policies)
2262
2498
  @parent = args[:parent] if args.key?(:parent)
2263
2499
  @parent_display_name = args[:parent_display_name] if args.key?(:parent_display_name)
@@ -2298,6 +2534,58 @@ module Google
2298
2534
  end
2299
2535
  end
2300
2536
 
2537
+ # GCP metadata associated with the resource, only applicable if the finding's
2538
+ # cloud provider is Google Cloud Platform.
2539
+ class GcpMetadata
2540
+ include Google::Apis::Core::Hashable
2541
+
2542
+ # Output only. Contains a Folder message for each folder in the assets ancestry.
2543
+ # The first folder is the deepest nested folder, and the last folder is the
2544
+ # folder directly under the Organization.
2545
+ # Corresponds to the JSON property `folders`
2546
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Folder>]
2547
+ attr_accessor :folders
2548
+
2549
+ # The name of the organization that the resource belongs to.
2550
+ # Corresponds to the JSON property `organization`
2551
+ # @return [String]
2552
+ attr_accessor :organization
2553
+
2554
+ # The full resource name of resource's parent.
2555
+ # Corresponds to the JSON property `parent`
2556
+ # @return [String]
2557
+ attr_accessor :parent
2558
+
2559
+ # The human readable name of resource's parent.
2560
+ # Corresponds to the JSON property `parentDisplayName`
2561
+ # @return [String]
2562
+ attr_accessor :parent_display_name
2563
+
2564
+ # The full resource name of project that the resource belongs to.
2565
+ # Corresponds to the JSON property `project`
2566
+ # @return [String]
2567
+ attr_accessor :project
2568
+
2569
+ # The project ID that the resource belongs to.
2570
+ # Corresponds to the JSON property `projectDisplayName`
2571
+ # @return [String]
2572
+ attr_accessor :project_display_name
2573
+
2574
+ def initialize(**args)
2575
+ update!(**args)
2576
+ end
2577
+
2578
+ # Update properties of this object
2579
+ def update!(**args)
2580
+ @folders = args[:folders] if args.key?(:folders)
2581
+ @organization = args[:organization] if args.key?(:organization)
2582
+ @parent = args[:parent] if args.key?(:parent)
2583
+ @parent_display_name = args[:parent_display_name] if args.key?(:parent_display_name)
2584
+ @project = args[:project] if args.key?(:project)
2585
+ @project_display_name = args[:project_display_name] if args.key?(:project_display_name)
2586
+ end
2587
+ end
2588
+
2301
2589
  # Represents a geographical location for a given access.
2302
2590
  class Geolocation
2303
2591
  include Google::Apis::Core::Hashable
@@ -2657,6 +2945,16 @@ module Google
2657
2945
  # @return [Array<String>]
2658
2946
  attr_accessor :assignees
2659
2947
 
2948
+ # The time when the case was closed, as reported by the external system.
2949
+ # Corresponds to the JSON property `caseCloseTime`
2950
+ # @return [String]
2951
+ attr_accessor :case_close_time
2952
+
2953
+ # The time when the case was created, as reported by the external system.
2954
+ # Corresponds to the JSON property `caseCreateTime`
2955
+ # @return [String]
2956
+ attr_accessor :case_create_time
2957
+
2660
2958
  # The priority of the finding's corresponding case in the external system.
2661
2959
  # Corresponds to the JSON property `casePriority`
2662
2960
  # @return [String]
@@ -2710,6 +3008,8 @@ module Google
2710
3008
  # Update properties of this object
2711
3009
  def update!(**args)
2712
3010
  @assignees = args[:assignees] if args.key?(:assignees)
3011
+ @case_close_time = args[:case_close_time] if args.key?(:case_close_time)
3012
+ @case_create_time = args[:case_create_time] if args.key?(:case_create_time)
2713
3013
  @case_priority = args[:case_priority] if args.key?(:case_priority)
2714
3014
  @case_sla = args[:case_sla] if args.key?(:case_sla)
2715
3015
  @case_uri = args[:case_uri] if args.key?(:case_uri)
@@ -2874,6 +3174,17 @@ module Google
2874
3174
  class GoogleCloudSecuritycenterV1Resource
2875
3175
  include Google::Apis::Core::Hashable
2876
3176
 
3177
+ # AWS metadata associated with the resource, only applicable if the finding's
3178
+ # cloud provider is Amazon Web Services.
3179
+ # Corresponds to the JSON property `awsMetadata`
3180
+ # @return [Google::Apis::SecuritycenterV1::AwsMetadata]
3181
+ attr_accessor :aws_metadata
3182
+
3183
+ # Indicates which cloud provider the resource resides in.
3184
+ # Corresponds to the JSON property `cloudProvider`
3185
+ # @return [String]
3186
+ attr_accessor :cloud_provider
3187
+
2877
3188
  # The human readable name of the resource.
2878
3189
  # Corresponds to the JSON property `displayName`
2879
3190
  # @return [String]
@@ -2886,12 +3197,23 @@ module Google
2886
3197
  # @return [Array<Google::Apis::SecuritycenterV1::Folder>]
2887
3198
  attr_accessor :folders
2888
3199
 
3200
+ # The region or location of the service (if applicable).
3201
+ # Corresponds to the JSON property `location`
3202
+ # @return [String]
3203
+ attr_accessor :location
3204
+
2889
3205
  # The full resource name of the resource. See: https://cloud.google.com/apis/
2890
3206
  # design/resource_names#full_resource_name
2891
3207
  # Corresponds to the JSON property `name`
2892
3208
  # @return [String]
2893
3209
  attr_accessor :name
2894
3210
 
3211
+ # Indicates which organization or tenant in the cloud provider the finding
3212
+ # applies to.
3213
+ # Corresponds to the JSON property `organization`
3214
+ # @return [String]
3215
+ attr_accessor :organization
3216
+
2895
3217
  # The full resource name of resource's parent.
2896
3218
  # Corresponds to the JSON property `parent`
2897
3219
  # @return [String]
@@ -2912,6 +3234,30 @@ module Google
2912
3234
  # @return [String]
2913
3235
  attr_accessor :project_display_name
2914
3236
 
3237
+ # Represents the path of resources leading up to the resource this finding is
3238
+ # about.
3239
+ # Corresponds to the JSON property `resourcePath`
3240
+ # @return [Google::Apis::SecuritycenterV1::ResourcePath]
3241
+ attr_accessor :resource_path
3242
+
3243
+ # A string representation of the resource path. For GCP, it has the format of:
3244
+ # organizations/`organization_id`/folders/`folder_id`/folders/`folder_id`/
3245
+ # projects/`project_id` where there can be any number of folders. For AWS, it
3246
+ # has the format of: org/`organization_id`/ou/`organizational_unit_id`/ou/`
3247
+ # organizational_unit_id`/account/`account_id` where there can be any number of
3248
+ # organizational units. For Azure, it has the format of: mg/`management_group_id`
3249
+ # /mg/`management_group_id`/subscription/`subscription_id`/rg/`
3250
+ # resource_group_name` where there can be any number of management groups.
3251
+ # Corresponds to the JSON property `resourcePathString`
3252
+ # @return [String]
3253
+ attr_accessor :resource_path_string
3254
+
3255
+ # The parent service or product from which the resource is provided, for example,
3256
+ # GKE or SNS.
3257
+ # Corresponds to the JSON property `service`
3258
+ # @return [String]
3259
+ attr_accessor :service
3260
+
2915
3261
  # The full resource type of the resource.
2916
3262
  # Corresponds to the JSON property `type`
2917
3263
  # @return [String]
@@ -2923,13 +3269,20 @@ module Google
2923
3269
 
2924
3270
  # Update properties of this object
2925
3271
  def update!(**args)
3272
+ @aws_metadata = args[:aws_metadata] if args.key?(:aws_metadata)
3273
+ @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider)
2926
3274
  @display_name = args[:display_name] if args.key?(:display_name)
2927
3275
  @folders = args[:folders] if args.key?(:folders)
3276
+ @location = args[:location] if args.key?(:location)
2928
3277
  @name = args[:name] if args.key?(:name)
3278
+ @organization = args[:organization] if args.key?(:organization)
2929
3279
  @parent = args[:parent] if args.key?(:parent)
2930
3280
  @parent_display_name = args[:parent_display_name] if args.key?(:parent_display_name)
2931
3281
  @project = args[:project] if args.key?(:project)
2932
3282
  @project_display_name = args[:project_display_name] if args.key?(:project_display_name)
3283
+ @resource_path = args[:resource_path] if args.key?(:resource_path)
3284
+ @resource_path_string = args[:resource_path_string] if args.key?(:resource_path_string)
3285
+ @service = args[:service] if args.key?(:service)
2933
3286
  @type = args[:type] if args.key?(:type)
2934
3287
  end
2935
3288
  end
@@ -2958,6 +3311,11 @@ module Google
2958
3311
  class GoogleCloudSecuritycenterV1ResourceValueConfig
2959
3312
  include Google::Apis::Core::Hashable
2960
3313
 
3314
+ # Cloud provider this configuration applies to
3315
+ # Corresponds to the JSON property `cloudProvider`
3316
+ # @return [String]
3317
+ attr_accessor :cloud_provider
3318
+
2961
3319
  # Output only. Timestamp this resource value config was created.
2962
3320
  # Corresponds to the JSON property `createTime`
2963
3321
  # @return [String]
@@ -3026,6 +3384,7 @@ module Google
3026
3384
 
3027
3385
  # Update properties of this object
3028
3386
  def update!(**args)
3387
+ @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider)
3029
3388
  @create_time = args[:create_time] if args.key?(:create_time)
3030
3389
  @description = args[:description] if args.key?(:description)
3031
3390
  @name = args[:name] if args.key?(:name)
@@ -3655,20 +4014,43 @@ module Google
3655
4014
  end
3656
4015
  end
3657
4016
 
4017
+ # Information about [Google Cloud Armor Adaptive Protection](https://cloud.
4018
+ # google.com/armor/docs/cloud-armor-overview#google-cloud-armor-adaptive-
4019
+ # protection).
4020
+ class GoogleCloudSecuritycenterV2AdaptiveProtection
4021
+ include Google::Apis::Core::Hashable
4022
+
4023
+ # A score of 0 means that there is low confidence that the detected event is an
4024
+ # actual attack. A score of 1 means that there is high confidence that the
4025
+ # detected event is an attack. See the [Adaptive Protection documentation](https:
4026
+ # //cloud.google.com/armor/docs/adaptive-protection-overview#configure-alert-
4027
+ # tuning) for further explanation.
4028
+ # Corresponds to the JSON property `confidence`
4029
+ # @return [Float]
4030
+ attr_accessor :confidence
4031
+
4032
+ def initialize(**args)
4033
+ update!(**args)
4034
+ end
4035
+
4036
+ # Update properties of this object
4037
+ def update!(**args)
4038
+ @confidence = args[:confidence] if args.key?(:confidence)
4039
+ end
4040
+ end
4041
+
3658
4042
  # Represents an application associated with a finding.
3659
4043
  class GoogleCloudSecuritycenterV2Application
3660
4044
  include Google::Apis::Core::Hashable
3661
4045
 
3662
4046
  # The base URI that identifies the network location of the application in which
3663
- # the vulnerability was detected. Examples: http://11.22.33.44, http://foo.com,
3664
- # http://11.22.33.44:8080
4047
+ # the vulnerability was detected. For example, `http://example.com`.
3665
4048
  # Corresponds to the JSON property `baseUri`
3666
4049
  # @return [String]
3667
4050
  attr_accessor :base_uri
3668
4051
 
3669
4052
  # The full URI with payload that could be used to reproduce the vulnerability.
3670
- # Example: http://11.22.33.44/reflected/parameter/attribute/singlequoted/js?p=
3671
- # aMmYgI6H
4053
+ # For example, `http://example.com?p=aMmYgI6H`.
3672
4054
  # Corresponds to the JSON property `fullUri`
3673
4055
  # @return [String]
3674
4056
  attr_accessor :full_uri
@@ -3684,6 +4066,37 @@ module Google
3684
4066
  end
3685
4067
  end
3686
4068
 
4069
+ # Information about DDoS attack volume and classification.
4070
+ class GoogleCloudSecuritycenterV2Attack
4071
+ include Google::Apis::Core::Hashable
4072
+
4073
+ # Type of attack, for example, ‘SYN-flood’, ‘NTP-udp’, or ‘CHARGEN-udp’.
4074
+ # Corresponds to the JSON property `classification`
4075
+ # @return [String]
4076
+ attr_accessor :classification
4077
+
4078
+ # Total BPS (bytes per second) volume of attack.
4079
+ # Corresponds to the JSON property `volumeBps`
4080
+ # @return [Fixnum]
4081
+ attr_accessor :volume_bps
4082
+
4083
+ # Total PPS (packets per second) volume of attack.
4084
+ # Corresponds to the JSON property `volumePps`
4085
+ # @return [Fixnum]
4086
+ attr_accessor :volume_pps
4087
+
4088
+ def initialize(**args)
4089
+ update!(**args)
4090
+ end
4091
+
4092
+ # Update properties of this object
4093
+ def update!(**args)
4094
+ @classification = args[:classification] if args.key?(:classification)
4095
+ @volume_bps = args[:volume_bps] if args.key?(:volume_bps)
4096
+ @volume_pps = args[:volume_pps] if args.key?(:volume_pps)
4097
+ end
4098
+ end
4099
+
3687
4100
  # An attack exposure contains the results of an attack path simulation run.
3688
4101
  class GoogleCloudSecuritycenterV2AttackExposure
3689
4102
  include Google::Apis::Core::Hashable
@@ -3747,19 +4160,133 @@ module Google
3747
4160
  end
3748
4161
  end
3749
4162
 
4163
+ # An AWS account that is a member of an organization.
4164
+ class GoogleCloudSecuritycenterV2AwsAccount
4165
+ include Google::Apis::Core::Hashable
4166
+
4167
+ # The unique identifier (ID) of the account, containing exactly 12 digits.
4168
+ # Corresponds to the JSON property `id`
4169
+ # @return [String]
4170
+ attr_accessor :id
4171
+
4172
+ # The friendly name of this account.
4173
+ # Corresponds to the JSON property `name`
4174
+ # @return [String]
4175
+ attr_accessor :name
4176
+
4177
+ def initialize(**args)
4178
+ update!(**args)
4179
+ end
4180
+
4181
+ # Update properties of this object
4182
+ def update!(**args)
4183
+ @id = args[:id] if args.key?(:id)
4184
+ @name = args[:name] if args.key?(:name)
4185
+ end
4186
+ end
4187
+
4188
+ # AWS metadata associated with the resource, only applicable if the finding's
4189
+ # cloud provider is Amazon Web Services.
4190
+ class GoogleCloudSecuritycenterV2AwsMetadata
4191
+ include Google::Apis::Core::Hashable
4192
+
4193
+ # An AWS account that is a member of an organization.
4194
+ # Corresponds to the JSON property `account`
4195
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2AwsAccount]
4196
+ attr_accessor :account
4197
+
4198
+ # An organization is a collection of accounts that are centrally managed
4199
+ # together using consolidated billing, organized hierarchically with
4200
+ # organizational units (OUs), and controlled with policies.
4201
+ # Corresponds to the JSON property `organization`
4202
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2AwsOrganization]
4203
+ attr_accessor :organization
4204
+
4205
+ # A list of AWS organizational units associated with the resource, ordered from
4206
+ # lowest level (closest to the account) to highest level.
4207
+ # Corresponds to the JSON property `organizationalUnits`
4208
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2AwsOrganizationalUnit>]
4209
+ attr_accessor :organizational_units
4210
+
4211
+ def initialize(**args)
4212
+ update!(**args)
4213
+ end
4214
+
4215
+ # Update properties of this object
4216
+ def update!(**args)
4217
+ @account = args[:account] if args.key?(:account)
4218
+ @organization = args[:organization] if args.key?(:organization)
4219
+ @organizational_units = args[:organizational_units] if args.key?(:organizational_units)
4220
+ end
4221
+ end
4222
+
4223
+ # An organization is a collection of accounts that are centrally managed
4224
+ # together using consolidated billing, organized hierarchically with
4225
+ # organizational units (OUs), and controlled with policies.
4226
+ class GoogleCloudSecuritycenterV2AwsOrganization
4227
+ include Google::Apis::Core::Hashable
4228
+
4229
+ # The unique identifier (ID) for the organization. The regex pattern for an
4230
+ # organization ID string requires "o-" followed by from 10 to 32 lowercase
4231
+ # letters or digits.
4232
+ # Corresponds to the JSON property `id`
4233
+ # @return [String]
4234
+ attr_accessor :id
4235
+
4236
+ def initialize(**args)
4237
+ update!(**args)
4238
+ end
4239
+
4240
+ # Update properties of this object
4241
+ def update!(**args)
4242
+ @id = args[:id] if args.key?(:id)
4243
+ end
4244
+ end
4245
+
4246
+ # An Organizational Unit (OU) is a container of AWS accounts within a root of an
4247
+ # organization. Policies that are attached to an OU apply to all accounts
4248
+ # contained in that OU and in any child OUs.
4249
+ class GoogleCloudSecuritycenterV2AwsOrganizationalUnit
4250
+ include Google::Apis::Core::Hashable
4251
+
4252
+ # The unique identifier (ID) associated with this OU. The regex pattern for an
4253
+ # organizational unit ID string requires "ou-" followed by from 4 to 32
4254
+ # lowercase letters or digits (the ID of the root that contains the OU). This
4255
+ # string is followed by a second "-" dash and from 8 to 32 additional lowercase
4256
+ # letters or digits. For example, "ou-ab12-cd34ef56".
4257
+ # Corresponds to the JSON property `id`
4258
+ # @return [String]
4259
+ attr_accessor :id
4260
+
4261
+ # The friendly name of the OU.
4262
+ # Corresponds to the JSON property `name`
4263
+ # @return [String]
4264
+ attr_accessor :name
4265
+
4266
+ def initialize(**args)
4267
+ update!(**args)
4268
+ end
4269
+
4270
+ # Update properties of this object
4271
+ def update!(**args)
4272
+ @id = args[:id] if args.key?(:id)
4273
+ @name = args[:name] if args.key?(:name)
4274
+ end
4275
+ end
4276
+
3750
4277
  # Information related to Google Cloud Backup and DR Service findings.
3751
4278
  class GoogleCloudSecuritycenterV2BackupDisasterRecovery
3752
4279
  include Google::Apis::Core::Hashable
3753
4280
 
3754
4281
  # The name of the Backup and DR appliance that captures, moves, and manages the
3755
- # lifecycle of backup data. For example, backup-server-57137”.
4282
+ # lifecycle of backup data. For example, `backup-server-57137`.
3756
4283
  # Corresponds to the JSON property `appliance`
3757
4284
  # @return [String]
3758
4285
  attr_accessor :appliance
3759
4286
 
3760
4287
  # The names of Backup and DR applications. An application is a VM, database, or
3761
4288
  # file system on a managed host monitored by a backup and recovery appliance.
3762
- # For example, centos7-01-vol00”, centos7-01-vol01”, centos7-01-vol02”.
4289
+ # For example, `centos7-01-vol00`, `centos7-01-vol01`, `centos7-01-vol02`.
3763
4290
  # Corresponds to the JSON property `applications`
3764
4291
  # @return [Array<String>]
3765
4292
  attr_accessor :applications
@@ -3772,13 +4299,13 @@ module Google
3772
4299
  # The name of a Backup and DR template which comprises one or more backup
3773
4300
  # policies. See the [Backup and DR documentation](https://cloud.google.com/
3774
4301
  # backup-disaster-recovery/docs/concepts/backup-plan#temp) for more information.
3775
- # For example, snap-ov”.
4302
+ # For example, `snap-ov`.
3776
4303
  # Corresponds to the JSON property `backupTemplate`
3777
4304
  # @return [String]
3778
4305
  attr_accessor :backup_template
3779
4306
 
3780
- # The backup type of the Backup and DR image. For example, Snapshot”, Remote
3781
- # Snapshot”, OnVault”.
4307
+ # The backup type of the Backup and DR image. For example, `Snapshot`, `Remote
4308
+ # Snapshot`, `OnVault`.
3782
4309
  # Corresponds to the JSON property `backupType`
3783
4310
  # @return [String]
3784
4311
  attr_accessor :backup_type
@@ -3788,14 +4315,14 @@ module Google
3788
4315
  # (for example, Compute Engine, SQL Server, Oracle DB, SMB file system, etc.),
3789
4316
  # vCenter, or an ESX server. See the [Backup and DR documentation on hosts](
3790
4317
  # https://cloud.google.com/backup-disaster-recovery/docs/configuration/manage-
3791
- # hosts-and-their-applications) for more information. For example, centos7-01”.
4318
+ # hosts-and-their-applications) for more information. For example, `centos7-01`.
3792
4319
  # Corresponds to the JSON property `host`
3793
4320
  # @return [String]
3794
4321
  attr_accessor :host
3795
4322
 
3796
4323
  # The names of Backup and DR policies that are associated with a template and
3797
4324
  # that define when to run a backup, how frequently to run a backup, and how long
3798
- # to retain the backup image. For example, onvaults”.
4325
+ # to retain the backup image. For example, `onvaults`.
3799
4326
  # Corresponds to the JSON property `policies`
3800
4327
  # @return [Array<String>]
3801
4328
  attr_accessor :policies
@@ -3803,7 +4330,7 @@ module Google
3803
4330
  # The names of Backup and DR advanced policy options of a policy applying to an
3804
4331
  # application. See the [Backup and DR documentation on policy options](https://
3805
4332
  # cloud.google.com/backup-disaster-recovery/docs/create-plan/policy-settings).
3806
- # For example, skipofflineappsincongrp, nounmap”.
4333
+ # For example, `skipofflineappsincongrp, nounmap`.
3807
4334
  # Corresponds to the JSON property `policyOptions`
3808
4335
  # @return [Array<String>]
3809
4336
  attr_accessor :policy_options
@@ -3811,7 +4338,7 @@ module Google
3811
4338
  # The name of the Backup and DR resource profile that specifies the storage
3812
4339
  # media for backups of application and VM data. See the [Backup and DR
3813
4340
  # documentation on profiles](https://cloud.google.com/backup-disaster-recovery/
3814
- # docs/concepts/backup-plan#profile). For example, GCP”.
4341
+ # docs/concepts/backup-plan#profile). For example, `GCP`.
3815
4342
  # Corresponds to the JSON property `profile`
3816
4343
  # @return [String]
3817
4344
  attr_accessor :profile
@@ -3820,7 +4347,7 @@ module Google
3820
4347
  # appliance is storing data in. The storage pool could be of type Cloud, Primary,
3821
4348
  # Snapshot, or OnVault. See the [Backup and DR documentation on storage pools](
3822
4349
  # https://cloud.google.com/backup-disaster-recovery/docs/concepts/storage-pools).
3823
- # For example, DiskPoolOne”.
4350
+ # For example, `DiskPoolOne`.
3824
4351
  # Corresponds to the JSON property `storagePool`
3825
4352
  # @return [String]
3826
4353
  attr_accessor :storage_pool
@@ -3979,6 +4506,61 @@ module Google
3979
4506
  end
3980
4507
  end
3981
4508
 
4509
+ # Fields related to Google Cloud Armor findings.
4510
+ class GoogleCloudSecuritycenterV2CloudArmor
4511
+ include Google::Apis::Core::Hashable
4512
+
4513
+ # Information about [Google Cloud Armor Adaptive Protection](https://cloud.
4514
+ # google.com/armor/docs/cloud-armor-overview#google-cloud-armor-adaptive-
4515
+ # protection).
4516
+ # Corresponds to the JSON property `adaptiveProtection`
4517
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2AdaptiveProtection]
4518
+ attr_accessor :adaptive_protection
4519
+
4520
+ # Information about DDoS attack volume and classification.
4521
+ # Corresponds to the JSON property `attack`
4522
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Attack]
4523
+ attr_accessor :attack
4524
+
4525
+ # Duration of attack from the start until the current moment (updated every 5
4526
+ # minutes).
4527
+ # Corresponds to the JSON property `duration`
4528
+ # @return [String]
4529
+ attr_accessor :duration
4530
+
4531
+ # Information about the requests relevant to the finding.
4532
+ # Corresponds to the JSON property `requests`
4533
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Requests]
4534
+ attr_accessor :requests
4535
+
4536
+ # Information about the [Google Cloud Armor security policy](https://cloud.
4537
+ # google.com/armor/docs/security-policy-overview) relevant to the finding.
4538
+ # Corresponds to the JSON property `securityPolicy`
4539
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2SecurityPolicy]
4540
+ attr_accessor :security_policy
4541
+
4542
+ # Distinguish between volumetric & protocol DDoS attack and application layer
4543
+ # attacks. For example, “L3_4” for Layer 3 and Layer 4 DDoS attacks, or “L_7”
4544
+ # for Layer 7 DDoS attacks.
4545
+ # Corresponds to the JSON property `threatVector`
4546
+ # @return [String]
4547
+ attr_accessor :threat_vector
4548
+
4549
+ def initialize(**args)
4550
+ update!(**args)
4551
+ end
4552
+
4553
+ # Update properties of this object
4554
+ def update!(**args)
4555
+ @adaptive_protection = args[:adaptive_protection] if args.key?(:adaptive_protection)
4556
+ @attack = args[:attack] if args.key?(:attack)
4557
+ @duration = args[:duration] if args.key?(:duration)
4558
+ @requests = args[:requests] if args.key?(:requests)
4559
+ @security_policy = args[:security_policy] if args.key?(:security_policy)
4560
+ @threat_vector = args[:threat_vector] if args.key?(:threat_vector)
4561
+ end
4562
+ end
4563
+
3982
4564
  # The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated
3983
4565
  # with the finding.
3984
4566
  class GoogleCloudSecuritycenterV2CloudDlpDataProfile
@@ -4609,6 +5191,16 @@ module Google
4609
5191
  # @return [Array<String>]
4610
5192
  attr_accessor :assignees
4611
5193
 
5194
+ # The time when the case was closed, as reported by the external system.
5195
+ # Corresponds to the JSON property `caseCloseTime`
5196
+ # @return [String]
5197
+ attr_accessor :case_close_time
5198
+
5199
+ # The time when the case was created, as reported by the external system.
5200
+ # Corresponds to the JSON property `caseCreateTime`
5201
+ # @return [String]
5202
+ attr_accessor :case_create_time
5203
+
4612
5204
  # The priority of the finding's corresponding case in the external system.
4613
5205
  # Corresponds to the JSON property `casePriority`
4614
5206
  # @return [String]
@@ -4666,6 +5258,8 @@ module Google
4666
5258
  # Update properties of this object
4667
5259
  def update!(**args)
4668
5260
  @assignees = args[:assignees] if args.key?(:assignees)
5261
+ @case_close_time = args[:case_close_time] if args.key?(:case_close_time)
5262
+ @case_create_time = args[:case_create_time] if args.key?(:case_create_time)
4669
5263
  @case_priority = args[:case_priority] if args.key?(:case_priority)
4670
5264
  @case_sla = args[:case_sla] if args.key?(:case_sla)
4671
5265
  @case_uri = args[:case_uri] if args.key?(:case_uri)
@@ -4783,6 +5377,11 @@ module Google
4783
5377
  # @return [String]
4784
5378
  attr_accessor :category
4785
5379
 
5380
+ # Fields related to Google Cloud Armor findings.
5381
+ # Corresponds to the JSON property `cloudArmor`
5382
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2CloudArmor]
5383
+ attr_accessor :cloud_armor
5384
+
4786
5385
  # The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated
4787
5386
  # with the finding.
4788
5387
  # Corresponds to the JSON property `cloudDlpDataProfile`
@@ -4969,6 +5568,13 @@ module Google
4969
5568
  # @return [String]
4970
5569
  attr_accessor :next_steps
4971
5570
 
5571
+ # Represents a Jupyter notebook IPYNB file, such as a [Colab Enterprise notebook]
5572
+ # (https://cloud.google.com/colab/docs/introduction) file, that is associated
5573
+ # with a finding.
5574
+ # Corresponds to the JSON property `notebook`
5575
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2Notebook]
5576
+ attr_accessor :notebook
5577
+
4972
5578
  # Contains information about the org policies associated with the finding.
4973
5579
  # Corresponds to the JSON property `orgPolicies`
4974
5580
  # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2OrgPolicy>]
@@ -5059,6 +5665,7 @@ module Google
5059
5665
  @backup_disaster_recovery = args[:backup_disaster_recovery] if args.key?(:backup_disaster_recovery)
5060
5666
  @canonical_name = args[:canonical_name] if args.key?(:canonical_name)
5061
5667
  @category = args[:category] if args.key?(:category)
5668
+ @cloud_armor = args[:cloud_armor] if args.key?(:cloud_armor)
5062
5669
  @cloud_dlp_data_profile = args[:cloud_dlp_data_profile] if args.key?(:cloud_dlp_data_profile)
5063
5670
  @cloud_dlp_inspection = args[:cloud_dlp_inspection] if args.key?(:cloud_dlp_inspection)
5064
5671
  @compliances = args[:compliances] if args.key?(:compliances)
@@ -5087,6 +5694,7 @@ module Google
5087
5694
  @mute_update_time = args[:mute_update_time] if args.key?(:mute_update_time)
5088
5695
  @name = args[:name] if args.key?(:name)
5089
5696
  @next_steps = args[:next_steps] if args.key?(:next_steps)
5697
+ @notebook = args[:notebook] if args.key?(:notebook)
5090
5698
  @org_policies = args[:org_policies] if args.key?(:org_policies)
5091
5699
  @parent = args[:parent] if args.key?(:parent)
5092
5700
  @parent_display_name = args[:parent_display_name] if args.key?(:parent_display_name)
@@ -5101,6 +5709,32 @@ module Google
5101
5709
  end
5102
5710
  end
5103
5711
 
5712
+ # Message that contains the resource name and display name of a folder resource.
5713
+ class GoogleCloudSecuritycenterV2Folder
5714
+ include Google::Apis::Core::Hashable
5715
+
5716
+ # Full resource name of this folder. See: https://cloud.google.com/apis/design/
5717
+ # resource_names#full_resource_name
5718
+ # Corresponds to the JSON property `resourceFolder`
5719
+ # @return [String]
5720
+ attr_accessor :resource_folder
5721
+
5722
+ # The user defined display name for this folder.
5723
+ # Corresponds to the JSON property `resourceFolderDisplayName`
5724
+ # @return [String]
5725
+ attr_accessor :resource_folder_display_name
5726
+
5727
+ def initialize(**args)
5728
+ update!(**args)
5729
+ end
5730
+
5731
+ # Update properties of this object
5732
+ def update!(**args)
5733
+ @resource_folder = args[:resource_folder] if args.key?(:resource_folder)
5734
+ @resource_folder_display_name = args[:resource_folder_display_name] if args.key?(:resource_folder_display_name)
5735
+ end
5736
+ end
5737
+
5104
5738
  # Represents a geographical location for a given access.
5105
5739
  class GoogleCloudSecuritycenterV2Geolocation
5106
5740
  include Google::Apis::Core::Hashable
@@ -5607,6 +6241,45 @@ module Google
5607
6241
  end
5608
6242
  end
5609
6243
 
6244
+ # Represents a Jupyter notebook IPYNB file, such as a [Colab Enterprise notebook]
6245
+ # (https://cloud.google.com/colab/docs/introduction) file, that is associated
6246
+ # with a finding.
6247
+ class GoogleCloudSecuritycenterV2Notebook
6248
+ include Google::Apis::Core::Hashable
6249
+
6250
+ # The user ID of the latest author to modify the notebook.
6251
+ # Corresponds to the JSON property `lastAuthor`
6252
+ # @return [String]
6253
+ attr_accessor :last_author
6254
+
6255
+ # The name of the notebook.
6256
+ # Corresponds to the JSON property `name`
6257
+ # @return [String]
6258
+ attr_accessor :name
6259
+
6260
+ # The most recent time the notebook was updated.
6261
+ # Corresponds to the JSON property `notebookUpdateTime`
6262
+ # @return [String]
6263
+ attr_accessor :notebook_update_time
6264
+
6265
+ # The source notebook service, for example, "Colab Enterprise".
6266
+ # Corresponds to the JSON property `service`
6267
+ # @return [String]
6268
+ attr_accessor :service
6269
+
6270
+ def initialize(**args)
6271
+ update!(**args)
6272
+ end
6273
+
6274
+ # Update properties of this object
6275
+ def update!(**args)
6276
+ @last_author = args[:last_author] if args.key?(:last_author)
6277
+ @name = args[:name] if args.key?(:name)
6278
+ @notebook_update_time = args[:notebook_update_time] if args.key?(:notebook_update_time)
6279
+ @service = args[:service] if args.key?(:service)
6280
+ end
6281
+ end
6282
+
5610
6283
  # Cloud SCC's Notification
5611
6284
  class GoogleCloudSecuritycenterV2NotificationMessage
5612
6285
  include Google::Apis::Core::Hashable
@@ -5789,13 +6462,13 @@ module Google
5789
6462
  include Google::Apis::Core::Hashable
5790
6463
 
5791
6464
  # The detected value that violates the deployed posture, for example, `false` or
5792
- # `allowed_values=`"projects/22831892”``.
6465
+ # `allowed_values=`"projects/22831892"``.
5793
6466
  # Corresponds to the JSON property `detectedValue`
5794
6467
  # @return [String]
5795
6468
  attr_accessor :detected_value
5796
6469
 
5797
6470
  # The value of this field that was configured in a posture, for example, `true`
5798
- # or `allowed_values=`"projects/29831892”``.
6471
+ # or `allowed_values=`"projects/29831892"``.
5799
6472
  # Corresponds to the JSON property `expectedValue`
5800
6473
  # @return [String]
5801
6474
  attr_accessor :expected_value
@@ -5953,21 +6626,105 @@ module Google
5953
6626
  end
5954
6627
  end
5955
6628
 
6629
+ # Information about the requests relevant to the finding.
6630
+ class GoogleCloudSecuritycenterV2Requests
6631
+ include Google::Apis::Core::Hashable
6632
+
6633
+ # Allowed RPS (requests per second) over the long term.
6634
+ # Corresponds to the JSON property `longTermAllowed`
6635
+ # @return [Fixnum]
6636
+ attr_accessor :long_term_allowed
6637
+
6638
+ # Denied RPS (requests per second) over the long term.
6639
+ # Corresponds to the JSON property `longTermDenied`
6640
+ # @return [Fixnum]
6641
+ attr_accessor :long_term_denied
6642
+
6643
+ # For 'Increasing deny ratio', the ratio is the denied traffic divided by the
6644
+ # allowed traffic. For 'Allowed traffic spike', the ratio is the allowed traffic
6645
+ # in the short term divided by allowed traffic in the long term.
6646
+ # Corresponds to the JSON property `ratio`
6647
+ # @return [Float]
6648
+ attr_accessor :ratio
6649
+
6650
+ # Allowed RPS (requests per second) in the short term.
6651
+ # Corresponds to the JSON property `shortTermAllowed`
6652
+ # @return [Fixnum]
6653
+ attr_accessor :short_term_allowed
6654
+
6655
+ def initialize(**args)
6656
+ update!(**args)
6657
+ end
6658
+
6659
+ # Update properties of this object
6660
+ def update!(**args)
6661
+ @long_term_allowed = args[:long_term_allowed] if args.key?(:long_term_allowed)
6662
+ @long_term_denied = args[:long_term_denied] if args.key?(:long_term_denied)
6663
+ @ratio = args[:ratio] if args.key?(:ratio)
6664
+ @short_term_allowed = args[:short_term_allowed] if args.key?(:short_term_allowed)
6665
+ end
6666
+ end
6667
+
5956
6668
  # Information related to the Google Cloud resource.
5957
6669
  class GoogleCloudSecuritycenterV2Resource
5958
6670
  include Google::Apis::Core::Hashable
5959
6671
 
6672
+ # AWS metadata associated with the resource, only applicable if the finding's
6673
+ # cloud provider is Amazon Web Services.
6674
+ # Corresponds to the JSON property `awsMetadata`
6675
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2AwsMetadata]
6676
+ attr_accessor :aws_metadata
6677
+
6678
+ # Indicates which cloud provider the finding is from.
6679
+ # Corresponds to the JSON property `cloudProvider`
6680
+ # @return [String]
6681
+ attr_accessor :cloud_provider
6682
+
5960
6683
  # The human readable name of the resource.
5961
6684
  # Corresponds to the JSON property `displayName`
5962
6685
  # @return [String]
5963
6686
  attr_accessor :display_name
5964
6687
 
6688
+ # GCP metadata associated with the resource, only applicable if the finding's
6689
+ # cloud provider is Google Cloud Platform.
6690
+ # Corresponds to the JSON property `gcpMetadata`
6691
+ # @return [Google::Apis::SecuritycenterV1::GcpMetadata]
6692
+ attr_accessor :gcp_metadata
6693
+
6694
+ # The region or location of the service (if applicable).
6695
+ # Corresponds to the JSON property `location`
6696
+ # @return [String]
6697
+ attr_accessor :location
6698
+
5965
6699
  # The full resource name of the resource. See: https://cloud.google.com/apis/
5966
6700
  # design/resource_names#full_resource_name
5967
6701
  # Corresponds to the JSON property `name`
5968
6702
  # @return [String]
5969
6703
  attr_accessor :name
5970
6704
 
6705
+ # Represents the path of resources leading up to the resource this finding is
6706
+ # about.
6707
+ # Corresponds to the JSON property `resourcePath`
6708
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2ResourcePath]
6709
+ attr_accessor :resource_path
6710
+
6711
+ # A string representation of the resource path. For GCP, it has the format of:
6712
+ # organizations/`organization_id`/folders/`folder_id`/folders/`folder_id`/
6713
+ # projects/`project_id` where there can be any number of folders. For AWS, it
6714
+ # has the format of: org/`organization_id`/ou/`organizational_unit_id`/ou/`
6715
+ # organizational_unit_id`/account/`account_id` where there can be any number of
6716
+ # organizational units. For Azure, it has the format of: mg/`management_group_id`
6717
+ # /mg/`management_group_id`/subscription/`subscription_id`/rg/`
6718
+ # resource_group_name` where there can be any number of management groups.
6719
+ # Corresponds to the JSON property `resourcePathString`
6720
+ # @return [String]
6721
+ attr_accessor :resource_path_string
6722
+
6723
+ # The service or resource provider associated with the resource.
6724
+ # Corresponds to the JSON property `service`
6725
+ # @return [String]
6726
+ attr_accessor :service
6727
+
5971
6728
  # The full resource type of the resource.
5972
6729
  # Corresponds to the JSON property `type`
5973
6730
  # @return [String]
@@ -5979,17 +6736,82 @@ module Google
5979
6736
 
5980
6737
  # Update properties of this object
5981
6738
  def update!(**args)
6739
+ @aws_metadata = args[:aws_metadata] if args.key?(:aws_metadata)
6740
+ @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider)
5982
6741
  @display_name = args[:display_name] if args.key?(:display_name)
6742
+ @gcp_metadata = args[:gcp_metadata] if args.key?(:gcp_metadata)
6743
+ @location = args[:location] if args.key?(:location)
5983
6744
  @name = args[:name] if args.key?(:name)
6745
+ @resource_path = args[:resource_path] if args.key?(:resource_path)
6746
+ @resource_path_string = args[:resource_path_string] if args.key?(:resource_path_string)
6747
+ @service = args[:service] if args.key?(:service)
5984
6748
  @type = args[:type] if args.key?(:type)
5985
6749
  end
5986
6750
  end
5987
6751
 
6752
+ # Represents the path of resources leading up to the resource this finding is
6753
+ # about.
6754
+ class GoogleCloudSecuritycenterV2ResourcePath
6755
+ include Google::Apis::Core::Hashable
6756
+
6757
+ # The list of nodes that make the up resource path, ordered from lowest level to
6758
+ # highest level.
6759
+ # Corresponds to the JSON property `nodes`
6760
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV2ResourcePathNode>]
6761
+ attr_accessor :nodes
6762
+
6763
+ def initialize(**args)
6764
+ update!(**args)
6765
+ end
6766
+
6767
+ # Update properties of this object
6768
+ def update!(**args)
6769
+ @nodes = args[:nodes] if args.key?(:nodes)
6770
+ end
6771
+ end
6772
+
6773
+ # A node within the resource path. Each node represents a resource within the
6774
+ # resource hierarchy.
6775
+ class GoogleCloudSecuritycenterV2ResourcePathNode
6776
+ include Google::Apis::Core::Hashable
6777
+
6778
+ # The display name of the resource this node represents.
6779
+ # Corresponds to the JSON property `displayName`
6780
+ # @return [String]
6781
+ attr_accessor :display_name
6782
+
6783
+ # The ID of the resource this node represents.
6784
+ # Corresponds to the JSON property `id`
6785
+ # @return [String]
6786
+ attr_accessor :id
6787
+
6788
+ # The type of resource this node represents.
6789
+ # Corresponds to the JSON property `nodeType`
6790
+ # @return [String]
6791
+ attr_accessor :node_type
6792
+
6793
+ def initialize(**args)
6794
+ update!(**args)
6795
+ end
6796
+
6797
+ # Update properties of this object
6798
+ def update!(**args)
6799
+ @display_name = args[:display_name] if args.key?(:display_name)
6800
+ @id = args[:id] if args.key?(:id)
6801
+ @node_type = args[:node_type] if args.key?(:node_type)
6802
+ end
6803
+ end
6804
+
5988
6805
  # A resource value config (RVC) is a mapping configuration of user's resources
5989
6806
  # to resource values. Used in Attack path simulations.
5990
6807
  class GoogleCloudSecuritycenterV2ResourceValueConfig
5991
6808
  include Google::Apis::Core::Hashable
5992
6809
 
6810
+ # Cloud provider this configuration applies to
6811
+ # Corresponds to the JSON property `cloudProvider`
6812
+ # @return [String]
6813
+ attr_accessor :cloud_provider
6814
+
5993
6815
  # Output only. Timestamp this resource value config was created.
5994
6816
  # Corresponds to the JSON property `createTime`
5995
6817
  # @return [String]
@@ -6059,6 +6881,7 @@ module Google
6059
6881
 
6060
6882
  # Update properties of this object
6061
6883
  def update!(**args)
6884
+ @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider)
6062
6885
  @create_time = args[:create_time] if args.key?(:create_time)
6063
6886
  @description = args[:description] if args.key?(:description)
6064
6887
  @name = args[:name] if args.key?(:name)
@@ -6143,17 +6966,17 @@ module Google
6143
6966
  include Google::Apis::Core::Hashable
6144
6967
 
6145
6968
  # The canonical name of the marks. The following list shows some examples: + `
6146
- # organizations/`organization_id`/assets/`asset_id`/securityMarks" + `
6969
+ # organizations/`organization_id`/assets/`asset_id`/securityMarks` + `
6147
6970
  # organizations/`organization_id`/sources/`source_id`/findings/`finding_id`/
6148
- # securityMarks" + `organizations/`organization_id`/sources/`source_id`/
6149
- # locations/`location`/findings/`finding_id`/securityMarks" + `folders/`
6150
- # folder_id`/assets/`asset_id`/securityMarks" + `folders/`folder_id`/sources/`
6151
- # source_id`/findings/`finding_id`/securityMarks" + `folders/`folder_id`/sources/
6152
- # `source_id`/locations/`location`/findings/`finding_id`/securityMarks" + `
6153
- # projects/`project_number`/assets/`asset_id`/securityMarks" + `projects/`
6154
- # project_number`/sources/`source_id`/findings/`finding_id`/securityMarks" + `
6971
+ # securityMarks` + `organizations/`organization_id`/sources/`source_id`/
6972
+ # locations/`location`/findings/`finding_id`/securityMarks` + `folders/`
6973
+ # folder_id`/assets/`asset_id`/securityMarks` + `folders/`folder_id`/sources/`
6974
+ # source_id`/findings/`finding_id`/securityMarks` + `folders/`folder_id`/sources/
6975
+ # `source_id`/locations/`location`/findings/`finding_id`/securityMarks` + `
6976
+ # projects/`project_number`/assets/`asset_id`/securityMarks` + `projects/`
6977
+ # project_number`/sources/`source_id`/findings/`finding_id`/securityMarks` + `
6155
6978
  # projects/`project_number`/sources/`source_id`/locations/`location`/findings/`
6156
- # finding_id`/securityMarks"
6979
+ # finding_id`/securityMarks`
6157
6980
  # Corresponds to the JSON property `canonicalName`
6158
6981
  # @return [String]
6159
6982
  attr_accessor :canonical_name
@@ -6189,6 +7012,42 @@ module Google
6189
7012
  end
6190
7013
  end
6191
7014
 
7015
+ # Information about the [Google Cloud Armor security policy](https://cloud.
7016
+ # google.com/armor/docs/security-policy-overview) relevant to the finding.
7017
+ class GoogleCloudSecuritycenterV2SecurityPolicy
7018
+ include Google::Apis::Core::Hashable
7019
+
7020
+ # The name of the Google Cloud Armor security policy, for example, "my-security-
7021
+ # policy".
7022
+ # Corresponds to the JSON property `name`
7023
+ # @return [String]
7024
+ attr_accessor :name
7025
+
7026
+ # Whether or not the associated rule or policy is in preview mode.
7027
+ # Corresponds to the JSON property `preview`
7028
+ # @return [Boolean]
7029
+ attr_accessor :preview
7030
+ alias_method :preview?, :preview
7031
+
7032
+ # The type of Google Cloud Armor security policy for example, ‘backend security
7033
+ # policy’, ‘edge security policy’, ‘network edge security policy’, or ‘always-on
7034
+ # DDoS protection’.
7035
+ # Corresponds to the JSON property `type`
7036
+ # @return [String]
7037
+ attr_accessor :type
7038
+
7039
+ def initialize(**args)
7040
+ update!(**args)
7041
+ end
7042
+
7043
+ # Update properties of this object
7044
+ def update!(**args)
7045
+ @name = args[:name] if args.key?(:name)
7046
+ @preview = args[:preview] if args.key?(:preview)
7047
+ @type = args[:type] if args.key?(:type)
7048
+ end
7049
+ end
7050
+
6192
7051
  # Represents a posture that is deployed on Google Cloud by the Security Command
6193
7052
  # Center Posture Management service. A posture contains one or more policy sets.
6194
7053
  # A policy set is a group of policies that enforce a set of security rules on
@@ -7716,6 +8575,45 @@ module Google
7716
8575
  end
7717
8576
  end
7718
8577
 
8578
+ # Represents a Jupyter notebook IPYNB file, such as a [Colab Enterprise notebook]
8579
+ # (https://cloud.google.com/colab/docs/introduction) file, that is associated
8580
+ # with a finding.
8581
+ class Notebook
8582
+ include Google::Apis::Core::Hashable
8583
+
8584
+ # The user ID of the latest author to modify the notebook.
8585
+ # Corresponds to the JSON property `lastAuthor`
8586
+ # @return [String]
8587
+ attr_accessor :last_author
8588
+
8589
+ # The name of the notebook.
8590
+ # Corresponds to the JSON property `name`
8591
+ # @return [String]
8592
+ attr_accessor :name
8593
+
8594
+ # The most recent time the notebook was updated.
8595
+ # Corresponds to the JSON property `notebookUpdateTime`
8596
+ # @return [String]
8597
+ attr_accessor :notebook_update_time
8598
+
8599
+ # The source notebook service, for example, "Colab Enterprise".
8600
+ # Corresponds to the JSON property `service`
8601
+ # @return [String]
8602
+ attr_accessor :service
8603
+
8604
+ def initialize(**args)
8605
+ update!(**args)
8606
+ end
8607
+
8608
+ # Update properties of this object
8609
+ def update!(**args)
8610
+ @last_author = args[:last_author] if args.key?(:last_author)
8611
+ @name = args[:name] if args.key?(:name)
8612
+ @notebook_update_time = args[:notebook_update_time] if args.key?(:notebook_update_time)
8613
+ @service = args[:service] if args.key?(:service)
8614
+ end
8615
+ end
8616
+
7719
8617
  # Cloud Security Command Center (Cloud SCC) notification configs. A notification
7720
8618
  # config is a Cloud SCC resource that contains the configuration to send
7721
8619
  # notifications for create/update events of findings, assets and etc.
@@ -8135,19 +9033,19 @@ module Google
8135
9033
  end
8136
9034
  end
8137
9035
 
8138
- # The policy field that violates the deployed posture and its expected and and
9036
+ # The policy field that violates the deployed posture and its expected and
8139
9037
  # detected values.
8140
9038
  class PolicyDriftDetails
8141
9039
  include Google::Apis::Core::Hashable
8142
9040
 
8143
9041
  # The detected value that violates the deployed posture, for example, `false` or
8144
- # `allowed_values=`"projects/22831892”``.
9042
+ # `allowed_values=`"projects/22831892"``.
8145
9043
  # Corresponds to the JSON property `detectedValue`
8146
9044
  # @return [String]
8147
9045
  attr_accessor :detected_value
8148
9046
 
8149
9047
  # The value of this field that was configured in a posture, for example, `true`
8150
- # or `allowed_values=`"projects/29831892”``.
9048
+ # or `allowed_values=`"projects/29831892"``.
8151
9049
  # Corresponds to the JSON property `expectedValue`
8152
9050
  # @return [String]
8153
9051
  attr_accessor :expected_value
@@ -8330,11 +9228,61 @@ module Google
8330
9228
  end
8331
9229
  end
8332
9230
 
9231
+ # Information about the requests relevant to the finding.
9232
+ class Requests
9233
+ include Google::Apis::Core::Hashable
9234
+
9235
+ # Allowed RPS (requests per second) over the long term.
9236
+ # Corresponds to the JSON property `longTermAllowed`
9237
+ # @return [Fixnum]
9238
+ attr_accessor :long_term_allowed
9239
+
9240
+ # Denied RPS (requests per second) over the long term.
9241
+ # Corresponds to the JSON property `longTermDenied`
9242
+ # @return [Fixnum]
9243
+ attr_accessor :long_term_denied
9244
+
9245
+ # For 'Increasing deny ratio', the ratio is the denied traffic divided by the
9246
+ # allowed traffic. For 'Allowed traffic spike', the ratio is the allowed traffic
9247
+ # in the short term divided by allowed traffic in the long term.
9248
+ # Corresponds to the JSON property `ratio`
9249
+ # @return [Float]
9250
+ attr_accessor :ratio
9251
+
9252
+ # Allowed RPS (requests per second) in the short term.
9253
+ # Corresponds to the JSON property `shortTermAllowed`
9254
+ # @return [Fixnum]
9255
+ attr_accessor :short_term_allowed
9256
+
9257
+ def initialize(**args)
9258
+ update!(**args)
9259
+ end
9260
+
9261
+ # Update properties of this object
9262
+ def update!(**args)
9263
+ @long_term_allowed = args[:long_term_allowed] if args.key?(:long_term_allowed)
9264
+ @long_term_denied = args[:long_term_denied] if args.key?(:long_term_denied)
9265
+ @ratio = args[:ratio] if args.key?(:ratio)
9266
+ @short_term_allowed = args[:short_term_allowed] if args.key?(:short_term_allowed)
9267
+ end
9268
+ end
9269
+
8333
9270
  # Information related to the Google Cloud resource that is associated with this
8334
9271
  # finding.
8335
9272
  class Resource
8336
9273
  include Google::Apis::Core::Hashable
8337
9274
 
9275
+ # AWS metadata associated with the resource, only applicable if the finding's
9276
+ # cloud provider is Amazon Web Services.
9277
+ # Corresponds to the JSON property `awsMetadata`
9278
+ # @return [Google::Apis::SecuritycenterV1::AwsMetadata]
9279
+ attr_accessor :aws_metadata
9280
+
9281
+ # Indicates which cloud provider the finding is from.
9282
+ # Corresponds to the JSON property `cloudProvider`
9283
+ # @return [String]
9284
+ attr_accessor :cloud_provider
9285
+
8338
9286
  # The human readable name of the resource.
8339
9287
  # Corresponds to the JSON property `displayName`
8340
9288
  # @return [String]
@@ -8347,12 +9295,22 @@ module Google
8347
9295
  # @return [Array<Google::Apis::SecuritycenterV1::Folder>]
8348
9296
  attr_accessor :folders
8349
9297
 
9298
+ # The region or location of the service (if applicable).
9299
+ # Corresponds to the JSON property `location`
9300
+ # @return [String]
9301
+ attr_accessor :location
9302
+
8350
9303
  # The full resource name of the resource. See: https://cloud.google.com/apis/
8351
9304
  # design/resource_names#full_resource_name
8352
9305
  # Corresponds to the JSON property `name`
8353
9306
  # @return [String]
8354
9307
  attr_accessor :name
8355
9308
 
9309
+ # Indicates which organization / tenant the finding is for.
9310
+ # Corresponds to the JSON property `organization`
9311
+ # @return [String]
9312
+ attr_accessor :organization
9313
+
8356
9314
  # The human readable name of resource's parent.
8357
9315
  # Corresponds to the JSON property `parentDisplayName`
8358
9316
  # @return [String]
@@ -8373,6 +9331,29 @@ module Google
8373
9331
  # @return [String]
8374
9332
  attr_accessor :project_name
8375
9333
 
9334
+ # Represents the path of resources leading up to the resource this finding is
9335
+ # about.
9336
+ # Corresponds to the JSON property `resourcePath`
9337
+ # @return [Google::Apis::SecuritycenterV1::ResourcePath]
9338
+ attr_accessor :resource_path
9339
+
9340
+ # A string representation of the resource path. For GCP, it has the format of:
9341
+ # org/`organization_id`/folder/`folder_id`/folder/`folder_id`/project/`
9342
+ # project_id` where there can be any number of folders. For AWS, it has the
9343
+ # format of: org/`organization_id`/ou/`organizational_unit_id`/ou/`
9344
+ # organizational_unit_id`/account/`account_id` where there can be any number of
9345
+ # organizational units. For Azure, it has the format of: mg/`management_group_id`
9346
+ # /mg/`management_group_id`/subscription/`subscription_id`/rg/`
9347
+ # resource_group_name` where there can be any number of management groups.
9348
+ # Corresponds to the JSON property `resourcePathString`
9349
+ # @return [String]
9350
+ attr_accessor :resource_path_string
9351
+
9352
+ # The service or resource provider associated with the resource.
9353
+ # Corresponds to the JSON property `service`
9354
+ # @return [String]
9355
+ attr_accessor :service
9356
+
8376
9357
  # The full resource type of the resource.
8377
9358
  # Corresponds to the JSON property `type`
8378
9359
  # @return [String]
@@ -8384,17 +9365,77 @@ module Google
8384
9365
 
8385
9366
  # Update properties of this object
8386
9367
  def update!(**args)
9368
+ @aws_metadata = args[:aws_metadata] if args.key?(:aws_metadata)
9369
+ @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider)
8387
9370
  @display_name = args[:display_name] if args.key?(:display_name)
8388
9371
  @folders = args[:folders] if args.key?(:folders)
9372
+ @location = args[:location] if args.key?(:location)
8389
9373
  @name = args[:name] if args.key?(:name)
9374
+ @organization = args[:organization] if args.key?(:organization)
8390
9375
  @parent_display_name = args[:parent_display_name] if args.key?(:parent_display_name)
8391
9376
  @parent_name = args[:parent_name] if args.key?(:parent_name)
8392
9377
  @project_display_name = args[:project_display_name] if args.key?(:project_display_name)
8393
9378
  @project_name = args[:project_name] if args.key?(:project_name)
9379
+ @resource_path = args[:resource_path] if args.key?(:resource_path)
9380
+ @resource_path_string = args[:resource_path_string] if args.key?(:resource_path_string)
9381
+ @service = args[:service] if args.key?(:service)
8394
9382
  @type = args[:type] if args.key?(:type)
8395
9383
  end
8396
9384
  end
8397
9385
 
9386
+ # Represents the path of resources leading up to the resource this finding is
9387
+ # about.
9388
+ class ResourcePath
9389
+ include Google::Apis::Core::Hashable
9390
+
9391
+ # The list of nodes that make the up resource path, ordered from lowest level to
9392
+ # highest level.
9393
+ # Corresponds to the JSON property `nodes`
9394
+ # @return [Array<Google::Apis::SecuritycenterV1::ResourcePathNode>]
9395
+ attr_accessor :nodes
9396
+
9397
+ def initialize(**args)
9398
+ update!(**args)
9399
+ end
9400
+
9401
+ # Update properties of this object
9402
+ def update!(**args)
9403
+ @nodes = args[:nodes] if args.key?(:nodes)
9404
+ end
9405
+ end
9406
+
9407
+ # A node within the resource path. Each node represents a resource within the
9408
+ # resource hierarchy.
9409
+ class ResourcePathNode
9410
+ include Google::Apis::Core::Hashable
9411
+
9412
+ # The display name of the resource this node represents.
9413
+ # Corresponds to the JSON property `displayName`
9414
+ # @return [String]
9415
+ attr_accessor :display_name
9416
+
9417
+ # The ID of the resource this node represents.
9418
+ # Corresponds to the JSON property `id`
9419
+ # @return [String]
9420
+ attr_accessor :id
9421
+
9422
+ # The type of resource this node represents.
9423
+ # Corresponds to the JSON property `nodeType`
9424
+ # @return [String]
9425
+ attr_accessor :node_type
9426
+
9427
+ def initialize(**args)
9428
+ update!(**args)
9429
+ end
9430
+
9431
+ # Update properties of this object
9432
+ def update!(**args)
9433
+ @display_name = args[:display_name] if args.key?(:display_name)
9434
+ @id = args[:id] if args.key?(:id)
9435
+ @node_type = args[:node_type] if args.key?(:node_type)
9436
+ end
9437
+ end
9438
+
8398
9439
  # Metadata about a ResourceValueConfig. For example, id and name.
8399
9440
  class ResourceValueConfigMetadata
8400
9441
  include Google::Apis::Core::Hashable
@@ -8613,6 +9654,42 @@ module Google
8613
9654
  end
8614
9655
  end
8615
9656
 
9657
+ # Information about the [Google Cloud Armor security policy](https://cloud.
9658
+ # google.com/armor/docs/security-policy-overview) relevant to the finding.
9659
+ class SecurityPolicy
9660
+ include Google::Apis::Core::Hashable
9661
+
9662
+ # The name of the Google Cloud Armor security policy, for example, "my-security-
9663
+ # policy".
9664
+ # Corresponds to the JSON property `name`
9665
+ # @return [String]
9666
+ attr_accessor :name
9667
+
9668
+ # Whether or not the associated rule or policy is in preview mode.
9669
+ # Corresponds to the JSON property `preview`
9670
+ # @return [Boolean]
9671
+ attr_accessor :preview
9672
+ alias_method :preview?, :preview
9673
+
9674
+ # The type of Google Cloud Armor security policy for example, ‘backend security
9675
+ # policy’, ‘edge security policy’, ‘network edge security policy’, or ‘always-on
9676
+ # DDoS protection’.
9677
+ # Corresponds to the JSON property `type`
9678
+ # @return [String]
9679
+ attr_accessor :type
9680
+
9681
+ def initialize(**args)
9682
+ update!(**args)
9683
+ end
9684
+
9685
+ # Update properties of this object
9686
+ def update!(**args)
9687
+ @name = args[:name] if args.key?(:name)
9688
+ @preview = args[:preview] if args.key?(:preview)
9689
+ @type = args[:type] if args.key?(:type)
9690
+ end
9691
+ end
9692
+
8616
9693
  # Represents a posture that is deployed on Google Cloud by the Security Command
8617
9694
  # Center Posture Management service. A posture contains one or more policy sets.
8618
9695
  # A policy set is a group of policies that enforce a set of security rules on
@@ -8966,6 +10043,11 @@ module Google
8966
10043
  class Simulation
8967
10044
  include Google::Apis::Core::Hashable
8968
10045
 
10046
+ # Indicates which cloud provider was used in this simulation.
10047
+ # Corresponds to the JSON property `cloudProvider`
10048
+ # @return [String]
10049
+ attr_accessor :cloud_provider
10050
+
8969
10051
  # Output only. Time simulation was created
8970
10052
  # Corresponds to the JSON property `createTime`
8971
10053
  # @return [String]
@@ -8988,6 +10070,7 @@ module Google
8988
10070
 
8989
10071
  # Update properties of this object
8990
10072
  def update!(**args)
10073
+ @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider)
8991
10074
  @create_time = args[:create_time] if args.key?(:create_time)
8992
10075
  @name = args[:name] if args.key?(:name)
8993
10076
  @resource_value_configs_metadata = args[:resource_value_configs_metadata] if args.key?(:resource_value_configs_metadata)
@@ -9379,6 +10462,63 @@ module Google
9379
10462
  end
9380
10463
  end
9381
10464
 
10465
+ # Vulnerability count by severity.
10466
+ class VulnerabilityCountBySeverity
10467
+ include Google::Apis::Core::Hashable
10468
+
10469
+ # Key is the Severity enum.
10470
+ # Corresponds to the JSON property `severityToFindingCount`
10471
+ # @return [Hash<String,Fixnum>]
10472
+ attr_accessor :severity_to_finding_count
10473
+
10474
+ def initialize(**args)
10475
+ update!(**args)
10476
+ end
10477
+
10478
+ # Update properties of this object
10479
+ def update!(**args)
10480
+ @severity_to_finding_count = args[:severity_to_finding_count] if args.key?(:severity_to_finding_count)
10481
+ end
10482
+ end
10483
+
10484
+ # Result containing the properties and count of a VulnerabilitySnapshot request.
10485
+ class VulnerabilitySnapshot
10486
+ include Google::Apis::Core::Hashable
10487
+
10488
+ # The cloud provider for the vulnerability snapshot.
10489
+ # Corresponds to the JSON property `cloudProvider`
10490
+ # @return [String]
10491
+ attr_accessor :cloud_provider
10492
+
10493
+ # Vulnerability count by severity.
10494
+ # Corresponds to the JSON property `findingCount`
10495
+ # @return [Google::Apis::SecuritycenterV1::VulnerabilityCountBySeverity]
10496
+ attr_accessor :finding_count
10497
+
10498
+ # Identifier. The vulnerability snapshot name. Format: //locations//
10499
+ # vulnerabilitySnapshots/
10500
+ # Corresponds to the JSON property `name`
10501
+ # @return [String]
10502
+ attr_accessor :name
10503
+
10504
+ # The time that the snapshot was taken.
10505
+ # Corresponds to the JSON property `snapshotTime`
10506
+ # @return [String]
10507
+ attr_accessor :snapshot_time
10508
+
10509
+ def initialize(**args)
10510
+ update!(**args)
10511
+ end
10512
+
10513
+ # Update properties of this object
10514
+ def update!(**args)
10515
+ @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider)
10516
+ @finding_count = args[:finding_count] if args.key?(:finding_count)
10517
+ @name = args[:name] if args.key?(:name)
10518
+ @snapshot_time = args[:snapshot_time] if args.key?(:snapshot_time)
10519
+ end
10520
+ end
10521
+
9382
10522
  # A signature corresponding to a YARA rule.
9383
10523
  class YaraRuleSignature
9384
10524
  include Google::Apis::Core::Hashable