google-apis-securitycenter_v1 0.52.0 → 0.54.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -287,38 +287,6 @@ module Google
287
287
  end
288
288
  end
289
289
 
290
- # A finding that is associated with this node in the exposure path.
291
- class AssociatedFinding
292
- include Google::Apis::Core::Hashable
293
-
294
- # Canonical name of the associated findings. Example: organizations/123/sources/
295
- # 456/findings/789
296
- # Corresponds to the JSON property `canonicalFindingName`
297
- # @return [String]
298
- attr_accessor :canonical_finding_name
299
-
300
- # The additional taxonomy group within findings from a given source.
301
- # Corresponds to the JSON property `findingCategory`
302
- # @return [String]
303
- attr_accessor :finding_category
304
-
305
- # Full resource name of the finding.
306
- # Corresponds to the JSON property `name`
307
- # @return [String]
308
- attr_accessor :name
309
-
310
- def initialize(**args)
311
- update!(**args)
312
- end
313
-
314
- # Update properties of this object
315
- def update!(**args)
316
- @canonical_finding_name = args[:canonical_finding_name] if args.key?(:canonical_finding_name)
317
- @finding_category = args[:finding_category] if args.key?(:finding_category)
318
- @name = args[:name] if args.key?(:name)
319
- end
320
- end
321
-
322
290
  # Specifies the audit configuration for a service. The configuration determines
323
291
  # which permission types are logged, and what identities, if any, are exempted
324
292
  # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
@@ -912,32 +880,6 @@ module Google
912
880
  end
913
881
  end
914
882
 
915
- # Represents a connection between a source node and a destination node in this
916
- # exposure path.
917
- class Edge
918
- include Google::Apis::Core::Hashable
919
-
920
- # This is the resource name of the destination node.
921
- # Corresponds to the JSON property `destination`
922
- # @return [String]
923
- attr_accessor :destination
924
-
925
- # This is the resource name of the source node.
926
- # Corresponds to the JSON property `source`
927
- # @return [String]
928
- attr_accessor :source
929
-
930
- def initialize(**args)
931
- update!(**args)
932
- end
933
-
934
- # Update properties of this object
935
- def update!(**args)
936
- @destination = args[:destination] if args.key?(:destination)
937
- @source = args[:source] if args.key?(:source)
938
- end
939
- end
940
-
941
883
  # A generic empty message that you can re-use to avoid defining duplicated empty
942
884
  # messages in your APIs. A typical example is to use it as the request or the
943
885
  # response type of an API method. For instance: service Foo ` rpc Bar(google.
@@ -1342,12 +1284,6 @@ module Google
1342
1284
  # @return [String]
1343
1285
  attr_accessor :next_steps
1344
1286
 
1345
- # Contains information about the org policy constraints associated with the
1346
- # finding.
1347
- # Corresponds to the JSON property `orgPolicyConstraints`
1348
- # @return [Array<Google::Apis::SecuritycenterV1::OrgPolicyConstraint>]
1349
- attr_accessor :org_policy_constraints
1350
-
1351
1287
  # The relative resource name of the source the finding belongs to. See: https://
1352
1288
  # cloud.google.com/apis/design/resource_names#relative_resource_name This field
1353
1289
  # is immutable after creation time. For example: "organizations/`organization_id`
@@ -1443,7 +1379,6 @@ module Google
1443
1379
  @mute_update_time = args[:mute_update_time] if args.key?(:mute_update_time)
1444
1380
  @name = args[:name] if args.key?(:name)
1445
1381
  @next_steps = args[:next_steps] if args.key?(:next_steps)
1446
- @org_policy_constraints = args[:org_policy_constraints] if args.key?(:org_policy_constraints)
1447
1382
  @parent = args[:parent] if args.key?(:parent)
1448
1383
  @parent_display_name = args[:parent_display_name] if args.key?(:parent_display_name)
1449
1384
  @processes = args[:processes] if args.key?(:processes)
