google-cloud-security_center 0.10.0 → 1.0.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 (78) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +3 -2
  3. data/AUTHENTICATION.md +51 -54
  4. data/LICENSE.md +203 -0
  5. data/MIGRATING.md +279 -0
  6. data/README.md +36 -25
  7. data/lib/{google/cloud/security_center/v1/doc/google/protobuf/empty.rb → google-cloud-security_center.rb} +4 -14
  8. data/lib/google/cloud/security_center.rb +81 -117
  9. data/lib/google/cloud/security_center/version.rb +6 -2
  10. metadata +89 -111
  11. data/LICENSE +0 -201
  12. data/lib/google/cloud/security_center/v1.rb +0 -149
  13. data/lib/google/cloud/security_center/v1/asset_pb.rb +0 -41
  14. data/lib/google/cloud/security_center/v1/credentials.rb +0 -41
  15. data/lib/google/cloud/security_center/v1/doc/google/cloud/securitycenter/v1/asset.rb +0 -105
  16. data/lib/google/cloud/security_center/v1/doc/google/cloud/securitycenter/v1/finding.rb +0 -97
  17. data/lib/google/cloud/security_center/v1/doc/google/cloud/securitycenter/v1/notification_config.rb +0 -75
  18. data/lib/google/cloud/security_center/v1/doc/google/cloud/securitycenter/v1/organization_settings.rb +0 -72
  19. data/lib/google/cloud/security_center/v1/doc/google/cloud/securitycenter/v1/security_marks.rb +0 -45
  20. data/lib/google/cloud/security_center/v1/doc/google/cloud/securitycenter/v1/securitycenter_service.rb +0 -912
  21. data/lib/google/cloud/security_center/v1/doc/google/cloud/securitycenter/v1/source.rb +0 -50
  22. data/lib/google/cloud/security_center/v1/doc/google/iam/v1/iam_policy.rb +0 -64
  23. data/lib/google/cloud/security_center/v1/doc/google/iam/v1/options.rb +0 -33
  24. data/lib/google/cloud/security_center/v1/doc/google/iam/v1/policy.rb +0 -151
  25. data/lib/google/cloud/security_center/v1/doc/google/longrunning/operations.rb +0 -51
  26. data/lib/google/cloud/security_center/v1/doc/google/protobuf/any.rb +0 -131
  27. data/lib/google/cloud/security_center/v1/doc/google/protobuf/duration.rb +0 -91
  28. data/lib/google/cloud/security_center/v1/doc/google/protobuf/field_mask.rb +0 -222
  29. data/lib/google/cloud/security_center/v1/doc/google/protobuf/struct.rb +0 -74
  30. data/lib/google/cloud/security_center/v1/doc/google/protobuf/timestamp.rb +0 -113
  31. data/lib/google/cloud/security_center/v1/doc/google/rpc/status.rb +0 -39
  32. data/lib/google/cloud/security_center/v1/doc/google/type/expr.rb +0 -45
  33. data/lib/google/cloud/security_center/v1/finding_pb.rb +0 -36
  34. data/lib/google/cloud/security_center/v1/helpers.rb +0 -96
  35. data/lib/google/cloud/security_center/v1/notification_config_pb.rb +0 -28
  36. data/lib/google/cloud/security_center/v1/notification_message_pb.rb +0 -20
  37. data/lib/google/cloud/security_center/v1/organization_settings_pb.rb +0 -30
  38. data/lib/google/cloud/security_center/v1/run_asset_discovery_response_pb.rb +0 -25
  39. data/lib/google/cloud/security_center/v1/security_center_client.rb +0 -2135
  40. data/lib/google/cloud/security_center/v1/security_center_client_config.json +0 -141
  41. data/lib/google/cloud/security_center/v1/security_marks_pb.rb +0 -18
  42. data/lib/google/cloud/security_center/v1/securitycenter_service_pb.rb +0 -230
  43. data/lib/google/cloud/security_center/v1/securitycenter_service_services_pb.rb +0 -100
  44. data/lib/google/cloud/security_center/v1/source_pb.rb +0 -19
  45. data/lib/google/cloud/security_center/v1p1beta1.rb +0 -149
  46. data/lib/google/cloud/security_center/v1p1beta1/asset_pb.rb +0 -41
  47. data/lib/google/cloud/security_center/v1p1beta1/credentials.rb +0 -41
  48. data/lib/google/cloud/security_center/v1p1beta1/doc/google/cloud/securitycenter/v1p1beta1/asset.rb +0 -105
  49. data/lib/google/cloud/security_center/v1p1beta1/doc/google/cloud/securitycenter/v1p1beta1/finding.rb +0 -96
  50. data/lib/google/cloud/security_center/v1p1beta1/doc/google/cloud/securitycenter/v1p1beta1/notification_config.rb +0 -87
  51. data/lib/google/cloud/security_center/v1p1beta1/doc/google/cloud/securitycenter/v1p1beta1/organization_settings.rb +0 -72
  52. data/lib/google/cloud/security_center/v1p1beta1/doc/google/cloud/securitycenter/v1p1beta1/security_marks.rb +0 -45
  53. data/lib/google/cloud/security_center/v1p1beta1/doc/google/cloud/securitycenter/v1p1beta1/securitycenter_service.rb +0 -923
  54. data/lib/google/cloud/security_center/v1p1beta1/doc/google/cloud/securitycenter/v1p1beta1/source.rb +0 -49
  55. data/lib/google/cloud/security_center/v1p1beta1/doc/google/iam/v1/iam_policy.rb +0 -64
  56. data/lib/google/cloud/security_center/v1p1beta1/doc/google/iam/v1/options.rb +0 -33
  57. data/lib/google/cloud/security_center/v1p1beta1/doc/google/iam/v1/policy.rb +0 -151
  58. data/lib/google/cloud/security_center/v1p1beta1/doc/google/longrunning/operations.rb +0 -51
  59. data/lib/google/cloud/security_center/v1p1beta1/doc/google/protobuf/any.rb +0 -131
  60. data/lib/google/cloud/security_center/v1p1beta1/doc/google/protobuf/duration.rb +0 -91
  61. data/lib/google/cloud/security_center/v1p1beta1/doc/google/protobuf/empty.rb +0 -29
  62. data/lib/google/cloud/security_center/v1p1beta1/doc/google/protobuf/field_mask.rb +0 -222
  63. data/lib/google/cloud/security_center/v1p1beta1/doc/google/protobuf/struct.rb +0 -74
  64. data/lib/google/cloud/security_center/v1p1beta1/doc/google/protobuf/timestamp.rb +0 -113
  65. data/lib/google/cloud/security_center/v1p1beta1/doc/google/rpc/status.rb +0 -39
  66. data/lib/google/cloud/security_center/v1p1beta1/doc/google/type/expr.rb +0 -45
  67. data/lib/google/cloud/security_center/v1p1beta1/finding_pb.rb +0 -36
  68. data/lib/google/cloud/security_center/v1p1beta1/helpers.rb +0 -79
  69. data/lib/google/cloud/security_center/v1p1beta1/notification_config_pb.rb +0 -34
  70. data/lib/google/cloud/security_center/v1p1beta1/notification_message_pb.rb +0 -21
  71. data/lib/google/cloud/security_center/v1p1beta1/organization_settings_pb.rb +0 -30
  72. data/lib/google/cloud/security_center/v1p1beta1/run_asset_discovery_response_pb.rb +0 -25
  73. data/lib/google/cloud/security_center/v1p1beta1/security_center_client.rb +0 -2110
  74. data/lib/google/cloud/security_center/v1p1beta1/security_center_client_config.json +0 -141
  75. data/lib/google/cloud/security_center/v1p1beta1/security_marks_pb.rb +0 -18
  76. data/lib/google/cloud/security_center/v1p1beta1/securitycenter_service_pb.rb +0 -234
  77. data/lib/google/cloud/security_center/v1p1beta1/securitycenter_service_services_pb.rb +0 -103
  78. data/lib/google/cloud/security_center/v1p1beta1/source_pb.rb +0 -19
