google-apis-securitycenter_v1 0.77.0 → 0.79.0

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