@@ -1682,42 +1617,90 @@ module Google
1682
1617
  end
1683
1618
  end
1684
1619
 
1685
- # A resource that is exposed as a result of a finding.
1686
- class GoogleCloudSecuritycenterV1ExposedResource
1620
+ # Defines the properties in a custom module configuration for Security Health
1621
+ # Analytics. Use the custom module configuration to create custom detectors that
1622
+ # generate custom findings for resources that you specify.
1623
+ class GoogleCloudSecuritycenterV1CustomConfig
1687
1624
  include Google::Apis::Core::Hashable
1688
1625
 
1689
- # Human readable name of the resource that is exposed.
1690
- # Corresponds to the JSON property `displayName`
1626
+ # A set of optional name-value pairs that define custom source properties to
1627
+ # return with each finding that is generated by the custom module. The custom
1628
+ # source properties that are defined here are included in the finding JSON under
1629
+ # `sourceProperties`.
1630
+ # Corresponds to the JSON property `customOutput`
1631
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV1CustomOutputSpec]
1632
+ attr_accessor :custom_output
1633
+
1634
+ # Text that describes the vulnerability or misconfiguration that the custom
1635
+ # module detects. This explanation is returned with each finding instance to
1636
+ # help investigators understand the detected issue. The text must be enclosed in
1637
+ # quotation marks.
1638
+ # Corresponds to the JSON property `description`
1691
1639
  # @return [String]
1692
- attr_accessor :display_name
1640
+ attr_accessor :description
1693
1641
 
1694
- # The ways in which this resource is exposed. Examples: Read, Write
1695
- # Corresponds to the JSON property `methods`
1696
- # @return [Array<String>]
1697
- attr_accessor :methods_prop
1642
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
1643
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
1644
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
1645
+ # "Summary size limit" description: "Determines if a summary is less than 100
1646
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
1647
+ # Requestor is owner" description: "Determines if requestor is the document
1648
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
1649
+ # Logic): title: "Public documents" description: "Determine whether the document
1650
+ # should be publicly visible" expression: "document.type != 'private' &&
1651
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
1652
+ # string" description: "Create a notification string with a timestamp."
1653
+ # expression: "'New message received at ' + string(document.create_time)" The
1654
+ # exact variables and functions that may be referenced within an expression are
1655
+ # determined by the service that evaluates it. See the service documentation for
1656
+ # additional information.
1657
+ # Corresponds to the JSON property `predicate`
1658
+ # @return [Google::Apis::SecuritycenterV1::Expr]
1659
+ attr_accessor :predicate
1698
1660
 
1699
- # Exposed Resource Name e.g.: `organizations/123/attackExposureResults/456/
1700
- # exposedResources/789`
1701
- # Corresponds to the JSON property `name`
1661
+ # An explanation of the recommended steps that security teams can take to
1662
+ # resolve the detected issue. This explanation is returned with each finding
1663
+ # generated by this module in the `nextSteps` property of the finding JSON.
1664
+ # Corresponds to the JSON property `recommendation`
1702
1665
  # @return [String]
1703
- attr_accessor :name
1666
+ attr_accessor :recommendation
1704
1667
 
1705
- # The name of the resource that is exposed. See: https://cloud.google.com/apis/
1706
- # design/resource_names#full_resource_name
1707
- # Corresponds to the JSON property `resource`
1708
- # @return [String]
1709
- attr_accessor :resource
1668
+ # Resource for selecting resource type.
1669
+ # Corresponds to the JSON property `resourceSelector`
1670
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV1ResourceSelector]
1671
+ attr_accessor :resource_selector
1710
1672
 
1711
- # The resource type of the exposed resource. See: https://cloud.google.com/asset-
1712
- # inventory/docs/supported-asset-types
1713
- # Corresponds to the JSON property `resourceType`
1673
+ # The severity to assign to findings generated by the module.
1674
+ # Corresponds to the JSON property `severity`
1714
1675
  # @return [String]
