google-cloud-security_center_management-v1 0.a → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +12 -0
  3. data/AUTHENTICATION.md +122 -0
  4. data/README.md +144 -8
  5. data/lib/google/cloud/security_center_management/v1/bindings_override.rb +102 -0
  6. data/lib/google/cloud/security_center_management/v1/rest.rb +38 -0
  7. data/lib/google/cloud/security_center_management/v1/security_center_management/client.rb +2321 -0
  8. data/lib/google/cloud/security_center_management/v1/security_center_management/credentials.rb +47 -0
  9. data/lib/google/cloud/security_center_management/v1/security_center_management/paths.rb +316 -0
  10. data/lib/google/cloud/security_center_management/v1/security_center_management/rest/client.rb +2177 -0
  11. data/lib/google/cloud/security_center_management/v1/security_center_management/rest/service_stub.rb +1401 -0
  12. data/lib/google/cloud/security_center_management/v1/security_center_management/rest.rb +53 -0
  13. data/lib/google/cloud/security_center_management/v1/security_center_management.rb +55 -0
  14. data/lib/google/cloud/security_center_management/v1/version.rb +7 -2
  15. data/lib/google/cloud/security_center_management/v1.rb +45 -0
  16. data/lib/google/cloud/securitycentermanagement/v1/security_center_management_pb.rb +107 -0
  17. data/lib/google/cloud/securitycentermanagement/v1/security_center_management_services_pb.rb +115 -0
  18. data/lib/google-cloud-security_center_management-v1.rb +21 -0
  19. data/proto_docs/README.md +4 -0
  20. data/proto_docs/google/api/client.rb +399 -0
  21. data/proto_docs/google/api/field_behavior.rb +85 -0
  22. data/proto_docs/google/api/launch_stage.rb +71 -0
  23. data/proto_docs/google/api/resource.rb +222 -0
  24. data/proto_docs/google/cloud/securitycentermanagement/v1/security_center_management.rb +1055 -0
  25. data/proto_docs/google/iam/v1/policy.rb +426 -0
  26. data/proto_docs/google/protobuf/any.rb +145 -0
  27. data/proto_docs/google/protobuf/duration.rb +98 -0
  28. data/proto_docs/google/protobuf/empty.rb +34 -0
  29. data/proto_docs/google/protobuf/field_mask.rb +229 -0
  30. data/proto_docs/google/protobuf/struct.rb +96 -0
  31. data/proto_docs/google/protobuf/timestamp.rb +127 -0
  32. data/proto_docs/google/rpc/status.rb +48 -0
  33. data/proto_docs/google/type/expr.rb +75 -0
  34. metadata +112 -11
