google-cloud-security_center 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +9 -0
  3. data/LICENSE +201 -0
  4. data/README.md +69 -0
  5. data/lib/google/cloud/security_center.rb +141 -0
  6. data/lib/google/cloud/security_center/v1.rb +139 -0
  7. data/lib/google/cloud/security_center/v1/asset_pb.rb +37 -0
  8. data/lib/google/cloud/security_center/v1/credentials.rb +41 -0
  9. data/lib/google/cloud/security_center/v1/doc/google/cloud/securitycenter/v1/asset.rb +96 -0
  10. data/lib/google/cloud/security_center/v1/doc/google/cloud/securitycenter/v1/finding.rb +94 -0
  11. data/lib/google/cloud/security_center/v1/doc/google/cloud/securitycenter/v1/organization_settings.rb +72 -0
  12. data/lib/google/cloud/security_center/v1/doc/google/cloud/securitycenter/v1/security_marks.rb +44 -0
  13. data/lib/google/cloud/security_center/v1/doc/google/cloud/securitycenter/v1/securitycenter_service.rb +759 -0
  14. data/lib/google/cloud/security_center/v1/doc/google/cloud/securitycenter/v1/source.rb +51 -0
  15. data/lib/google/cloud/security_center/v1/doc/google/iam/v1/iam_policy.rb +63 -0
  16. data/lib/google/cloud/security_center/v1/doc/google/iam/v1/policy.rb +104 -0
  17. data/lib/google/cloud/security_center/v1/doc/google/longrunning/operations.rb +51 -0
  18. data/lib/google/cloud/security_center/v1/doc/google/protobuf/any.rb +131 -0
  19. data/lib/google/cloud/security_center/v1/doc/google/protobuf/duration.rb +91 -0
  20. data/lib/google/cloud/security_center/v1/doc/google/protobuf/field_mask.rb +222 -0
  21. data/lib/google/cloud/security_center/v1/doc/google/protobuf/struct.rb +74 -0
  22. data/lib/google/cloud/security_center/v1/doc/google/protobuf/timestamp.rb +111 -0
  23. data/lib/google/cloud/security_center/v1/doc/google/rpc/status.rb +87 -0
  24. data/lib/google/cloud/security_center/v1/finding_pb.rb +34 -0
  25. data/lib/google/cloud/security_center/v1/helpers.rb +87 -0
  26. data/lib/google/cloud/security_center/v1/organization_settings_pb.rb +29 -0
  27. data/lib/google/cloud/security_center/v1/security_center_client.rb +1772 -0
  28. data/lib/google/cloud/security_center/v1/security_center_client_config.json +116 -0
  29. data/lib/google/cloud/security_center/v1/security_marks_pb.rb +17 -0
  30. data/lib/google/cloud/security_center/v1/securitycenter_service_pb.rb +186 -0
  31. data/lib/google/cloud/security_center/v1/securitycenter_service_services_pb.rb +90 -0
  32. data/lib/google/cloud/security_center/v1/source_pb.rb +18 -0
  33. metadata +172 -0