1715
- attr_accessor :resource_type
1676
+ attr_accessor :severity
1716
1677
 
1717
- # How valuable this resource is.
1718
- # Corresponds to the JSON property `resourceValue`
1719
- # @return [String]
1720
- attr_accessor :resource_value
1678
+ def initialize(**args)
1679
+ update!(**args)
1680
+ end
1681
+
1682
+ # Update properties of this object
1683
+ def update!(**args)
1684
+ @custom_output = args[:custom_output] if args.key?(:custom_output)
1685
+ @description = args[:description] if args.key?(:description)
1686
+ @predicate = args[:predicate] if args.key?(:predicate)
1687
+ @recommendation = args[:recommendation] if args.key?(:recommendation)
1688
+ @resource_selector = args[:resource_selector] if args.key?(:resource_selector)
1689
+ @severity = args[:severity] if args.key?(:severity)
1690
+ end
1691
+ end
1692
+
1693
+ # A set of optional name-value pairs that define custom source properties to
1694
+ # return with each finding that is generated by the custom module. The custom
1695
+ # source properties that are defined here are included in the finding JSON under
1696
+ # `sourceProperties`.
1697
+ class GoogleCloudSecuritycenterV1CustomOutputSpec
1698
+ include Google::Apis::Core::Hashable
1699
+
1700
+ # A list of custom output properties to add to the finding.
1701
+ # Corresponds to the JSON property `properties`
1702
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV1Property>]
1703
+ attr_accessor :properties
1721
1704
 
1722
1705
  def initialize(**args)
1723
1706
  update!(**args)
@@ -1725,50 +1708,62 @@ module Google
1725
1708
 
1726
1709
  # Update properties of this object
1727
1710
  def update!(**args)
1728
- @display_name = args[:display_name] if args.key?(:display_name)
1729
- @methods_prop = args[:methods_prop] if args.key?(:methods_prop)
1730
- @name = args[:name] if args.key?(:name)
1731
- @resource = args[:resource] if args.key?(:resource)
1732
- @resource_type = args[:resource_type] if args.key?(:resource_type)
1733
- @resource_value = args[:resource_value] if args.key?(:resource_value)
1711
+ @properties = args[:properties] if args.key?(:properties)
1734
1712
  end
1735
1713
  end
1736
1714
 
1737
- # A path that an attacker could take to reach an exposed resource.
1738
- class GoogleCloudSecuritycenterV1ExposurePath
1715
+ # An EffectiveSecurityHealthAnalyticsCustomModule is the representation of a
1716
+ # Security Health Analytics custom module at a specified level of the resource
1717
+ # hierarchy: organization, folder, or project. If a custom module is inherited
1718
+ # from a parent organization or folder, the value of the `enablementState`
1719
+ # property in EffectiveSecurityHealthAnalyticsCustomModule is set to the value
1720
+ # that is effective in the parent, instead of `INHERITED`. For example, if the
1721
+ # module is enabled in a parent organization or folder, the effective
1722
+ # enablement_state for the module in all child folders or projects is also `
1723
+ # enabled`. EffectiveSecurityHealthAnalyticsCustomModule is read-only.
1724
+ class GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule
1739
1725
  include Google::Apis::Core::Hashable
1740
1726
 
1741
- # A list of the edges between nodes in this exposure path.
1742
- # Corresponds to the JSON property `edges`
1743
- # @return [Array<Google::Apis::SecuritycenterV1::Edge>]
1744
- attr_accessor :edges
1727
+ # Defines the properties in a custom module configuration for Security Health
1728
+ # Analytics. Use the custom module configuration to create custom detectors that
1729
+ # generate custom findings for resources that you specify.
1730
+ # Corresponds to the JSON property `customConfig`
1731
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV1CustomConfig]
1732
+ attr_accessor :custom_config
1745
1733
 