@@ -1,39 +0,0 @@
1
- # Copyright 2020 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 Rpc
18
- # The `Status` type defines a logical error model that is suitable for
19
- # different programming environments, including REST APIs and RPC APIs. It is
20
- # used by [gRPC](https://github.com/grpc). Each `Status` message contains
21
- # three pieces of data: error code, error message, and error details.
22
- #
23
- # You can find out more about this error model and how to work with it in the
24
- # [API Design Guide](https://cloud.google.com/apis/design/errors).
25
- # @!attribute [rw] code
26
- # @return [Integer]
27
- # The status code, which should be an enum value of {Google::Rpc::Code}.
28
- # @!attribute [rw] message
29
- # @return [String]
30
- # A developer-facing error message, which should be in English. Any
31
- # user-facing error message should be localized and sent in the
32
- # {Google::Rpc::Status#details} field, or localized by the client.
33
- # @!attribute [rw] details
34
- # @return [Array<Google::Protobuf::Any>]
35
- # A list of messages that carry the error details. There is a common set of
36
- # message types for APIs to use.
37
- class Status; end
38
- end
39
- end
@@ -1,45 +0,0 @@
1
- # Copyright 2020 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 Type
18
- # Represents an expression text. Example:
19
- #
20
- # title: "User account presence"
21
- # description: "Determines whether the request has a user account"
22
- # expression: "size(request.user) > 0"
23
- # @!attribute [rw] expression
24
- # @return [String]
25
- # Textual representation of an expression in
26
- # Common Expression Language syntax.
27
- #
28
- # The application context of the containing message determines which
29
- # well-known feature set of CEL is supported.
30
- # @!attribute [rw] title
31
- # @return [String]
32
- # An optional title for the expression, i.e. a short string describing
33
- # its purpose. This can be used e.g. in UIs which allow to enter the
34
- # expression.
35
- # @!attribute [rw] description
36
- # @return [String]
37
- # An optional description of the expression. This is a longer text which
38
- # describes the expression, e.g. when hovered over it in a UI.
39
- # @!attribute [rw] location
40
- # @return [String]
41
- # An optional string indicating the location of the expression for error
42
- # reporting, e.g. a file name and a position in the file.
43
- class Expr; end
44
- end
45
- end
@@ -1,36 +0,0 @@
1
- # Generated by the protocol buffer compiler. DO NOT EDIT!
2
- # source: google/cloud/security_center/v1/finding.proto
3
-
4
-
5
- require 'google/protobuf'
6
-
7
- require 'google/api/annotations_pb'
8
- require 'google/api/field_behavior_pb'
9
- require 'google/api/resource_pb'
10
- require 'google/cloud/security_center/v1/security_marks_pb'
11
- require 'google/protobuf/struct_pb'
12
- require 'google/protobuf/timestamp_pb'
13
- Google::Protobuf::DescriptorPool.generated_pool.build do
14
- add_message "google.cloud.securitycenter.v1.Finding" do
15
- optional :name, :string, 1
16
- optional :parent, :string, 2
17
- optional :resource_name, :string, 3
18
- optional :state, :enum, 4, "google.cloud.securitycenter.v1.Finding.State"
19
- optional :category, :string, 5
20
- optional :external_uri, :string, 6
21
- map :source_properties, :string, :message, 7, "google.protobuf.Value"
22
- optional :security_marks, :message, 8, "google.cloud.securitycenter.v1.SecurityMarks"
23
- optional :event_time, :message, 9, "google.protobuf.Timestamp"
24
- optional :create_time, :message, 10, "google.protobuf.Timestamp"
25
- end
26
- add_enum "google.cloud.securitycenter.v1.Finding.State" do
27
- value :STATE_UNSPECIFIED, 0
28
- value :ACTIVE, 1
29
- value :INACTIVE, 2
30
- end
31
- end
32
-
33
- module Google::Cloud::SecurityCenter::V1
34
- Finding = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.securitycenter.v1.Finding").msgclass
35
- Finding::State = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.securitycenter.v1.Finding.State").enummodule
36
- end
@@ -1,96 +0,0 @@
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
- module Google
16
- module Cloud
17
- module SecurityCenter
18
- module V1
19
- class SecurityCenterClient
20
-
21
- # Alias for Google::Cloud::SecurityCenter::V1::SecurityCenterClient.asset_security_marks_path.
22
- # @param organization [String]
23
- # @param asset [String]
24
- # @return [String]
25
- def asset_security_marks_path organization, asset
26
- self.class.asset_security_marks_path organization, asset
27
- end
28
-
29
- # Alias for Google::Cloud::SecurityCenter::V1::SecurityCenterClient.finding_path.
30
- # @param organization [String]
31
- # @param source [String]
32
- # @param finding [String]
33
- # @return [String]
34
- def finding_path organization, source, finding
35
- self.class.finding_path organization, source, finding
36
- end
37
-
38
- # Alias for Google::Cloud::SecurityCenter::V1::SecurityCenterClient.finding_security_marks_path.
39
- # @param organization [String]
40
- # @param source [String]
41
- # @param finding [String]
42
- # @return [String]
43
- def finding_security_marks_path organization, source, finding
44
- self.class.finding_security_marks_path organization, source, finding
45
- end
46
-
47
- # Alias for Google::Cloud::SecurityCenter::V1::SecurityCenterClient.notification_config_path.
48
- # @param organization [String]
49
- # @param notification_config [String]
50
- # @return [String]
51
- def notification_config_path organization, notification_config
52
- self.class.notification_config_path organization, notification_config
53
- end
54
-
55
- # Alias for Google::Cloud::SecurityCenter::V1::SecurityCenterClient.organization_path.
56
- # @param organization [String]
57
- # @return [String]
58
- def organization_path organization
59
- self.class.organization_path organization
60
- end
61
-
62
- # Alias for Google::Cloud::SecurityCenter::V1::SecurityCenterClient.organization_settings_path.
63
- # @param organization [String]
64
- # @return [String]
65
- def organization_settings_path organization
66
- self.class.organization_settings_path organization
67
- end
68
-
69
- # Alias for Google::Cloud::SecurityCenter::V1::SecurityCenterClient.security_marks_path.
70
- # @param organization [String]
71
- # @param asset [String]
72
- # @return [String]
73
- def security_marks_path organization, asset
74
- self.class.security_marks_path organization, asset
75
- end
76
-
77
- # Alias for Google::Cloud::SecurityCenter::V1::SecurityCenterClient.source_path.
78
- # @param organization [String]
79
- # @param source [String]
80
- # @return [String]
81
- def source_path organization, source
82
- self.class.source_path organization, source
83
- end
84
-
85
- # Alias for Google::Cloud::SecurityCenter::V1::SecurityCenterClient.topic_path.
86
- # @param project [String]
87
- # @param topic [String]
88
- # @return [String]
89
- def topic_path project, topic
90
- self.class.topic_path project, topic
91
- end
92
- end
93
- end
94
- end
95
- end
96
- end
@@ -1,28 +0,0 @@
1
- # Generated by the protocol buffer compiler. DO NOT EDIT!
2
- # source: google/cloud/security_center/v1/notification_config.proto
3
-
4
-
5
- require 'google/protobuf'
6
-
7
- require 'google/api/annotations_pb'
8
- require 'google/api/field_behavior_pb'
9
- require 'google/api/resource_pb'
10
- Google::Protobuf::DescriptorPool.generated_pool.build do
11
- add_message "google.cloud.securitycenter.v1.NotificationConfig" do
12
- optional :name, :string, 1
13
- optional :description, :string, 2
14
- optional :pubsub_topic, :string, 3
15
- optional :service_account, :string, 4
16
- oneof :notify_config do
17
- optional :streaming_config, :message, 5, "google.cloud.securitycenter.v1.NotificationConfig.StreamingConfig"
18
- end
19
- end
20
- add_message "google.cloud.securitycenter.v1.NotificationConfig.StreamingConfig" do
21
- optional :filter, :string, 1
22
- end
23
- end
24
-
25
- module Google::Cloud::SecurityCenter::V1
26
- NotificationConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.securitycenter.v1.NotificationConfig").msgclass
27
- NotificationConfig::StreamingConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.securitycenter.v1.NotificationConfig.StreamingConfig").msgclass
28
- end
@@ -1,20 +0,0 @@
1
- # Generated by the protocol buffer compiler. DO NOT EDIT!
2
- # source: google/cloud/security_center/v1/notification_message.proto
3
-
4
-
5
- require 'google/protobuf'
6
-
7
- require 'google/api/annotations_pb'
8
- require 'google/cloud/security_center/v1/finding_pb'
9
- Google::Protobuf::DescriptorPool.generated_pool.build do
10
- add_message "google.cloud.securitycenter.v1.NotificationMessage" do
11
- optional :notification_config_name, :string, 1
12
- oneof :event do
13
- optional :finding, :message, 2, "google.cloud.securitycenter.v1.Finding"
14
- end
15
- end
16
- end
17
-
18
- module Google::Cloud::SecurityCenter::V1
19
- NotificationMessage = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.securitycenter.v1.NotificationMessage").msgclass
20
- end
@@ -1,30 +0,0 @@
1
- # Generated by the protocol buffer compiler. DO NOT EDIT!
2
- # source: google/cloud/security_center/v1/organization_settings.proto
3
-
4
-
5
- require 'google/protobuf'
6
-
7
- require 'google/api/annotations_pb'
8
- require 'google/api/resource_pb'
9
- Google::Protobuf::DescriptorPool.generated_pool.build do
10
- add_message "google.cloud.securitycenter.v1.OrganizationSettings" do
11
- optional :name, :string, 1
12
- optional :enable_asset_discovery, :bool, 2
13
- optional :asset_discovery_config, :message, 3, "google.cloud.securitycenter.v1.OrganizationSettings.AssetDiscoveryConfig"
14
- end
15
- add_message "google.cloud.securitycenter.v1.OrganizationSettings.AssetDiscoveryConfig" do
16
- repeated :project_ids, :string, 1
17
- optional :inclusion_mode, :enum, 2, "google.cloud.securitycenter.v1.OrganizationSettings.AssetDiscoveryConfig.InclusionMode"
18
- end
19
- add_enum "google.cloud.securitycenter.v1.OrganizationSettings.AssetDiscoveryConfig.InclusionMode" do
20
- value :INCLUSION_MODE_UNSPECIFIED, 0
21
- value :INCLUDE_ONLY, 1
22
- value :EXCLUDE, 2
23
- end
24
- end
25
-
26
- module Google::Cloud::SecurityCenter::V1
27
- OrganizationSettings = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.securitycenter.v1.OrganizationSettings").msgclass
28
- OrganizationSettings::AssetDiscoveryConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.securitycenter.v1.OrganizationSettings.AssetDiscoveryConfig").msgclass
29
- OrganizationSettings::AssetDiscoveryConfig::InclusionMode = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.securitycenter.v1.OrganizationSettings.AssetDiscoveryConfig.InclusionMode").enummodule
30
- end
@@ -1,25 +0,0 @@
1
- # Generated by the protocol buffer compiler. DO NOT EDIT!
2
- # source: google/cloud/security_center/v1/run_asset_discovery_response.proto
3
-
4
-
5
- require 'google/protobuf'
6
-
7
- require 'google/api/annotations_pb'
8
- require 'google/protobuf/duration_pb'
9
- Google::Protobuf::DescriptorPool.generated_pool.build do
10
- add_message "google.cloud.securitycenter.v1.RunAssetDiscoveryResponse" do
11
- optional :state, :enum, 1, "google.cloud.securitycenter.v1.RunAssetDiscoveryResponse.State"
12
- optional :duration, :message, 2, "google.protobuf.Duration"
13
- end
14
- add_enum "google.cloud.securitycenter.v1.RunAssetDiscoveryResponse.State" do
15
- value :STATE_UNSPECIFIED, 0
16
- value :COMPLETED, 1
17
- value :SUPERSEDED, 2
18
- value :TERMINATED, 3
19
- end
20
- end
21
-
22
- module Google::Cloud::SecurityCenter::V1
23
- RunAssetDiscoveryResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.securitycenter.v1.RunAssetDiscoveryResponse").msgclass
24
- RunAssetDiscoveryResponse::State = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.securitycenter.v1.RunAssetDiscoveryResponse.State").enummodule
25
- end
@@ -1,2135 +0,0 @@
1
- # Copyright 2020 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
- # EDITING INSTRUCTIONS
16
- # This file was generated from the file
17
- # https://github.com/googleapis/googleapis/blob/master/google/cloud/security_center/v1/securitycenter_service.proto,
18
- # and updates to that file get reflected here through a refresh process.
19
- # For the short term, the refresh process will only be runnable by Google
20
- # engineers.
21
-
22
-
23
- require "json"
24
- require "pathname"
25
-
26
- require "google/gax"
27
- require "google/gax/operation"
28
- require "google/longrunning/operations_client"
29
-
30
- require "google/cloud/security_center/v1/securitycenter_service_pb"
31
- require "google/cloud/security_center/v1/run_asset_discovery_response_pb"
32
- require "google/cloud/security_center/v1/credentials"
33
- require "google/cloud/security_center/version"
34
-
35
- module Google
36
- module Cloud
37
- module SecurityCenter
38
- module V1
39
- # V1 APIs for Security Center service.
40
- #
41
- # @!attribute [r] security_center_stub
42
- # @return [Google::Cloud::SecurityCenter::V1::SecurityCenter::Stub]
43
- class SecurityCenterClient
44
- # @private
45
- attr_reader :security_center_stub
46
-
47
- # The default address of the service.
48
- SERVICE_ADDRESS = "securitycenter.googleapis.com".freeze
49
-
50
- # The default port of the service.
51
- DEFAULT_SERVICE_PORT = 443
52
-
53
- # The default set of gRPC interceptors.
54
- GRPC_INTERCEPTORS = []
55
-
56
- DEFAULT_TIMEOUT = 30
57
-
58
- PAGE_DESCRIPTORS = {
59
- "group_assets" => Google::Gax::PageDescriptor.new(
60
- "page_token",
61
- "next_page_token",
62
- "group_by_results"),
63
- "group_findings" => Google::Gax::PageDescriptor.new(
64
- "page_token",
65
- "next_page_token",
66
- "group_by_results"),
67
- "list_assets" => Google::Gax::PageDescriptor.new(
68
- "page_token",
69
- "next_page_token",
70
- "list_assets_results"),
71
- "list_findings" => Google::Gax::PageDescriptor.new(
72
- "page_token",
73
- "next_page_token",
74
- "list_findings_results"),
75
- "list_notification_configs" => Google::Gax::PageDescriptor.new(
76
- "page_token",
77
- "next_page_token",
78
- "notification_configs"),
79
- "list_sources" => Google::Gax::PageDescriptor.new(
80
- "page_token",
81
- "next_page_token",
82
- "sources")
83
- }.freeze
84
-
85
- private_constant :PAGE_DESCRIPTORS
86
-
87
- # The scopes needed to make gRPC calls to all of the methods defined in
88
- # this service.
89
- ALL_SCOPES = [
90
- "https://www.googleapis.com/auth/cloud-platform"
91
- ].freeze
92
-
93
- class OperationsClient < Google::Longrunning::OperationsClient
94
- self::SERVICE_ADDRESS = SecurityCenterClient::SERVICE_ADDRESS
95
- self::GRPC_INTERCEPTORS = SecurityCenterClient::GRPC_INTERCEPTORS
96
- end
97
-
98
- ASSET_SECURITY_MARKS_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
99
- "organizations/{organization}/assets/{asset}/securityMarks"
100
- )
101
-
102
- private_constant :ASSET_SECURITY_MARKS_PATH_TEMPLATE
103
-
104
- FINDING_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
105
- "organizations/{organization}/sources/{source}/findings/{finding}"
106
- )
107
-
108
- private_constant :FINDING_PATH_TEMPLATE
109
-
110
- FINDING_SECURITY_MARKS_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
111
- "organizations/{organization}/sources/{source}/findings/{finding}/securityMarks"
112
- )
113
-
114
- private_constant :FINDING_SECURITY_MARKS_PATH_TEMPLATE
115
-
116
- NOTIFICATION_CONFIG_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
117
- "organizations/{organization}/notificationConfigs/{notification_config}"
118
- )
119
-
120
- private_constant :NOTIFICATION_CONFIG_PATH_TEMPLATE
121
-
122
- ORGANIZATION_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
123
- "organizations/{organization}"
124
- )
125
-
126
- private_constant :ORGANIZATION_PATH_TEMPLATE
127
-
128
- ORGANIZATION_SETTINGS_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
129
- "organizations/{organization}/organizationSettings"
130
- )
131
-
132
- private_constant :ORGANIZATION_SETTINGS_PATH_TEMPLATE
133
-
134
- SECURITY_MARKS_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
135
- "organizations/{organization}/assets/{asset}/securityMarks"
136
- )
137
-
138
- private_constant :SECURITY_MARKS_PATH_TEMPLATE
139
-
140
- SOURCE_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
141
- "organizations/{organization}/sources/{source}"
142
- )
143
-
144
- private_constant :SOURCE_PATH_TEMPLATE
145
-
146
- TOPIC_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
147
- "projects/{project}/topics/{topic}"
148
- )
149
-
150
- private_constant :TOPIC_PATH_TEMPLATE
151
-
152
- # Returns a fully-qualified asset_security_marks resource name string.
153
- # @deprecated Multi-pattern resource names will have unified creation and parsing helper functions.
154
- # This helper function will be deleted in the next major version.
155
- # @param organization [String]
156
- # @param asset [String]
157
- # @return [String]
158
- def self.asset_security_marks_path organization, asset
159
- ASSET_SECURITY_MARKS_PATH_TEMPLATE.render(
160
- :"organization" => organization,
161
- :"asset" => asset
162
- )
163
- end
164
-
165
- # Returns a fully-qualified finding resource name string.
166
- # @param organization [String]
167
- # @param source [String]
168
- # @param finding [String]
169
- # @return [String]
170
- def self.finding_path organization, source, finding
171
- FINDING_PATH_TEMPLATE.render(
172
- :"organization" => organization,
173
- :"source" => source,
174
- :"finding" => finding
175
- )
176
- end
177
-
178
- # Returns a fully-qualified finding_security_marks resource name string.
179
- # @deprecated Multi-pattern resource names will have unified creation and parsing helper functions.
180
- # This helper function will be deleted in the next major version.
181
- # @param organization [String]
182
- # @param source [String]
183
- # @param finding [String]
184
- # @return [String]
185
- def self.finding_security_marks_path organization, source, finding
186
- FINDING_SECURITY_MARKS_PATH_TEMPLATE.render(
187
- :"organization" => organization,
188
- :"source" => source,
189
- :"finding" => finding
190
- )
191
- end
192
-
193
- # Returns a fully-qualified notification_config resource name string.
194
- # @param organization [String]
195
- # @param notification_config [String]
196
- # @return [String]
197
- def self.notification_config_path organization, notification_config
198
- NOTIFICATION_CONFIG_PATH_TEMPLATE.render(
199
- :"organization" => organization,
200
- :"notification_config" => notification_config
201
- )
202
- end
203
-
204
- # Returns a fully-qualified organization resource name string.
205
- # @param organization [String]
206
- # @return [String]
207
- def self.organization_path organization
208
- ORGANIZATION_PATH_TEMPLATE.render(
209
- :"organization" => organization
210
- )
211
- end
212
-
213
- # Returns a fully-qualified organization_settings resource name string.
214
- # @param organization [String]
215
- # @return [String]
216
- def self.organization_settings_path organization
217
- ORGANIZATION_SETTINGS_PATH_TEMPLATE.render(
218
- :"organization" => organization
219
- )
220
- end
221
-
222
- # Returns a fully-qualified security_marks resource name string.
223
- # @param organization [String]
224
- # @param asset [String]
225
- # @return [String]
226
- def self.security_marks_path organization, asset
227
- SECURITY_MARKS_PATH_TEMPLATE.render(
228
- :"organization" => organization,
229
- :"asset" => asset
230
- )
231
- end
232
-
233
- # Returns a fully-qualified source resource name string.
234
- # @param organization [String]
235
- # @param source [String]
236
- # @return [String]
237
- def self.source_path organization, source
238
- SOURCE_PATH_TEMPLATE.render(
239
- :"organization" => organization,
240
- :"source" => source
241
- )
242
- end
243
-
244
- # Returns a fully-qualified topic resource name string.
245
- # @param project [String]
246
- # @param topic [String]
247
- # @return [String]
248
- def self.topic_path project, topic
249
- TOPIC_PATH_TEMPLATE.render(
250
- :"project" => project,
251
- :"topic" => topic
252
- )
253
- end
254
-
255
- # @param credentials [Google::Auth::Credentials, String, Hash, GRPC::Core::Channel, GRPC::Core::ChannelCredentials, Proc]
256
- # Provides the means for authenticating requests made by the client. This parameter can
257
- # be many types.
258
- # A `Google::Auth::Credentials` uses a the properties of its represented keyfile for
259
- # authenticating requests made by this client.
260
- # A `String` will be treated as the path to the keyfile to be used for the construction of
261
- # credentials for this client.
262
- # A `Hash` will be treated as the contents of a keyfile to be used for the construction of
263
- # credentials for this client.
264
- # A `GRPC::Core::Channel` will be used to make calls through.
265
- # A `GRPC::Core::ChannelCredentials` for the setting up the RPC client. The channel credentials
266
- # should already be composed with a `GRPC::Core::CallCredentials` object.
267
- # A `Proc` will be used as an updater_proc for the Grpc channel. The proc transforms the
268
- # metadata for requests, generally, to give OAuth credentials.
269
- # @param scopes [Array<String>]
270
- # The OAuth scopes for this service. This parameter is ignored if
271
- # an updater_proc is supplied.
272
- # @param client_config [Hash]
273
- # A Hash for call options for each method. See
274
- # Google::Gax#construct_settings for the structure of
275
- # this data. Falls back to the default config if not specified
276
- # or the specified config is missing data points.
277
- # @param timeout [Numeric]
278
- # The default timeout, in seconds, for calls made through this client.
279
- # @param metadata [Hash]
280
- # Default metadata to be sent with each request. This can be overridden on a per call basis.
281
- # @param service_address [String]
282
- # Override for the service hostname, or `nil` to leave as the default.
283
- # @param service_port [Integer]
284
- # Override for the service port, or `nil` to leave as the default.
285
- # @param exception_transformer [Proc]
286
- # An optional proc that intercepts any exceptions raised during an API call to inject
287
- # custom error handling.
288
- def initialize \
289
- credentials: nil,
290
- scopes: ALL_SCOPES,
291
- client_config: {},
292
- timeout: DEFAULT_TIMEOUT,
293
- metadata: nil,
294
- service_address: nil,
295
- service_port: nil,
296
- exception_transformer: nil,
297
- lib_name: nil,
298
- lib_version: ""
299
- # These require statements are intentionally placed here to initialize
300
- # the gRPC module only when it's required.
301
- # See https://github.com/googleapis/toolkit/issues/446
302
- require "google/gax/grpc"
303
- require "google/cloud/security_center/v1/securitycenter_service_services_pb"
304
-
305
- credentials ||= Google::Cloud::SecurityCenter::V1::Credentials.default
306
-
307
- @operations_client = OperationsClient.new(
308
- credentials: credentials,
309
- scopes: scopes,
310
- client_config: client_config,
311
- timeout: timeout,
312
- lib_name: lib_name,
313
- service_address: service_address,
314
- service_port: service_port,
315
- lib_version: lib_version,
316
- metadata: metadata,
317
- )
318
-
319
- if credentials.is_a?(String) || credentials.is_a?(Hash)
320
- updater_proc = Google::Cloud::SecurityCenter::V1::Credentials.new(credentials).updater_proc
321
- end
322
- if credentials.is_a?(GRPC::Core::Channel)
323
- channel = credentials
324
- end
325
- if credentials.is_a?(GRPC::Core::ChannelCredentials)
326
- chan_creds = credentials
327
- end
328
- if credentials.is_a?(Proc)
329
- updater_proc = credentials
330
- end
331
- if credentials.is_a?(Google::Auth::Credentials)
332
- updater_proc = credentials.updater_proc
333
- end
334
-
335
- package_version = Google::Cloud::SecurityCenter::VERSION
336
-
337
- google_api_client = "gl-ruby/#{RUBY_VERSION}"
338
- google_api_client << " #{lib_name}/#{lib_version}" if lib_name
339
- google_api_client << " gapic/#{package_version} gax/#{Google::Gax::VERSION}"
340
- google_api_client << " grpc/#{GRPC::VERSION}"
341
- google_api_client.freeze
342
-
343
- headers = { :"x-goog-api-client" => google_api_client }
344
- if credentials.respond_to?(:quota_project_id) && credentials.quota_project_id
345
- headers[:"x-goog-user-project"] = credentials.quota_project_id
346
- end
347
- headers.merge!(metadata) unless metadata.nil?
348
- client_config_file = Pathname.new(__dir__).join(
349
- "security_center_client_config.json"
350
- )
351
- defaults = client_config_file.open do |f|
352
- Google::Gax.construct_settings(
353
- "google.cloud.securitycenter.v1.SecurityCenter",
354
- JSON.parse(f.read),
355
- client_config,
356
- Google::Gax::Grpc::STATUS_CODE_NAMES,
357
- timeout,
358
- page_descriptors: PAGE_DESCRIPTORS,
359
- errors: Google::Gax::Grpc::API_ERRORS,
360
- metadata: headers
361
- )
362
- end
363
-
364
- # Allow overriding the service path/port in subclasses.
365
- service_path = service_address || self.class::SERVICE_ADDRESS
366
- port = service_port || self.class::DEFAULT_SERVICE_PORT
367
- interceptors = self.class::GRPC_INTERCEPTORS
368
- @security_center_stub = Google::Gax::Grpc.create_stub(
369
- service_path,
370
- port,
371
- chan_creds: chan_creds,
372
- channel: channel,
373
- updater_proc: updater_proc,
374
- scopes: scopes,
375
- interceptors: interceptors,
376
- &Google::Cloud::SecurityCenter::V1::SecurityCenter::Stub.method(:new)
377
- )
378
-
379
- @get_iam_policy = Google::Gax.create_api_call(
380
- @security_center_stub.method(:get_iam_policy),
381
- defaults["get_iam_policy"],
382
- exception_transformer: exception_transformer,
383
- params_extractor: proc do |request|
384
- {'resource' => request.resource}
385
- end
386
- )
387
- @group_assets = Google::Gax.create_api_call(
388
- @security_center_stub.method(:group_assets),
389
- defaults["group_assets"],
390
- exception_transformer: exception_transformer,
391
- params_extractor: proc do |request|
392
- {'parent' => request.parent}
393
- end
394
- )
395
- @group_findings = Google::Gax.create_api_call(
396
- @security_center_stub.method(:group_findings),
397
- defaults["group_findings"],
398
- exception_transformer: exception_transformer,
399
- params_extractor: proc do |request|
400
- {'parent' => request.parent}
401
- end
402
- )
403
- @test_iam_permissions = Google::Gax.create_api_call(
404
- @security_center_stub.method(:test_iam_permissions),
405
- defaults["test_iam_permissions"],
406
- exception_transformer: exception_transformer,
407
- params_extractor: proc do |request|
408
- {'resource' => request.resource}
409
- end
410
- )
411
- @create_source = Google::Gax.create_api_call(
412
- @security_center_stub.method(:create_source),
413
- defaults["create_source"],
414
- exception_transformer: exception_transformer,
415
- params_extractor: proc do |request|
416
- {'parent' => request.parent}
417
- end
418
- )
419
- @create_finding = Google::Gax.create_api_call(
420
- @security_center_stub.method(:create_finding),
421
- defaults["create_finding"],
422
- exception_transformer: exception_transformer,
423
- params_extractor: proc do |request|
424
- {'parent' => request.parent}
425
- end
426
- )
427
- @create_notification_config = Google::Gax.create_api_call(
428
- @security_center_stub.method(:create_notification_config),
429
- defaults["create_notification_config"],
430
- exception_transformer: exception_transformer,
431
- params_extractor: proc do |request|
432
- {'parent' => request.parent}
433
- end
434
- )
435
- @delete_notification_config = Google::Gax.create_api_call(
436
- @security_center_stub.method(:delete_notification_config),
437
- defaults["delete_notification_config"],
438
- exception_transformer: exception_transformer,
439
- params_extractor: proc do |request|
440
- {'name' => request.name}
441
- end
442
- )
443
- @get_notification_config = Google::Gax.create_api_call(
444
- @security_center_stub.method(:get_notification_config),
445
- defaults["get_notification_config"],
446
- exception_transformer: exception_transformer,
447
- params_extractor: proc do |request|
448
- {'name' => request.name}
449
- end
450
- )
451
- @get_organization_settings = Google::Gax.create_api_call(
452
- @security_center_stub.method(:get_organization_settings),
453
- defaults["get_organization_settings"],
454
- exception_transformer: exception_transformer,
455
- params_extractor: proc do |request|
456
- {'name' => request.name}
457
- end
458
- )
459
- @get_source = Google::Gax.create_api_call(
460
- @security_center_stub.method(:get_source),
461
- defaults["get_source"],
462
- exception_transformer: exception_transformer,
463
- params_extractor: proc do |request|
464
- {'name' => request.name}
465
- end
466
- )
467
- @list_assets = Google::Gax.create_api_call(
468
- @security_center_stub.method(:list_assets),
469
- defaults["list_assets"],
470
- exception_transformer: exception_transformer,
471
- params_extractor: proc do |request|
472
- {'parent' => request.parent}
473
- end
474
- )
475
- @list_findings = Google::Gax.create_api_call(
476
- @security_center_stub.method(:list_findings),
477
- defaults["list_findings"],
478
- exception_transformer: exception_transformer,
479
- params_extractor: proc do |request|
480
- {'parent' => request.parent}
481
- end
482
- )
483
- @list_notification_configs = Google::Gax.create_api_call(
484
- @security_center_stub.method(:list_notification_configs),
485
- defaults["list_notification_configs"],
486
- exception_transformer: exception_transformer,
487
- params_extractor: proc do |request|
488
- {'parent' => request.parent}
489
- end
490
- )
491
- @list_sources = Google::Gax.create_api_call(
492
- @security_center_stub.method(:list_sources),
493
- defaults["list_sources"],
494
- exception_transformer: exception_transformer,
495
- params_extractor: proc do |request|
496
- {'parent' => request.parent}
497
- end
498
- )
499
- @run_asset_discovery = Google::Gax.create_api_call(
500
- @security_center_stub.method(:run_asset_discovery),
501
- defaults["run_asset_discovery"],
502
- exception_transformer: exception_transformer,
503
- params_extractor: proc do |request|
504
- {'parent' => request.parent}
505
- end
506
- )
507
- @set_finding_state = Google::Gax.create_api_call(
508
- @security_center_stub.method(:set_finding_state),
509
- defaults["set_finding_state"],
510
- exception_transformer: exception_transformer,
511
- params_extractor: proc do |request|
512
- {'name' => request.name}
513
- end
514
- )
515
- @set_iam_policy = Google::Gax.create_api_call(
516
- @security_center_stub.method(:set_iam_policy),
517
- defaults["set_iam_policy"],
518
- exception_transformer: exception_transformer,
519
- params_extractor: proc do |request|
520
- {'resource' => request.resource}
521
- end
522
- )
523
- @update_finding = Google::Gax.create_api_call(
524
- @security_center_stub.method(:update_finding),
525
- defaults["update_finding"],
526
- exception_transformer: exception_transformer,
527
- params_extractor: proc do |request|
528
- {'finding.name' => request.finding.name}
529
- end
530
- )
531
- @update_notification_config = Google::Gax.create_api_call(
532
- @security_center_stub.method(:update_notification_config),
533
- defaults["update_notification_config"],
534
- exception_transformer: exception_transformer,
535
- params_extractor: proc do |request|
536
- {'notification_config.name' => request.notification_config.name}
537
- end
538
- )
539
- @update_organization_settings = Google::Gax.create_api_call(
540
- @security_center_stub.method(:update_organization_settings),
541
- defaults["update_organization_settings"],
542
- exception_transformer: exception_transformer,
543
- params_extractor: proc do |request|
544
- {'organization_settings.name' => request.organization_settings.name}
545
- end
546
- )
547
- @update_source = Google::Gax.create_api_call(
548
- @security_center_stub.method(:update_source),
549
- defaults["update_source"],
550
- exception_transformer: exception_transformer,
551
- params_extractor: proc do |request|
552
- {'source.name' => request.source.name}
553
- end
554
- )
555
- @update_security_marks = Google::Gax.create_api_call(
556
- @security_center_stub.method(:update_security_marks),
557
- defaults["update_security_marks"],
558
- exception_transformer: exception_transformer,
559
- params_extractor: proc do |request|
560
- {'security_marks.name' => request.security_marks.name}
561
- end
562
- )
563
- end
564
-
565
- # Service calls
566
-
567
- # Gets the access control policy on the specified Source.
568
- #
569
- # @param resource [String]
570
- # REQUIRED: The resource for which the policy is being requested.
571
- # See the operation documentation for the appropriate value for this field.
572
- # @param options_ [Google::Iam::V1::GetPolicyOptions | Hash]
573
- # OPTIONAL: A `GetPolicyOptions` object for specifying options to
574
- # `GetIamPolicy`. This field is only used by Cloud IAM.
575
- # A hash of the same form as `Google::Iam::V1::GetPolicyOptions`
576
- # can also be provided.
577
- # @param options [Google::Gax::CallOptions]
578
- # Overrides the default settings for this call, e.g, timeout,
579
- # retries, etc.
580
- # @yield [result, operation] Access the result along with the RPC operation
581
- # @yieldparam result [Google::Iam::V1::Policy]
582
- # @yieldparam operation [GRPC::ActiveCall::Operation]
583
- # @return [Google::Iam::V1::Policy]
584
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
585
- # @example
586
- # require "google/cloud/security_center"
587
- #
588
- # security_center_client = Google::Cloud::SecurityCenter.new(version: :v1)
589
- #
590
- # # TODO: Initialize `resource`:
591
- # resource = ''
592
- # response = security_center_client.get_iam_policy(resource)
593
-
594
- def get_iam_policy \
595
- resource,
596
- options_: nil,
597
- options: nil,
598
- &block
599
- req = {
600
- resource: resource,
601
- options: options_
602
- }.delete_if { |_, v| v.nil? }
603
- req = Google::Gax::to_proto(req, Google::Iam::V1::GetIamPolicyRequest)
604
- @get_iam_policy.call(req, options, &block)
605
- end
606
-
607
- # Filters an organization's assets and groups them by their specified
608
- # properties.
609
- #
610
- # @param parent [String]
611
- # Required. Name of the organization to groupBy. Its format is
612
- # "organizations/[organization_id]".
613
- # @param group_by [String]
614
- # Required. Expression that defines what assets fields to use for grouping.
615
- # The string value should follow SQL syntax: comma separated list of fields.
616
- # For example:
617
- # "security_center_properties.resource_project,security_center_properties.project".
618
- #
619
- # The following fields are supported when compare_duration is not set:
620
- #
621
- # * security_center_properties.resource_project
622
- # * security_center_properties.resource_project_display_name
623
- # * security_center_properties.resource_type
624
- # * security_center_properties.resource_parent
625
- # * security_center_properties.resource_parent_display_name
626
- #
627
- # The following fields are supported when compare_duration is set:
628
- #
629
- # * security_center_properties.resource_type
630
- # * security_center_properties.resource_project_display_name
631
- # * security_center_properties.resource_parent_display_name
632
- # @param filter [String]
633
- # Expression that defines the filter to apply across assets.
634
- # The expression is a list of zero or more restrictions combined via logical
635
- # operators `AND` and `OR`.
636
- # Parentheses are supported, and `OR` has higher precedence than `AND`.
637
- #
638
- # Restrictions have the form `<field> <operator> <value>` and may have a `-`
639
- # character in front of them to indicate negation. The fields map to those
640
- # defined in the Asset resource. Examples include:
641
- #
642
- # * name
643
- # * security_center_properties.resource_name
644
- # * resource_properties.a_property
645
- # * security_marks.marks.marka
646
- #
647
- # The supported operators are:
648
- #
649
- # * `=` for all value types.
650
- # * `>`, `<`, `>=`, `<=` for integer values.
651
- # * `:`, meaning substring matching, for strings.
652
- #
653
- # The supported value types are:
654
- #
655
- # * string literals in quotes.
656
- # * integer literals without quotes.
657
- # * boolean literals `true` and `false` without quotes.
658
- #
659
- # The following field and operator combinations are supported:
660
- #
661
- # * name: `=`
662
- # * update_time: `=`, `>`, `<`, `>=`, `<=`
663
- #
664
- # Usage: This should be milliseconds since epoch or an RFC3339 string.
665
- # Examples:
666
- # "update_time = \"2019-06-10T16:07:18-07:00\""
667
- # "update_time = 1560208038000"
668
- #
669
- # * create_time: `=`, `>`, `<`, `>=`, `<=`
670
- #
671
- # Usage: This should be milliseconds since epoch or an RFC3339 string.
672
- # Examples:
673
- # "create_time = \"2019-06-10T16:07:18-07:00\""
674
- # "create_time = 1560208038000"
675
- #
676
- # * iam_policy.policy_blob: `=`, `:`
677
- # * resource_properties: `=`, `:`, `>`, `<`, `>=`, `<=`
678
- # * security_marks.marks: `=`, `:`
679
- # * security_center_properties.resource_name: `=`, `:`
680
- # * security_center_properties.resource_display_name: `=`, `:`
681
- # * security_center_properties.resource_type: `=`, `:`
682
- # * security_center_properties.resource_parent: `=`, `:`
683
- # * security_center_properties.resource_parent_display_name: `=`, `:`
684
- # * security_center_properties.resource_project: `=`, `:`
685
- # * security_center_properties.resource_project_display_name: `=`, `:`
686
- # * security_center_properties.resource_owners: `=`, `:`
687
- #
688
- # For example, `resource_properties.size = 100` is a valid filter string.
689
- # @param compare_duration [Google::Protobuf::Duration | Hash]
690
- # When compare_duration is set, the GroupResult's "state_change" property is
691
- # updated to indicate whether the asset was added, removed, or remained
692
- # present during the compare_duration period of time that precedes the
693
- # read_time. This is the time between (read_time - compare_duration) and
694
- # read_time.
695
- #
696
- # The state change value is derived based on the presence of the asset at the
697
- # two points in time. Intermediate state changes between the two times don't
698
- # affect the result. For example, the results aren't affected if the asset is
699
- # removed and re-created again.
700
- #
701
- # Possible "state_change" values when compare_duration is specified:
702
- #
703
- # * "ADDED": indicates that the asset was not present at the start of
704
- # compare_duration, but present at reference_time.
705
- # * "REMOVED": indicates that the asset was present at the start of
706
- # compare_duration, but not present at reference_time.
707
- # * "ACTIVE": indicates that the asset was present at both the
708
- # start and the end of the time period defined by
709
- # compare_duration and reference_time.
710
- #
711
- # If compare_duration is not specified, then the only possible state_change
712
- # is "UNUSED", which will be the state_change set for all assets present at
713
- # read_time.
714
- #
715
- # If this field is set then `state_change` must be a specified field in
716
- # `group_by`.
717
- # A hash of the same form as `Google::Protobuf::Duration`
718
- # can also be provided.
719
- # @param read_time [Google::Protobuf::Timestamp | Hash]
720
- # Time used as a reference point when filtering assets. The filter is limited
721
- # to assets existing at the supplied time and their values are those at that
722
- # specific time. Absence of this field will default to the API's version of
723
- # NOW.
724
- # A hash of the same form as `Google::Protobuf::Timestamp`
725
- # can also be provided.
726
- # @param page_size [Integer]
727
- # The maximum number of resources contained in the underlying API
728
- # response. If page streaming is performed per-resource, this
729
- # parameter does not affect the return value. If page streaming is
730
- # performed per-page, this determines the maximum number of
731
- # resources in a page.
732
- # @param options [Google::Gax::CallOptions]
733
- # Overrides the default settings for this call, e.g, timeout,
734
- # retries, etc.
735
- # @yield [result, operation] Access the result along with the RPC operation
736
- # @yieldparam result [Google::Gax::PagedEnumerable<Google::Cloud::SecurityCenter::V1::GroupResult>]
737
- # @yieldparam operation [GRPC::ActiveCall::Operation]
738
- # @return [Google::Gax::PagedEnumerable<Google::Cloud::SecurityCenter::V1::GroupResult>]
739
- # An enumerable of Google::Cloud::SecurityCenter::V1::GroupResult instances.
740
- # See Google::Gax::PagedEnumerable documentation for other
741
- # operations such as per-page iteration or access to the response
742
- # object.
743
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
744
- # @example
745
- # require "google/cloud/security_center"
746
- #
747
- # security_center_client = Google::Cloud::SecurityCenter.new(version: :v1)
748
- # formatted_parent = Google::Cloud::SecurityCenter::V1::SecurityCenterClient.organization_path("[ORGANIZATION]")
749
- #
750
- # # TODO: Initialize `group_by`:
751
- # group_by = ''
752
- #
753
- # # Iterate over all results.
754
- # security_center_client.group_assets(formatted_parent, group_by).each do |element|
755
- # # Process element.
756
- # end
757
- #
758
- # # Or iterate over results one page at a time.
759
- # security_center_client.group_assets(formatted_parent, group_by).each_page do |page|
760
- # # Process each page at a time.
761
- # page.each do |element|
762
- # # Process element.
763
- # end
764
- # end
765
-
766
- def group_assets \
767
- parent,
768
- group_by,
769
- filter: nil,
770
- compare_duration: nil,
771
- read_time: nil,
772
- page_size: nil,
773
- options: nil,
774
- &block
775
- req = {
776
- parent: parent,
777
- group_by: group_by,
778
- filter: filter,
779
- compare_duration: compare_duration,
780
- read_time: read_time,
781
- page_size: page_size
782
- }.delete_if { |_, v| v.nil? }
783
- req = Google::Gax::to_proto(req, Google::Cloud::SecurityCenter::V1::GroupAssetsRequest)
784
- @group_assets.call(req, options, &block)
785
- end
786
-
787
- # Filters an organization or source's findings and groups them by their
788
- # specified properties.
789
- #
790
- # To group across all sources provide a `-` as the source id.
791
- # Example: /v1/organizations/{organization_id}/sources/-/findings
792
- #
793
- # @param parent [String]
794
- # Required. Name of the source to groupBy. Its format is
795
- # "organizations/[organization_id]/sources/[source_id]". To groupBy across
796
- # all sources provide a source_id of `-`. For example:
797
- # organizations/{organization_id}/sources/-
798
- # @param group_by [String]
799
- # Required. Expression that defines what assets fields to use for grouping
800
- # (including `state_change`). The string value should follow SQL syntax:
801
- # comma separated list of fields. For example: "parent,resource_name".
802
- #
803
- # The following fields are supported:
804
- #
805
- # * resource_name
806
- # * category
807
- # * state
808
- # * parent
809
- #
810
- # The following fields are supported when compare_duration is set:
811
- #
812
- # * state_change
813
- # @param filter [String]
814
- # Expression that defines the filter to apply across findings.
815
- # The expression is a list of one or more restrictions combined via logical
816
- # operators `AND` and `OR`.
817
- # Parentheses are supported, and `OR` has higher precedence than `AND`.
818
- #
819
- # Restrictions have the form `<field> <operator> <value>` and may have a `-`
820
- # character in front of them to indicate negation. Examples include:
821
- #
822
- # * name
823
- # * source_properties.a_property
824
- # * security_marks.marks.marka
825
- #
826
- # The supported operators are:
827
- #
828
- # * `=` for all value types.
829
- # * `>`, `<`, `>=`, `<=` for integer values.
830
- # * `:`, meaning substring matching, for strings.
831
- #
832
- # The supported value types are:
833
- #
834
- # * string literals in quotes.
835
- # * integer literals without quotes.
836
- # * boolean literals `true` and `false` without quotes.
837
- #
838
- # The following field and operator combinations are supported:
839
- #
840
- # * name: `=`
841
- # * parent: `=`, `:`
842
- # * resource_name: `=`, `:`
843
- # * state: `=`, `:`
844
- # * category: `=`, `:`
845
- # * external_uri: `=`, `:`
846
- # * event_time: `=`, `>`, `<`, `>=`, `<=`
847
- #
848
- # Usage: This should be milliseconds since epoch or an RFC3339 string.
849
- # Examples:
850
- # "event_time = \"2019-06-10T16:07:18-07:00\""
851
- # "event_time = 1560208038000"
852
- #
853
- # * security_marks.marks: `=`, `:`
854
- # * source_properties: `=`, `:`, `>`, `<`, `>=`, `<=`
855
- #
856
- # For example, `source_properties.size = 100` is a valid filter string.
857
- # @param read_time [Google::Protobuf::Timestamp | Hash]
858
- # Time used as a reference point when filtering findings. The filter is
859
- # limited to findings existing at the supplied time and their values are
860
- # those at that specific time. Absence of this field will default to the
861
- # API's version of NOW.
862
- # A hash of the same form as `Google::Protobuf::Timestamp`
863
- # can also be provided.
864
- # @param compare_duration [Google::Protobuf::Duration | Hash]
865
- # When compare_duration is set, the GroupResult's "state_change" attribute is
866
- # updated to indicate whether the finding had its state changed, the
867
- # finding's state remained unchanged, or if the finding was added during the
868
- # compare_duration period of time that precedes the read_time. This is the
869
- # time between (read_time - compare_duration) and read_time.
870
- #
871
- # The state_change value is derived based on the presence and state of the
872
- # finding at the two points in time. Intermediate state changes between the
873
- # two times don't affect the result. For example, the results aren't affected
874
- # if the finding is made inactive and then active again.
875
- #
876
- # Possible "state_change" values when compare_duration is specified:
877
- #
878
- # * "CHANGED": indicates that the finding was present and matched the given
879
- # filter at the start of compare_duration, but changed its
880
- # state at read_time.
881
- # * "UNCHANGED": indicates that the finding was present and matched the given
882
- # filter at the start of compare_duration and did not change
883
- # state at read_time.
884
- # * "ADDED": indicates that the finding did not match the given filter or
885
- # was not present at the start of compare_duration, but was
886
- # present at read_time.
887
- # * "REMOVED": indicates that the finding was present and matched the
888
- # filter at the start of compare_duration, but did not match
889
- # the filter at read_time.
890
- #
891
- # If compare_duration is not specified, then the only possible state_change
892
- # is "UNUSED", which will be the state_change set for all findings present
893
- # at read_time.
894
- #
895
- # If this field is set then `state_change` must be a specified field in
896
- # `group_by`.
897
- # A hash of the same form as `Google::Protobuf::Duration`
898
- # can also be provided.
899
- # @param page_size [Integer]
900
- # The maximum number of resources contained in the underlying API
901
- # response. If page streaming is performed per-resource, this
902
- # parameter does not affect the return value. If page streaming is
903
- # performed per-page, this determines the maximum number of
904
- # resources in a page.
905
- # @param options [Google::Gax::CallOptions]
906
- # Overrides the default settings for this call, e.g, timeout,
907
- # retries, etc.
908
- # @yield [result, operation] Access the result along with the RPC operation
909
- # @yieldparam result [Google::Gax::PagedEnumerable<Google::Cloud::SecurityCenter::V1::GroupResult>]
910
- # @yieldparam operation [GRPC::ActiveCall::Operation]
911
- # @return [Google::Gax::PagedEnumerable<Google::Cloud::SecurityCenter::V1::GroupResult>]
912
- # An enumerable of Google::Cloud::SecurityCenter::V1::GroupResult instances.
913
- # See Google::Gax::PagedEnumerable documentation for other
914
- # operations such as per-page iteration or access to the response
915
- # object.
916
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
917
- # @example
918
- # require "google/cloud/security_center"
919
- #
920
- # security_center_client = Google::Cloud::SecurityCenter.new(version: :v1)
921
- # formatted_parent = Google::Cloud::SecurityCenter::V1::SecurityCenterClient.source_path("[ORGANIZATION]", "[SOURCE]")
922
- #
923
- # # TODO: Initialize `group_by`:
924
- # group_by = ''
925
- #
926
- # # Iterate over all results.
927
- # security_center_client.group_findings(formatted_parent, group_by).each do |element|
928
- # # Process element.
929
- # end
930
- #
931
- # # Or iterate over results one page at a time.
932
- # security_center_client.group_findings(formatted_parent, group_by).each_page do |page|
933
- # # Process each page at a time.
934
- # page.each do |element|
935
- # # Process element.
936
- # end
937
- # end
938
-
939
- def group_findings \
940
- parent,
941
- group_by,
942
- filter: nil,
943
- read_time: nil,
944
- compare_duration: nil,
945
- page_size: nil,
946
- options: nil,
947
- &block
948
- req = {
949
- parent: parent,
950
- group_by: group_by,
951
- filter: filter,
952
- read_time: read_time,
953
- compare_duration: compare_duration,
954
- page_size: page_size
955
- }.delete_if { |_, v| v.nil? }
956
- req = Google::Gax::to_proto(req, Google::Cloud::SecurityCenter::V1::GroupFindingsRequest)
957
- @group_findings.call(req, options, &block)
958
- end
959
-
960
- # Returns the permissions that a caller has on the specified source.
961
- #
962
- # @param resource [String]
963
- # REQUIRED: The resource for which the policy detail is being requested.
964
- # See the operation documentation for the appropriate value for this field.
965
- # @param permissions [Array<String>]
966
- # The set of permissions to check for the `resource`. Permissions with
967
- # wildcards (such as '*' or 'storage.*') are not allowed. For more
968
- # information see
969
- # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
970
- # @param options [Google::Gax::CallOptions]
971
- # Overrides the default settings for this call, e.g, timeout,
972
- # retries, etc.
973
- # @yield [result, operation] Access the result along with the RPC operation
974
- # @yieldparam result [Google::Iam::V1::TestIamPermissionsResponse]
975
- # @yieldparam operation [GRPC::ActiveCall::Operation]
976
- # @return [Google::Iam::V1::TestIamPermissionsResponse]
977
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
978
- # @example
979
- # require "google/cloud/security_center"
980
- #
981
- # security_center_client = Google::Cloud::SecurityCenter.new(version: :v1)
982
- #
983
- # # TODO: Initialize `resource`:
984
- # resource = ''
985
- #
986
- # # TODO: Initialize `permissions`:
987
- # permissions = []
988
- # response = security_center_client.test_iam_permissions(resource, permissions)
989
-
990
- def test_iam_permissions \
991
- resource,
992
- permissions,
993
- options: nil,
994
- &block
995
- req = {
996
- resource: resource,
997
- permissions: permissions
998
- }.delete_if { |_, v| v.nil? }
999
- req = Google::Gax::to_proto(req, Google::Iam::V1::TestIamPermissionsRequest)
1000
- @test_iam_permissions.call(req, options, &block)
1001
- end
1002
-
1003
- # Creates a source.
1004
- #
1005
- # @param parent [String]
1006
- # Required. Resource name of the new source's parent. Its format should be
1007
- # "organizations/[organization_id]".
1008
- # @param source [Google::Cloud::SecurityCenter::V1::Source | Hash]
1009
- # Required. The Source being created, only the display_name and description
1010
- # will be used. All other fields will be ignored.
1011
- # A hash of the same form as `Google::Cloud::SecurityCenter::V1::Source`
1012
- # can also be provided.
1013
- # @param options [Google::Gax::CallOptions]
1014
- # Overrides the default settings for this call, e.g, timeout,
1015
- # retries, etc.
1016
- # @yield [result, operation] Access the result along with the RPC operation
1017
- # @yieldparam result [Google::Cloud::SecurityCenter::V1::Source]
1018
- # @yieldparam operation [GRPC::ActiveCall::Operation]
1019
- # @return [Google::Cloud::SecurityCenter::V1::Source]
1020
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
1021
- # @example
1022
- # require "google/cloud/security_center"
1023
- #
1024
- # security_center_client = Google::Cloud::SecurityCenter.new(version: :v1)
1025
- # formatted_parent = Google::Cloud::SecurityCenter::V1::SecurityCenterClient.organization_path("[ORGANIZATION]")
1026
- #
1027
- # # TODO: Initialize `source`:
1028
- # source = {}
1029
- # response = security_center_client.create_source(formatted_parent, source)
1030
-
1031
- def create_source \
1032
- parent,
1033
- source,
1034
- options: nil,
1035
- &block
1036
- req = {
1037
- parent: parent,
1038
- source: source
1039
- }.delete_if { |_, v| v.nil? }
1040
- req = Google::Gax::to_proto(req, Google::Cloud::SecurityCenter::V1::CreateSourceRequest)
1041
- @create_source.call(req, options, &block)
1042
- end
1043
-
1044
- # Creates a finding. The corresponding source must exist for finding creation
1045
- # to succeed.
1046
- #
1047
- # @param parent [String]
1048
- # Required. Resource name of the new finding's parent. Its format should be
1049
- # "organizations/[organization_id]/sources/[source_id]".
1050
- # @param finding_id [String]
1051
- # Required. Unique identifier provided by the client within the parent scope.
1052
- # It must be alphanumeric and less than or equal to 32 characters and
1053
- # greater than 0 characters in length.
1054
- # @param finding [Google::Cloud::SecurityCenter::V1::Finding | Hash]
1055
- # Required. The Finding being created. The name and security_marks will be
1056
- # ignored as they are both output only fields on this resource.
1057
- # A hash of the same form as `Google::Cloud::SecurityCenter::V1::Finding`
1058
- # can also be provided.
1059
- # @param options [Google::Gax::CallOptions]
1060
- # Overrides the default settings for this call, e.g, timeout,
1061
- # retries, etc.
1062
- # @yield [result, operation] Access the result along with the RPC operation
1063
- # @yieldparam result [Google::Cloud::SecurityCenter::V1::Finding]
1064
- # @yieldparam operation [GRPC::ActiveCall::Operation]
1065
- # @return [Google::Cloud::SecurityCenter::V1::Finding]
1066
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
1067
- # @example
1068
- # require "google/cloud/security_center"
1069
- #
1070
- # security_center_client = Google::Cloud::SecurityCenter.new(version: :v1)
1071
- # formatted_parent = Google::Cloud::SecurityCenter::V1::SecurityCenterClient.source_path("[ORGANIZATION]", "[SOURCE]")
1072
- #
1073
- # # TODO: Initialize `finding_id`:
1074
- # finding_id = ''
1075
- #
1076
- # # TODO: Initialize `finding`:
1077
- # finding = {}
1078
- # response = security_center_client.create_finding(formatted_parent, finding_id, finding)
1079
-
1080
- def create_finding \
1081
- parent,
1082
- finding_id,
1083
- finding,
1084
- options: nil,
1085
- &block
1086
- req = {
1087
- parent: parent,
1088
- finding_id: finding_id,
1089
- finding: finding
1090
- }.delete_if { |_, v| v.nil? }
1091
- req = Google::Gax::to_proto(req, Google::Cloud::SecurityCenter::V1::CreateFindingRequest)
1092
- @create_finding.call(req, options, &block)
1093
- end
1094
-
1095
- # Creates a notification config.
1096
- #
1097
- # @param parent [String]
1098
- # Required. Resource name of the new notification config's parent. Its format
1099
- # is "organizations/[organization_id]".
1100
- # @param config_id [String]
1101
- # Required.
1102
- # Unique identifier provided by the client within the parent scope.
1103
- # It must be between 1 and 128 characters, and contains alphanumeric
1104
- # characters, underscores or hyphens only.
1105
- # @param notification_config [Google::Cloud::SecurityCenter::V1::NotificationConfig | Hash]
1106
- # Required. The notification config being created. The name and the service
1107
- # account will be ignored as they are both output only fields on this
1108
- # resource.
1109
- # A hash of the same form as `Google::Cloud::SecurityCenter::V1::NotificationConfig`
1110
- # can also be provided.
1111
- # @param options [Google::Gax::CallOptions]
1112
- # Overrides the default settings for this call, e.g, timeout,
1113
- # retries, etc.
1114
- # @yield [result, operation] Access the result along with the RPC operation
1115
- # @yieldparam result [Google::Cloud::SecurityCenter::V1::NotificationConfig]
1116
- # @yieldparam operation [GRPC::ActiveCall::Operation]
1117
- # @return [Google::Cloud::SecurityCenter::V1::NotificationConfig]
1118
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
1119
- # @example
1120
- # require "google/cloud/security_center"
1121
- #
1122
- # security_center_client = Google::Cloud::SecurityCenter.new(version: :v1)
1123
- # formatted_parent = Google::Cloud::SecurityCenter::V1::SecurityCenterClient.organization_path("[ORGANIZATION]")
1124
- #
1125
- # # TODO: Initialize `config_id`:
1126
- # config_id = ''
1127
- #
1128
- # # TODO: Initialize `notification_config`:
1129
- # notification_config = {}
1130
- # response = security_center_client.create_notification_config(formatted_parent, config_id, notification_config)
1131
-
1132
- def create_notification_config \
1133
- parent,
1134
- config_id,
1135
- notification_config,
1136
- options: nil,
1137
- &block
1138
- req = {
1139
- parent: parent,
1140
- config_id: config_id,
1141
- notification_config: notification_config
1142
- }.delete_if { |_, v| v.nil? }
1143
- req = Google::Gax::to_proto(req, Google::Cloud::SecurityCenter::V1::CreateNotificationConfigRequest)
1144
- @create_notification_config.call(req, options, &block)
1145
- end
1146
-
1147
- # Deletes a notification config.
1148
- #
1149
- # @param name [String]
1150
- # Required. Name of the notification config to delete. Its format is
1151
- # "organizations/[organization_id]/notificationConfigs/[config_id]".
1152
- # @param options [Google::Gax::CallOptions]
1153
- # Overrides the default settings for this call, e.g, timeout,
1154
- # retries, etc.
1155
- # @yield [result, operation] Access the result along with the RPC operation
1156
- # @yieldparam result []
1157
- # @yieldparam operation [GRPC::ActiveCall::Operation]
1158
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
1159
- # @example
1160
- # require "google/cloud/security_center"
1161
- #
1162
- # security_center_client = Google::Cloud::SecurityCenter.new(version: :v1)
1163
- # formatted_name = Google::Cloud::SecurityCenter::V1::SecurityCenterClient.notification_config_path("[ORGANIZATION]", "[NOTIFICATION_CONFIG]")
1164
- # security_center_client.delete_notification_config(formatted_name)
1165
-
1166
- def delete_notification_config \
1167
- name,
1168
- options: nil,
1169
- &block
1170
- req = {
1171
- name: name
1172
- }.delete_if { |_, v| v.nil? }
1173
- req = Google::Gax::to_proto(req, Google::Cloud::SecurityCenter::V1::DeleteNotificationConfigRequest)
1174
- @delete_notification_config.call(req, options, &block)
1175
- nil
1176
- end
1177
-
1178
- # Gets a notification config.
1179
- #
1180
- # @param name [String]
1181
- # Required. Name of the notification config to get. Its format is
1182
- # "organizations/[organization_id]/notificationConfigs/[config_id]".
1183
- # @param options [Google::Gax::CallOptions]
1184
- # Overrides the default settings for this call, e.g, timeout,
1185
- # retries, etc.
1186
- # @yield [result, operation] Access the result along with the RPC operation
1187
- # @yieldparam result [Google::Cloud::SecurityCenter::V1::NotificationConfig]
1188
- # @yieldparam operation [GRPC::ActiveCall::Operation]
1189
- # @return [Google::Cloud::SecurityCenter::V1::NotificationConfig]
1190
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
1191
- # @example
1192
- # require "google/cloud/security_center"
1193
- #
1194
- # security_center_client = Google::Cloud::SecurityCenter.new(version: :v1)
1195
- # formatted_name = Google::Cloud::SecurityCenter::V1::SecurityCenterClient.notification_config_path("[ORGANIZATION]", "[NOTIFICATION_CONFIG]")
1196
- # response = security_center_client.get_notification_config(formatted_name)
1197
-
1198
- def get_notification_config \
1199
- name,
1200
- options: nil,
1201
- &block
1202
- req = {
1203
- name: name
1204
- }.delete_if { |_, v| v.nil? }
1205
- req = Google::Gax::to_proto(req, Google::Cloud::SecurityCenter::V1::GetNotificationConfigRequest)
1206
- @get_notification_config.call(req, options, &block)
1207
- end
1208
-
1209
- # Gets the settings for an organization.
1210
- #
1211
- # @param name [String]
1212
- # Required. Name of the organization to get organization settings for. Its
1213
- # format is "organizations/[organization_id]/organizationSettings".
1214
- # @param options [Google::Gax::CallOptions]
1215
- # Overrides the default settings for this call, e.g, timeout,
1216
- # retries, etc.
1217
- # @yield [result, operation] Access the result along with the RPC operation
1218
- # @yieldparam result [Google::Cloud::SecurityCenter::V1::OrganizationSettings]
1219
- # @yieldparam operation [GRPC::ActiveCall::Operation]
1220
- # @return [Google::Cloud::SecurityCenter::V1::OrganizationSettings]
1221
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
1222
- # @example
1223
- # require "google/cloud/security_center"
1224
- #
1225
- # security_center_client = Google::Cloud::SecurityCenter.new(version: :v1)
1226
- # formatted_name = Google::Cloud::SecurityCenter::V1::SecurityCenterClient.organization_settings_path("[ORGANIZATION]")
1227
- # response = security_center_client.get_organization_settings(formatted_name)
1228
-
1229
- def get_organization_settings \
1230
- name,
1231
- options: nil,
1232
- &block
1233
- req = {
1234
- name: name
1235
- }.delete_if { |_, v| v.nil? }
1236
- req = Google::Gax::to_proto(req, Google::Cloud::SecurityCenter::V1::GetOrganizationSettingsRequest)
1237
- @get_organization_settings.call(req, options, &block)
1238
- end
1239
-
1240
- # Gets a source.
1241
- #
1242
- # @param name [String]
1243
- # Required. Relative resource name of the source. Its format is
1244
- # "organizations/[organization_id]/source/[source_id]".
1245
- # @param options [Google::Gax::CallOptions]
1246
- # Overrides the default settings for this call, e.g, timeout,
1247
- # retries, etc.
1248
- # @yield [result, operation] Access the result along with the RPC operation
1249
- # @yieldparam result [Google::Cloud::SecurityCenter::V1::Source]
1250
- # @yieldparam operation [GRPC::ActiveCall::Operation]
1251
- # @return [Google::Cloud::SecurityCenter::V1::Source]
1252
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
1253
- # @example
1254
- # require "google/cloud/security_center"
1255
- #
1256
- # security_center_client = Google::Cloud::SecurityCenter.new(version: :v1)
1257
- # formatted_name = Google::Cloud::SecurityCenter::V1::SecurityCenterClient.source_path("[ORGANIZATION]", "[SOURCE]")
1258
- # response = security_center_client.get_source(formatted_name)
1259
-
1260
- def get_source \
1261
- name,
1262
- options: nil,
1263
- &block
1264
- req = {
1265
- name: name
1266
- }.delete_if { |_, v| v.nil? }
1267
- req = Google::Gax::to_proto(req, Google::Cloud::SecurityCenter::V1::GetSourceRequest)
1268
- @get_source.call(req, options, &block)
1269
- end
1270
-
1271
- # Lists an organization's assets.
1272
- #
1273
- # @param parent [String]
1274
- # Required. Name of the organization assets should belong to. Its format is
1275
- # "organizations/[organization_id]".
1276
- # @param filter [String]
1277
- # Expression that defines the filter to apply across assets.
1278
- # The expression is a list of zero or more restrictions combined via logical
1279
- # operators `AND` and `OR`.
1280
- # Parentheses are supported, and `OR` has higher precedence than `AND`.
1281
- #
1282
- # Restrictions have the form `<field> <operator> <value>` and may have a `-`
1283
- # character in front of them to indicate negation. The fields map to those
1284
- # defined in the Asset resource. Examples include:
1285
- #
1286
- # * name
1287
- # * security_center_properties.resource_name
1288
- # * resource_properties.a_property
1289
- # * security_marks.marks.marka
1290
- #
1291
- # The supported operators are:
1292
- #
1293
- # * `=` for all value types.
1294
- # * `>`, `<`, `>=`, `<=` for integer values.
1295
- # * `:`, meaning substring matching, for strings.
1296
- #
1297
- # The supported value types are:
1298
- #
1299
- # * string literals in quotes.
1300
- # * integer literals without quotes.
1301
- # * boolean literals `true` and `false` without quotes.
1302
- #
1303
- # The following are the allowed field and operator combinations:
1304
- #
1305
- # * name: `=`
1306
- # * update_time: `=`, `>`, `<`, `>=`, `<=`
1307
- #
1308
- # Usage: This should be milliseconds since epoch or an RFC3339 string.
1309
- # Examples:
1310
- # "update_time = \"2019-06-10T16:07:18-07:00\""
1311
- # "update_time = 1560208038000"
1312
- #
1313
- # * create_time: `=`, `>`, `<`, `>=`, `<=`
1314
- #
1315
- # Usage: This should be milliseconds since epoch or an RFC3339 string.
1316
- # Examples:
1317
- # "create_time = \"2019-06-10T16:07:18-07:00\""
1318
- # "create_time = 1560208038000"
1319
- #
1320
- # * iam_policy.policy_blob: `=`, `:`
1321
- # * resource_properties: `=`, `:`, `>`, `<`, `>=`, `<=`
1322
- # * security_marks.marks: `=`, `:`
1323
- # * security_center_properties.resource_name: `=`, `:`
1324
- # * security_center_properties.resource_display_name: `=`, `:`
1325
- # * security_center_properties.resource_type: `=`, `:`
1326
- # * security_center_properties.resource_parent: `=`, `:`
1327
- # * security_center_properties.resource_parent_display_name: `=`, `:`
1328
- # * security_center_properties.resource_project: `=`, `:`
1329
- # * security_center_properties.resource_project_display_name: `=`, `:`
1330
- # * security_center_properties.resource_owners: `=`, `:`
1331
- #
1332
- # For example, `resource_properties.size = 100` is a valid filter string.
1333
- # @param order_by [String]
1334
- # Expression that defines what fields and order to use for sorting. The
1335
- # string value should follow SQL syntax: comma separated list of fields. For
1336
- # example: "name,resource_properties.a_property". The default sorting order
1337
- # is ascending. To specify descending order for a field, a suffix " desc"
1338
- # should be appended to the field name. For example: "name
1339
- # desc,resource_properties.a_property". Redundant space characters in the
1340
- # syntax are insignificant. "name desc,resource_properties.a_property" and "
1341
- # name desc , resource_properties.a_property " are equivalent.
1342
- #
1343
- # The following fields are supported:
1344
- # name
1345
- # update_time
1346
- # resource_properties
1347
- # security_marks.marks
1348
- # security_center_properties.resource_name
1349
- # security_center_properties.resource_display_name
1350
- # security_center_properties.resource_parent
1351
- # security_center_properties.resource_parent_display_name
1352
- # security_center_properties.resource_project
1353
- # security_center_properties.resource_project_display_name
1354
- # security_center_properties.resource_type
1355
- # @param read_time [Google::Protobuf::Timestamp | Hash]
1356
- # Time used as a reference point when filtering assets. The filter is limited
1357
- # to assets existing at the supplied time and their values are those at that
1358
- # specific time. Absence of this field will default to the API's version of
1359
- # NOW.
1360
- # A hash of the same form as `Google::Protobuf::Timestamp`
1361
- # can also be provided.
1362
- # @param compare_duration [Google::Protobuf::Duration | Hash]
1363
- # When compare_duration is set, the ListAssetsResult's "state_change"
1364
- # attribute is updated to indicate whether the asset was added, removed, or
1365
- # remained present during the compare_duration period of time that precedes
1366
- # the read_time. This is the time between (read_time - compare_duration) and
1367
- # read_time.
1368
- #
1369
- # The state_change value is derived based on the presence of the asset at the
1370
- # two points in time. Intermediate state changes between the two times don't
1371
- # affect the result. For example, the results aren't affected if the asset is
1372
- # removed and re-created again.
1373
- #
1374
- # Possible "state_change" values when compare_duration is specified:
1375
- #
1376
- # * "ADDED": indicates that the asset was not present at the start of
1377
- # compare_duration, but present at read_time.
1378
- # * "REMOVED": indicates that the asset was present at the start of
1379
- # compare_duration, but not present at read_time.
1380
- # * "ACTIVE": indicates that the asset was present at both the
1381
- # start and the end of the time period defined by
1382
- # compare_duration and read_time.
1383
- #
1384
- # If compare_duration is not specified, then the only possible state_change
1385
- # is "UNUSED", which will be the state_change set for all assets present at
1386
- # read_time.
1387
- # A hash of the same form as `Google::Protobuf::Duration`
1388
- # can also be provided.
1389
- # @param field_mask [Google::Protobuf::FieldMask | Hash]
1390
- # Optional. A field mask to specify the ListAssetsResult fields to be listed
1391
- # in the response. An empty field mask will list all fields.
1392
- # A hash of the same form as `Google::Protobuf::FieldMask`
1393
- # can also be provided.
1394
- # @param page_size [Integer]
1395
- # The maximum number of resources contained in the underlying API
1396
- # response. If page streaming is performed per-resource, this
1397
- # parameter does not affect the return value. If page streaming is
1398
- # performed per-page, this determines the maximum number of
1399
- # resources in a page.
1400
- # @param options [Google::Gax::CallOptions]
1401
- # Overrides the default settings for this call, e.g, timeout,
1402
- # retries, etc.
1403
- # @yield [result, operation] Access the result along with the RPC operation
1404
- # @yieldparam result [Google::Gax::PagedEnumerable<Google::Cloud::SecurityCenter::V1::ListAssetsResponse::ListAssetsResult>]
1405
- # @yieldparam operation [GRPC::ActiveCall::Operation]
1406
- # @return [Google::Gax::PagedEnumerable<Google::Cloud::SecurityCenter::V1::ListAssetsResponse::ListAssetsResult>]
1407
- # An enumerable of Google::Cloud::SecurityCenter::V1::ListAssetsResponse::ListAssetsResult instances.
1408
- # See Google::Gax::PagedEnumerable documentation for other
1409
- # operations such as per-page iteration or access to the response
1410
- # object.
1411
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
1412
- # @example
1413
- # require "google/cloud/security_center"
1414
- #
1415
- # security_center_client = Google::Cloud::SecurityCenter.new(version: :v1)
1416
- # formatted_parent = Google::Cloud::SecurityCenter::V1::SecurityCenterClient.organization_path("[ORGANIZATION]")
1417
- #
1418
- # # Iterate over all results.
1419
- # security_center_client.list_assets(formatted_parent).each do |element|
1420
- # # Process element.
1421
- # end
1422
- #
1423
- # # Or iterate over results one page at a time.
1424
- # security_center_client.list_assets(formatted_parent).each_page do |page|
1425
- # # Process each page at a time.
1426
- # page.each do |element|
1427
- # # Process element.
1428
- # end
1429
- # end
1430
-
1431
- def list_assets \
1432
- parent,
1433
- filter: nil,
1434
- order_by: nil,
1435
- read_time: nil,
1436
- compare_duration: nil,
1437
- field_mask: nil,
1438
- page_size: nil,
1439
- options: nil,
1440
- &block
1441
- req = {
1442
- parent: parent,
1443
- filter: filter,
1444
- order_by: order_by,
1445
- read_time: read_time,
1446
- compare_duration: compare_duration,
1447
- field_mask: field_mask,
1448
- page_size: page_size
1449
- }.delete_if { |_, v| v.nil? }
1450
- req = Google::Gax::to_proto(req, Google::Cloud::SecurityCenter::V1::ListAssetsRequest)
1451
- @list_assets.call(req, options, &block)
1452
- end
1453
-
1454
- # Lists an organization or source's findings.
1455
- #
1456
- # To list across all sources provide a `-` as the source id.
1457
- # Example: /v1/organizations/{organization_id}/sources/-/findings
1458
- #
1459
- # @param parent [String]
1460
- # Required. Name of the source the findings belong to. Its format is
1461
- # "organizations/[organization_id]/sources/[source_id]". To list across all
1462
- # sources provide a source_id of `-`. For example:
1463
- # organizations/{organization_id}/sources/-
1464
- # @param filter [String]
1465
- # Expression that defines the filter to apply across findings.
1466
- # The expression is a list of one or more restrictions combined via logical
1467
- # operators `AND` and `OR`.
1468
- # Parentheses are supported, and `OR` has higher precedence than `AND`.
1469
- #
1470
- # Restrictions have the form `<field> <operator> <value>` and may have a `-`
1471
- # character in front of them to indicate negation. Examples include:
1472
- #
1473
- # * name
1474
- # * source_properties.a_property
1475
- # * security_marks.marks.marka
1476
- #
1477
- # The supported operators are:
1478
- #
1479
- # * `=` for all value types.
1480
- # * `>`, `<`, `>=`, `<=` for integer values.
1481
- # * `:`, meaning substring matching, for strings.
1482
- #
1483
- # The supported value types are:
1484
- #
1485
- # * string literals in quotes.
1486
- # * integer literals without quotes.
1487
- # * boolean literals `true` and `false` without quotes.
1488
- #
1489
- # The following field and operator combinations are supported:
1490
- #
1491
- # name: `=`
1492
- # parent: `=`, `:`
1493
- # resource_name: `=`, `:`
1494
- # state: `=`, `:`
1495
- # category: `=`, `:`
1496
- # external_uri: `=`, `:`
1497
- # event_time: `=`, `>`, `<`, `>=`, `<=`
1498
- #
1499
- # Usage: This should be milliseconds since epoch or an RFC3339 string.
1500
- # Examples:
1501
- # "event_time = \"2019-06-10T16:07:18-07:00\""
1502
- # "event_time = 1560208038000"
1503
- #
1504
- # security_marks.marks: `=`, `:`
1505
- # source_properties: `=`, `:`, `>`, `<`, `>=`, `<=`
1506
- #
1507
- # For example, `source_properties.size = 100` is a valid filter string.
1508
- # @param order_by [String]
1509
- # Expression that defines what fields and order to use for sorting. The
1510
- # string value should follow SQL syntax: comma separated list of fields. For
1511
- # example: "name,resource_properties.a_property". The default sorting order
1512
- # is ascending. To specify descending order for a field, a suffix " desc"
1513
- # should be appended to the field name. For example: "name
1514
- # desc,source_properties.a_property". Redundant space characters in the
1515
- # syntax are insignificant. "name desc,source_properties.a_property" and "
1516
- # name desc , source_properties.a_property " are equivalent.
1517
- #
1518
- # The following fields are supported:
1519
- # name
1520
- # parent
1521
- # state
1522
- # category
1523
- # resource_name
1524
- # event_time
1525
- # source_properties
1526
- # security_marks.marks
1527
- # @param read_time [Google::Protobuf::Timestamp | Hash]
1528
- # Time used as a reference point when filtering findings. The filter is
1529
- # limited to findings existing at the supplied time and their values are
1530
- # those at that specific time. Absence of this field will default to the
1531
- # API's version of NOW.
1532
- # A hash of the same form as `Google::Protobuf::Timestamp`
1533
- # can also be provided.
1534
- # @param compare_duration [Google::Protobuf::Duration | Hash]
1535
- # When compare_duration is set, the ListFindingsResult's "state_change"
1536
- # attribute is updated to indicate whether the finding had its state changed,
1537
- # the finding's state remained unchanged, or if the finding was added in any
1538
- # state during the compare_duration period of time that precedes the
1539
- # read_time. This is the time between (read_time - compare_duration) and
1540
- # read_time.
1541
- #
1542
- # The state_change value is derived based on the presence and state of the
1543
- # finding at the two points in time. Intermediate state changes between the
1544
- # two times don't affect the result. For example, the results aren't affected
1545
- # if the finding is made inactive and then active again.
1546
- #
1547
- # Possible "state_change" values when compare_duration is specified:
1548
- #
1549
- # * "CHANGED": indicates that the finding was present and matched the given
1550
- # filter at the start of compare_duration, but changed its
1551
- # state at read_time.
1552
- # * "UNCHANGED": indicates that the finding was present and matched the given
1553
- # filter at the start of compare_duration and did not change
1554
- # state at read_time.
1555
- # * "ADDED": indicates that the finding did not match the given filter or
1556
- # was not present at the start of compare_duration, but was
1557
- # present at read_time.
1558
- # * "REMOVED": indicates that the finding was present and matched the
1559
- # filter at the start of compare_duration, but did not match
1560
- # the filter at read_time.
1561
- #
1562
- # If compare_duration is not specified, then the only possible state_change
1563
- # is "UNUSED", which will be the state_change set for all findings present at
1564
- # read_time.
1565
- # A hash of the same form as `Google::Protobuf::Duration`
1566
- # can also be provided.
1567
- # @param field_mask [Google::Protobuf::FieldMask | Hash]
1568
- # Optional. A field mask to specify the Finding fields to be listed in the
1569
- # response. An empty field mask will list all fields.
1570
- # A hash of the same form as `Google::Protobuf::FieldMask`
1571
- # can also be provided.
1572
- # @param page_size [Integer]
1573
- # The maximum number of resources contained in the underlying API
1574
- # response. If page streaming is performed per-resource, this
1575
- # parameter does not affect the return value. If page streaming is
1576
- # performed per-page, this determines the maximum number of
1577
- # resources in a page.
1578
- # @param options [Google::Gax::CallOptions]
1579
- # Overrides the default settings for this call, e.g, timeout,
1580
- # retries, etc.
1581
- # @yield [result, operation] Access the result along with the RPC operation
1582
- # @yieldparam result [Google::Gax::PagedEnumerable<Google::Cloud::SecurityCenter::V1::ListFindingsResponse::ListFindingsResult>]
1583
- # @yieldparam operation [GRPC::ActiveCall::Operation]
1584
- # @return [Google::Gax::PagedEnumerable<Google::Cloud::SecurityCenter::V1::ListFindingsResponse::ListFindingsResult>]
1585
- # An enumerable of Google::Cloud::SecurityCenter::V1::ListFindingsResponse::ListFindingsResult instances.
1586
- # See Google::Gax::PagedEnumerable documentation for other
1587
- # operations such as per-page iteration or access to the response
1588
- # object.
1589
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
1590
- # @example
1591
- # require "google/cloud/security_center"
1592
- #
1593
- # security_center_client = Google::Cloud::SecurityCenter.new(version: :v1)
1594
- # formatted_parent = Google::Cloud::SecurityCenter::V1::SecurityCenterClient.source_path("[ORGANIZATION]", "[SOURCE]")
1595
- #
1596
- # # Iterate over all results.
1597
- # security_center_client.list_findings(formatted_parent).each do |element|
1598
- # # Process element.
1599
- # end
1600
- #
1601
- # # Or iterate over results one page at a time.
1602
- # security_center_client.list_findings(formatted_parent).each_page do |page|
1603
- # # Process each page at a time.
1604
- # page.each do |element|
1605
- # # Process element.
1606
- # end
1607
- # end
1608
-
1609
- def list_findings \
1610
- parent,
1611
- filter: nil,
1612
- order_by: nil,
1613
- read_time: nil,
1614
- compare_duration: nil,
1615
- field_mask: nil,
1616
- page_size: nil,
1617
- options: nil,
1618
- &block
1619
- req = {
1620
- parent: parent,
1621
- filter: filter,
1622
- order_by: order_by,
1623
- read_time: read_time,
1624
- compare_duration: compare_duration,
1625
- field_mask: field_mask,
1626
- page_size: page_size
1627
- }.delete_if { |_, v| v.nil? }
1628
- req = Google::Gax::to_proto(req, Google::Cloud::SecurityCenter::V1::ListFindingsRequest)
1629
- @list_findings.call(req, options, &block)
1630
- end
1631
-
1632
- # Lists notification configs.
1633
- #
1634
- # @param parent [String]
1635
- # Required. Name of the organization to list notification configs.
1636
- # Its format is "organizations/[organization_id]".
1637
- # @param page_size [Integer]
1638
- # The maximum number of resources contained in the underlying API
1639
- # response. If page streaming is performed per-resource, this
1640
- # parameter does not affect the return value. If page streaming is
1641
- # performed per-page, this determines the maximum number of
1642
- # resources in a page.
1643
- # @param options [Google::Gax::CallOptions]
1644
- # Overrides the default settings for this call, e.g, timeout,
1645
- # retries, etc.
1646
- # @yield [result, operation] Access the result along with the RPC operation
1647
- # @yieldparam result [Google::Gax::PagedEnumerable<Google::Cloud::SecurityCenter::V1::NotificationConfig>]
1648
- # @yieldparam operation [GRPC::ActiveCall::Operation]
1649
- # @return [Google::Gax::PagedEnumerable<Google::Cloud::SecurityCenter::V1::NotificationConfig>]
1650
- # An enumerable of Google::Cloud::SecurityCenter::V1::NotificationConfig instances.
1651
- # See Google::Gax::PagedEnumerable documentation for other
1652
- # operations such as per-page iteration or access to the response
1653
- # object.
1654
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
1655
- # @example
1656
- # require "google/cloud/security_center"
1657
- #
1658
- # security_center_client = Google::Cloud::SecurityCenter.new(version: :v1)
1659
- # formatted_parent = Google::Cloud::SecurityCenter::V1::SecurityCenterClient.organization_path("[ORGANIZATION]")
1660
- #
1661
- # # Iterate over all results.
1662
- # security_center_client.list_notification_configs(formatted_parent).each do |element|
1663
- # # Process element.
1664
- # end
1665
- #
1666
- # # Or iterate over results one page at a time.
1667
- # security_center_client.list_notification_configs(formatted_parent).each_page do |page|
1668
- # # Process each page at a time.
1669
- # page.each do |element|
1670
- # # Process element.
1671
- # end
1672
- # end
1673
-
1674
- def list_notification_configs \
1675
- parent,
1676
- page_size: nil,
1677
- options: nil,
1678
- &block
1679
- req = {
1680
- parent: parent,
1681
- page_size: page_size
1682
- }.delete_if { |_, v| v.nil? }
1683
- req = Google::Gax::to_proto(req, Google::Cloud::SecurityCenter::V1::ListNotificationConfigsRequest)
1684
- @list_notification_configs.call(req, options, &block)
1685
- end
1686
-
1687
- # Lists all sources belonging to an organization.
1688
- #
1689
- # @param parent [String]
1690
- # Required. Resource name of the parent of sources to list. Its format should
1691
- # be "organizations/[organization_id]".
1692
- # @param page_size [Integer]
1693
- # The maximum number of resources contained in the underlying API
1694
- # response. If page streaming is performed per-resource, this
1695
- # parameter does not affect the return value. If page streaming is
1696
- # performed per-page, this determines the maximum number of
1697
- # resources in a page.
1698
- # @param options [Google::Gax::CallOptions]
1699
- # Overrides the default settings for this call, e.g, timeout,
1700
- # retries, etc.
1701
- # @yield [result, operation] Access the result along with the RPC operation
1702
- # @yieldparam result [Google::Gax::PagedEnumerable<Google::Cloud::SecurityCenter::V1::Source>]
1703
- # @yieldparam operation [GRPC::ActiveCall::Operation]
1704
- # @return [Google::Gax::PagedEnumerable<Google::Cloud::SecurityCenter::V1::Source>]
1705
- # An enumerable of Google::Cloud::SecurityCenter::V1::Source instances.
1706
- # See Google::Gax::PagedEnumerable documentation for other
1707
- # operations such as per-page iteration or access to the response
1708
- # object.
1709
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
1710
- # @example
1711
- # require "google/cloud/security_center"
1712
- #
1713
- # security_center_client = Google::Cloud::SecurityCenter.new(version: :v1)
1714
- # formatted_parent = Google::Cloud::SecurityCenter::V1::SecurityCenterClient.organization_path("[ORGANIZATION]")
1715
- #
1716
- # # Iterate over all results.
1717
- # security_center_client.list_sources(formatted_parent).each do |element|
1718
- # # Process element.
1719
- # end
1720
- #
1721
- # # Or iterate over results one page at a time.
1722
- # security_center_client.list_sources(formatted_parent).each_page do |page|
1723
- # # Process each page at a time.
1724
- # page.each do |element|
1725
- # # Process element.
1726
- # end
1727
- # end
1728
-
1729
- def list_sources \
1730
- parent,
1731
- page_size: nil,
1732
- options: nil,
1733
- &block
1734
- req = {
1735
- parent: parent,
1736
- page_size: page_size
1737
- }.delete_if { |_, v| v.nil? }
1738
- req = Google::Gax::to_proto(req, Google::Cloud::SecurityCenter::V1::ListSourcesRequest)
1739
- @list_sources.call(req, options, &block)
1740
- end
1741
-
1742
- # Runs asset discovery. The discovery is tracked with a long-running
1743
- # operation.
1744
- #
1745
- # This API can only be called with limited frequency for an organization. If
1746
- # it is called too frequently the caller will receive a TOO_MANY_REQUESTS
1747
- # error.
1748
- #
1749
- # @param parent [String]
1750
- # Required. Name of the organization to run asset discovery for. Its format
1751
- # is "organizations/[organization_id]".
1752
- # @param options [Google::Gax::CallOptions]
1753
- # Overrides the default settings for this call, e.g, timeout,
1754
- # retries, etc.
1755
- # @return [Google::Gax::Operation]
1756
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
1757
- # @example
1758
- # require "google/cloud/security_center"
1759
- #
1760
- # security_center_client = Google::Cloud::SecurityCenter.new(version: :v1)
1761
- # formatted_parent = Google::Cloud::SecurityCenter::V1::SecurityCenterClient.organization_path("[ORGANIZATION]")
1762
- #
1763
- # # Register a callback during the method call.
1764
- # operation = security_center_client.run_asset_discovery(formatted_parent) do |op|
1765
- # raise op.results.message if op.error?
1766
- # op_results = op.results
1767
- # # Process the results.
1768
- #
1769
- # metadata = op.metadata
1770
- # # Process the metadata.
1771
- # end
1772
- #
1773
- # # Or use the return value to register a callback.
1774
- # operation.on_done do |op|
1775
- # raise op.results.message if op.error?
1776
- # op_results = op.results
1777
- # # Process the results.
1778
- #
1779
- # metadata = op.metadata
1780
- # # Process the metadata.
1781
- # end
1782
- #
1783
- # # Manually reload the operation.
1784
- # operation.reload!
1785
- #
1786
- # # Or block until the operation completes, triggering callbacks on
1787
- # # completion.
1788
- # operation.wait_until_done!
1789
-
1790
- def run_asset_discovery \
1791
- parent,
1792
- options: nil
1793
- req = {
1794
- parent: parent
1795
- }.delete_if { |_, v| v.nil? }
1796
- req = Google::Gax::to_proto(req, Google::Cloud::SecurityCenter::V1::RunAssetDiscoveryRequest)
1797
- operation = Google::Gax::Operation.new(
1798
- @run_asset_discovery.call(req, options),
1799
- @operations_client,
1800
- Google::Cloud::SecurityCenter::V1::RunAssetDiscoveryResponse,
1801
- Google::Protobuf::Empty,
1802
- call_options: options
1803
- )
1804
- operation.on_done { |operation| yield(operation) } if block_given?
1805
- operation
1806
- end
1807
-
1808
- # Updates the state of a finding.
1809
- #
1810
- # @param name [String]
1811
- # Required. The relative resource name of the finding. See:
1812
- # https://cloud.google.com/apis/design/resource_names#relative_resource_name
1813
- # Example:
1814
- # "organizations/{organization_id}/sources/{source_id}/finding/{finding_id}".
1815
- # @param state [Google::Cloud::SecurityCenter::V1::Finding::State]
1816
- # Required. The desired State of the finding.
1817
- # @param start_time [Google::Protobuf::Timestamp | Hash]
1818
- # Required. The time at which the updated state takes effect.
1819
- # A hash of the same form as `Google::Protobuf::Timestamp`
1820
- # can also be provided.
1821
- # @param options [Google::Gax::CallOptions]
1822
- # Overrides the default settings for this call, e.g, timeout,
1823
- # retries, etc.
1824
- # @yield [result, operation] Access the result along with the RPC operation
1825
- # @yieldparam result [Google::Cloud::SecurityCenter::V1::Finding]
1826
- # @yieldparam operation [GRPC::ActiveCall::Operation]
1827
- # @return [Google::Cloud::SecurityCenter::V1::Finding]
1828
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
1829
- # @example
1830
- # require "google/cloud/security_center"
1831
- #
1832
- # security_center_client = Google::Cloud::SecurityCenter.new(version: :v1)
1833
- # formatted_name = Google::Cloud::SecurityCenter::V1::SecurityCenterClient.finding_path("[ORGANIZATION]", "[SOURCE]", "[FINDING]")
1834
- #
1835
- # # TODO: Initialize `state`:
1836
- # state = :STATE_UNSPECIFIED
1837
- #
1838
- # # TODO: Initialize `start_time`:
1839
- # start_time = {}
1840
- # response = security_center_client.set_finding_state(formatted_name, state, start_time)
1841
-
1842
- def set_finding_state \
1843
- name,
1844
- state,
1845
- start_time,
1846
- options: nil,
1847
- &block
1848
- req = {
1849
- name: name,
1850
- state: state,
1851
- start_time: start_time
1852
- }.delete_if { |_, v| v.nil? }
1853
- req = Google::Gax::to_proto(req, Google::Cloud::SecurityCenter::V1::SetFindingStateRequest)
1854
- @set_finding_state.call(req, options, &block)
1855
- end
1856
-
1857
- # Sets the access control policy on the specified Source.
1858
- #
1859
- # @param resource [String]
1860
- # REQUIRED: The resource for which the policy is being specified.
1861
- # See the operation documentation for the appropriate value for this field.
1862
- # @param policy [Google::Iam::V1::Policy | Hash]
1863
- # REQUIRED: The complete policy to be applied to the `resource`. The size of
1864
- # the policy is limited to a few 10s of KB. An empty policy is a
1865
- # valid policy but certain Cloud Platform services (such as Projects)
1866
- # might reject them.
1867
- # A hash of the same form as `Google::Iam::V1::Policy`
1868
- # can also be provided.
1869
- # @param options [Google::Gax::CallOptions]
1870
- # Overrides the default settings for this call, e.g, timeout,
1871
- # retries, etc.
1872
- # @yield [result, operation] Access the result along with the RPC operation
1873
- # @yieldparam result [Google::Iam::V1::Policy]
1874
- # @yieldparam operation [GRPC::ActiveCall::Operation]
1875
- # @return [Google::Iam::V1::Policy]
1876
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
1877
- # @example
1878
- # require "google/cloud/security_center"
1879
- #
1880
- # security_center_client = Google::Cloud::SecurityCenter.new(version: :v1)
1881
- #
1882
- # # TODO: Initialize `resource`:
1883
- # resource = ''
1884
- #
1885
- # # TODO: Initialize `policy`:
1886
- # policy = {}
1887
- # response = security_center_client.set_iam_policy(resource, policy)
1888
-
1889
- def set_iam_policy \
1890
- resource,
1891
- policy,
1892
- options: nil,
1893
- &block
1894
- req = {
1895
- resource: resource,
1896
- policy: policy
1897
- }.delete_if { |_, v| v.nil? }
1898
- req = Google::Gax::to_proto(req, Google::Iam::V1::SetIamPolicyRequest)
1899
- @set_iam_policy.call(req, options, &block)
1900
- end
1901
-
1902
- # Creates or updates a finding. The corresponding source must exist for a
1903
- # finding creation to succeed.
1904
- #
1905
- # @param finding [Google::Cloud::SecurityCenter::V1::Finding | Hash]
1906
- # Required. The finding resource to update or create if it does not already
1907
- # exist. parent, security_marks, and update_time will be ignored.
1908
- #
1909
- # In the case of creation, the finding id portion of the name must be
1910
- # alphanumeric and less than or equal to 32 characters and greater than 0
1911
- # characters in length.
1912
- # A hash of the same form as `Google::Cloud::SecurityCenter::V1::Finding`
1913
- # can also be provided.
1914
- # @param update_mask [Google::Protobuf::FieldMask | Hash]
1915
- # The FieldMask to use when updating the finding resource. This field should
1916
- # not be specified when creating a finding.
1917
- #
1918
- # When updating a finding, an empty mask is treated as updating all mutable
1919
- # fields and replacing source_properties. Individual source_properties can
1920
- # be added/updated by using "source_properties.<property key>" in the field
1921
- # mask.
1922
- # A hash of the same form as `Google::Protobuf::FieldMask`
1923
- # can also be provided.
1924
- # @param options [Google::Gax::CallOptions]
1925
- # Overrides the default settings for this call, e.g, timeout,
1926
- # retries, etc.
1927
- # @yield [result, operation] Access the result along with the RPC operation
1928
- # @yieldparam result [Google::Cloud::SecurityCenter::V1::Finding]
1929
- # @yieldparam operation [GRPC::ActiveCall::Operation]
1930
- # @return [Google::Cloud::SecurityCenter::V1::Finding]
1931
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
1932
- # @example
1933
- # require "google/cloud/security_center"
1934
- #
1935
- # security_center_client = Google::Cloud::SecurityCenter.new(version: :v1)
1936
- #
1937
- # # TODO: Initialize `finding`:
1938
- # finding = {}
1939
- # response = security_center_client.update_finding(finding)
1940
-
1941
- def update_finding \
1942
- finding,
1943
- update_mask: nil,
1944
- options: nil,
1945
- &block
1946
- req = {
1947
- finding: finding,
1948
- update_mask: update_mask
1949
- }.delete_if { |_, v| v.nil? }
1950
- req = Google::Gax::to_proto(req, Google::Cloud::SecurityCenter::V1::UpdateFindingRequest)
1951
- @update_finding.call(req, options, &block)
1952
- end
1953
-
1954
- # Updates a notification config.
1955
- #
1956
- # @param notification_config [Google::Cloud::SecurityCenter::V1::NotificationConfig | Hash]
1957
- # Required. The notification config to update.
1958
- # A hash of the same form as `Google::Cloud::SecurityCenter::V1::NotificationConfig`
1959
- # can also be provided.
1960
- # @param update_mask [Google::Protobuf::FieldMask | Hash]
1961
- # The FieldMask to use when updating the notification config.
1962
- #
1963
- # If empty all mutable fields will be updated.
1964
- # A hash of the same form as `Google::Protobuf::FieldMask`
1965
- # can also be provided.
1966
- # @param options [Google::Gax::CallOptions]
1967
- # Overrides the default settings for this call, e.g, timeout,
1968
- # retries, etc.
1969
- # @yield [result, operation] Access the result along with the RPC operation
1970
- # @yieldparam result [Google::Cloud::SecurityCenter::V1::NotificationConfig]
1971
- # @yieldparam operation [GRPC::ActiveCall::Operation]
1972
- # @return [Google::Cloud::SecurityCenter::V1::NotificationConfig]
1973
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
1974
- # @example
1975
- # require "google/cloud/security_center"
1976
- #
1977
- # security_center_client = Google::Cloud::SecurityCenter.new(version: :v1)
1978
- #
1979
- # # TODO: Initialize `notification_config`:
1980
- # notification_config = {}
1981
- # response = security_center_client.update_notification_config(notification_config)
1982
-
1983
- def update_notification_config \
1984
- notification_config,
1985
- update_mask: nil,
1986
- options: nil,
1987
- &block
1988
- req = {
1989
- notification_config: notification_config,
1990
- update_mask: update_mask
1991
- }.delete_if { |_, v| v.nil? }
1992
- req = Google::Gax::to_proto(req, Google::Cloud::SecurityCenter::V1::UpdateNotificationConfigRequest)
1993
- @update_notification_config.call(req, options, &block)
1994
- end
1995
-
1996
- # Updates an organization's settings.
1997
- #
1998
- # @param organization_settings [Google::Cloud::SecurityCenter::V1::OrganizationSettings | Hash]
1999
- # Required. The organization settings resource to update.
2000
- # A hash of the same form as `Google::Cloud::SecurityCenter::V1::OrganizationSettings`
2001
- # can also be provided.
2002
- # @param update_mask [Google::Protobuf::FieldMask | Hash]
2003
- # The FieldMask to use when updating the settings resource.
2004
- #
2005
- # If empty all mutable fields will be updated.
2006
- # A hash of the same form as `Google::Protobuf::FieldMask`
2007
- # can also be provided.
2008
- # @param options [Google::Gax::CallOptions]
2009
- # Overrides the default settings for this call, e.g, timeout,
2010
- # retries, etc.
2011
- # @yield [result, operation] Access the result along with the RPC operation
2012
- # @yieldparam result [Google::Cloud::SecurityCenter::V1::OrganizationSettings]
2013
- # @yieldparam operation [GRPC::ActiveCall::Operation]
2014
- # @return [Google::Cloud::SecurityCenter::V1::OrganizationSettings]
2015
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
2016
- # @example
2017
- # require "google/cloud/security_center"
2018
- #
2019
- # security_center_client = Google::Cloud::SecurityCenter.new(version: :v1)
2020
- #
2021
- # # TODO: Initialize `organization_settings`:
2022
- # organization_settings = {}
2023
- # response = security_center_client.update_organization_settings(organization_settings)
2024
-
2025
- def update_organization_settings \
2026
- organization_settings,
2027
- update_mask: nil,
2028
- options: nil,
2029
- &block
2030
- req = {
2031
- organization_settings: organization_settings,
2032
- update_mask: update_mask
2033
- }.delete_if { |_, v| v.nil? }
2034
- req = Google::Gax::to_proto(req, Google::Cloud::SecurityCenter::V1::UpdateOrganizationSettingsRequest)
2035
- @update_organization_settings.call(req, options, &block)
2036
- end
2037
-
2038
- # Updates a source.
2039
- #
2040
- # @param source [Google::Cloud::SecurityCenter::V1::Source | Hash]
2041
- # Required. The source resource to update.
2042
- # A hash of the same form as `Google::Cloud::SecurityCenter::V1::Source`
2043
- # can also be provided.
2044
- # @param update_mask [Google::Protobuf::FieldMask | Hash]
2045
- # The FieldMask to use when updating the source resource.
2046
- #
2047
- # If empty all mutable fields will be updated.
2048
- # A hash of the same form as `Google::Protobuf::FieldMask`
2049
- # can also be provided.
2050
- # @param options [Google::Gax::CallOptions]
2051
- # Overrides the default settings for this call, e.g, timeout,
2052
- # retries, etc.
2053
- # @yield [result, operation] Access the result along with the RPC operation
2054
- # @yieldparam result [Google::Cloud::SecurityCenter::V1::Source]
2055
- # @yieldparam operation [GRPC::ActiveCall::Operation]
2056
- # @return [Google::Cloud::SecurityCenter::V1::Source]
2057
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
2058
- # @example
2059
- # require "google/cloud/security_center"
2060
- #
2061
- # security_center_client = Google::Cloud::SecurityCenter.new(version: :v1)
2062
- #
2063
- # # TODO: Initialize `source`:
2064
- # source = {}
2065
- # response = security_center_client.update_source(source)
2066
-
2067
- def update_source \
2068
- source,
2069
- update_mask: nil,
2070
- options: nil,
2071
- &block
2072
- req = {
2073
- source: source,
2074
- update_mask: update_mask
2075
- }.delete_if { |_, v| v.nil? }
2076
- req = Google::Gax::to_proto(req, Google::Cloud::SecurityCenter::V1::UpdateSourceRequest)
2077
- @update_source.call(req, options, &block)
2078
- end
2079
-
2080
- # Updates security marks.
2081
- #
2082
- # @param security_marks [Google::Cloud::SecurityCenter::V1::SecurityMarks | Hash]
2083
- # Required. The security marks resource to update.
2084
- # A hash of the same form as `Google::Cloud::SecurityCenter::V1::SecurityMarks`
2085
- # can also be provided.
2086
- # @param update_mask [Google::Protobuf::FieldMask | Hash]
2087
- # The FieldMask to use when updating the security marks resource.
2088
- #
2089
- # The field mask must not contain duplicate fields.
2090
- # If empty or set to "marks", all marks will be replaced. Individual
2091
- # marks can be updated using "marks.<mark_key>".
2092
- # A hash of the same form as `Google::Protobuf::FieldMask`
2093
- # can also be provided.
2094
- # @param start_time [Google::Protobuf::Timestamp | Hash]
2095
- # The time at which the updated SecurityMarks take effect.
2096
- # If not set uses current server time. Updates will be applied to the
2097
- # SecurityMarks that are active immediately preceding this time.
2098
- # A hash of the same form as `Google::Protobuf::Timestamp`
2099
- # can also be provided.
2100
- # @param options [Google::Gax::CallOptions]
2101
- # Overrides the default settings for this call, e.g, timeout,
2102
- # retries, etc.
2103
- # @yield [result, operation] Access the result along with the RPC operation
2104
- # @yieldparam result [Google::Cloud::SecurityCenter::V1::SecurityMarks]
2105
- # @yieldparam operation [GRPC::ActiveCall::Operation]
2106
- # @return [Google::Cloud::SecurityCenter::V1::SecurityMarks]
2107
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
2108
- # @example
2109
- # require "google/cloud/security_center"
2110
- #
2111
- # security_center_client = Google::Cloud::SecurityCenter.new(version: :v1)
2112
- #
2113
- # # TODO: Initialize `security_marks`:
2114
- # security_marks = {}
2115
- # response = security_center_client.update_security_marks(security_marks)
2116
-
2117
- def update_security_marks \
2118
- security_marks,
2119
- update_mask: nil,
2120
- start_time: nil,
2121
- options: nil,
2122
- &block
2123
- req = {
2124
- security_marks: security_marks,
2125
- update_mask: update_mask,
2126
- start_time: start_time
2127
- }.delete_if { |_, v| v.nil? }
2128
- req = Google::Gax::to_proto(req, Google::Cloud::SecurityCenter::V1::UpdateSecurityMarksRequest)
2129
- @update_security_marks.call(req, options, &block)
2130
- end
2131
- end
2132
- end
2133
- end
2134
- end
2135
- end