lib/google/apis/securitycenter_v1beta2/classes.rb in google-apis-securitycenter_v1beta2-0.68.0 vs lib/google/apis/securitycenter_v1beta2/classes.rb in google-apis-securitycenter_v1beta2-0.70.0

- old
+ new

@@ -444,10 +444,114 @@ @id = args[:id] if args.key?(:id) @name = args[:name] if args.key?(:name) end end + # Represents an Azure management group. + class AzureManagementGroup + include Google::Apis::Core::Hashable + + # The display name of the Azure management group. + # Corresponds to the JSON property `displayName` + # @return [String] + attr_accessor :display_name + + # The UUID of the Azure management group, for example, "20000000-0001-0000-0000- + # 000000000000". + # Corresponds to the JSON property `id` + # @return [String] + attr_accessor :id + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @display_name = args[:display_name] if args.key?(:display_name) + @id = args[:id] if args.key?(:id) + end + end + + # Azure metadata associated with the resource, only applicable if the finding's + # cloud provider is Microsoft Azure. + class AzureMetadata + include Google::Apis::Core::Hashable + + # A list of Azure management groups associated with the resource, ordered from + # lowest level (closest to the subscription) to highest level. + # Corresponds to the JSON property `managementGroups` + # @return [Array<Google::Apis::SecuritycenterV1beta2::AzureManagementGroup>] + attr_accessor :management_groups + + # Represents an Azure resource group. + # Corresponds to the JSON property `resourceGroup` + # @return [Google::Apis::SecuritycenterV1beta2::AzureResourceGroup] + attr_accessor :resource_group + + # Represents an Azure subscription. + # Corresponds to the JSON property `subscription` + # @return [Google::Apis::SecuritycenterV1beta2::AzureSubscription] + attr_accessor :subscription + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @management_groups = args[:management_groups] if args.key?(:management_groups) + @resource_group = args[:resource_group] if args.key?(:resource_group) + @subscription = args[:subscription] if args.key?(:subscription) + end + end + + # Represents an Azure resource group. + class AzureResourceGroup + include Google::Apis::Core::Hashable + + # The name of the Azure resource group. This is not a UUID. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + end + end + + # Represents an Azure subscription. + class AzureSubscription + include Google::Apis::Core::Hashable + + # The display name of the Azure subscription. + # Corresponds to the JSON property `displayName` + # @return [String] + attr_accessor :display_name + + # The UUID of the Azure subscription, for example, "291bba3f-e0a5-47bc-a099- + # 3bdcb2a50a05". + # Corresponds to the JSON property `id` + # @return [String] + attr_accessor :id + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @display_name = args[:display_name] if args.key?(:display_name) + @id = args[:id] if args.key?(:id) + end + end + # Information related to Google Cloud Backup and DR Service findings. class BackupDisasterRecovery include Google::Apis::Core::Hashable # The name of the Backup and DR appliance that captures, moves, and manages the @@ -1692,10 +1796,17 @@ # The class of the finding. # Corresponds to the JSON property `findingClass` # @return [String] attr_accessor :finding_class + # Contains details about groups of which this finding is a member. A group is a + # collection of findings that are related in some way. This field cannot be + # updated. Its value is ignored in all update requests. + # Corresponds to the JSON property `groupMemberships` + # @return [Array<Google::Apis::SecuritycenterV1beta2::GroupMembership>] + attr_accessor :group_memberships + # Represents IAM bindings associated with the finding. # Corresponds to the JSON property `iamBindings` # @return [Array<Google::Apis::SecuritycenterV1beta2::IamBinding>] attr_accessor :iam_bindings @@ -1846,10 +1957,17 @@ # The state of the finding. # Corresponds to the JSON property `state` # @return [String] attr_accessor :state + # Contains details about a group of security issues that, when the issues occur + # together, represent a greater risk than when the issues occur independently. A + # group of such issues is referred to as a toxic combination. + # Corresponds to the JSON property `toxicCombination` + # @return [Google::Apis::SecuritycenterV1beta2::ToxicCombination] + attr_accessor :toxic_combination + # Refers to common vulnerability fields e.g. cve, cvss, cwe etc. # Corresponds to the JSON property `vulnerability` # @return [Google::Apis::SecuritycenterV1beta2::Vulnerability] attr_accessor :vulnerability @@ -1879,10 +1997,11 @@ @exfiltration = args[:exfiltration] if args.key?(:exfiltration) @external_systems = args[:external_systems] if args.key?(:external_systems) @external_uri = args[:external_uri] if args.key?(:external_uri) @files = args[:files] if args.key?(:files) @finding_class = args[:finding_class] if args.key?(:finding_class) + @group_memberships = args[:group_memberships] if args.key?(:group_memberships) @iam_bindings = args[:iam_bindings] if args.key?(:iam_bindings) @indicator = args[:indicator] if args.key?(:indicator) @kernel_rootkit = args[:kernel_rootkit] if args.key?(:kernel_rootkit) @kubernetes = args[:kubernetes] if args.key?(:kubernetes) @load_balancers = args[:load_balancers] if args.key?(:load_balancers) @@ -1903,10 +2022,11 @@ @security_marks = args[:security_marks] if args.key?(:security_marks) @security_posture = args[:security_posture] if args.key?(:security_posture) @severity = args[:severity] if args.key?(:severity) @source_properties = args[:source_properties] if args.key?(:source_properties) @state = args[:state] if args.key?(:state) + @toxic_combination = args[:toxic_combination] if args.key?(:toxic_combination) @vulnerability = args[:vulnerability] if args.key?(:vulnerability) end end # Message that contains the resource name and display name of a folder resource. @@ -2532,10 +2652,16 @@ # cloud provider is Amazon Web Services. # Corresponds to the JSON property `awsMetadata` # @return [Google::Apis::SecuritycenterV1beta2::AwsMetadata] attr_accessor :aws_metadata + # Azure metadata associated with the resource, only applicable if the finding's + # cloud provider is Microsoft Azure. + # Corresponds to the JSON property `azureMetadata` + # @return [Google::Apis::SecuritycenterV1beta2::AzureMetadata] + attr_accessor :azure_metadata + # Indicates which cloud provider the resource resides in. # Corresponds to the JSON property `cloudProvider` # @return [String] attr_accessor :cloud_provider @@ -2622,10 +2748,11 @@ end # Update properties of this object def update!(**args) @aws_metadata = args[:aws_metadata] if args.key?(:aws_metadata) + @azure_metadata = args[:azure_metadata] if args.key?(:azure_metadata) @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider) @display_name = args[:display_name] if args.key?(:display_name) @folders = args[:folders] if args.key?(:folders) @location = args[:location] if args.key?(:location) @name = args[:name] if args.key?(:name) @@ -2658,59 +2785,59 @@ def update!(**args) @resource_types = args[:resource_types] if args.key?(:resource_types) end end - # A resource value config (RVC) is a mapping configuration of user's resources - # to resource values. Used in Attack path simulations. + # A resource value configuration (RVC) is a mapping configuration of user's + # resources to resource values. Used in Attack path simulations. class GoogleCloudSecuritycenterV1ResourceValueConfig include Google::Apis::Core::Hashable # Cloud provider this configuration applies to # Corresponds to the JSON property `cloudProvider` # @return [String] attr_accessor :cloud_provider - # Output only. Timestamp this resource value config was created. + # Output only. Timestamp this resource value configuration was created. # Corresponds to the JSON property `createTime` # @return [String] attr_accessor :create_time - # Description of the resource value config. + # Description of the resource value configuration. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description - # Name for the resource value config + # Name for the resource value configuration # Corresponds to the JSON property `name` # @return [String] attr_accessor :name - # List of resource labels to search for, evaluated with AND. E.g. " + # List of resource labels to search for, evaluated with AND. For example, " # resource_labels_selector": `"key": "value", "env": "prod"` will match # resources with labels "key": "value" AND "env": "prod" https://cloud.google. # com/resource-manager/docs/creating-managing-labels # Corresponds to the JSON property `resourceLabelsSelector` # @return [Hash<String,String>] attr_accessor :resource_labels_selector # Apply resource_value only to resources that match resource_type. resource_type - # will be checked with "AND" of other resources. E.g. "storage.googleapis.com/ - # Bucket" with resource_value "HIGH" will apply "HIGH" value only to "storage. - # googleapis.com/Bucket" resources. + # will be checked with AND of other resources. For example, "storage.googleapis. + # com/Bucket" with resource_value "HIGH" will apply "HIGH" value only to " + # storage.googleapis.com/Bucket" resources. # Corresponds to the JSON property `resourceType` # @return [String] attr_accessor :resource_type # Required. Resource value level this expression represents # Corresponds to the JSON property `resourceValue` # @return [String] attr_accessor :resource_value - # Project or folder to scope this config to. For example, "project/456" would - # apply this config only to resources in "project/456" scope will be checked - # with "AND" of other resources. + # Project or folder to scope this configuration to. For example, "project/456" + # would apply this configuration only to resources in "project/456" scope will + # be checked with AND of other resources. # Corresponds to the JSON property `scope` # @return [String] attr_accessor :scope # Resource value mapping for Sensitive Data Protection findings. If any of these @@ -2719,17 +2846,17 @@ # Corresponds to the JSON property `sensitiveDataProtectionMapping` # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV1SensitiveDataProtectionMapping] attr_accessor :sensitive_data_protection_mapping # Required. Tag values combined with AND to check against. Values in the form " - # tagValues/123" E.g. [ "tagValues/123", "tagValues/456", "tagValues/789" ] + # tagValues/123" Example: [ "tagValues/123", "tagValues/456", "tagValues/789" ] # https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing # Corresponds to the JSON property `tagValues` # @return [Array<String>] attr_accessor :tag_values - # Output only. Timestamp this resource value config was last updated. + # Output only. Timestamp this resource value configuration was last updated. # Corresponds to the JSON property `updateTime` # @return [String] attr_accessor :update_time def initialize(**args) @@ -3626,10 +3753,114 @@ @id = args[:id] if args.key?(:id) @name = args[:name] if args.key?(:name) end end + # Represents an Azure management group. + class GoogleCloudSecuritycenterV2AzureManagementGroup + include Google::Apis::Core::Hashable + + # The display name of the Azure management group. + # Corresponds to the JSON property `displayName` + # @return [String] + attr_accessor :display_name + + # The UUID of the Azure management group, for example, "20000000-0001-0000-0000- + # 000000000000". + # Corresponds to the JSON property `id` + # @return [String] + attr_accessor :id + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @display_name = args[:display_name] if args.key?(:display_name) + @id = args[:id] if args.key?(:id) + end + end + + # Azure metadata associated with the resource, only applicable if the finding's + # cloud provider is Microsoft Azure. + class GoogleCloudSecuritycenterV2AzureMetadata + include Google::Apis::Core::Hashable + + # A list of Azure management groups associated with the resource, ordered from + # lowest level (closest to the subscription) to highest level. + # Corresponds to the JSON property `managementGroups` + # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2AzureManagementGroup>] + attr_accessor :management_groups + + # Represents an Azure resource group. + # Corresponds to the JSON property `resourceGroup` + # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2AzureResourceGroup] + attr_accessor :resource_group + + # Represents an Azure subscription. + # Corresponds to the JSON property `subscription` + # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2AzureSubscription] + attr_accessor :subscription + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @management_groups = args[:management_groups] if args.key?(:management_groups) + @resource_group = args[:resource_group] if args.key?(:resource_group) + @subscription = args[:subscription] if args.key?(:subscription) + end + end + + # Represents an Azure resource group. + class GoogleCloudSecuritycenterV2AzureResourceGroup + include Google::Apis::Core::Hashable + + # The name of the Azure resource group. This is not a UUID. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @name = args[:name] if args.key?(:name) + end + end + + # Represents an Azure subscription. + class GoogleCloudSecuritycenterV2AzureSubscription + include Google::Apis::Core::Hashable + + # The display name of the Azure subscription. + # Corresponds to the JSON property `displayName` + # @return [String] + attr_accessor :display_name + + # The UUID of the Azure subscription, for example, "291bba3f-e0a5-47bc-a099- + # 3bdcb2a50a05". + # Corresponds to the JSON property `id` + # @return [String] + attr_accessor :id + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @display_name = args[:display_name] if args.key?(:display_name) + @id = args[:id] if args.key?(:id) + end + end + # Information related to Google Cloud Backup and DR Service findings. class GoogleCloudSecuritycenterV2BackupDisasterRecovery include Google::Apis::Core::Hashable # The name of the Backup and DR appliance that captures, moves, and manages the @@ -4837,10 +5068,17 @@ # The class of the finding. # Corresponds to the JSON property `findingClass` # @return [String] attr_accessor :finding_class + # Contains details about groups of which this finding is a member. A group is a + # collection of findings that are related in some way. This field cannot be + # updated. Its value is ignored in all update requests. + # Corresponds to the JSON property `groupMemberships` + # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2GroupMembership>] + attr_accessor :group_memberships + # Represents IAM bindings associated with the finding. # Corresponds to the JSON property `iamBindings` # @return [Array<Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2IamBinding>] attr_accessor :iam_bindings @@ -5000,10 +5238,17 @@ # Output only. The state of the finding. # Corresponds to the JSON property `state` # @return [String] attr_accessor :state + # Contains details about a group of security issues that, when the issues occur + # together, represent a greater risk than when the issues occur independently. A + # group of such issues is referred to as a toxic combination. + # Corresponds to the JSON property `toxicCombination` + # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2ToxicCombination] + attr_accessor :toxic_combination + # Refers to common vulnerability fields e.g. cve, cvss, cwe etc. # Corresponds to the JSON property `vulnerability` # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2Vulnerability] attr_accessor :vulnerability @@ -5033,10 +5278,11 @@ @exfiltration = args[:exfiltration] if args.key?(:exfiltration) @external_systems = args[:external_systems] if args.key?(:external_systems) @external_uri = args[:external_uri] if args.key?(:external_uri) @files = args[:files] if args.key?(:files) @finding_class = args[:finding_class] if args.key?(:finding_class) + @group_memberships = args[:group_memberships] if args.key?(:group_memberships) @iam_bindings = args[:iam_bindings] if args.key?(:iam_bindings) @indicator = args[:indicator] if args.key?(:indicator) @kernel_rootkit = args[:kernel_rootkit] if args.key?(:kernel_rootkit) @kubernetes = args[:kubernetes] if args.key?(:kubernetes) @load_balancers = args[:load_balancers] if args.key?(:load_balancers) @@ -5057,10 +5303,11 @@ @security_marks = args[:security_marks] if args.key?(:security_marks) @security_posture = args[:security_posture] if args.key?(:security_posture) @severity = args[:severity] if args.key?(:severity) @source_properties = args[:source_properties] if args.key?(:source_properties) @state = args[:state] if args.key?(:state) + @toxic_combination = args[:toxic_combination] if args.key?(:toxic_combination) @vulnerability = args[:vulnerability] if args.key?(:vulnerability) end end # Message that contains the resource name and display name of a folder resource. @@ -5106,10 +5353,36 @@ def update!(**args) @region_code = args[:region_code] if args.key?(:region_code) end end + # Contains details about groups of which this finding is a member. A group is a + # collection of findings that are related in some way. + class GoogleCloudSecuritycenterV2GroupMembership + include Google::Apis::Core::Hashable + + # ID of the group. + # Corresponds to the JSON property `groupId` + # @return [String] + attr_accessor :group_id + + # Type of group. + # Corresponds to the JSON property `groupType` + # @return [String] + attr_accessor :group_type + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @group_id = args[:group_id] if args.key?(:group_id) + @group_type = args[:group_type] if args.key?(:group_type) + end + end + # Represents a particular IAM binding, which captures a member's role addition, # removal, or state. class GoogleCloudSecuritycenterV2IamBinding include Google::Apis::Core::Hashable @@ -6027,10 +6300,16 @@ # cloud provider is Amazon Web Services. # Corresponds to the JSON property `awsMetadata` # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2AwsMetadata] attr_accessor :aws_metadata + # Azure metadata associated with the resource, only applicable if the finding's + # cloud provider is Microsoft Azure. + # Corresponds to the JSON property `azureMetadata` + # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2AzureMetadata] + attr_accessor :azure_metadata + # Indicates which cloud provider the finding is from. # Corresponds to the JSON property `cloudProvider` # @return [String] attr_accessor :cloud_provider @@ -6089,10 +6368,11 @@ end # Update properties of this object def update!(**args) @aws_metadata = args[:aws_metadata] if args.key?(:aws_metadata) + @azure_metadata = args[:azure_metadata] if args.key?(:azure_metadata) @cloud_provider = args[:cloud_provider] if args.key?(:cloud_provider) @display_name = args[:display_name] if args.key?(:display_name) @gcp_metadata = args[:gcp_metadata] if args.key?(:gcp_metadata) @location = args[:location] if args.key?(:location) @name = args[:name] if args.key?(:name) @@ -6154,60 +6434,60 @@ @id = args[:id] if args.key?(:id) @node_type = args[:node_type] if args.key?(:node_type) end end - # A resource value config (RVC) is a mapping configuration of user's resources - # to resource values. Used in Attack path simulations. + # A resource value configuration (RVC) is a mapping configuration of user's + # resources to resource values. Used in Attack path simulations. class GoogleCloudSecuritycenterV2ResourceValueConfig include Google::Apis::Core::Hashable # Cloud provider this configuration applies to # Corresponds to the JSON property `cloudProvider` # @return [String] attr_accessor :cloud_provider - # Output only. Timestamp this resource value config was created. + # Output only. Timestamp this resource value configuration was created. # Corresponds to the JSON property `createTime` # @return [String] attr_accessor :create_time - # Description of the resource value config. + # Description of the resource value configuration. # Corresponds to the JSON property `description` # @return [String] attr_accessor :description - # Name for the resource value config + # Name for the resource value configuration # Corresponds to the JSON property `name` # @return [String] attr_accessor :name - # List of resource labels to search for, evaluated with AND. E.g. " + # List of resource labels to search for, evaluated with AND. For example, " # resource_labels_selector": `"key": "value", "env": "prod"` will match # resources with labels "key": "value" AND "env": "prod" https://cloud.google. # com/resource-manager/docs/creating-managing-labels # Corresponds to the JSON property `resourceLabelsSelector` # @return [Hash<String,String>] attr_accessor :resource_labels_selector # Apply resource_value only to resources that match resource_type. resource_type - # will be checked with "AND" of other resources. E.g. "storage.googleapis.com/ - # Bucket" with resource_value "HIGH" will apply "HIGH" value only to "storage. - # googleapis.com/Bucket" resources. + # will be checked with AND of other resources. For example, "storage.googleapis. + # com/Bucket" with resource_value "HIGH" will apply "HIGH" value only to " + # storage.googleapis.com/Bucket" resources. # Corresponds to the JSON property `resourceType` # @return [String] attr_accessor :resource_type # Resource value level this expression represents Only required when there is no # SDP mapping in the request # Corresponds to the JSON property `resourceValue` # @return [String] attr_accessor :resource_value - # Project or folder to scope this config to. For example, "project/456" would - # apply this config only to resources in "project/456" scope will be checked - # with "AND" of other resources. + # Project or folder to scope this configuration to. For example, "project/456" + # would apply this configuration only to resources in "project/456" scope will + # be checked with AND of other resources. # Corresponds to the JSON property `scope` # @return [String] attr_accessor :scope # Resource value mapping for Sensitive Data Protection findings If any of these @@ -6216,17 +6496,17 @@ # Corresponds to the JSON property `sensitiveDataProtectionMapping` # @return [Google::Apis::SecuritycenterV1beta2::GoogleCloudSecuritycenterV2SensitiveDataProtectionMapping] attr_accessor :sensitive_data_protection_mapping # Required. Tag values combined with AND to check against. Values in the form " - # tagValues/123" E.g. [ "tagValues/123", "tagValues/456", "tagValues/789" ] + # tagValues/123" Example: [ "tagValues/123", "tagValues/456", "tagValues/789" ] # https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing # Corresponds to the JSON property `tagValues` # @return [Array<String>] attr_accessor :tag_values - # Output only. Timestamp this resource value config was last updated. + # Output only. Timestamp this resource value configuration was last updated. # Corresponds to the JSON property `updateTime` # @return [String] attr_accessor :update_time def initialize(**args) @@ -6608,10 +6888,41 @@ @update_time = args[:update_time] if args.key?(:update_time) @uri = args[:uri] if args.key?(:uri) end end + # Contains details about a group of security issues that, when the issues occur + # together, represent a greater risk than when the issues occur independently. A + # group of such issues is referred to as a toxic combination. + class GoogleCloudSecuritycenterV2ToxicCombination + include Google::Apis::Core::Hashable + + # The [Attack exposure score](https://cloud.google.com/security-command-center/ + # docs/attack-exposure-learn#attack_exposure_scores) of this toxic combination. + # The score is a measure of how much this toxic combination exposes one or more + # high-value resources to potential attack. + # Corresponds to the JSON property `attackExposureScore` + # @return [Float] + attr_accessor :attack_exposure_score + + # List of resource names of findings associated with this toxic combination. For + # example, organizations/123/sources/456/findings/789. + # Corresponds to the JSON property `relatedFindings` + # @return [Array<String>] + attr_accessor :related_findings + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @attack_exposure_score = args[:attack_exposure_score] if args.key?(:attack_exposure_score) + @related_findings = args[:related_findings] if args.key?(:related_findings) + end + end + # Refers to common vulnerability fields e.g. cve, cvss, cwe etc. class GoogleCloudSecuritycenterV2Vulnerability include Google::Apis::Core::Hashable # CVE stands for Common Vulnerabilities and Exposures. Information from the [CVE @@ -6666,10 +6977,36 @@ def update!(**args) @yara_rule = args[:yara_rule] if args.key?(:yara_rule) end end + # Contains details about groups of which this finding is a member. A group is a + # collection of findings that are related in some way. + class GroupMembership + include Google::Apis::Core::Hashable + + # ID of the group. + # Corresponds to the JSON property `groupId` + # @return [String] + attr_accessor :group_id + + # Type of group. + # Corresponds to the JSON property `groupType` + # @return [String] + attr_accessor :group_type + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @group_id = args[:group_id] if args.key?(:group_id) + @group_type = args[:group_type] if args.key?(:group_type) + end + end + # Represents a particular IAM binding, which captures a member's role addition, # removal, or state. class IamBinding include Google::Apis::Core::Hashable @@ -8010,9 +8347,40 @@ @description = args[:description] if args.key?(:description) @id = args[:id] if args.key?(:id) @status = args[:status] if args.key?(:status) @update_time = args[:update_time] if args.key?(:update_time) @uri = args[:uri] if args.key?(:uri) + end + end + + # Contains details about a group of security issues that, when the issues occur + # together, represent a greater risk than when the issues occur independently. A + # group of such issues is referred to as a toxic combination. + class ToxicCombination + include Google::Apis::Core::Hashable + + # The [Attack exposure score](https://cloud.google.com/security-command-center/ + # docs/attack-exposure-learn#attack_exposure_scores) of this toxic combination. + # The score is a measure of how much this toxic combination exposes one or more + # high-value resources to potential attack. + # Corresponds to the JSON property `attackExposureScore` + # @return [Float] + attr_accessor :attack_exposure_score + + # List of resource names of findings associated with this toxic combination. For + # example, organizations/123/sources/456/findings/789. + # Corresponds to the JSON property `relatedFindings` + # @return [Array<String>] + attr_accessor :related_findings + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @attack_exposure_score = args[:attack_exposure_score] if args.key?(:attack_exposure_score) + @related_findings = args[:related_findings] if args.key?(:related_findings) end end # Resource capturing the settings for the Virtual Machine Threat Detection # service.