1746
- # A resource that is exposed as a result of a finding.
1747
- # Corresponds to the JSON property `exposedResource`
1748
- # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV1ExposedResource]
1749
- attr_accessor :exposed_resource
1734
+ # Output only. The display name for the custom module. The name must be between
1735
+ # 1 and 128 characters, start with a lowercase letter, and contain alphanumeric
1736
+ # characters or underscores only.
1737
+ # Corresponds to the JSON property `displayName`
1738
+ # @return [String]
1739
+ attr_accessor :display_name
1750
1740
 
1751
- # Exposure Path Name e.g.: `organizations/123/attackExposureResults/456/
1752
- # exposurePaths/789`
1741
+ # Output only. The effective state of enablement for the module at the given
1742
+ # level of the hierarchy.
1743
+ # Corresponds to the JSON property `enablementState`
1744
+ # @return [String]
1745
+ attr_accessor :enablement_state
1746
+
1747
+ # Output only. The resource name of the custom module. Its format is "
1748
+ # organizations/`organization`/securityHealthAnalyticsSettings/
1749
+ # effectiveCustomModules/`customModule`", or "folders/`folder`/
1750
+ # securityHealthAnalyticsSettings/effectiveCustomModules/`customModule`", or "
1751
+ # projects/`project`/securityHealthAnalyticsSettings/effectiveCustomModules/`
1752
+ # customModule`"
1753
1753
  # Corresponds to the JSON property `name`
1754
1754
  # @return [String]
1755
1755
  attr_accessor :name
1756
1756
 
1757
- # A list of nodes that exist in this exposure path.
1758
- # Corresponds to the JSON property `pathNodes`
1759
- # @return [Array<Google::Apis::SecuritycenterV1::PathNode>]
1760
- attr_accessor :path_nodes
1761
-
1762
1757
  def initialize(**args)
1763
1758
  update!(**args)
1764
1759
  end
1765
1760
 
1766
1761
  # Update properties of this object
1767
1762
  def update!(**args)
1768
- @edges = args[:edges] if args.key?(:edges)
1769
- @exposed_resource = args[:exposed_resource] if args.key?(:exposed_resource)
1763
+ @custom_config = args[:custom_config] if args.key?(:custom_config)
1764
+ @display_name = args[:display_name] if args.key?(:display_name)
1765
+ @enablement_state = args[:enablement_state] if args.key?(:enablement_state)
1770
1766
  @name = args[:name] if args.key?(:name)
1771
- @path_nodes = args[:path_nodes] if args.key?(:path_nodes)
1772
1767
  end
1773
1768
  end
1774
1769
 
@@ -1927,6 +1922,45 @@ module Google
1927
1922
  end
1928
1923
  end
1929
1924
 
1925
+ # An individual name-value pair that defines a custom source property.
1926
+ class GoogleCloudSecuritycenterV1Property
1927
+ include Google::Apis::Core::Hashable
1928
+
1929
+ # Name of the property for the custom output.
1930
+ # Corresponds to the JSON property `name`
1931
+ # @return [String]
1932
+ attr_accessor :name
1933
+
1934
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
1935
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
1936
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
1937
+ # "Summary size limit" description: "Determines if a summary is less than 100
1938
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
1939
+ # Requestor is owner" description: "Determines if requestor is the document
1940
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
1941
+ # Logic): title: "Public documents" description: "Determine whether the document
1942
+ # should be publicly visible" expression: "document.type != 'private' &&
1943
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
1944
+ # string" description: "Create a notification string with a timestamp."
1945
+ # expression: "'New message received at ' + string(document.create_time)" The
1946
+ # exact variables and functions that may be referenced within an expression are
1947
+ # determined by the service that evaluates it. See the service documentation for
1948
+ # additional information.
1949
+ # Corresponds to the JSON property `valueExpression`
1950
+ # @return [Google::Apis::SecuritycenterV1::Expr]
1951
+ attr_accessor :value_expression
1952
+
1953
+ def initialize(**args)
1954
+ update!(**args)
1955
+ end
1956
+
1957
+ # Update properties of this object
1958
+ def update!(**args)
1959
+ @name = args[:name] if args.key?(:name)
1960
+ @value_expression = args[:value_expression] if args.key?(:value_expression)
1961
+ end
1962
+ end
1963
+
1930
1964
  # Information related to the Google Cloud resource.