@@ -0,0 +1,1055 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2024 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Cloud
22
+ module SecurityCenterManagement
23
+ module V1
24
+ # An EffectiveSecurityHealthAnalyticsCustomModule is the representation of
25
+ # a Security Health Analytics custom module at a specified level of the
26
+ # resource hierarchy: organization, folder, or project. If a custom module is
27
+ # inherited from a parent organization or folder, the value of the
28
+ # `enablementState` property in EffectiveSecurityHealthAnalyticsCustomModule is
29
+ # set to the value that is effective in the parent, instead of `INHERITED`.
30
+ # For example, if the module is enabled in a parent organization or folder, the
31
+ # effective enablement_state for the module in all child folders or projects is
32
+ # also `enabled`. EffectiveSecurityHealthAnalyticsCustomModule is read-only.
33
+ # @!attribute [rw] name
34
+ # @return [::String]
35
+ # Identifier. The resource name of the custom module.
36
+ # Its format is
37
+ # "organizations/\\{organization}/locations/\\{location}/effectiveSecurityHealthAnalyticsCustomModules/\\{effective_security_health_analytics_custom_module}",
38
+ # or
39
+ # "folders/\\{folder}/locations/\\{location}/effectiveSecurityHealthAnalyticsCustomModules/\\{effective_security_health_analytics_custom_module}",
40
+ # or
41
+ # "projects/\\{project}/locations/\\{location}/effectiveSecurityHealthAnalyticsCustomModules/\\{effective_security_health_analytics_custom_module}"
42
+ # @!attribute [r] custom_config
43
+ # @return [::Google::Cloud::SecurityCenterManagement::V1::CustomConfig]
44
+ # Output only. The user-specified configuration for the module.
45
+ # @!attribute [r] enablement_state
46
+ # @return [::Google::Cloud::SecurityCenterManagement::V1::EffectiveSecurityHealthAnalyticsCustomModule::EnablementState]
47
+ # Output only. The effective state of enablement for the module at the given
48
+ # level of the hierarchy.
49
+ # @!attribute [r] display_name
50
+ # @return [::String]
51
+ # Output only. The display name for the custom module. The name must be
52
+ # between 1 and 128 characters, start with a lowercase letter, and contain
53
+ # alphanumeric characters or underscores only.
54
+ class EffectiveSecurityHealthAnalyticsCustomModule
55
+ include ::Google::Protobuf::MessageExts
56
+ extend ::Google::Protobuf::MessageExts::ClassMethods
57
+
58
+ # The enablement state of the module.
59
+ module EnablementState
60
+ # Unspecified enablement state.
61
+ ENABLEMENT_STATE_UNSPECIFIED = 0
62
+
63
+ # The module is enabled at the given level.
64
+ ENABLED = 1
65
+
66
+ # The module is disabled at the given level.
67
+ DISABLED = 2
68
+ end
69
+ end
70
+
71
+ # Request message for listing effective Security Health Analytics custom
72
+ # modules.
73
+ # @!attribute [rw] parent
74
+ # @return [::String]
75
+ # Required. Name of parent to list effective custom modules. Its format is
76
+ # "organizations/\\{organization}/locations/\\{location}",
77
+ # "folders/\\{folder}/locations/\\{location}",
78
+ # or
79
+ # "projects/\\{project}/locations/\\{location}"
80
+ # @!attribute [rw] page_size
81
+ # @return [::Integer]
82
+ # Optional. The maximum number of results to return in a single response.
83
+ # Default is 10, minimum is 1, maximum is 1000.
84
+ # @!attribute [rw] page_token
85
+ # @return [::String]
86
+ # Optional. The value returned by the last call indicating a continuation.
87
+ class ListEffectiveSecurityHealthAnalyticsCustomModulesRequest
88
+ include ::Google::Protobuf::MessageExts
89
+ extend ::Google::Protobuf::MessageExts::ClassMethods
90
+ end
91
+
92
+ # Response message for listing effective Security Health Analytics custom
93
+ # modules.
94
+ # @!attribute [rw] effective_security_health_analytics_custom_modules
95
+ # @return [::Array<::Google::Cloud::SecurityCenterManagement::V1::EffectiveSecurityHealthAnalyticsCustomModule>]
96
+ # The list of EffectiveSecurityHealthAnalyticsCustomModule
97
+ # @!attribute [rw] next_page_token
98
+ # @return [::String]
99
+ # A token identifying a page of results the server should return.
100
+ class ListEffectiveSecurityHealthAnalyticsCustomModulesResponse
101
+ include ::Google::Protobuf::MessageExts
102
+ extend ::Google::Protobuf::MessageExts::ClassMethods
103
+ end
104
+
105
+ # Message for getting a EffectiveSecurityHealthAnalyticsCustomModule
106
+ # @!attribute [rw] name
107
+ # @return [::String]
108
+ # Required. The resource name of the SHA custom module.
109
+ #
110
+ # Its format is:
111
+ #
112
+ # * "organizations/\\{organization}/locations/\\{location}/effectiveSecurityHealthAnalyticsCustomModules/\\{module_id}".
113
+ # * "folders/\\{folder}/locations/\\{location}/effectiveSecurityHealthAnalyticsCustomModules/\\{module_id}".
114
+ # * "projects/\\{project}/locations/\\{location}/effectiveSecurityHealthAnalyticsCustomModules/\\{module_id}".
115
+ class GetEffectiveSecurityHealthAnalyticsCustomModuleRequest
116
+ include ::Google::Protobuf::MessageExts
117
+ extend ::Google::Protobuf::MessageExts::ClassMethods
118
+ end
119
+
120
+ # Represents an instance of a Security Health Analytics custom module,
121
+ # including its full module name, display name, enablement state, and last
122
+ # updated time. You can create a custom module at the organization, folder, or
123
+ # project level. Custom modules that you create at the organization or folder
124
+ # level are inherited by the child folders and projects.
125
+ # @!attribute [rw] name
126
+ # @return [::String]
127
+ # Identifier. The resource name of the custom module.
128
+ # Its format is
129
+ # "organizations/\\{organization}/locations/\\{location}/securityHealthAnalyticsCustomModules/\\{security_health_analytics_custom_module}",
130
+ # or
131
+ # "folders/\\{folder}/locations/\\{location}/securityHealthAnalyticsCustomModules/\\{security_health_analytics_custom_module}",
132
+ # or
133
+ # "projects/\\{project}/locations/\\{location}/securityHealthAnalyticsCustomModules/\\{security_health_analytics_custom_module}"
134
+ #
135
+ # The id \\{customModule} is server-generated and is not user settable.
136
+ # It will be a numeric id containing 1-20 digits.
137
+ # @!attribute [rw] display_name
138
+ # @return [::String]
139
+ # Optional. The display name of the Security Health Analytics custom module.
140
+ # This display name becomes the finding category for all findings that are
141
+ # returned by this custom module. The display name must be between 1 and
142
+ # 128 characters, start with a lowercase letter, and contain alphanumeric
143
+ # characters or underscores only.
144
+ # @!attribute [rw] enablement_state
145
+ # @return [::Google::Cloud::SecurityCenterManagement::V1::SecurityHealthAnalyticsCustomModule::EnablementState]
146
+ # Optional. The enablement state of the custom module.
147
+ # @!attribute [r] update_time
148
+ # @return [::Google::Protobuf::Timestamp]
149
+ # Output only. The time at which the custom module was last updated.
150
+ # @!attribute [r] last_editor
151
+ # @return [::String]
152
+ # Output only. The editor that last updated the custom module.
153
+ # @!attribute [r] ancestor_module
154
+ # @return [::String]
155
+ # Output only. Specifies the organization or folder from which the custom
156
+ # module is inherited. If empty, indicates that the custom module was created
157
+ # in the organization, folder, or project in which you are viewing the custom
158
+ # module.
159
+ # @!attribute [rw] custom_config
160
+ # @return [::Google::Cloud::SecurityCenterManagement::V1::CustomConfig]
161
+ # Optional. The user specified custom configuration for the module.
162
+ class SecurityHealthAnalyticsCustomModule
163
+ include ::Google::Protobuf::MessageExts
164
+ extend ::Google::Protobuf::MessageExts::ClassMethods
165
+
166
+ # Possible enablement states of a custom module.
167
+ module EnablementState
168
+ # Unspecified enablement state.
169
+ ENABLEMENT_STATE_UNSPECIFIED = 0
170
+
171
+ # The module is enabled at the given CRM resource.
172
+ ENABLED = 1
173
+
174
+ # The module is disabled at the given CRM resource.
175
+ DISABLED = 2
176
+
177
+ # State is inherited from an ancestor module. The module will either
178
+ # be effectively ENABLED or DISABLED based on its closest non-inherited
179
+ # ancestor module in the CRM hierarchy. Attempting to set a top level
180
+ # module (module with no parent) to the INHERITED state will result in an
181
+ # INVALID_ARGUMENT error.
182
+ INHERITED = 3
183
+ end
184
+ end
185
+
186
+ # Defines the properties in a custom module configuration for Security
187
+ # Health Analytics. Use the custom module configuration to create custom
188
+ # detectors that generate custom findings for resources that you specify.
189
+ # @!attribute [rw] predicate
190
+ # @return [::Google::Type::Expr]
191
+ # Optional. The CEL expression to evaluate to produce findings. When the
192
+ # expression evaluates to true against a resource, a finding is generated.
193
+ # @!attribute [rw] custom_output
194
+ # @return [::Google::Cloud::SecurityCenterManagement::V1::CustomConfig::CustomOutputSpec]
195
+ # Optional. Custom output properties.
196
+ # @!attribute [rw] resource_selector
197
+ # @return [::Google::Cloud::SecurityCenterManagement::V1::CustomConfig::ResourceSelector]
198
+ # Optional. The Cloud Asset Inventory resource types that the custom module
199
+ # operates on. For information about resource types, see [Supported asset
200
+ # types](https://cloud.google.com/asset-inventory/docs/supported-asset-types).
201
+ # Each custom module can specify up to 5 resource types.
202
+ # @!attribute [rw] severity
203
+ # @return [::Google::Cloud::SecurityCenterManagement::V1::CustomConfig::Severity]
204
+ # Optional. The severity to assign to findings generated by the module.
205
+ # @!attribute [rw] description
206
+ # @return [::String]
207
+ # Optional. Text that describes the vulnerability or misconfiguration that
208
+ # the custom module detects. This explanation is returned with each finding
209
+ # instance to help investigators understand the detected issue. The text must
210
+ # be enclosed in quotation marks.
211
+ # @!attribute [rw] recommendation
212
+ # @return [::String]
213
+ # Optional. An explanation of the recommended steps that security teams can
214
+ # take to resolve the detected issue. This explanation is returned with each
215
+ # finding generated by this module in the `nextSteps` property of the finding
216
+ # JSON.
217
+ class CustomConfig
218
+ include ::Google::Protobuf::MessageExts
219
+ extend ::Google::Protobuf::MessageExts::ClassMethods
220
+
221
+ # A set of optional name-value pairs that define custom source properties to
222
+ # return with each finding that is generated by the custom module. The custom
223
+ # source properties that are defined here are included in the finding JSON
224
+ # under `sourceProperties`.
225
+ # @!attribute [rw] properties
226
+ # @return [::Array<::Google::Cloud::SecurityCenterManagement::V1::CustomConfig::CustomOutputSpec::Property>]
227
+ # Optional. A list of custom output properties to add to the finding.
228
+ class CustomOutputSpec
229
+ include ::Google::Protobuf::MessageExts
230
+ extend ::Google::Protobuf::MessageExts::ClassMethods
231
+
232
+ # An individual name-value pair that defines a custom source property.
233
+ # @!attribute [rw] name
234
+ # @return [::String]
235
+ # Optional. Name of the property for the custom output.
236
+ # @!attribute [rw] value_expression
237
+ # @return [::Google::Type::Expr]
238
+ # Optional. The CEL expression for the custom output. A resource property
239
+ # can be specified to return the value of the property or a text string
240
+ # enclosed in quotation marks.
241
+ class Property
242
+ include ::Google::Protobuf::MessageExts
243
+ extend ::Google::Protobuf::MessageExts::ClassMethods
244
+ end
245
+ end
246
+
247
+ # Resource for selecting resource type.
248
+ # @!attribute [rw] resource_types
249
+ # @return [::Array<::String>]
250
+ # Optional. The resource types to run the detector on.
251
+ class ResourceSelector
252
+ include ::Google::Protobuf::MessageExts
253
+ extend ::Google::Protobuf::MessageExts::ClassMethods
254
+ end
255
+
256
+ # Defines the valid value options for the severity of a finding.
257
+ module Severity
258
+ # Unspecified severity.
259
+ SEVERITY_UNSPECIFIED = 0
260
+
261
+ # Critical severity.
262
+ CRITICAL = 1
263
+
264
+ # High severity.
265
+ HIGH = 2
266
+
267
+ # Medium severity.
268
+ MEDIUM = 3
269
+
270
+ # Low severity.
271
+ LOW = 4
272
+ end
273
+ end
274
+
275
+ # Request message for listing Security Health Analytics custom modules.
276
+ # @!attribute [rw] parent
277
+ # @return [::String]
278
+ # Required. Name of parent to list custom modules. Its format is
279
+ # "organizations/\\{organization}/locations/\\{location}",
280
+ # "folders/\\{folder}/locations/\\{location}",
281
+ # or
282
+ # "projects/\\{project}/locations/\\{location}"
283
+ # @!attribute [rw] page_size
284
+ # @return [::Integer]
285
+ # Optional. The maximum number of results to return in a single response.
286
+ # Default is 10, minimum is 1, maximum is 1000.
287
+ # @!attribute [rw] page_token
288
+ # @return [::String]
289
+ # Optional. A token identifying a page of results the server should return.
290
+ class ListSecurityHealthAnalyticsCustomModulesRequest
291
+ include ::Google::Protobuf::MessageExts
292
+ extend ::Google::Protobuf::MessageExts::ClassMethods
293
+ end
294
+
295
+ # Response message for listing Security Health Analytics custom modules.
296
+ # @!attribute [rw] security_health_analytics_custom_modules
297
+ # @return [::Array<::Google::Cloud::SecurityCenterManagement::V1::SecurityHealthAnalyticsCustomModule>]
298
+ # The list of SecurityHealthAnalyticsCustomModules
299
+ # @!attribute [rw] next_page_token
300
+ # @return [::String]
301
+ # A token identifying a page of results the server should return.
302
+ class ListSecurityHealthAnalyticsCustomModulesResponse
303
+ include ::Google::Protobuf::MessageExts
304
+ extend ::Google::Protobuf::MessageExts::ClassMethods
305
+ end
306
+
307
+ # Request message for listing descendant Security Health Analytics custom
308
+ # modules.
309
+ # @!attribute [rw] parent
310
+ # @return [::String]
311
+ # Required. Name of parent to list custom modules. Its format is
312
+ # "organizations/\\{organization}/locations/\\{location}",
313
+ # "folders/\\{folder}/locations/\\{location}",
314
+ # or
315
+ # "projects/\\{project}/locations/\\{location}"
316
+ # @!attribute [rw] page_size
317
+ # @return [::Integer]
318
+ # Optional. The maximum number of results to return in a single response.
319
+ # Default is 10, minimum is 1, maximum is 1000.
320
+ # @!attribute [rw] page_token
321
+ # @return [::String]
322
+ # Optional. A token identifying a page of results the server should return.
323
+ class ListDescendantSecurityHealthAnalyticsCustomModulesRequest
324
+ include ::Google::Protobuf::MessageExts
325
+ extend ::Google::Protobuf::MessageExts::ClassMethods
326
+ end
327
+
328
+ # Response message for listing descendant Security Health Analytics custom
329
+ # modules.
330
+ # @!attribute [rw] security_health_analytics_custom_modules
331
+ # @return [::Array<::Google::Cloud::SecurityCenterManagement::V1::SecurityHealthAnalyticsCustomModule>]
332
+ # The list of SecurityHealthAnalyticsCustomModules
333
+ # @!attribute [rw] next_page_token
334
+ # @return [::String]
335
+ # A token identifying a page of results the server should return.
336
+ class ListDescendantSecurityHealthAnalyticsCustomModulesResponse
337
+ include ::Google::Protobuf::MessageExts
338
+ extend ::Google::Protobuf::MessageExts::ClassMethods
339
+ end
340
+
341
+ # Message for getting a SecurityHealthAnalyticsCustomModule
342
+ # @!attribute [rw] name
343
+ # @return [::String]
344
+ # Required. Name of the resource
345
+ class GetSecurityHealthAnalyticsCustomModuleRequest
346
+ include ::Google::Protobuf::MessageExts
347
+ extend ::Google::Protobuf::MessageExts::ClassMethods
348
+ end
349
+
350
+ # Message for creating a SecurityHealthAnalyticsCustomModule
351
+ # @!attribute [rw] parent
352
+ # @return [::String]
353
+ # Required. Name of the parent for the module. Its format is
354
+ # "organizations/\\{organization}/locations/\\{location}",
355
+ # "folders/\\{folder}/locations/\\{location}",
356
+ # or
357
+ # "projects/\\{project}/locations/\\{location}"
358
+ # @!attribute [rw] security_health_analytics_custom_module
359
+ # @return [::Google::Cloud::SecurityCenterManagement::V1::SecurityHealthAnalyticsCustomModule]
360
+ # Required. The resource being created
361
+ # @!attribute [rw] validate_only
362
+ # @return [::Boolean]
363
+ # Optional. When set to true, only validations (including IAM checks) will
364
+ # done for the request (no module will be created). An OK response indicates
365
+ # the request is valid while an error response indicates the request is
366
+ # invalid. Note that a subsequent request to actually create the module could
367
+ # still fail because:
368
+ # 1. the state could have changed (e.g. IAM permission lost) or
369
+ # 2. A failure occurred during creation of the module.
370
+ # Defaults to false.
371
+ class CreateSecurityHealthAnalyticsCustomModuleRequest
372
+ include ::Google::Protobuf::MessageExts
373
+ extend ::Google::Protobuf::MessageExts::ClassMethods
374
+ end
375
+
376
+ # Message for updating a SecurityHealthAnalyticsCustomModule
377
+ # @!attribute [rw] update_mask
378
+ # @return [::Google::Protobuf::FieldMask]
379
+ # Required. The list of fields to be updated. The only fields that can be
380
+ # updated are `enablement_state` and `custom_config`. If empty or set to the
381
+ # wildcard value `*`, both `enablement_state` and `custom_config` are
382
+ # updated.
383
+ # @!attribute [rw] security_health_analytics_custom_module
384
+ # @return [::Google::Cloud::SecurityCenterManagement::V1::SecurityHealthAnalyticsCustomModule]
385
+ # Required. The resource being updated
386
+ # @!attribute [rw] validate_only
387
+ # @return [::Boolean]
388
+ # Optional. When set to true, only validations (including IAM checks) will
389
+ # done for the request (module will not be updated). An OK response indicates
390
+ # the request is valid while an error response indicates the request is
391
+ # invalid. Note that a subsequent request to actually update the module could
392
+ # still fail because 1. the state could have changed (e.g. IAM permission
393
+ # lost) or
394
+ # 2. A failure occurred while trying to update the module.
395
+ class UpdateSecurityHealthAnalyticsCustomModuleRequest
396
+ include ::Google::Protobuf::MessageExts
397
+ extend ::Google::Protobuf::MessageExts::ClassMethods
398
+ end
399
+
400
+ # Message for deleting a SecurityHealthAnalyticsCustomModule
401
+ # @!attribute [rw] name
402
+ # @return [::String]
403
+ # Required. The resource name of the SHA custom module.
404
+ #
405
+ # Its format is:
406
+ #
407
+ # * "organizations/\\{organization}/locations/\\{location}/securityHealthAnalyticsCustomModules/\\{security_health_analytics_custom_module}".
408
+ # * "folders/\\{folder}/locations/\\{location}/securityHealthAnalyticsCustomModules/\\{security_health_analytics_custom_module}".
409
+ # * "projects/\\{project}/locations/\\{location}/securityHealthAnalyticsCustomModules/\\{security_health_analytics_custom_module}".
410
+ # @!attribute [rw] validate_only
411
+ # @return [::Boolean]
412
+ # Optional. When set to true, only validations (including IAM checks) will
413
+ # done for the request (module will not be deleted). An OK response indicates
414
+ # the request is valid while an error response indicates the request is
415
+ # invalid. Note that a subsequent request to actually delete the module could
416
+ # still fail because 1. the state could have changed (e.g. IAM permission
417
+ # lost) or
418
+ # 2. A failure occurred while trying to delete the module.
419
+ class DeleteSecurityHealthAnalyticsCustomModuleRequest
420
+ include ::Google::Protobuf::MessageExts
421
+ extend ::Google::Protobuf::MessageExts::ClassMethods
422
+ end
423
+
424
+ # Request message to simulate a CustomConfig against a given test resource.
425
+ # Maximum size of the request is 4 MB by default.
426
+ # @!attribute [rw] parent
427
+ # @return [::String]
428
+ # Required. The relative resource name of the organization, project, or
429
+ # folder. For more information about relative resource names, see [Relative
430
+ # Resource
431
+ # Name](https://cloud.google.com/apis/design/resource_names#relative_resource_name)
432
+ # Example: `organizations/{organization_id}`.
433
+ # @!attribute [rw] custom_config
434
+ # @return [::Google::Cloud::SecurityCenterManagement::V1::CustomConfig]
435
+ # Required. The custom configuration that you need to test.
436
+ # @!attribute [rw] resource
437
+ # @return [::Google::Cloud::SecurityCenterManagement::V1::SimulateSecurityHealthAnalyticsCustomModuleRequest::SimulatedResource]
438
+ # Required. Resource data to simulate custom module against.
439
+ class SimulateSecurityHealthAnalyticsCustomModuleRequest
440
+ include ::Google::Protobuf::MessageExts
441
+ extend ::Google::Protobuf::MessageExts::ClassMethods
442
+
443
+ # Manually constructed resource name. If the custom module evaluates against
444
+ # only the resource data, you can omit the `iam_policy_data` field. If it
445
+ # evaluates only the `iam_policy_data` field, you can omit the resource data.
446
+ # @!attribute [rw] resource_type
447
+ # @return [::String]
448
+ # Required. The type of the resource, for example,
449
+ # `compute.googleapis.com/Disk`.
450
+ # @!attribute [rw] resource_data
451
+ # @return [::Google::Protobuf::Struct]
452
+ # Optional. A representation of the Google Cloud resource. Should match the
453
+ # Google Cloud resource JSON format.
454
+ # @!attribute [rw] iam_policy_data
455
+ # @return [::Google::Iam::V1::Policy]
456
+ # Optional. A representation of the IAM policy.
457
+ class SimulatedResource
458
+ include ::Google::Protobuf::MessageExts
459
+ extend ::Google::Protobuf::MessageExts::ClassMethods
460
+ end
461
+ end
462
+
463
+ # A subset of the fields of the Security Center Finding proto. The minimum set
464
+ # of fields needed to represent a simulated finding from a SHA custom module.
465
+ # @!attribute [rw] name
466
+ # @return [::String]
467
+ # Identifier. The [relative resource
468
+ # name](https://cloud.google.com/apis/design/resource_names#relative_resource_name)
469
+ # of the finding. Example:
470
+ # "organizations/\\{organization_id}/sources/\\{source_id}/findings/\\{finding_id}",
471
+ # "folders/\\{folder_id}/sources/\\{source_id}/findings/\\{finding_id}",
472
+ # "projects/\\{project_id}/sources/\\{source_id}/findings/\\{finding_id}".
473
+ # @!attribute [rw] parent
474
+ # @return [::String]
475
+ # The relative resource name of the source the finding belongs to. See:
476
+ # https://cloud.google.com/apis/design/resource_names#relative_resource_name
477
+ # This field is immutable after creation time.
478
+ # For example:
479
+ # "organizations/\\{organization_id}/sources/\\{source_id}"
480
+ # @!attribute [rw] resource_name
481
+ # @return [::String]
482
+ # For findings on Google Cloud resources, the full resource
483
+ # name of the Google Cloud resource this finding is for. See:
484
+ # https://cloud.google.com/apis/design/resource_names#full_resource_name
485
+ # When the finding is for a non-Google Cloud resource, the resourceName can
486
+ # be a customer or partner defined string. This field is immutable after
487
+ # creation time.
488
+ # @!attribute [rw] category
489
+ # @return [::String]
490
+ # The additional taxonomy group within findings from a given source.
491
+ # This field is immutable after creation time.
492
+ # Example: "XSS_FLASH_INJECTION"
493
+ # @!attribute [r] state
494
+ # @return [::Google::Cloud::SecurityCenterManagement::V1::SimulatedFinding::State]
495
+ # Output only. The state of the finding.
496
+ # @!attribute [rw] source_properties
497
+ # @return [::Google::Protobuf::Map{::String => ::Google::Protobuf::Value}]
498
+ # Source specific properties. These properties are managed by the source
499
+ # that writes the finding. The key names in the source_properties map must be
500
+ # between 1 and 255 characters, and must start with a letter and contain
501
+ # alphanumeric characters or underscores only.
502
+ # @!attribute [rw] event_time
503
+ # @return [::Google::Protobuf::Timestamp]
504
+ # The time the finding was first detected. If an existing finding is updated,
505
+ # then this is the time the update occurred.
506
+ # For example, if the finding represents an open firewall, this property
507
+ # captures the time the detector believes the firewall became open. The
508
+ # accuracy is determined by the detector. If the finding is later resolved,
509
+ # then this time reflects when the finding was resolved. This must not
510
+ # be set to a value greater than the current timestamp.
511
+ # @!attribute [rw] severity
512
+ # @return [::Google::Cloud::SecurityCenterManagement::V1::SimulatedFinding::Severity]
513
+ # The severity of the finding. This field is managed by the source that
514
+ # writes the finding.
515
+ # @!attribute [rw] finding_class
516
+ # @return [::Google::Cloud::SecurityCenterManagement::V1::SimulatedFinding::FindingClass]
517
+ # The class of the finding.
518
+ class SimulatedFinding
519
+ include ::Google::Protobuf::MessageExts
520
+ extend ::Google::Protobuf::MessageExts::ClassMethods
521
+
522
+ # @!attribute [rw] key
523
+ # @return [::String]
524
+ # @!attribute [rw] value
525
+ # @return [::Google::Protobuf::Value]
526
+ class SourcePropertiesEntry
527
+ include ::Google::Protobuf::MessageExts
528
+ extend ::Google::Protobuf::MessageExts::ClassMethods
529
+ end
530
+
531
+ # The state of the finding.
532
+ module State
533
+ # Unspecified state.
534
+ STATE_UNSPECIFIED = 0
535
+
536
+ # The finding requires attention and has not been addressed yet.
537
+ ACTIVE = 1
538
+
539
+ # The finding has been fixed, triaged as a non-issue or otherwise addressed
540
+ # and is no longer active.
541
+ INACTIVE = 2
542
+ end
543
+
544
+ # The severity of the finding.
545
+ module Severity
546
+ # This value is used for findings when a source doesn't write a severity
547
+ # value.
548
+ SEVERITY_UNSPECIFIED = 0
549
+
550
+ # Vulnerability:
551
+ # A critical vulnerability is easily discoverable by an external actor,
552
+ # exploitable, and results in the direct ability to execute arbitrary code,
553
+ # exfiltrate data, and otherwise gain additional access and privileges to
554
+ # cloud resources and workloads. Examples include publicly accessible
555
+ # unprotected user data and public SSH access with weak or no
556
+ # passwords.
557
+ #
558
+ # Threat:
559
+ # Indicates a threat that is able to access, modify, or delete data or
560
+ # execute unauthorized code within existing resources.
561
+ CRITICAL = 1
562
+
563
+ # Vulnerability:
564
+ # A high risk vulnerability can be easily discovered and exploited in
565
+ # combination with other vulnerabilities in order to gain direct access and
566
+ # the ability to execute arbitrary code, exfiltrate data, and otherwise
567
+ # gain additional access and privileges to cloud resources and workloads.
568
+ # An example is a database with weak or no passwords that is only
569
+ # accessible internally. This database could easily be compromised by an
570
+ # actor that had access to the internal network.
571
+ #
572
+ # Threat:
573
+ # Indicates a threat that is able to create new computational resources in
574
+ # an environment but not able to access data or execute code in existing
575
+ # resources.
576
+ HIGH = 2
577
+
578
+ # Vulnerability:
579
+ # A medium risk vulnerability could be used by an actor to gain access to
580
+ # resources or privileges that enable them to eventually (through multiple
581
+ # steps or a complex exploit) gain access and the ability to execute
582
+ # arbitrary code or exfiltrate data. An example is a service account with
583
+ # access to more projects than it should have. If an actor gains access to
584
+ # the service account, they could potentially use that access to manipulate
585
+ # a project the service account was not intended to.
586
+ #
587
+ # Threat:
588
+ # Indicates a threat that is able to cause operational impact but may not
589
+ # access data or execute unauthorized code.
590
+ MEDIUM = 3
591
+
592
+ # Vulnerability:
593
+ # A low risk vulnerability hampers a security organization's ability to
594
+ # detect vulnerabilities or active threats in their deployment, or prevents
595
+ # the root cause investigation of security issues. An example is monitoring
596
+ # and logs being disabled for resource configurations and access.
597
+ #
598
+ # Threat:
599
+ # Indicates a threat that has obtained minimal access to an environment but
600
+ # is not able to access data, execute code, or create resources.
601
+ LOW = 4
602
+ end
603
+
604
+ # Represents what kind of Finding it is.
605
+ module FindingClass
606
+ # Unspecified finding class.
607
+ FINDING_CLASS_UNSPECIFIED = 0
608
+
609
+ # Describes unwanted or malicious activity.
610
+ THREAT = 1
611
+
612
+ # Describes a potential weakness in software that increases risk to
613
+ # Confidentiality & Integrity & Availability.
614
+ VULNERABILITY = 2
615
+
616
+ # Describes a potential weakness in cloud resource/asset configuration that
617
+ # increases risk.
618
+ MISCONFIGURATION = 3
619
+
620
+ # Describes a security observation that is for informational purposes.
621
+ OBSERVATION = 4
622
+
623
+ # Describes an error that prevents some SCC functionality.
624
+ SCC_ERROR = 5
625
+
626
+ # Describes a potential security risk due to a change in the security
627
+ # posture.
628
+ POSTURE_VIOLATION = 6
629
+ end
630
+ end
631
+
632
+ # Response message for simulating a `SecurityHealthAnalyticsCustomModule`
633
+ # against a given resource.
634
+ # @!attribute [rw] result
635
+ # @return [::Google::Cloud::SecurityCenterManagement::V1::SimulateSecurityHealthAnalyticsCustomModuleResponse::SimulatedResult]
636
+ # Result for test case in the corresponding request.
637
+ class SimulateSecurityHealthAnalyticsCustomModuleResponse
638
+ include ::Google::Protobuf::MessageExts
639
+ extend ::Google::Protobuf::MessageExts::ClassMethods
640
+
641
+ # Possible test result.
642
+ # @!attribute [rw] finding
643
+ # @return [::Google::Cloud::SecurityCenterManagement::V1::SimulatedFinding]
644
+ # Finding that would be published for the test case,
645
+ # if a violation is detected.
646
+ # @!attribute [rw] no_violation
647
+ # @return [::Google::Protobuf::Empty]
648
+ # Indicates that the test case does not trigger any violation.
649
+ # @!attribute [rw] error
650
+ # @return [::Google::Rpc::Status]
651
+ # Error encountered during the test.
652
+ class SimulatedResult
653
+ include ::Google::Protobuf::MessageExts
654
+ extend ::Google::Protobuf::MessageExts::ClassMethods
655
+ end
656
+ end
657
+
658
+ # An EffectiveEventThreatDetectionCustomModule is the representation of
659
+ # EventThreatDetectionCustomModule at a given level taking hierarchy into
660
+ # account and resolving various fields accordingly. e.g. if the module is
661
+ # enabled at the ancestor level, effective modules at all descendant levels
662
+ # will have enablement_state set to ENABLED. Similarly, if module.inherited is
663
+ # set, then effective module's config will contain the ancestor's config
664
+ # details. EffectiveEventThreatDetectionCustomModule is read-only.
665
+ # @!attribute [rw] name
666
+ # @return [::String]
667
+ # Identifier. The resource name of the ETD custom module.
668
+ #
669
+ # Its format is:
670
+ #
671
+ # * "organizations/\\{organization}/locations/\\{location}/effectiveEventThreatDetectionCustomModules/\\{effective_event_threat_detection_custom_module}".
672
+ # * "folders/\\{folder}/locations/\\{location}/effectiveEventThreatDetectionCustomModules/\\{effective_event_threat_detection_custom_module}".
673
+ # * "projects/\\{project}/locations/\\{location}/effectiveEventThreatDetectionCustomModules/\\{effective_event_threat_detection_custom_module}".
674
+ # @!attribute [r] config
675
+ # @return [::Google::Protobuf::Struct]
676
+ # Output only. Config for the effective module.
677
+ # @!attribute [r] enablement_state
678
+ # @return [::Google::Cloud::SecurityCenterManagement::V1::EffectiveEventThreatDetectionCustomModule::EnablementState]
679
+ # Output only. The effective state of enablement for the module at the given
680
+ # level of the hierarchy.
681
+ # @!attribute [r] type
682
+ # @return [::String]
683
+ # Output only. Type for the module. e.g. CONFIGURABLE_BAD_IP.
684
+ # @!attribute [r] display_name
685
+ # @return [::String]
686
+ # Output only. The human readable name to be displayed for the module.
687
+ # @!attribute [r] description
688
+ # @return [::String]
689
+ # Output only. The description for the module.
690
+ class EffectiveEventThreatDetectionCustomModule
691
+ include ::Google::Protobuf::MessageExts
692
+ extend ::Google::Protobuf::MessageExts::ClassMethods
693
+
694
+ # The enablement state of the module.
695
+ module EnablementState
696
+ # Unspecified enablement state.
697
+ ENABLEMENT_STATE_UNSPECIFIED = 0
698
+
699
+ # The module is enabled at the given level.
700
+ ENABLED = 1
701
+
702
+ # The module is disabled at the given level.
703
+ DISABLED = 2
704
+ end
705
+ end
706
+
707
+ # Request message for listing effective Event Threat Detection custom
708
+ # modules.
709
+ # @!attribute [rw] parent
710
+ # @return [::String]
711
+ # Required. Name of parent to list effective custom modules. Its format is
712
+ # "organizations/\\{organization}/locations/\\{location}",
713
+ # "folders/\\{folder}/locations/\\{location}",
714
+ # or
715
+ # "projects/\\{project}/locations/\\{location}"
716
+ # @!attribute [rw] page_size
717
+ # @return [::Integer]
718
+ # Optional. The maximum number of results to return in a single response.
719
+ # Default is 10, minimum is 1, maximum is 1000.
720
+ # @!attribute [rw] page_token
721
+ # @return [::String]
722
+ # Optional. The value returned by the last call indicating a continuation
723
+ class ListEffectiveEventThreatDetectionCustomModulesRequest
724
+ include ::Google::Protobuf::MessageExts
725
+ extend ::Google::Protobuf::MessageExts::ClassMethods
726
+ end
727
+
728
+ # Response message for listing effective Event Threat Detection custom
729
+ # modules.
730
+ # @!attribute [rw] effective_event_threat_detection_custom_modules
731
+ # @return [::Array<::Google::Cloud::SecurityCenterManagement::V1::EffectiveEventThreatDetectionCustomModule>]
732
+ # The list of EffectiveEventThreatDetectionCustomModules
733
+ # @!attribute [rw] next_page_token
734
+ # @return [::String]
735
+ # A token identifying a page of results the server should return.
736
+ class ListEffectiveEventThreatDetectionCustomModulesResponse
737
+ include ::Google::Protobuf::MessageExts
738
+ extend ::Google::Protobuf::MessageExts::ClassMethods
739
+ end
740
+
741
+ # Message for getting a EffectiveEventThreatDetectionCustomModule
742
+ # @!attribute [rw] name
743
+ # @return [::String]
744
+ # Required. The resource name of the ETD custom module.
745
+ #
746
+ # Its format is:
747
+ #
748
+ # * "organizations/\\{organization}/locations/\\{location}/effectiveEventThreatDetectionCustomModules/\\{effective_event_threat_detection_custom_module}".
749
+ # * "folders/\\{folder}/locations/\\{location}/effectiveEventThreatDetectionCustomModules/\\{effective_event_threat_detection_custom_module}".
750
+ # * "projects/\\{project}/locations/\\{location}/effectiveEventThreatDetectionCustomModules/\\{effective_event_threat_detection_custom_module}".
751
+ class GetEffectiveEventThreatDetectionCustomModuleRequest
752
+ include ::Google::Protobuf::MessageExts
753
+ extend ::Google::Protobuf::MessageExts::ClassMethods
754
+ end
755
+
756
+ # An event threat detection custom module is a Cloud SCC resource that contains
757
+ # the configuration and enablement state of a custom module, which enables ETD
758
+ # to write certain findings to Cloud SCC.
759
+ # @!attribute [rw] name
760
+ # @return [::String]
761
+ # Identifier. The resource name of the ETD custom module.
762
+ #
763
+ # Its format is:
764
+ #
765
+ # * "organizations/\\{organization}/locations/\\{location}/eventThreatDetectionCustomModules/\\{event_threat_detection_custom_module}".
766
+ # * "folders/\\{folder}/locations/\\{location}/eventThreatDetectionCustomModules/\\{event_threat_detection_custom_module}".
767
+ # * "projects/\\{project}/locations/\\{location}/eventThreatDetectionCustomModules/\\{event_threat_detection_custom_module}".
768
+ # @!attribute [rw] config
769
+ # @return [::Google::Protobuf::Struct]
770
+ # Optional. Config for the module. For the resident module, its config value
771
+ # is defined at this level. For the inherited module, its config value is
772
+ # inherited from the ancestor module.
773
+ # @!attribute [r] ancestor_module
774
+ # @return [::String]
775
+ # Output only. The closest ancestor module that this module inherits the
776
+ # enablement state from. If empty, indicates that the custom module was
777
+ # created in the requesting parent organization, folder, or project. The
778
+ # format is the same as the EventThreatDetectionCustomModule resource name.
779
+ # @!attribute [rw] enablement_state
780
+ # @return [::Google::Cloud::SecurityCenterManagement::V1::EventThreatDetectionCustomModule::EnablementState]
781
+ # Optional. The state of enablement for the module at the given level of the
782
+ # hierarchy.
783
+ # @!attribute [rw] type
784
+ # @return [::String]
785
+ # Optional. Type for the module. e.g. CONFIGURABLE_BAD_IP.
786
+ # @!attribute [rw] display_name
787
+ # @return [::String]
788
+ # Optional. The human readable name to be displayed for the module.
789
+ # @!attribute [rw] description
790
+ # @return [::String]
791
+ # Optional. The description for the module.
792
+ # @!attribute [r] update_time
793
+ # @return [::Google::Protobuf::Timestamp]
794
+ # Output only. The time the module was last updated.
795
+ # @!attribute [r] last_editor
796
+ # @return [::String]
797
+ # Output only. The editor the module was last updated by.
798
+ class EventThreatDetectionCustomModule
799
+ include ::Google::Protobuf::MessageExts
800
+ extend ::Google::Protobuf::MessageExts::ClassMethods
801
+
802
+ # The enablement state of the module.
803
+ module EnablementState
804
+ # Unspecified enablement state.
805
+ ENABLEMENT_STATE_UNSPECIFIED = 0
806
+
807
+ # The module is enabled at the given level.
808
+ ENABLED = 1
809
+
810
+ # The module is disabled at the given level.
811
+ DISABLED = 2
812
+
813
+ # State is inherited from an ancestor module. The module will either
814
+ # be effectively ENABLED or DISABLED based on its closest non-inherited
815
+ # ancestor module in the CRM hierarchy. Attempting to set a top level
816
+ # module (module with no parent) to the INHERITED state will result in an
817
+ # error.
818
+ INHERITED = 3
819
+ end
820
+ end
821
+
822
+ # Request message for listing Event Threat Detection custom modules.
823
+ # @!attribute [rw] parent
824
+ # @return [::String]
825
+ # Required. Name of parent to list custom modules. Its format is
826
+ # "organizations/\\{organization}/locations/\\{location}",
827
+ # "folders/\\{folder}/locations/\\{location}",
828
+ # or
829
+ # "projects/\\{project}/locations/\\{location}"
830
+ # @!attribute [rw] page_size
831
+ # @return [::Integer]
832
+ # Optional. The maximum number of modules to return. The service may return
833
+ # fewer than this value. If unspecified, at most 10 configs will be returned.
834
+ # The maximum value is 1000; values above 1000 will be coerced to 1000.
835
+ # @!attribute [rw] page_token
836
+ # @return [::String]
837
+ # Optional. A page token, received from a previous
838
+ # `ListEventThreatDetectionCustomModules` call. Provide this to retrieve the
839
+ # subsequent page.
840
+ #
841
+ # When paginating, all other parameters provided to
842
+ # `ListEventThreatDetectionCustomModules` must match the call that provided
843
+ # the page token.
844
+ class ListEventThreatDetectionCustomModulesRequest
845
+ include ::Google::Protobuf::MessageExts
846
+ extend ::Google::Protobuf::MessageExts::ClassMethods
847
+ end
848
+
849
+ # Response message for listing Event Threat Detection custom modules.
850
+ # @!attribute [rw] event_threat_detection_custom_modules
851
+ # @return [::Array<::Google::Cloud::SecurityCenterManagement::V1::EventThreatDetectionCustomModule>]
852
+ # The list of EventThreatDetectionCustomModules
853
+ # @!attribute [rw] next_page_token
854
+ # @return [::String]
855
+ # A token identifying a page of results the server should return.
856
+ class ListEventThreatDetectionCustomModulesResponse
857
+ include ::Google::Protobuf::MessageExts
858
+ extend ::Google::Protobuf::MessageExts::ClassMethods
859
+ end
860
+
861
+ # Request message for listing descendant Event Threat Detection custom
862
+ # modules.
863
+ # @!attribute [rw] parent
864
+ # @return [::String]
865
+ # Required. Name of parent to list custom modules. Its format is
866
+ # "organizations/\\{organization}/locations/\\{location}",
867
+ # "folders/\\{folder}/locations/\\{location}",
868
+ # or
869
+ # "projects/\\{project}/locations/\\{location}"
870
+ # @!attribute [rw] page_size
871
+ # @return [::Integer]
872
+ # Optional. The maximum number of modules to return. The service may return
873
+ # fewer than this value. If unspecified, at most 10 configs will be returned.
874
+ # The maximum value is 1000; values above 1000 will be coerced to 1000.
875
+ # @!attribute [rw] page_token
876
+ # @return [::String]
877
+ # Optional. A token identifying a page of results the server should return.
878
+ class ListDescendantEventThreatDetectionCustomModulesRequest
879
+ include ::Google::Protobuf::MessageExts
880
+ extend ::Google::Protobuf::MessageExts::ClassMethods
881
+ end
882
+
883
+ # Response message for listing descendant Event Threat Detection custom
884
+ # modules.
885
+ # @!attribute [rw] event_threat_detection_custom_modules
886
+ # @return [::Array<::Google::Cloud::SecurityCenterManagement::V1::EventThreatDetectionCustomModule>]
887
+ # The list of EventThreatDetectionCustomModules
888
+ # @!attribute [rw] next_page_token
889
+ # @return [::String]
890
+ # A token identifying a page of results the server should return.
891
+ class ListDescendantEventThreatDetectionCustomModulesResponse
892
+ include ::Google::Protobuf::MessageExts
893
+ extend ::Google::Protobuf::MessageExts::ClassMethods
894
+ end
895
+
896
+ # Message for getting a EventThreatDetectionCustomModule
897
+ # @!attribute [rw] name
898
+ # @return [::String]
899
+ # Required. The resource name of the ETD custom module.
900
+ #
901
+ # Its format is:
902
+ #
903
+ # * "organizations/\\{organization}/locations/\\{location}/eventThreatDetectionCustomModules/\\{event_threat_detection_custom_module}".
904
+ # * "folders/\\{folder}/locations/\\{location}/eventThreatDetectionCustomModules/\\{event_threat_detection_custom_module}".
905
+ # * "projects/\\{project}/locations/\\{location}/eventThreatDetectionCustomModules/\\{event_threat_detection_custom_module}".
906
+ class GetEventThreatDetectionCustomModuleRequest
907
+ include ::Google::Protobuf::MessageExts
908
+ extend ::Google::Protobuf::MessageExts::ClassMethods
909
+ end
910
+
911
+ # Message for creating a EventThreatDetectionCustomModule
912
+ # @!attribute [rw] parent
913
+ # @return [::String]
914
+ # Required. Name of parent for the module. Its format is
915
+ # "organizations/\\{organization}/locations/\\{location}",
916
+ # "folders/\\{folder}/locations/\\{location}",
917
+ # or
918
+ # "projects/\\{project}/locations/\\{location}"
919
+ # @!attribute [rw] event_threat_detection_custom_module
920
+ # @return [::Google::Cloud::SecurityCenterManagement::V1::EventThreatDetectionCustomModule]
921
+ # Required. The module to create. The
922
+ # event_threat_detection_custom_module.name will be ignored and server
923
+ # generated.
924
+ # @!attribute [rw] validate_only
925
+ # @return [::Boolean]
926
+ # Optional. When set to true, only validations (including IAM checks) will
927
+ # done for the request (no module will be created). An OK response indicates
928
+ # the request is valid while an error response indicates the request is
929
+ # invalid. Note that a subsequent request to actually create the module could
930
+ # still fail because 1. the state could have changed (e.g. IAM permission
931
+ # lost) or
932
+ # 2. A failure occurred during creation of the module.
933
+ class CreateEventThreatDetectionCustomModuleRequest
934
+ include ::Google::Protobuf::MessageExts
935
+ extend ::Google::Protobuf::MessageExts::ClassMethods
936
+ end
937
+
938
+ # Message for updating a EventThreatDetectionCustomModule
939
+ # @!attribute [rw] update_mask
940
+ # @return [::Google::Protobuf::FieldMask]
941
+ # Required. Field mask is used to specify the fields to be overwritten in the
942
+ # EventThreatDetectionCustomModule resource by the update.
943
+ # The fields specified in the update_mask are relative to the resource, not
944
+ # the full request. A field will be overwritten if it is in the mask. If the
945
+ # user does not provide a mask then all fields will be overwritten.
946
+ # @!attribute [rw] event_threat_detection_custom_module
947
+ # @return [::Google::Cloud::SecurityCenterManagement::V1::EventThreatDetectionCustomModule]
948
+ # Required. The module being updated
949
+ # @!attribute [rw] validate_only
950
+ # @return [::Boolean]
951
+ # Optional. When set to true, only validations (including IAM checks) will
952
+ # done for the request (module will not be updated). An OK response indicates
953
+ # the request is valid while an error response indicates the request is
954
+ # invalid. Note that a subsequent request to actually update the module could
955
+ # still fail because 1. the state could have changed (e.g. IAM permission
956
+ # lost) or
957
+ # 2. A failure occurred while trying to update the module.
958
+ class UpdateEventThreatDetectionCustomModuleRequest
959
+ include ::Google::Protobuf::MessageExts
960
+ extend ::Google::Protobuf::MessageExts::ClassMethods
961
+ end
962
+
963
+ # Message for deleting a EventThreatDetectionCustomModule
964
+ # @!attribute [rw] name
965
+ # @return [::String]
966
+ # Required. The resource name of the ETD custom module.
967
+ #
968
+ # Its format is:
969
+ #
970
+ # * "organizations/\\{organization}/locations/\\{location}/eventThreatDetectionCustomModules/\\{event_threat_detection_custom_module}".
971
+ # * "folders/\\{folder}/locations/\\{location}/eventThreatDetectionCustomModules/\\{event_threat_detection_custom_module}".
972
+ # * "projects/\\{project}/locations/\\{location}/eventThreatDetectionCustomModules/\\{event_threat_detection_custom_module}".
973
+ # @!attribute [rw] validate_only
974
+ # @return [::Boolean]
975
+ # Optional. When set to true, only validations (including IAM checks) will
976
+ # done for the request (module will not be deleted). An OK response indicates
977
+ # the request is valid while an error response indicates the request is
978
+ # invalid. Note that a subsequent request to actually delete the module could
979
+ # still fail because 1. the state could have changed (e.g. IAM permission
980
+ # lost) or
981
+ # 2. A failure occurred while trying to delete the module.
982
+ class DeleteEventThreatDetectionCustomModuleRequest
983
+ include ::Google::Protobuf::MessageExts
984
+ extend ::Google::Protobuf::MessageExts::ClassMethods
985
+ end
986
+
987
+ # Request to validate an Event Threat Detection custom module.
988
+ # @!attribute [rw] parent
989
+ # @return [::String]
990
+ # Required. Resource name of the parent to validate the Custom Module under.
991
+ #
992
+ # Its format is:
993
+ #
994
+ # * "organizations/\\{organization}/locations/\\{location}".
995
+ # @!attribute [rw] raw_text
996
+ # @return [::String]
997
+ # Required. The raw text of the module's contents. Used to generate error
998
+ # messages.
999
+ # @!attribute [rw] type
1000
+ # @return [::String]
1001
+ # Required. The type of the module (e.g. CONFIGURABLE_BAD_IP).
1002
+ class ValidateEventThreatDetectionCustomModuleRequest
1003
+ include ::Google::Protobuf::MessageExts
1004
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1005
+ end
1006
+
1007
+ # Response to validating an Event Threat Detection custom module.
1008
+ # @!attribute [rw] errors
1009
+ # @return [::Array<::Google::Cloud::SecurityCenterManagement::V1::ValidateEventThreatDetectionCustomModuleResponse::CustomModuleValidationError>]
1010
+ # A list of errors returned by the validator. If the list is empty, there
1011
+ # were no errors.
1012
+ class ValidateEventThreatDetectionCustomModuleResponse
1013
+ include ::Google::Protobuf::MessageExts
1014
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1015
+
1016
+ # An error encountered while validating the uploaded configuration of an
1017
+ # Event Threat Detection Custom Module.
1018
+ # @!attribute [rw] description
1019
+ # @return [::String]
1020
+ # A description of the error, suitable for human consumption. Required.
1021
+ # @!attribute [rw] field_path
1022
+ # @return [::String]
1023
+ # The path, in RFC 8901 JSON Pointer format, to the field that failed
1024
+ # validation. This may be left empty if no specific field is affected.
1025
+ # @!attribute [rw] start
1026
+ # @return [::Google::Cloud::SecurityCenterManagement::V1::ValidateEventThreatDetectionCustomModuleResponse::Position]
1027
+ # The initial position of the error in the uploaded text version of the
1028
+ # module. This field may be omitted if no specific position applies, or if
1029
+ # one could not be computed.
1030
+ # @!attribute [rw] end
1031
+ # @return [::Google::Cloud::SecurityCenterManagement::V1::ValidateEventThreatDetectionCustomModuleResponse::Position]
1032
+ # The end position of the error in the uploaded text version of the
1033
+ # module. This field may be omitted if no specific position applies, or if
1034
+ # one could not be computed..
1035
+ class CustomModuleValidationError
1036
+ include ::Google::Protobuf::MessageExts
1037
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1038
+ end
1039
+
1040
+ # A position in the uploaded text version of a module.
1041
+ # @!attribute [rw] line_number
1042
+ # @return [::Integer]
1043
+ # The line position in the text
1044
+ # @!attribute [rw] column_number
1045
+ # @return [::Integer]
1046
+ # The column position in the line
1047
+ class Position
1048
+ include ::Google::Protobuf::MessageExts
1049
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1050
+ end
1051
+ end
1052
+ end
1053
+ end
1054
+ end
1055
+ end