@@ -0,0 +1,37 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # source: google/cloud/security_center/v1/asset.proto
3
+
4
+
5
+ require 'google/protobuf'
6
+
7
+ require 'google/api/annotations_pb'
8
+ require 'google/cloud/security_center/v1/security_marks_pb'
9
+ require 'google/protobuf/struct_pb'
10
+ require 'google/protobuf/timestamp_pb'
11
+ Google::Protobuf::DescriptorPool.generated_pool.build do
12
+ add_message "google.cloud.securitycenter.v1.Asset" do
13
+ optional :name, :string, 1
14
+ optional :security_center_properties, :message, 2, "google.cloud.securitycenter.v1.Asset.SecurityCenterProperties"
15
+ map :resource_properties, :string, :message, 7, "google.protobuf.Value"
16
+ optional :security_marks, :message, 8, "google.cloud.securitycenter.v1.SecurityMarks"
17
+ optional :create_time, :message, 9, "google.protobuf.Timestamp"
18
+ optional :update_time, :message, 10, "google.protobuf.Timestamp"
19
+ optional :iam_policy, :message, 11, "google.cloud.securitycenter.v1.Asset.IamPolicy"
20
+ end
21
+ add_message "google.cloud.securitycenter.v1.Asset.SecurityCenterProperties" do
22
+ optional :resource_name, :string, 1
23
+ optional :resource_type, :string, 2
24
+ optional :resource_parent, :string, 3
25
+ optional :resource_project, :string, 4
26
+ repeated :resource_owners, :string, 5
27
+ end
28
+ add_message "google.cloud.securitycenter.v1.Asset.IamPolicy" do
29
+ optional :policy_blob, :string, 1
30
+ end
31
+ end
32
+
33
+ module Google::Cloud::SecurityCenter::V1
34
+ Asset = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.securitycenter.v1.Asset").msgclass
35
+ Asset::SecurityCenterProperties = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.securitycenter.v1.Asset.SecurityCenterProperties").msgclass
36
+ Asset::IamPolicy = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.securitycenter.v1.Asset.IamPolicy").msgclass
37
+ end
@@ -0,0 +1,41 @@
1
+ # Copyright 2019 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+
16
+ require "googleauth"
17
+
18
+ module Google
19
+ module Cloud
20
+ module SecurityCenter
21
+ module V1
22
+ class Credentials < Google::Auth::Credentials
23
+ SCOPE = [
24
+ "https://www.googleapis.com/auth/cloud-platform"
25
+ ].freeze
26
+ PATH_ENV_VARS = %w(SECURITY_CENTER_CREDENTIALS
27
+ SECURITY_CENTER_KEYFILE
28
+ GOOGLE_CLOUD_CREDENTIALS
29
+ GOOGLE_CLOUD_KEYFILE
30
+ GCLOUD_KEYFILE)
31
+ JSON_ENV_VARS = %w(SECURITY_CENTER_CREDENTIALS_JSON
32
+ SECURITY_CENTER_KEYFILE_JSON
33
+ GOOGLE_CLOUD_CREDENTIALS_JSON
34
+ GOOGLE_CLOUD_KEYFILE_JSON
35
+ GCLOUD_KEYFILE_JSON)
36
+ DEFAULT_PATHS = ["~/.config/gcloud/application_default_credentials.json"]
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,96 @@
1
+ # Copyright 2019 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+
16
+ module Google
17
+ module Cloud
18
+ module Securitycenter
19
+ module V1
20
+ # Cloud Security Command Center's (Cloud SCC) representation of a Google Cloud
21
+ # Platform (GCP) resource.
22
+ #
23
+ # The Asset is a Cloud SCC resource that captures information about a single
24
+ # GCP resource. All modifications to an Asset are only within the context of
25
+ # Cloud SCC and don't affect the referenced GCP resource.
26
+ # @!attribute [rw] name
27
+ # @return [String]
28
+ # The relative resource name of this asset. See:
29
+ # https://cloud.google.com/apis/design/resource_names#relative_resource_name
30
+ # Example:
31
+ # "organizations/123/assets/456".
32
+ # @!attribute [rw] security_center_properties
33
+ # @return [Google::Cloud::SecurityCenter::V1::Asset::SecurityCenterProperties]
34
+ # Cloud SCC managed properties. These properties are managed by
35
+ # Cloud SCC and cannot be modified by the user.
36
+ # @!attribute [rw] resource_properties
37
+ # @return [Hash{String => Google::Protobuf::Value}]
38
+ # Resource managed properties. These properties are managed and defined by
39
+ # the GCP resource and cannot be modified by the user.
40
+ # @!attribute [rw] security_marks
41
+ # @return [Google::Cloud::SecurityCenter::V1::SecurityMarks]
42
+ # User specified security marks. These marks are entirely managed by the user
43
+ # and come from the SecurityMarks resource that belongs to the asset.
44
+ # @!attribute [rw] create_time
45
+ # @return [Google::Protobuf::Timestamp]
46
+ # The time at which the asset was created in Cloud SCC.
47
+ # @!attribute [rw] update_time
48
+ # @return [Google::Protobuf::Timestamp]
49
+ # The time at which the asset was last updated, added, or deleted in Cloud
50
+ # SCC.
51
+ # @!attribute [rw] iam_policy
52
+ # @return [Google::Cloud::SecurityCenter::V1::Asset::IamPolicy]
53
+ # IAM Policy information associated with the GCP resource described by the
54
+ # Cloud SCC asset. This information is managed and defined by the GCP
55
+ # resource and cannot be modified by the user.
56
+ class Asset
57
+ # Cloud SCC managed properties. These properties are managed by Cloud SCC and
58
+ # cannot be modified by the user.
59
+ # @!attribute [rw] resource_name
60
+ # @return [String]
61
+ # The full resource name of the GCP resource this asset
62
+ # represents. This field is immutable after create time. See:
63
+ # https://cloud.google.com/apis/design/resource_names#full_resource_name
64
+ # @!attribute [rw] resource_type
65
+ # @return [String]
66
+ # The type of the GCP resource. Examples include: APPLICATION,
67
+ # PROJECT, and ORGANIZATION. This is a case insensitive field defined by
68
+ # Cloud SCC and/or the producer of the resource and is immutable
69
+ # after create time.
70
+ # @!attribute [rw] resource_parent
71
+ # @return [String]
72
+ # The full resource name of the immediate parent of the resource. See:
73
+ # https://cloud.google.com/apis/design/resource_names#full_resource_name
74
+ # @!attribute [rw] resource_project
75
+ # @return [String]
76
+ # The full resource name of the project the resource belongs to. See:
77
+ # https://cloud.google.com/apis/design/resource_names#full_resource_name
78
+ # @!attribute [rw] resource_owners
79
+ # @return [Array<String>]
80
+ # Owners of the Google Cloud resource.
81
+ class SecurityCenterProperties; end
82
+
83
+ # IAM Policy information associated with the GCP resource described by the
84
+ # Cloud SCC asset. This information is managed and defined by the GCP
85
+ # resource and cannot be modified by the user.
86
+ # @!attribute [rw] policy_blob
87
+ # @return [String]
88
+ # The JSON representation of the Policy associated with the asset.
89
+ # See https://cloud.google.com/iam/reference/rest/v1/Policy for format
90
+ # details.
91
+ class IamPolicy; end
92
+ end
93
+ end
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,94 @@
1
+ # Copyright 2019 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+
16
+ module Google
17
+ module Cloud
18
+ module Securitycenter
19
+ module V1
20
+ # Cloud Security Command Center (Cloud SCC) finding.
21
+ #
22
+ # A finding is a record of assessment data (security, risk, health or privacy)
23
+ # ingested into Cloud SCC for presentation, notification, analysis,
24
+ # policy testing, and enforcement. For example, an XSS vulnerability in an
25
+ # App Engine application is a finding.
26
+ # @!attribute [rw] name
27
+ # @return [String]
28
+ # The relative resource name of this finding. See:
29
+ # https://cloud.google.com/apis/design/resource_names#relative_resource_name
30
+ # Example:
31
+ # "organizations/123/sources/456/findings/789"
32
+ # @!attribute [rw] parent
33
+ # @return [String]
34
+ # The relative resource name of the source the finding belongs to. See:
35
+ # https://cloud.google.com/apis/design/resource_names#relative_resource_name
36
+ # This field is immutable after creation time.
37
+ # For example:
38
+ # "organizations/123/sources/456"
39
+ # @!attribute [rw] resource_name
40
+ # @return [String]
41
+ # The full resource name of the Google Cloud Platform (GCP) resource this
42
+ # finding is for. See:
43
+ # https://cloud.google.com/apis/design/resource_names#full_resource_name
44
+ # This field is immutable after creation time.
45
+ # @!attribute [rw] state
46
+ # @return [Google::Cloud::SecurityCenter::V1::Finding::State]
47
+ # The state of the finding.
48
+ # @!attribute [rw] category
49
+ # @return [String]
50
+ # The additional taxonomy group within findings from a given source.
51
+ # This field is immutable after creation time.
52
+ # Example: "XSS_FLASH_INJECTION"
53
+ # @!attribute [rw] external_uri
54
+ # @return [String]
55
+ # The URI that, if available, points to a web page outside of Cloud SCC
56
+ # where additional information about the finding can be found. This field is
57
+ # guaranteed to be either empty or a well formed URL.
58
+ # @!attribute [rw] source_properties
59
+ # @return [Hash{String => Google::Protobuf::Value}]
60
+ # Source specific properties. These properties are managed by the source
61
+ # that writes the finding. The key names in the source_properties map must be
62
+ # between 1 and 255 characters, and must start with a letter and contain
63
+ # alphanumeric characters or underscores only.
64
+ # @!attribute [rw] security_marks
65
+ # @return [Google::Cloud::SecurityCenter::V1::SecurityMarks]
66
+ # Output only. User specified security marks. These marks are entirely
67
+ # managed by the user and come from the SecurityMarks resource that belongs
68
+ # to the finding.
69
+ # @!attribute [rw] event_time
70
+ # @return [Google::Protobuf::Timestamp]
71
+ # The time at which the event took place. For example, if the finding
72
+ # represents an open firewall it would capture the time the open firewall was
73
+ # detected.
74
+ # @!attribute [rw] create_time
75
+ # @return [Google::Protobuf::Timestamp]
76
+ # The time at which the finding was created in Cloud SCC.
77
+ class Finding
78
+ # The state of the finding.
79
+ module State
80
+ # Unspecified state.
81
+ STATE_UNSPECIFIED = 0
82
+
83
+ # The finding requires attention and has not been addressed yet.
84
+ ACTIVE = 1
85
+
86
+ # The finding has been fixed, triaged as a non-issue or otherwise addressed
87
+ # and is no longer active.
88
+ INACTIVE = 2
89
+ end
90
+ end
91
+ end
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,72 @@
1
+ # Copyright 2019 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+
16
+ module Google
17
+ module Cloud
18
+ module Securitycenter
19
+ module V1
20
+ # User specified settings that are attached to the Cloud Security Command
21
+ # Center (Cloud SCC) organization.
22
+ # @!attribute [rw] name
23
+ # @return [String]
24
+ # The relative resource name of the settings. See:
25
+ # https://cloud.google.com/apis/design/resource_names#relative_resource_name
26
+ # Example:
27
+ # "organizations/123/organizationSettings".
28
+ # @!attribute [rw] enable_asset_discovery
29
+ # @return [true, false]
30
+ # A flag that indicates if Asset Discovery should be enabled. If the flag is
31
+ # set to `true`, then discovery of assets will occur. If it is set to `false,
32
+ # all historical assets will remain, but discovery of future assets will not
33
+ # occur.
34
+ # @!attribute [rw] asset_discovery_config
35
+ # @return [Google::Cloud::SecurityCenter::V1::OrganizationSettings::AssetDiscoveryConfig]
36
+ # The configuration used for Asset Discovery runs.
37
+ class OrganizationSettings
38
+ # The configuration used for Asset Discovery runs.
39
+ # @!attribute [rw] project_ids
40
+ # @return [Array<String>]
41
+ # The project ids to use for filtering asset discovery.
42
+ # @!attribute [rw] inclusion_mode
43
+ # @return [Google::Cloud::SecurityCenter::V1::OrganizationSettings::AssetDiscoveryConfig::InclusionMode]
44
+ # The mode to use for filtering asset discovery.
45
+ class AssetDiscoveryConfig
46
+ # The mode of inclusion when running Asset Discovery.
47
+ # Asset discovery can be limited by explicitly identifying projects to be
48
+ # included or excluded. If INCLUDE_ONLY is set, then only those projects
49
+ # within the organization and their children are discovered during asset
50
+ # discovery. If EXCLUDE is set, then projects that don't match those
51
+ # projects are discovered during asset discovery. If neither are set, then
52
+ # all projects within the organization are discovered during asset
53
+ # discovery.
54
+ module InclusionMode
55
+ # Unspecified. Setting the mode with this value will disable
56
+ # inclusion/exclusion filtering for Asset Discovery.
57
+ INCLUSION_MODE_UNSPECIFIED = 0
58
+
59
+ # Asset Discovery will capture only the resources within the projects
60
+ # specified. All other resources will be ignored.
61
+ INCLUDE_ONLY = 1
62
+
63
+ # Asset Discovery will ignore all resources under the projects specified.
64
+ # All other resources will be retrieved.
65
+ EXCLUDE = 2
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,44 @@
1
+ # Copyright 2019 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+
16
+ module Google
17
+ module Cloud
18
+ module Securitycenter
19
+ module V1
20
+ # User specified security marks that are attached to the parent Cloud Security
21
+ # Command Center (Cloud SCC) resource. Security marks are scoped within a Cloud
22
+ # SCC organization -- they can be modified and viewed by all users who have
23
+ # proper permissions on the organization.
24
+ # @!attribute [rw] name
25
+ # @return [String]
26
+ # The relative resource name of the SecurityMarks. See:
27
+ # https://cloud.google.com/apis/design/resource_names#relative_resource_name
28
+ # Examples:
29
+ # "organizations/123/assets/456/securityMarks"
30
+ # "organizations/123/sources/456/findings/789/securityMarks".
31
+ # @!attribute [rw] marks
32
+ # @return [Hash{String => String}]
33
+ # Mutable user specified security marks belonging to the parent resource.
34
+ # Constraints are as follows:
35
+ # * Keys and values are treated as case insensitive
36
+ # * Keys must be between 1 - 256 characters (inclusive)
37
+ # * Keys must be letters, numbers, underscores, or dashes
38
+ # * Values have leading and trailing whitespace trimmed, remaining
39
+ # characters must be between 1 - 4096 characters (inclusive)
40
+ class SecurityMarks; end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,759 @@
1
+ # Copyright 2019 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+
16
+ module Google
17
+ module Cloud
18
+ module Securitycenter
19
+ module V1
20
+ # Request message for creating a finding.
21
+ # @!attribute [rw] parent
22
+ # @return [String]
23
+ # Resource name of the new finding's parent. Its format should be
24
+ # "organizations/[organization_id]/sources/[source_id]".
25
+ # @!attribute [rw] finding_id
26
+ # @return [String]
27
+ # Unique identifier provided by the client within the parent scope.
28
+ # It must be alphanumeric and less than or equal to 32 characters and
29
+ # greater than 0 characters in length.
30
+ # @!attribute [rw] finding
31
+ # @return [Google::Cloud::SecurityCenter::V1::Finding]
32
+ # The Finding being created. The name and security_marks will be ignored as
33
+ # they are both output only fields on this resource.
34
+ class CreateFindingRequest; end
35
+
36
+ # Request message for creating a source.
37
+ # @!attribute [rw] parent
38
+ # @return [String]
39
+ # Resource name of the new source's parent. Its format should be
40
+ # "organizations/[organization_id]".
41
+ # @!attribute [rw] source
42
+ # @return [Google::Cloud::SecurityCenter::V1::Source]
43
+ # The Source being created, only the display_name and description will be
44
+ # used. All other fields will be ignored.
45
+ class CreateSourceRequest; end
46
+
47
+ # Request message for getting organization settings.
48
+ # @!attribute [rw] name
49
+ # @return [String]
50
+ # Name of the organization to get organization settings for. Its format is
51
+ # "organizations/[organization_id]/organizationSettings".
52
+ class GetOrganizationSettingsRequest; end
53
+
54
+ # Request message for getting a source.
55
+ # @!attribute [rw] name
56
+ # @return [String]
57
+ # Relative resource name of the source. Its format is
58
+ # "organizations/[organization_id]/source/[source_id]".
59
+ class GetSourceRequest; end
60
+
61
+ # Request message for grouping by assets.
62
+ # @!attribute [rw] parent
63
+ # @return [String]
64
+ # Name of the organization to groupBy. Its format is
65
+ # "organizations/[organization_id]".
66
+ # @!attribute [rw] filter
67
+ # @return [String]
68
+ # Expression that defines the filter to apply across assets.
69
+ # The expression is a list of zero or more restrictions combined via logical
70
+ # operators `AND` and `OR`.
71
+ # Parentheses are supported, and `OR` has higher precedence than `AND`.
72
+ #
73
+ # Restrictions have the form `<field> <operator> <value>` and may have a `-`
74
+ # character in front of them to indicate negation. The fields map to those
75
+ # defined in the Asset resource. Examples include:
76
+ #
77
+ # * name
78
+ # * security_center_properties.resource_name
79
+ # * resource_properties.a_property
80
+ # * security_marks.marks.marka
81
+ #
82
+ # The supported operators are:
83
+ #
84
+ # * `=` for all value types.
85
+ # * `>`, `<`, `>=`, `<=` for integer values.
86
+ # * `:`, meaning substring matching, for strings.
87
+ #
88
+ # The supported value types are:
89
+ #
90
+ # * string literals in quotes.
91
+ # * integer literals without quotes.
92
+ # * boolean literals `true` and `false` without quotes.
93
+ #
94
+ # The following field and operator combinations are supported:
95
+ # name | '='
96
+ # update_time | '>', '<', '>=', '<=', '='
97
+ # create_time | '>', '<', '>=', '<=', '='
98
+ # iam_policy.policy_blob | '=', ':'
99
+ # resource_properties | '=', ':', '>', '<', '>=', '<='
100
+ # security_marks | '=', ':'
101
+ # security_center_properties.resource_name | '=', ':'
102
+ # security_center_properties.resource_type | '=', ':'
103
+ # security_center_properties.resource_parent | '=', ':'
104
+ # security_center_properties.resource_project | '=', ':'
105
+ # security_center_properties.resource_owners | '=', ':'
106
+ #
107
+ # For example, `resource_properties.size = 100` is a valid filter string.
108
+ # @!attribute [rw] group_by
109
+ # @return [String]
110
+ # Expression that defines what assets fields to use for grouping. The string
111
+ # value should follow SQL syntax: comma separated list of fields. For
112
+ # example:
113
+ # "security_center_properties.resource_project,security_center_properties.project".
114
+ #
115
+ # The following fields are supported when compare_duration is not set:
116
+ #
117
+ # * security_center_properties.resource_project
118
+ # * security_center_properties.resource_type
119
+ # * security_center_properties.resource_parent
120
+ #
121
+ # The following fields are supported when compare_duration is set:
122
+ #
123
+ # * security_center_properties.resource_type
124
+ # @!attribute [rw] compare_duration
125
+ # @return [Google::Protobuf::Duration]
126
+ # When compare_duration is set, the GroupResult's "state_change" property is
127
+ # updated to indicate whether the asset was added, removed, or remained
128
+ # present during the compare_duration period of time that precedes the
129
+ # read_time. This is the time between (read_time - compare_duration) and
130
+ # read_time.
131
+ #
132
+ # The state change value is derived based on the presence of the asset at the
133
+ # two points in time. Intermediate state changes between the two times don't
134
+ # affect the result. For example, the results aren't affected if the asset is
135
+ # removed and re-created again.
136
+ #
137
+ # Possible "state_change" values when compare_duration is specified:
138
+ #
139
+ # * "ADDED": indicates that the asset was not present at the start of
140
+ # compare_duration, but present at reference_time.
141
+ # * "REMOVED": indicates that the asset was present at the start of
142
+ # compare_duration, but not present at reference_time.
143
+ # * "ACTIVE": indicates that the asset was present at both the
144
+ # start and the end of the time period defined by
145
+ # compare_duration and reference_time.
146
+ #
147
+ # If compare_duration is not specified, then the only possible state_change
148
+ # is "UNUSED", which will be the state_change set for all assets present at
149
+ # read_time.
150
+ #
151
+ # If this field is set then `state_change` must be a specified field in
152
+ # `group_by`.
153
+ # @!attribute [rw] read_time
154
+ # @return [Google::Protobuf::Timestamp]
155
+ # Time used as a reference point when filtering assets. The filter is limited
156
+ # to assets existing at the supplied time and their values are those at that
157
+ # specific time. Absence of this field will default to the API's version of
158
+ # NOW.
159
+ # @!attribute [rw] page_token
160
+ # @return [String]
161
+ # The value returned by the last `GroupAssetsResponse`; indicates
162
+ # that this is a continuation of a prior `GroupAssets` call, and that the
163
+ # system should return the next page of data.
164
+ # @!attribute [rw] page_size
165
+ # @return [Integer]
166
+ # The maximum number of results to return in a single response. Default is
167
+ # 10, minimum is 1, maximum is 1000.
168
+ class GroupAssetsRequest; end
169
+
170
+ # Response message for grouping by assets.
171
+ # @!attribute [rw] group_by_results
172
+ # @return [Array<Google::Cloud::SecurityCenter::V1::GroupResult>]
173
+ # Group results. There exists an element for each existing unique
174
+ # combination of property/values. The element contains a count for the number
175
+ # of times those specific property/values appear.
176
+ # @!attribute [rw] read_time
177
+ # @return [Google::Protobuf::Timestamp]
178
+ # Time used for executing the groupBy request.
179
+ # @!attribute [rw] next_page_token
180
+ # @return [String]
181
+ # Token to retrieve the next page of results, or empty if there are no more
182
+ # results.
183
+ # @!attribute [rw] total_size
184
+ # @return [Integer]
185
+ # The total number of results matching the query.
186
+ class GroupAssetsResponse; end
187
+
188
+ # Request message for grouping by findings.
189
+ # @!attribute [rw] parent
190
+ # @return [String]
191
+ # Name of the source to groupBy. Its format is
192
+ # "organizations/[organization_id]/sources/[source_id]". To groupBy across
193
+ # all sources provide a source_id of `-`. For example:
194
+ # organizations/123/sources/-
195
+ # @!attribute [rw] filter
196
+ # @return [String]
197
+ # Expression that defines the filter to apply across findings.
198
+ # The expression is a list of one or more restrictions combined via logical
199
+ # operators `AND` and `OR`.
200
+ # Parentheses are supported, and `OR` has higher precedence than `AND`.
201
+ #
202
+ # Restrictions have the form `<field> <operator> <value>` and may have a `-`
203
+ # character in front of them to indicate negation. Examples include:
204
+ #
205
+ # * name
206
+ # * source_properties.a_property
207
+ # * security_marks.marks.marka
208
+ #
209
+ # The supported operators are:
210
+ #
211
+ # * `=` for all value types.
212
+ # * `>`, `<`, `>=`, `<=` for integer values.
213
+ # * `:`, meaning substring matching, for strings.
214
+ #
215
+ # The supported value types are:
216
+ #
217
+ # * string literals in quotes.
218
+ # * integer literals without quotes.
219
+ # * boolean literals `true` and `false` without quotes.
220
+ #
221
+ # The following field and operator combinations are supported:
222
+ # name | `=`
223
+ # parent | '=', ':'
224
+ # resource_name | '=', ':'
225
+ # state | '=', ':'
226
+ # category | '=', ':'
227
+ # external_uri | '=', ':'
228
+ # event_time | `>`, `<`, `>=`, `<=`
229
+ # security_marks | '=', ':'
230
+ # source_properties | '=', ':', `>`, `<`, `>=`, `<=`
231
+ #
232
+ # For example, `source_properties.size = 100` is a valid filter string.
233
+ # @!attribute [rw] group_by
234
+ # @return [String]
235
+ # Expression that defines what assets fields to use for grouping (including
236
+ # `state_change`). The string value should follow SQL syntax: comma separated
237
+ # list of fields. For example: "parent,resource_name".
238
+ #
239
+ # The following fields are supported:
240
+ #
241
+ # * resource_name
242
+ # * category
243
+ # * state
244
+ # * parent
245
+ #
246
+ # The following fields are supported when compare_duration is set:
247
+ #
248
+ # * state_change
249
+ # @!attribute [rw] read_time
250
+ # @return [Google::Protobuf::Timestamp]
251
+ # Time used as a reference point when filtering findings. The filter is
252
+ # limited to findings existing at the supplied time and their values are
253
+ # those at that specific time. Absence of this field will default to the
254
+ # API's version of NOW.
255
+ # @!attribute [rw] compare_duration
256
+ # @return [Google::Protobuf::Duration]
257
+ # When compare_duration is set, the GroupResult's "state_change" attribute is
258
+ # updated to indicate whether the finding had its state changed, the
259
+ # finding's state remained unchanged, or if the finding was added during the
260
+ # compare_duration period of time that precedes the read_time. This is the
261
+ # time between (read_time - compare_duration) and read_time.
262
+ #
263
+ # The state_change value is derived based on the presence and state of the
264
+ # finding at the two points in time. Intermediate state changes between the
265
+ # two times don't affect the result. For example, the results aren't affected
266
+ # if the finding is made inactive and then active again.
267
+ #
268
+ # Possible "state_change" values when compare_duration is specified:
269
+ #
270
+ # * "CHANGED": indicates that the finding was present at the start of
271
+ # compare_duration, but changed its state at read_time.
272
+ # * "UNCHANGED": indicates that the finding was present at the start of
273
+ # compare_duration and did not change state at read_time.
274
+ # * "ADDED": indicates that the finding was not present at the start
275
+ # of compare_duration, but was present at read_time.
276
+ #
277
+ # If compare_duration is not specified, then the only possible state_change
278
+ # is "UNUSED", which will be the state_change set for all findings present
279
+ # at read_time.
280
+ #
281
+ # If this field is set then `state_change` must be a specified field in
282
+ # `group_by`.
283
+ # @!attribute [rw] page_token
284
+ # @return [String]
285
+ # The value returned by the last `GroupFindingsResponse`; indicates
286
+ # that this is a continuation of a prior `GroupFindings` call, and
287
+ # that the system should return the next page of data.
288
+ # @!attribute [rw] page_size
289
+ # @return [Integer]
290
+ # The maximum number of results to return in a single response. Default is
291
+ # 10, minimum is 1, maximum is 1000.
292
+ class GroupFindingsRequest; end
293
+
294
+ # Response message for group by findings.
295
+ # @!attribute [rw] group_by_results
296
+ # @return [Array<Google::Cloud::SecurityCenter::V1::GroupResult>]
297
+ # Group results. There exists an element for each existing unique
298
+ # combination of property/values. The element contains a count for the number
299
+ # of times those specific property/values appear.
300
+ # @!attribute [rw] read_time
301
+ # @return [Google::Protobuf::Timestamp]
302
+ # Time used for executing the groupBy request.
303
+ # @!attribute [rw] next_page_token
304
+ # @return [String]
305
+ # Token to retrieve the next page of results, or empty if there are no more
306
+ # results.
307
+ # @!attribute [rw] total_size
308
+ # @return [Integer]
309
+ # The total number of results matching the query.
310
+ class GroupFindingsResponse; end
311
+
312
+ # Result containing the properties and count of a groupBy request.
313
+ # @!attribute [rw] properties
314
+ # @return [Hash{String => Google::Protobuf::Value}]
315
+ # Properties matching the groupBy fields in the request.
316
+ # @!attribute [rw] count
317
+ # @return [Integer]
318
+ # Total count of resources for the given properties.
319
+ class GroupResult; end
320
+
321
+ # Request message for listing sources.
322
+ # @!attribute [rw] parent
323
+ # @return [String]
324
+ # Resource name of the parent of sources to list. Its format should be
325
+ # "organizations/[organization_id]".
326
+ # @!attribute [rw] page_token
327
+ # @return [String]
328
+ # The value returned by the last `ListSourcesResponse`; indicates
329
+ # that this is a continuation of a prior `ListSources` call, and
330
+ # that the system should return the next page of data.
331
+ # @!attribute [rw] page_size
332
+ # @return [Integer]
333
+ # The maximum number of results to return in a single response. Default is
334
+ # 10, minimum is 1, maximum is 1000.
335
+ class ListSourcesRequest; end
336
+
337
+ # Response message for listing sources.
338
+ # @!attribute [rw] sources
339
+ # @return [Array<Google::Cloud::SecurityCenter::V1::Source>]
340
+ # Sources belonging to the requested parent.
341
+ # @!attribute [rw] next_page_token
342
+ # @return [String]
343
+ # Token to retrieve the next page of results, or empty if there are no more
344
+ # results.
345
+ class ListSourcesResponse; end
346
+
347
+ # Request message for listing assets.
348
+ # @!attribute [rw] parent
349
+ # @return [String]
350
+ # Name of the organization assets should belong to. Its format is
351
+ # "organizations/[organization_id]".
352
+ # @!attribute [rw] filter
353
+ # @return [String]
354
+ # Expression that defines the filter to apply across assets.
355
+ # The expression is a list of zero or more restrictions combined via logical
356
+ # operators `AND` and `OR`.
357
+ # Parentheses are supported, and `OR` has higher precedence than `AND`.
358
+ #
359
+ # Restrictions have the form `<field> <operator> <value>` and may have a `-`
360
+ # character in front of them to indicate negation. The fields map to those
361
+ # defined in the Asset resource. Examples include:
362
+ #
363
+ # * name
364
+ # * security_center_properties.resource_name
365
+ # * resource_properties.a_property
366
+ # * security_marks.marks.marka
367
+ #
368
+ # The supported operators are:
369
+ #
370
+ # * `=` for all value types.
371
+ # * `>`, `<`, `>=`, `<=` for integer values.
372
+ # * `:`, meaning substring matching, for strings.
373
+ #
374
+ # The supported value types are:
375
+ #
376
+ # * string literals in quotes.
377
+ # * integer literals without quotes.
378
+ # * boolean literals `true` and `false` without quotes.
379
+ #
380
+ # The following are the allowed field and operator combinations:
381
+ # name | `=`
382
+ # update_time | `>`, `<`, `>=`, `<=`
383
+ # iam_policy.policy_blob | '=', ':'
384
+ # resource_properties | '=', ':', `>`, `<`, `>=`, `<=`
385
+ # security_marks | '=', ':'
386
+ # security_center_properties.resource_name | '=', ':'
387
+ # security_center_properties.resource_type | '=', ':'
388
+ # security_center_properties.resource_parent | '=', ':'
389
+ # security_center_properties.resource_project | '=', ':'
390
+ # security_center_properties.resource_owners | '=', ':'
391
+ #
392
+ # For example, `resource_properties.size = 100` is a valid filter string.
393
+ # @!attribute [rw] order_by
394
+ # @return [String]
395
+ # Expression that defines what fields and order to use for sorting. The
396
+ # string value should follow SQL syntax: comma separated list of fields. For
397
+ # example: "name,resource_properties.a_property". The default sorting order
398
+ # is ascending. To specify descending order for a field, a suffix " desc"
399
+ # should be appended to the field name. For example: "name
400
+ # desc,resource_properties.a_property". Redundant space characters in the
401
+ # syntax are insignificant. "name desc,resource_properties.a_property" and "
402
+ # name desc , resource_properties.a_property " are equivalent.
403
+ #
404
+ # The following fields are supported:
405
+ # name
406
+ # update_time
407
+ # resource_properties
408
+ # security_marks
409
+ # security_center_properties.resource_name
410
+ # security_center_properties.resource_parent
411
+ # security_center_properties.resource_project
412
+ # security_center_properties.resource_type
413
+ # @!attribute [rw] read_time
414
+ # @return [Google::Protobuf::Timestamp]
415
+ # Time used as a reference point when filtering assets. The filter is limited
416
+ # to assets existing at the supplied time and their values are those at that
417
+ # specific time. Absence of this field will default to the API's version of
418
+ # NOW.
419
+ # @!attribute [rw] compare_duration
420
+ # @return [Google::Protobuf::Duration]
421
+ # When compare_duration is set, the ListAssetsResult's "state_change"
422
+ # attribute is updated to indicate whether the asset was added, removed, or
423
+ # remained present during the compare_duration period of time that precedes
424
+ # the read_time. This is the time between (read_time - compare_duration) and
425
+ # read_time.
426
+ #
427
+ # The state_change value is derived based on the presence of the asset at the
428
+ # two points in time. Intermediate state changes between the two times don't
429
+ # affect the result. For example, the results aren't affected if the asset is
430
+ # removed and re-created again.
431
+ #
432
+ # Possible "state_change" values when compare_duration is specified:
433
+ #
434
+ # * "ADDED": indicates that the asset was not present at the start of
435
+ # compare_duration, but present at read_time.
436
+ # * "REMOVED": indicates that the asset was present at the start of
437
+ # compare_duration, but not present at read_time.
438
+ # * "ACTIVE": indicates that the asset was present at both the
439
+ # start and the end of the time period defined by
440
+ # compare_duration and read_time.
441
+ #
442
+ # If compare_duration is not specified, then the only possible state_change
443
+ # is "UNUSED", which will be the state_change set for all assets present at
444
+ # read_time.
445
+ # @!attribute [rw] field_mask
446
+ # @return [Google::Protobuf::FieldMask]
447
+ # Optional.
448
+ #
449
+ # A field mask to specify the ListAssetsResult fields to be listed in the
450
+ # response.
451
+ # An empty field mask will list all fields.
452
+ # @!attribute [rw] page_token
453
+ # @return [String]
454
+ # The value returned by the last `ListAssetsResponse`; indicates
455
+ # that this is a continuation of a prior `ListAssets` call, and
456
+ # that the system should return the next page of data.
457
+ # @!attribute [rw] page_size
458
+ # @return [Integer]
459
+ # The maximum number of results to return in a single response. Default is
460
+ # 10, minimum is 1, maximum is 1000.
461
+ class ListAssetsRequest; end
462
+
463
+ # Response message for listing assets.
464
+ # @!attribute [rw] list_assets_results
465
+ # @return [Array<Google::Cloud::SecurityCenter::V1::ListAssetsResponse::ListAssetsResult>]
466
+ # Assets matching the list request.
467
+ # @!attribute [rw] read_time
468
+ # @return [Google::Protobuf::Timestamp]
469
+ # Time used for executing the list request.
470
+ # @!attribute [rw] next_page_token
471
+ # @return [String]
472
+ # Token to retrieve the next page of results, or empty if there are no more
473
+ # results.
474
+ # @!attribute [rw] total_size
475
+ # @return [Integer]
476
+ # The total number of assets matching the query.
477
+ class ListAssetsResponse
478
+ # Result containing the Asset and its State.
479
+ # @!attribute [rw] asset
480
+ # @return [Google::Cloud::SecurityCenter::V1::Asset]
481
+ # Asset matching the search request.
482
+ # @!attribute [rw] state_change
483
+ # @return [Google::Cloud::SecurityCenter::V1::ListAssetsResponse::ListAssetsResult::StateChange]
484
+ # State change of the asset between the points in time.
485
+ class ListAssetsResult
486
+ # The change in state of the asset.
487
+ #
488
+ # When querying across two points in time this describes
489
+ # the change between the two points: ADDED, REMOVED, or ACTIVE.
490
+ # If there was no compare_duration supplied in the request the state change
491
+ # will be: UNUSED
492
+ module StateChange
493
+ # State change is unused, this is the canonical default for this enum.
494
+ UNUSED = 0
495
+
496
+ # Asset was added between the points in time.
497
+ ADDED = 1
498
+
499
+ # Asset was removed between the points in time.
500
+ REMOVED = 2
501
+
502
+ # Asset was present at both point(s) in time.
503
+ ACTIVE = 3
504
+ end
505
+ end
506
+ end
507
+
508
+ # Request message for listing findings.
509
+ # @!attribute [rw] parent
510
+ # @return [String]
511
+ # Name of the source the findings belong to. Its format is
512
+ # "organizations/[organization_id]/sources/[source_id]". To list across all
513
+ # sources provide a source_id of `-`. For example:
514
+ # organizations/123/sources/-
515
+ # @!attribute [rw] filter
516
+ # @return [String]
517
+ # Expression that defines the filter to apply across findings.
518
+ # The expression is a list of one or more restrictions combined via logical
519
+ # operators `AND` and `OR`.
520
+ # Parentheses are supported, and `OR` has higher precedence than `AND`.
521
+ #
522
+ # Restrictions have the form `<field> <operator> <value>` and may have a `-`
523
+ # character in front of them to indicate negation. Examples include:
524
+ #
525
+ # * name
526
+ # * source_properties.a_property
527
+ # * security_marks.marks.marka
528
+ #
529
+ # The supported operators are:
530
+ #
531
+ # * `=` for all value types.
532
+ # * `>`, `<`, `>=`, `<=` for integer values.
533
+ # * `:`, meaning substring matching, for strings.
534
+ #
535
+ # The supported value types are:
536
+ #
537
+ # * string literals in quotes.
538
+ # * integer literals without quotes.
539
+ # * boolean literals `true` and `false` without quotes.
540
+ #
541
+ # The following field and operator combinations are supported:
542
+ # name | `=`
543
+ # parent | '=', ':'
544
+ # resource_name | '=', ':'
545
+ # state | '=', ':'
546
+ # category | '=', ':'
547
+ # external_uri | '=', ':'
548
+ # event_time | `>`, `<`, `>=`, `<=`
549
+ # security_marks | '=', ':'
550
+ # source_properties | '=', ':', `>`, `<`, `>=`, `<=`
551
+ #
552
+ # For example, `source_properties.size = 100` is a valid filter string.
553
+ # @!attribute [rw] order_by
554
+ # @return [String]
555
+ # Expression that defines what fields and order to use for sorting. The
556
+ # string value should follow SQL syntax: comma separated list of fields. For
557
+ # example: "name,resource_properties.a_property". The default sorting order
558
+ # is ascending. To specify descending order for a field, a suffix " desc"
559
+ # should be appended to the field name. For example: "name
560
+ # desc,source_properties.a_property". Redundant space characters in the
561
+ # syntax are insignificant. "name desc,source_properties.a_property" and "
562
+ # name desc , source_properties.a_property " are equivalent.
563
+ #
564
+ # The following fields are supported:
565
+ # name
566
+ # parent
567
+ # state
568
+ # category
569
+ # resource_name
570
+ # event_time
571
+ # source_properties
572
+ # security_marks
573
+ # @!attribute [rw] read_time
574
+ # @return [Google::Protobuf::Timestamp]
575
+ # Time used as a reference point when filtering findings. The filter is
576
+ # limited to findings existing at the supplied time and their values are
577
+ # those at that specific time. Absence of this field will default to the
578
+ # API's version of NOW.
579
+ # @!attribute [rw] compare_duration
580
+ # @return [Google::Protobuf::Duration]
581
+ # When compare_duration is set, the ListFindingsResult's "state_change"
582
+ # attribute is updated to indicate whether the finding had its state changed,
583
+ # the finding's state remained unchanged, or if the finding was added in any
584
+ # state during the compare_duration period of time that precedes the
585
+ # read_time. This is the time between (read_time - compare_duration) and
586
+ # read_time.
587
+ #
588
+ # The state_change value is derived based on the presence and state of the
589
+ # finding at the two points in time. Intermediate state changes between the
590
+ # two times don't affect the result. For example, the results aren't affected
591
+ # if the finding is made inactive and then active again.
592
+ #
593
+ # Possible "state_change" values when compare_duration is specified:
594
+ #
595
+ # * "CHANGED": indicates that the finding was present at the start of
596
+ # compare_duration, but changed its state at read_time.
597
+ # * "UNCHANGED": indicates that the finding was present at the start of
598
+ # compare_duration and did not change state at read_time.
599
+ # * "ADDED": indicates that the finding was not present at the start
600
+ # of compare_duration, but was present at read_time.
601
+ #
602
+ # If compare_duration is not specified, then the only possible state_change
603
+ # is "UNUSED", which will be the state_change set for all findings present at
604
+ # read_time.
605
+ # @!attribute [rw] field_mask
606
+ # @return [Google::Protobuf::FieldMask]
607
+ # Optional.
608
+ #
609
+ # A field mask to specify the Finding fields to be listed in the response.
610
+ # An empty field mask will list all fields.
611
+ # @!attribute [rw] page_token
612
+ # @return [String]
613
+ # The value returned by the last `ListFindingsResponse`; indicates
614
+ # that this is a continuation of a prior `ListFindings` call, and
615
+ # that the system should return the next page of data.
616
+ # @!attribute [rw] page_size
617
+ # @return [Integer]
618
+ # The maximum number of results to return in a single response. Default is
619
+ # 10, minimum is 1, maximum is 1000.
620
+ class ListFindingsRequest; end
621
+
622
+ # Response message for listing findings.
623
+ # @!attribute [rw] list_findings_results
624
+ # @return [Array<Google::Cloud::SecurityCenter::V1::ListFindingsResponse::ListFindingsResult>]
625
+ # Findings matching the list request.
626
+ # @!attribute [rw] read_time
627
+ # @return [Google::Protobuf::Timestamp]
628
+ # Time used for executing the list request.
629
+ # @!attribute [rw] next_page_token
630
+ # @return [String]
631
+ # Token to retrieve the next page of results, or empty if there are no more
632
+ # results.
633
+ # @!attribute [rw] total_size
634
+ # @return [Integer]
635
+ # The total number of findings matching the query.
636
+ class ListFindingsResponse
637
+ # Result containing the Finding and its StateChange.
638
+ # @!attribute [rw] finding
639
+ # @return [Google::Cloud::SecurityCenter::V1::Finding]
640
+ # Finding matching the search request.
641
+ # @!attribute [rw] state_change
642
+ # @return [Google::Cloud::SecurityCenter::V1::ListFindingsResponse::ListFindingsResult::StateChange]
643
+ # State change of the finding between the points in time.
644
+ class ListFindingsResult
645
+ # The change in state of the finding.
646
+ #
647
+ # When querying across two points in time this describes
648
+ # the change in the finding between the two points: CHANGED, UNCHANGED,
649
+ # ADDED, or REMOVED. Findings can not be deleted, so REMOVED implies that
650
+ # the finding at timestamp does not match the filter specified, but it did
651
+ # at timestamp - compare_duration. If there was no compare_duration
652
+ # supplied in the request the state change will be: UNUSED
653
+ module StateChange
654
+ # State change is unused, this is the canonical default for this enum.
655
+ UNUSED = 0
656
+
657
+ # The finding has changed state in some way between the points in time
658
+ # and existed at both points.
659
+ CHANGED = 1
660
+
661
+ # The finding has not changed state between the points in time and
662
+ # existed at both points.
663
+ UNCHANGED = 2
664
+
665
+ # The finding was created between the points in time.
666
+ ADDED = 3
667
+
668
+ # The finding at timestamp does not match the filter specified, but it
669
+ # did at timestamp - compare_duration.
670
+ REMOVED = 4
671
+ end
672
+ end
673
+ end
674
+
675
+ # Request message for updating a finding's state.
676
+ # @!attribute [rw] name
677
+ # @return [String]
678
+ # The relative resource name of the finding. See:
679
+ # https://cloud.google.com/apis/design/resource_names#relative_resource_name
680
+ # Example:
681
+ # "organizations/123/sources/456/finding/789".
682
+ # @!attribute [rw] state
683
+ # @return [Google::Cloud::SecurityCenter::V1::Finding::State]
684
+ # The desired State of the finding.
685
+ # @!attribute [rw] start_time
686
+ # @return [Google::Protobuf::Timestamp]
687
+ # The time at which the updated state takes effect.
688
+ class SetFindingStateRequest; end
689
+
690
+ # Request message for running asset discovery for an organization.
691
+ # @!attribute [rw] parent
692
+ # @return [String]
693
+ # Name of the organization to run asset discovery for. Its format is
694
+ # "organizations/[organization_id]".
695
+ class RunAssetDiscoveryRequest; end
696
+
697
+ # Request message for updating or creating a finding.
698
+ # @!attribute [rw] finding
699
+ # @return [Google::Cloud::SecurityCenter::V1::Finding]
700
+ # The finding resource to update or create if it does not already exist.
701
+ # parent, security_marks, and update_time will be ignored.
702
+ #
703
+ # In the case of creation, the finding id portion of the name must be
704
+ # alphanumeric and less than or equal to 32 characters and greater than 0
705
+ # characters in length.
706
+ # @!attribute [rw] update_mask
707
+ # @return [Google::Protobuf::FieldMask]
708
+ # The FieldMask to use when updating the finding resource. This field should
709
+ # not be specified when creating a finding.
710
+ #
711
+ # When updating a finding, an empty mask is treated as updating all mutable
712
+ # fields and replacing source_properties. Individual source_properties can
713
+ # be added/updated by using "source_properties.<property key>" in the field
714
+ # mask.
715
+ class UpdateFindingRequest; end
716
+
717
+ # Request message for updating an organization's settings.
718
+ # @!attribute [rw] organization_settings
719
+ # @return [Google::Cloud::SecurityCenter::V1::OrganizationSettings]
720
+ # The organization settings resource to update.
721
+ # @!attribute [rw] update_mask
722
+ # @return [Google::Protobuf::FieldMask]
723
+ # The FieldMask to use when updating the settings resource.
724
+ #
725
+ # If empty all mutable fields will be updated.
726
+ class UpdateOrganizationSettingsRequest; end
727
+
728
+ # Request message for updating a source.
729
+ # @!attribute [rw] source
730
+ # @return [Google::Cloud::SecurityCenter::V1::Source]
731
+ # The source resource to update.
732
+ # @!attribute [rw] update_mask
733
+ # @return [Google::Protobuf::FieldMask]
734
+ # The FieldMask to use when updating the source resource.
735
+ #
736
+ # If empty all mutable fields will be updated.
737
+ class UpdateSourceRequest; end
738
+
739
+ # Request message for updating a SecurityMarks resource.
740
+ # @!attribute [rw] security_marks
741
+ # @return [Google::Cloud::SecurityCenter::V1::SecurityMarks]
742
+ # The security marks resource to update.
743
+ # @!attribute [rw] update_mask
744
+ # @return [Google::Protobuf::FieldMask]
745
+ # The FieldMask to use when updating the security marks resource.
746
+ #
747
+ # The field mask must not contain duplicate fields.
748
+ # If empty or set to "marks", all marks will be replaced. Individual
749
+ # marks can be updated using "marks.<mark_key>".
750
+ # @!attribute [rw] start_time
751
+ # @return [Google::Protobuf::Timestamp]
752
+ # The time at which the updated SecurityMarks take effect.
753
+ # If not set uses current server time. Updates will be applied to the
754
+ # SecurityMarks that are active immediately preceding this time.
755
+ class UpdateSecurityMarksRequest; end
756
+ end
757
+ end
758
+ end
759
+ end