1931
1965
  class GoogleCloudSecuritycenterV1Resource
1932
1966
  include Google::Apis::Core::Hashable
@@ -1991,65 +2025,14 @@ module Google
1991
2025
  end
1992
2026
  end
1993
2027
 
1994
- # A resource value config is a mapping configuration of user's tag values to
1995
- # resource values. Used by the attack path simulation.
1996
- class GoogleCloudSecuritycenterV1ResourceValueConfig
2028
+ # Resource for selecting resource type.
2029
+ class GoogleCloudSecuritycenterV1ResourceSelector
1997
2030
  include Google::Apis::Core::Hashable
1998
2031
 
1999
- # Output only. Timestamp this resource value config was created.
2000
- # Corresponds to the JSON property `createTime`
2001
- # @return [String]
2002
- attr_accessor :create_time
2003
-
2004
- # Description of the resource value config.
2005
- # Corresponds to the JSON property `description`
2006
- # @return [String]
2007
- attr_accessor :description
2008
-
2009
- # Name for the resource value config
2010
- # Corresponds to the JSON property `name`
2011
- # @return [String]
2012
- attr_accessor :name
2013
-
2014
- # List of resource labels to search for, evaluated with AND. E.g. "
2015
- # resource_labels_selector": `"key": "value", "env": "prod"` will match
2016
- # resources with labels "key": "value" AND "env": "prod" https://cloud.google.
2017
- # com/resource-manager/docs/creating-managing-labels
2018
- # Corresponds to the JSON property `resourceLabelsSelector`
2019
- # @return [Hash<String,String>]
2020
- attr_accessor :resource_labels_selector
2021
-
2022
- # Apply resource_value only to resources that match resource_type. resource_type
2023
- # will be checked with "AND" of other resources. E.g. "storage.googleapis.com/
2024
- # Bucket" with resource_value "HIGH" will apply "HIGH" value only to "storage.
2025
- # googleapis.com/Bucket" resources.
2026
- # Corresponds to the JSON property `resourceType`
2027
- # @return [String]
2028
- attr_accessor :resource_type
2029
-
2030
- # Required. Resource value level this expression represents
2031
- # Corresponds to the JSON property `resourceValue`
2032
- # @return [String]
2033
- attr_accessor :resource_value
2034
-
2035
- # Project or folder to scope this config to. For example, "project/456" would
2036
- # apply this config only to resources in "project/456" scope will be checked
2037
- # with "AND" of other resources.
2038
- # Corresponds to the JSON property `scope`
2039
- # @return [String]
2040
- attr_accessor :scope
2041
-
2042
- # Required. Tag values combined with AND to check against. Values in the form "
2043
- # tagValues/123" E.g. [ "tagValues/123", "tagValues/456", "tagValues/789" ]
2044
- # https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing
2045
- # Corresponds to the JSON property `tagValues`
2032
+ # The resource types to run the detector on.
2033
+ # Corresponds to the JSON property `resourceTypes`
2046
2034
  # @return [Array<String>]
2047
- attr_accessor :tag_values
2048
-
2049
- # Output only. Timestamp this resource value config was last updated.
2050
- # Corresponds to the JSON property `updateTime`
2051
- # @return [String]
2052
- attr_accessor :update_time
2035
+ attr_accessor :resource_types
2053
2036
 
2054
2037
  def initialize(**args)
2055
2038
  update!(**args)
@@ -2057,15 +2040,7 @@ module Google
2057
2040
 
2058
2041
  # Update properties of this object
2059
2042
  def update!(**args)
2060
- @create_time = args[:create_time] if args.key?(:create_time)
2061
- @description = args[:description] if args.key?(:description)
2062
- @name = args[:name] if args.key?(:name)
2063
- @resource_labels_selector = args[:resource_labels_selector] if args.key?(:resource_labels_selector)
2064
- @resource_type = args[:resource_type] if args.key?(:resource_type)
2065
- @resource_value = args[:resource_value] if args.key?(:resource_value)
2066
- @scope = args[:scope] if args.key?(:scope)
2067
- @tag_values = args[:tag_values] if args.key?(:tag_values)
2068
- @update_time = args[:update_time] if args.key?(:update_time)
2043
+ @resource_types = args[:resource_types] if args.key?(:resource_types)
2069
2044
  end
2070
2045
  end
2071
2046
 
@@ -2094,6 +2069,80 @@ module Google
2094
2069
  end
2095
2070
  end
2096
2071
 
2072
+ # Represents an instance of a Security Health Analytics custom module, including
2073
+ # its full module name, display name, enablement state, and last updated time.
2074
+ # You can create a custom module at the organization, folder, or project level.
2075
+ # Custom modules that you create at the organization or folder level are
2076
+ # inherited by the child folders and projects.
2077
+ class GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule
2078
+ include Google::Apis::Core::Hashable
2079
+
2080
+ # Output only. If empty, indicates that the custom module was created in the
2081
+ # organization, folder, or project in which you are viewing the custom module.
2082
+ # Otherwise, `ancestor_module` specifies the organization or folder from which
2083
+ # the custom module is inherited.
2084
+ # Corresponds to the JSON property `ancestorModule`
2085
+ # @return [String]
2086
+ attr_accessor :ancestor_module
2087
+
2088
+ # Defines the properties in a custom module configuration for Security Health
2089
+ # Analytics. Use the custom module configuration to create custom detectors that
2090
+ # generate custom findings for resources that you specify.
2091
+ # Corresponds to the JSON property `customConfig`
2092
+ # @return [Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV1CustomConfig]
2093
+ attr_accessor :custom_config
2094
+
2095
+ # The display name of the Security Health Analytics custom module. This display
2096
+ # name becomes the finding category for all findings that are returned by this
2097
+ # custom module. The display name must be between 1 and 128 characters, start
2098
+ # with a lowercase letter, and contain alphanumeric characters or underscores
2099
+ # only.
2100
+ # Corresponds to the JSON property `displayName`
2101
+ # @return [String]
2102
+ attr_accessor :display_name
2103
+
2104
+ # The enablement state of the custom module.
2105
+ # Corresponds to the JSON property `enablementState`
2106
+ # @return [String]
2107
+ attr_accessor :enablement_state
2108
+
2109
+ # Output only. The editor that last updated the custom module.
2110
+ # Corresponds to the JSON property `lastEditor`
2111
+ # @return [String]
2112
+ attr_accessor :last_editor
2113
+
2114
+ # Immutable. The resource name of the custom module. Its format is "
2115
+ # organizations/`organization`/securityHealthAnalyticsSettings/customModules/`
2116
+ # customModule`", or "folders/`folder`/securityHealthAnalyticsSettings/
2117
+ # customModules/`customModule`", or "projects/`project`/
2118
+ # securityHealthAnalyticsSettings/customModules/`customModule`" The id `
2119
+ # customModule` is server-generated and is not user settable. It will be a
2120
+ # numeric id containing 1-20 digits.
2121
+ # Corresponds to the JSON property `name`
2122
+ # @return [String]
2123
+ attr_accessor :name
2124
+
2125
+ # Output only. The time at which the custom module was last updated.
2126
+ # Corresponds to the JSON property `updateTime`
2127
+ # @return [String]
2128
+ attr_accessor :update_time
2129
+
2130
+ def initialize(**args)
2131
+ update!(**args)
2132
+ end
2133
+
2134
+ # Update properties of this object
2135
+ def update!(**args)
2136
+ @ancestor_module = args[:ancestor_module] if args.key?(:ancestor_module)
2137
+ @custom_config = args[:custom_config] if args.key?(:custom_config)
2138
+ @display_name = args[:display_name] if args.key?(:display_name)
2139
+ @enablement_state = args[:enablement_state] if args.key?(:enablement_state)
2140
+ @last_editor = args[:last_editor] if args.key?(:last_editor)
2141
+ @name = args[:name] if args.key?(:name)
2142
+ @update_time = args[:update_time] if args.key?(:update_time)
2143
+ end
2144
+ end
2145
+
2097
2146
  # Response of asset discovery run
2098
2147
  class GoogleCloudSecuritycenterV1beta1RunAssetDiscoveryResponse
2099
2148
  include Google::Apis::Core::Hashable
@@ -3088,6 +3137,59 @@ module Google
3088
3137
  end
3089
3138
  end
3090
3139
 
3140
+ # Response message for listing descendant security health analytics custom
3141
+ # modules.
3142
+ class ListDescendantSecurityHealthAnalyticsCustomModulesResponse
3143
+ include Google::Apis::Core::Hashable
3144
+
3145
+ # If not empty, indicates that there may be more custom modules to be returned.
3146
+ # Corresponds to the JSON property `nextPageToken`
3147
+ # @return [String]
3148
+ attr_accessor :next_page_token
3149
+
3150
+ # Custom modules belonging to the requested parent and its descendants.
3151
+ # Corresponds to the JSON property `securityHealthAnalyticsCustomModules`
3152
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule>]
3153
+ attr_accessor :security_health_analytics_custom_modules
3154
+
3155
+ def initialize(**args)
3156
+ update!(**args)
3157
+ end
3158
+
3159
+ # Update properties of this object
3160
+ def update!(**args)
3161
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3162
+ @security_health_analytics_custom_modules = args[:security_health_analytics_custom_modules] if args.key?(:security_health_analytics_custom_modules)
3163
+ end
3164
+ end
3165
+
3166
+ # Response message for listing effective security health analytics custom
3167
+ # modules.
3168
+ class ListEffectiveSecurityHealthAnalyticsCustomModulesResponse
3169
+ include Google::Apis::Core::Hashable
3170
+
3171
+ # Effective custom modules belonging to the requested parent.
3172
+ # Corresponds to the JSON property `effectiveSecurityHealthAnalyticsCustomModules`
3173
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV1EffectiveSecurityHealthAnalyticsCustomModule>]
3174
+ attr_accessor :effective_security_health_analytics_custom_modules
3175
+
3176
+ # If not empty, indicates that there may be more effective custom modules to be
3177
+ # returned.
3178
+ # Corresponds to the JSON property `nextPageToken`
3179
+ # @return [String]
3180
+ attr_accessor :next_page_token
3181
+
3182
+ def initialize(**args)
3183
+ update!(**args)
3184
+ end
3185
+
3186
+ # Update properties of this object
3187
+ def update!(**args)
3188
+ @effective_security_health_analytics_custom_modules = args[:effective_security_health_analytics_custom_modules] if args.key?(:effective_security_health_analytics_custom_modules)
3189
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3190
+ end
3191
+ end
3192
+
3091
3193
  # Response message for listing findings.
3092
3194
  class ListFindingsResponse
3093
3195
  include Google::Apis::Core::Hashable
@@ -3239,6 +3341,31 @@ module Google
3239
3341
  end
3240
3342
  end
3241
3343
 
3344
+ # Response message for listing security health analytics custom modules.
3345
+ class ListSecurityHealthAnalyticsCustomModulesResponse
3346
+ include Google::Apis::Core::Hashable
3347
+
3348
+ # If not empty, indicates that there may be more custom modules to be returned.
3349
+ # Corresponds to the JSON property `nextPageToken`
3350
+ # @return [String]
3351
+ attr_accessor :next_page_token
3352
+
3353
+ # Custom modules belonging to the requested parent.
3354
+ # Corresponds to the JSON property `securityHealthAnalyticsCustomModules`
3355
+ # @return [Array<Google::Apis::SecuritycenterV1::GoogleCloudSecuritycenterV1SecurityHealthAnalyticsCustomModule>]
3356
+ attr_accessor :security_health_analytics_custom_modules
3357
+
3358
+ def initialize(**args)
3359
+ update!(**args)
3360
+ end
3361
+
3362
+ # Update properties of this object
3363
+ def update!(**args)
3364
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3365
+ @security_health_analytics_custom_modules = args[:security_health_analytics_custom_modules] if args.key?(:security_health_analytics_custom_modules)
3366
+ end
3367
+ end
3368
+
3242
3369
  # Response message for listing sources.
3243
3370
  class ListSourcesResponse
3244
3371
  include Google::Apis::Core::Hashable
@@ -3498,26 +3625,6 @@ module Google
3498
3625
  end
3499
3626
  end
3500
3627
 
3501
- # Encapsulates data about a constraint associated with an organization policy.
3502
- class OrgPolicyConstraint
3503
- include Google::Apis::Core::Hashable
3504
-
3505
- # The resource name of the constraint. Example: "organizations/`organization_id`/
3506
- # constraints/`constraint_name`"
3507
- # Corresponds to the JSON property `name`
3508
- # @return [String]
3509
- attr_accessor :name
3510
-
3511
- def initialize(**args)
3512
- update!(**args)
3513
- end
3514
-
3515
- # Update properties of this object
3516
- def update!(**args)
3517
- @name = args[:name] if args.key?(:name)
3518
- end
3519
- end
3520
-
3521
3628
  # User specified settings that are attached to the Security Command Center
3522
3629
  # organization.
3523
3630
  class OrganizationSettings
@@ -3555,46 +3662,6 @@ module Google
3555
3662
  end
3556
3663
  end
3557
3664
 
3558
- # Represents one point that an attacker passes through in this exposure path.
3559
- class PathNode
3560
- include Google::Apis::Core::Hashable
3561
-
3562
- # The findings associated with this node in the exposure path.
3563
- # Corresponds to the JSON property `associatedFindings`
3564
- # @return [Array<Google::Apis::SecuritycenterV1::AssociatedFinding>]
3565
- attr_accessor :associated_findings
3566
-
3567
- # Human readable name of this resource.
3568
- # Corresponds to the JSON property `displayName`
3569
- # @return [String]
3570
- attr_accessor :display_name
3571
-
3572
- # The name of the resource at this point in the exposure path. The format of the
3573
- # name is: https://cloud.google.com/apis/design/resource_names#
3574
- # full_resource_name
3575
- # Corresponds to the JSON property `resource`
3576
- # @return [String]
3577
- attr_accessor :resource
3578
-
3579
- # The resource type of this resource. See: https://cloud.google.com/asset-
3580
- # inventory/docs/supported-asset-types
3581
- # Corresponds to the JSON property `resourceType`
3582
- # @return [String]
3583
- attr_accessor :resource_type
3584
-
3585
- def initialize(**args)
3586
- update!(**args)
3587
- end
3588
-
3589
- # Update properties of this object
3590
- def update!(**args)
3591
- @associated_findings = args[:associated_findings] if args.key?(:associated_findings)
3592
- @display_name = args[:display_name] if args.key?(:display_name)
3593
- @resource = args[:resource] if args.key?(:resource)
3594
- @resource_type = args[:resource_type] if args.key?(:resource_type)
3595
- end
3596
- end
3597
-
3598
3665
  # Kubernetes Pod.
3599
3666
  class Pod
3600
3667
  include Google::Apis::Core::Hashable