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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +12 -0
  3. data/AUTHENTICATION.md +122 -0
  4. data/README.md +154 -8
  5. data/lib/google/cloud/cloud_security_compliance/v1/bindings_override.rb +75 -0
  6. data/lib/google/cloud/cloud_security_compliance/v1/config/client.rb +1467 -0
  7. data/lib/google/cloud/cloud_security_compliance/v1/config/credentials.rb +47 -0
  8. data/lib/google/cloud/cloud_security_compliance/v1/config/paths.rb +88 -0
  9. data/lib/google/cloud/cloud_security_compliance/v1/config/rest/client.rb +1379 -0
  10. data/lib/google/cloud/cloud_security_compliance/v1/config/rest/service_stub.rb +695 -0
  11. data/lib/google/cloud/cloud_security_compliance/v1/config/rest.rb +54 -0
  12. data/lib/google/cloud/cloud_security_compliance/v1/config.rb +56 -0
  13. data/lib/google/cloud/cloud_security_compliance/v1/deployment/client.rb +1047 -0
  14. data/lib/google/cloud/cloud_security_compliance/v1/deployment/credentials.rb +47 -0
  15. data/lib/google/cloud/cloud_security_compliance/v1/deployment/operations.rb +824 -0
  16. data/lib/google/cloud/cloud_security_compliance/v1/deployment/paths.rb +88 -0
  17. data/lib/google/cloud/cloud_security_compliance/v1/deployment/rest/client.rb +987 -0
  18. data/lib/google/cloud/cloud_security_compliance/v1/deployment/rest/operations.rb +925 -0
  19. data/lib/google/cloud/cloud_security_compliance/v1/deployment/rest/service_stub.rb +448 -0
  20. data/lib/google/cloud/cloud_security_compliance/v1/deployment/rest.rb +55 -0
  21. data/lib/google/cloud/cloud_security_compliance/v1/deployment.rb +57 -0
  22. data/lib/google/cloud/cloud_security_compliance/v1/rest.rb +39 -0
  23. data/lib/google/cloud/cloud_security_compliance/v1/version.rb +7 -2
  24. data/lib/google/cloud/cloud_security_compliance/v1.rb +46 -0
  25. data/lib/google/cloud/cloudsecuritycompliance/v1/common_pb.rb +73 -0
  26. data/lib/google/cloud/cloudsecuritycompliance/v1/config_pb.rb +63 -0
  27. data/lib/google/cloud/cloudsecuritycompliance/v1/config_services_pb.rb +117 -0
  28. data/lib/google/cloud/cloudsecuritycompliance/v1/deployment_pb.rb +70 -0
  29. data/lib/google/cloud/cloudsecuritycompliance/v1/deployment_services_pb.rb +56 -0
  30. data/lib/google-cloud-cloud_security_compliance-v1.rb +21 -0
  31. data/proto_docs/README.md +4 -0
  32. data/proto_docs/google/api/client.rb +473 -0
  33. data/proto_docs/google/api/field_behavior.rb +85 -0
  34. data/proto_docs/google/api/launch_stage.rb +71 -0
  35. data/proto_docs/google/api/resource.rb +227 -0
  36. data/proto_docs/google/cloud/cloudsecuritycompliance/v1/common.rb +638 -0
  37. data/proto_docs/google/cloud/cloudsecuritycompliance/v1/config.rb +223 -0
  38. data/proto_docs/google/cloud/cloudsecuritycompliance/v1/deployment.rb +429 -0
  39. data/proto_docs/google/longrunning/operations.rb +191 -0
  40. data/proto_docs/google/protobuf/any.rb +145 -0
  41. data/proto_docs/google/protobuf/duration.rb +98 -0
  42. data/proto_docs/google/protobuf/empty.rb +34 -0
  43. data/proto_docs/google/protobuf/field_mask.rb +229 -0
  44. data/proto_docs/google/protobuf/timestamp.rb +127 -0
  45. data/proto_docs/google/rpc/status.rb +48 -0
  46. metadata +93 -9
@@ -0,0 +1,638 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2025 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 CloudSecurityCompliance
23
+ module V1
24
+ # A Framework is a collection of CloudControls to address security and
25
+ # compliance requirements. Frameworks can be used for prevention, detection,
26
+ # and auditing. They can be either built-in, industry-standard frameworks
27
+ # provided by GCP/AZURE/AWS (e.g., NIST, FedRAMP) or custom frameworks created
28
+ # by users.
29
+ # @!attribute [rw] name
30
+ # @return [::String]
31
+ # Required. Identifier. The name of the framework.
32
+ # Format:
33
+ # organizations/\\{organization}/locations/\\{location}/frameworks/\\{framework_id}
34
+ # @!attribute [r] major_revision_id
35
+ # @return [::Integer]
36
+ # Output only. Major revision of the framework incremented in ascending
37
+ # order.
38
+ # @!attribute [rw] display_name
39
+ # @return [::String]
40
+ # Optional. Display name of the framework. The maximum length is 200
41
+ # characters.
42
+ # @!attribute [rw] description
43
+ # @return [::String]
44
+ # Optional. The description of the framework. The maximum length is 2000
45
+ # characters.
46
+ # @!attribute [r] type
47
+ # @return [::Google::Cloud::CloudSecurityCompliance::V1::Framework::FrameworkType]
48
+ # Output only. The type of the framework. The default is TYPE_CUSTOM.
49
+ # @!attribute [rw] cloud_control_details
50
+ # @return [::Array<::Google::Cloud::CloudSecurityCompliance::V1::CloudControlDetails>]
51
+ # Optional. The details of the cloud controls directly added without any
52
+ # grouping in the framework.
53
+ # @!attribute [rw] category
54
+ # @return [::Array<::Google::Cloud::CloudSecurityCompliance::V1::FrameworkCategory>]
55
+ # Optional. The category of the framework.
56
+ # @!attribute [r] supported_cloud_providers
57
+ # @return [::Array<::Google::Cloud::CloudSecurityCompliance::V1::CloudProvider>]
58
+ # Output only. cloud providers supported
59
+ # @!attribute [r] supported_target_resource_types
60
+ # @return [::Array<::Google::Cloud::CloudSecurityCompliance::V1::TargetResourceType>]
61
+ # Output only. target resource types supported by the Framework.
62
+ # @!attribute [r] supported_enforcement_modes
63
+ # @return [::Array<::Google::Cloud::CloudSecurityCompliance::V1::EnforcementMode>]
64
+ # Output only. The supported enforcement modes of the framework.
65
+ class Framework
66
+ include ::Google::Protobuf::MessageExts
67
+ extend ::Google::Protobuf::MessageExts::ClassMethods
68
+
69
+ # The type of the framework.
70
+ module FrameworkType
71
+ # Default value. This value is unused.
72
+ FRAMEWORK_TYPE_UNSPECIFIED = 0
73
+
74
+ # The framework is a built-in framework if it is created and managed by
75
+ # GCP.
76
+ BUILT_IN = 1
77
+
78
+ # The framework is a custom framework if it is created and managed by the
79
+ # user.
80
+ CUSTOM = 2
81
+ end
82
+ end
83
+
84
+ # CloudControlDetails contains the details of a CloudControl.
85
+ # @!attribute [rw] name
86
+ # @return [::String]
87
+ # Required. The name of the CloudControl in the format:
88
+ # “organizations/\\{organization}/locations/\\{location}/
89
+ # cloudControls/\\{cloud-control}”
90
+ # @!attribute [rw] major_revision_id
91
+ # @return [::Integer]
92
+ # Required. Major revision of cloudcontrol
93
+ # @!attribute [rw] parameters
94
+ # @return [::Array<::Google::Cloud::CloudSecurityCompliance::V1::Parameter>]
95
+ # Optional. Parameters is a key-value pair that is required by the
96
+ # CloudControl. The specification of these parameters will be present in
97
+ # cloudcontrol.Eg: { "name": "location","value": "us-west-1"}.
98
+ class CloudControlDetails
99
+ include ::Google::Protobuf::MessageExts
100
+ extend ::Google::Protobuf::MessageExts::ClassMethods
101
+ end
102
+
103
+ # FrameworkReference contains the reference of a framework.
104
+ # @!attribute [rw] framework
105
+ # @return [::String]
106
+ # Required. In the format:
107
+ # organizations/\\{org}/locations/\\{location}/frameworks/\\{framework}
108
+ # @!attribute [rw] major_revision_id
109
+ # @return [::Integer]
110
+ # Optional. Major revision id of the framework. If not specified, corresponds
111
+ # to the latest revision of the framework.
112
+ class FrameworkReference
113
+ include ::Google::Protobuf::MessageExts
114
+ extend ::Google::Protobuf::MessageExts::ClassMethods
115
+ end
116
+
117
+ # Parameters is a key-value pair.
118
+ # @!attribute [rw] name
119
+ # @return [::String]
120
+ # Required. The name of the parameter.
121
+ # @!attribute [rw] parameter_value
122
+ # @return [::Google::Cloud::CloudSecurityCompliance::V1::ParamValue]
123
+ # Required. The value of the parameter
124
+ class Parameter
125
+ include ::Google::Protobuf::MessageExts
126
+ extend ::Google::Protobuf::MessageExts::ClassMethods
127
+ end
128
+
129
+ # A CloudControl is the fundamental unit encapsulating the rules
130
+ # to meet a specific security or compliance intent. It can contain
131
+ # various rule types (like Organization Policies, CEL expressions, etc.)
132
+ # enabling different enforcement modes (Preventive, Detective, Audit).
133
+ # CloudControls are often parameterized for reusability and can be either
134
+ # BUILT_IN (provided by Google) or CUSTOM (defined by the user).
135
+ # @!attribute [rw] name
136
+ # @return [::String]
137
+ # Required. Identifier. The resource name of the cloud control.
138
+ # Format:
139
+ # organizations/\\{organization}/locations/\\{location}/cloudControls/\\{cloud_control_id}
140
+ # @!attribute [r] major_revision_id
141
+ # @return [::Integer]
142
+ # Output only. Major revision of the cloud control incremented in ascending
143
+ # order.
144
+ # @!attribute [rw] description
145
+ # @return [::String]
146
+ # Optional. A description of the cloud control. The maximum length is 2000
147
+ # characters.
148
+ # @!attribute [rw] display_name
149
+ # @return [::String]
150
+ # Optional. The display name of the cloud control. The maximum length is 200
151
+ # characters.
152
+ # @!attribute [r] supported_enforcement_modes
153
+ # @return [::Array<::Google::Cloud::CloudSecurityCompliance::V1::EnforcementMode>]
154
+ # Output only. The supported enforcement mode of the cloud control. Default
155
+ # is DETECTIVE.
156
+ # @!attribute [rw] parameter_spec
157
+ # @return [::Array<::Google::Cloud::CloudSecurityCompliance::V1::ParameterSpec>]
158
+ # Optional. The parameter spec of the cloud control.
159
+ # @!attribute [rw] rules
160
+ # @return [::Array<::Google::Cloud::CloudSecurityCompliance::V1::Rule>]
161
+ # Optional. The Policy to be enforced to prevent/detect resource
162
+ # non-compliance.
163
+ # @!attribute [rw] severity
164
+ # @return [::Google::Cloud::CloudSecurityCompliance::V1::Severity]
165
+ # Optional. The severity of findings generated by the cloud control.
166
+ # @!attribute [rw] finding_category
167
+ # @return [::String]
168
+ # Optional. The finding_category of the cloud control. The maximum length is
169
+ # 255 characters.
170
+ # @!attribute [rw] supported_cloud_providers
171
+ # @return [::Array<::Google::Cloud::CloudSecurityCompliance::V1::CloudProvider>]
172
+ # Optional. cloud providers supported
173
+ # @!attribute [r] related_frameworks
174
+ # @return [::Array<::String>]
175
+ # Output only. The Frameworks that include this CloudControl
176
+ # @!attribute [rw] remediation_steps
177
+ # @return [::String]
178
+ # Optional. The remediation steps for the findings generated by the cloud
179
+ # control. The maximum length is 400 characters.
180
+ # @!attribute [rw] categories
181
+ # @return [::Array<::Google::Cloud::CloudSecurityCompliance::V1::CloudControlCategory>]
182
+ # Optional. The categories of the cloud control.
183
+ # @!attribute [r] create_time
184
+ # @return [::Google::Protobuf::Timestamp]
185
+ # Output only. The last updated time of the cloud control.
186
+ # The create_time is used because a new CC is created whenever we update an
187
+ # existing CC.
188
+ # @!attribute [rw] supported_target_resource_types
189
+ # @return [::Array<::Google::Cloud::CloudSecurityCompliance::V1::TargetResourceType>]
190
+ # Optional. target resource types supported by the CloudControl.
191
+ class CloudControl
192
+ include ::Google::Protobuf::MessageExts
193
+ extend ::Google::Protobuf::MessageExts::ClassMethods
194
+ end
195
+
196
+ # A parameter spec of the cloud control.
197
+ # @!attribute [rw] name
198
+ # @return [::String]
199
+ # Required. The name of the parameter.
200
+ # @!attribute [rw] display_name
201
+ # @return [::String]
202
+ # Optional. The display name of the parameter. The maximum length is 200
203
+ # characters.
204
+ # @!attribute [rw] description
205
+ # @return [::String]
206
+ # Optional. The description of the parameter. The maximum length is 2000
207
+ # characters.
208
+ # @!attribute [rw] is_required
209
+ # @return [::Boolean]
210
+ # Required. if the parameter is required
211
+ # @!attribute [rw] value_type
212
+ # @return [::Google::Cloud::CloudSecurityCompliance::V1::ParameterSpec::ValueType]
213
+ # Required. Parameter value type.
214
+ # @!attribute [rw] default_value
215
+ # @return [::Google::Cloud::CloudSecurityCompliance::V1::ParamValue]
216
+ # Optional. The default value of the parameter.
217
+ # @!attribute [rw] substitution_rules
218
+ # @return [::Array<::Google::Cloud::CloudSecurityCompliance::V1::ParameterSubstitutionRule>]
219
+ # Optional. List of parameter substitutions.
220
+ # @!attribute [rw] sub_parameters
221
+ # @return [::Array<::Google::Cloud::CloudSecurityCompliance::V1::ParameterSpec>]
222
+ # Optional. ParameterSpec for oneof attributes.
223
+ # @!attribute [rw] validation
224
+ # @return [::Google::Cloud::CloudSecurityCompliance::V1::Validation]
225
+ # Optional. The allowed set of values for the parameter.
226
+ class ParameterSpec
227
+ include ::Google::Protobuf::MessageExts
228
+ extend ::Google::Protobuf::MessageExts::ClassMethods
229
+
230
+ # The type of the parameter value.
231
+ module ValueType
232
+ # Default value. This value is unused.
233
+ VALUE_TYPE_UNSPECIFIED = 0
234
+
235
+ # String value.
236
+ STRING = 3
237
+
238
+ # Boolean value.
239
+ BOOLEAN = 4
240
+
241
+ # String list value.
242
+ STRINGLIST = 5
243
+
244
+ # Numeric value.
245
+ NUMBER = 6
246
+
247
+ # OneOf value.
248
+ ONEOF = 7
249
+ end
250
+ end
251
+
252
+ # Validation of the parameter.
253
+ # @!attribute [rw] allowed_values
254
+ # @return [::Google::Cloud::CloudSecurityCompliance::V1::AllowedValues]
255
+ # Allowed set of values for the parameter.
256
+ #
257
+ # Note: The following fields are mutually exclusive: `allowed_values`, `int_range`, `regexp_pattern`. If a field in that set is populated, all other fields in the set will automatically be cleared.
258
+ # @!attribute [rw] int_range
259
+ # @return [::Google::Cloud::CloudSecurityCompliance::V1::IntRange]
260
+ # Allowed range for numeric parameters.
261
+ #
262
+ # Note: The following fields are mutually exclusive: `int_range`, `allowed_values`, `regexp_pattern`. If a field in that set is populated, all other fields in the set will automatically be cleared.
263
+ # @!attribute [rw] regexp_pattern
264
+ # @return [::Google::Cloud::CloudSecurityCompliance::V1::RegexpPattern]
265
+ # Regular expression for string parameters.
266
+ #
267
+ # Note: The following fields are mutually exclusive: `regexp_pattern`, `allowed_values`, `int_range`. If a field in that set is populated, all other fields in the set will automatically be cleared.
268
+ class Validation
269
+ include ::Google::Protobuf::MessageExts
270
+ extend ::Google::Protobuf::MessageExts::ClassMethods
271
+ end
272
+
273
+ # Allowed set of values for the parameter.
274
+ # @!attribute [rw] values
275
+ # @return [::Array<::Google::Cloud::CloudSecurityCompliance::V1::ParamValue>]
276
+ # Required. List of allowed values for the parameter.
277
+ class AllowedValues
278
+ include ::Google::Protobuf::MessageExts
279
+ extend ::Google::Protobuf::MessageExts::ClassMethods
280
+ end
281
+
282
+ # Regular Expression Validator for parameter values.
283
+ # @!attribute [rw] pattern
284
+ # @return [::String]
285
+ # Required. Regex Pattern to match the value(s) of parameter.
286
+ class RegexpPattern
287
+ include ::Google::Protobuf::MessageExts
288
+ extend ::Google::Protobuf::MessageExts::ClassMethods
289
+ end
290
+
291
+ # Number range for number parameters.
292
+ # @!attribute [rw] min
293
+ # @return [::Integer]
294
+ # Required. Minimum allowed value for the numeric parameter (inclusive).
295
+ # @!attribute [rw] max
296
+ # @return [::Integer]
297
+ # Required. Maximum allowed value for the numeric parameter (inclusive).
298
+ class IntRange
299
+ include ::Google::Protobuf::MessageExts
300
+ extend ::Google::Protobuf::MessageExts::ClassMethods
301
+ end
302
+
303
+ # A list of strings.
304
+ # @!attribute [rw] values
305
+ # @return [::Array<::String>]
306
+ # Required. The strings in the list.
307
+ class StringList
308
+ include ::Google::Protobuf::MessageExts
309
+ extend ::Google::Protobuf::MessageExts::ClassMethods
310
+ end
311
+
312
+ # Possible parameter value types.
313
+ # @!attribute [rw] string_value
314
+ # @return [::String]
315
+ # Represents a string value.
316
+ #
317
+ # Note: The following fields are mutually exclusive: `string_value`, `bool_value`, `string_list_value`, `number_value`, `oneof_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
318
+ # @!attribute [rw] bool_value
319
+ # @return [::Boolean]
320
+ # Represents a boolean value.
321
+ #
322
+ # Note: The following fields are mutually exclusive: `bool_value`, `string_value`, `string_list_value`, `number_value`, `oneof_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
323
+ # @!attribute [rw] string_list_value
324
+ # @return [::Google::Cloud::CloudSecurityCompliance::V1::StringList]
325
+ # Represents a repeated string.
326
+ #
327
+ # Note: The following fields are mutually exclusive: `string_list_value`, `string_value`, `bool_value`, `number_value`, `oneof_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
328
+ # @!attribute [rw] number_value
329
+ # @return [::Float]
330
+ # Represents a double value.
331
+ #
332
+ # Note: The following fields are mutually exclusive: `number_value`, `string_value`, `bool_value`, `string_list_value`, `oneof_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
333
+ # @!attribute [rw] oneof_value
334
+ # @return [::Google::Cloud::CloudSecurityCompliance::V1::Parameter]
335
+ # Represents sub-parameter values.
336
+ #
337
+ # Note: The following fields are mutually exclusive: `oneof_value`, `string_value`, `bool_value`, `string_list_value`, `number_value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
338
+ class ParamValue
339
+ include ::Google::Protobuf::MessageExts
340
+ extend ::Google::Protobuf::MessageExts::ClassMethods
341
+ end
342
+
343
+ # Parameter substitution rules.
344
+ # @!attribute [rw] placeholder_substitution_rule
345
+ # @return [::Google::Cloud::CloudSecurityCompliance::V1::PlaceholderSubstitutionRule]
346
+ # Placeholder substitution rule.
347
+ #
348
+ # Note: The following fields are mutually exclusive: `placeholder_substitution_rule`, `attribute_substitution_rule`. If a field in that set is populated, all other fields in the set will automatically be cleared.
349
+ # @!attribute [rw] attribute_substitution_rule
350
+ # @return [::Google::Cloud::CloudSecurityCompliance::V1::AttributeSubstitutionRule]
351
+ # Attribute substitution rule.
352
+ #
353
+ # Note: The following fields are mutually exclusive: `attribute_substitution_rule`, `placeholder_substitution_rule`. If a field in that set is populated, all other fields in the set will automatically be cleared.
354
+ class ParameterSubstitutionRule
355
+ include ::Google::Protobuf::MessageExts
356
+ extend ::Google::Protobuf::MessageExts::ClassMethods
357
+ end
358
+
359
+ # Attribute at the given path is substituted entirely.
360
+ # @!attribute [rw] attribute
361
+ # @return [::String]
362
+ # Fully qualified proto attribute path (in dot notation).
363
+ # Example: rules[0].cel_expression.resource_types_values
364
+ class AttributeSubstitutionRule
365
+ include ::Google::Protobuf::MessageExts
366
+ extend ::Google::Protobuf::MessageExts::ClassMethods
367
+ end
368
+
369
+ # Placeholder is substituted in the rendered string.
370
+ # @!attribute [rw] attribute
371
+ # @return [::String]
372
+ # Fully qualified proto attribute path (e.g., dot notation)
373
+ class PlaceholderSubstitutionRule
374
+ include ::Google::Protobuf::MessageExts
375
+ extend ::Google::Protobuf::MessageExts::ClassMethods
376
+ end
377
+
378
+ # A rule of the cloud control.
379
+ # @!attribute [rw] cel_expression
380
+ # @return [::Google::Cloud::CloudSecurityCompliance::V1::CELExpression]
381
+ # Logic expression in CEL language.
382
+ # @!attribute [rw] description
383
+ # @return [::String]
384
+ # Optional. Description of the Rule. The maximum length is 2000 characters.
385
+ # @!attribute [rw] rule_action_types
386
+ # @return [::Array<::Google::Cloud::CloudSecurityCompliance::V1::RuleActionType>]
387
+ # Required. The functionality enabled by the Rule.
388
+ class Rule
389
+ include ::Google::Protobuf::MessageExts
390
+ extend ::Google::Protobuf::MessageExts::ClassMethods
391
+ end
392
+
393
+ # A [CEL
394
+ # expression](https://cloud.google.com/certificate-authority-service/docs/using-cel).
395
+ # @!attribute [rw] resource_types_values
396
+ # @return [::Google::Cloud::CloudSecurityCompliance::V1::StringList]
397
+ # The resource instance types on which this expression is defined.
398
+ # Format will be of the form : `<canonical service name>/<type>`
399
+ # Example: `compute.googleapis.com/Instance`.
400
+ # @!attribute [rw] expression
401
+ # @return [::String]
402
+ # Required. Logic expression in CEL language.
403
+ # The max length of the condition is 1000 characters.
404
+ class CELExpression
405
+ include ::Google::Protobuf::MessageExts
406
+ extend ::Google::Protobuf::MessageExts::ClassMethods
407
+ end
408
+
409
+ # Represents the metadata of the long-running operation.
410
+ # @!attribute [r] create_time
411
+ # @return [::Google::Protobuf::Timestamp]
412
+ # Output only. The time the operation was created.
413
+ # @!attribute [r] end_time
414
+ # @return [::Google::Protobuf::Timestamp]
415
+ # Output only. The time the operation finished running.
416
+ # @!attribute [r] target
417
+ # @return [::String]
418
+ # Output only. Server-defined resource path for the target of the operation.
419
+ # @!attribute [r] verb
420
+ # @return [::String]
421
+ # Output only. Name of the verb executed by the operation.
422
+ # @!attribute [r] status_message
423
+ # @return [::String]
424
+ # Output only. Human-readable status of the operation, if any.
425
+ # @!attribute [r] requested_cancellation
426
+ # @return [::Boolean]
427
+ # Output only. Identifies whether the user has requested cancellation
428
+ # of the operation. Operations that have been cancelled successfully
429
+ # have [Operation.error][] value with a
430
+ # {::Google::Rpc::Status#code google.rpc.Status.code} of 1, corresponding to
431
+ # `Code.CANCELLED`.
432
+ # @!attribute [r] api_version
433
+ # @return [::String]
434
+ # Output only. API version used to start the operation.
435
+ class OperationMetadata
436
+ include ::Google::Protobuf::MessageExts
437
+ extend ::Google::Protobuf::MessageExts::ClassMethods
438
+ end
439
+
440
+ # The enforcement mode of the cloud control.
441
+ module EnforcementMode
442
+ # Default value. This value is unused.
443
+ ENFORCEMENT_MODE_UNSPECIFIED = 0
444
+
445
+ # The cloud control is enforced to prevent resource non-compliance.
446
+ PREVENTIVE = 1
447
+
448
+ # The cloud control is enforced to detect resource non-compliance.
449
+ DETECTIVE = 2
450
+
451
+ # The cloud control is enforced to audit resource non-compliance.
452
+ AUDIT = 3
453
+ end
454
+
455
+ # The category of the framework.
456
+ module FrameworkCategory
457
+ # Default value. This value is unused.
458
+ FRAMEWORK_CATEGORY_UNSPECIFIED = 0
459
+
460
+ # Standard framework
461
+ INDUSTRY_DEFINED_STANDARD = 1
462
+
463
+ # Assured Workloads framework
464
+ ASSURED_WORKLOADS = 2
465
+
466
+ # Data Security framework
467
+ DATA_SECURITY = 3
468
+
469
+ # Google Best Practices framework
470
+ GOOGLE_BEST_PRACTICES = 4
471
+
472
+ # User created framework.
473
+ CUSTOM_FRAMEWORK = 5
474
+ end
475
+
476
+ # The category of the cloud control.
477
+ module CloudControlCategory
478
+ # Default value. This value is unused.
479
+ CLOUD_CONTROL_CATEGORY_UNSPECIFIED = 0
480
+
481
+ # Infrastructure
482
+ CC_CATEGORY_INFRASTRUCTURE = 1
483
+
484
+ # Artificial Intelligence
485
+ CC_CATEGORY_ARTIFICIAL_INTELLIGENCE = 2
486
+
487
+ # Physical Security
488
+ CC_CATEGORY_PHYSICAL_SECURITY = 3
489
+
490
+ # Data Security
491
+ CC_CATEGORY_DATA_SECURITY = 4
492
+
493
+ # Network Security
494
+ CC_CATEGORY_NETWORK_SECURITY = 5
495
+
496
+ # Incident Management
497
+ CC_CATEGORY_INCIDENT_MANAGEMENT = 6
498
+
499
+ # Identity & Access Management
500
+ CC_CATEGORY_IDENTITY_AND_ACCESS_MANAGEMENT = 7
501
+
502
+ # Encryption
503
+ CC_CATEGORY_ENCRYPTION = 8
504
+
505
+ # Logs Management & Infrastructure
506
+ CC_CATEGORY_LOGS_MANAGEMENT_AND_INFRASTRUCTURE = 9
507
+
508
+ # HR, Admin & Processes
509
+ CC_CATEGORY_HR_ADMIN_AND_PROCESSES = 10
510
+
511
+ # Third Party & Sub-Processor Management
512
+ CC_CATEGORY_THIRD_PARTY_AND_SUB_PROCESSOR_MANAGEMENT = 11
513
+
514
+ # Legal & Disclosures
515
+ CC_CATEGORY_LEGAL_AND_DISCLOSURES = 12
516
+
517
+ # Vulnerability Management
518
+ CC_CATEGORY_VULNERABILITY_MANAGEMENT = 13
519
+
520
+ # Privacy
521
+ CC_CATEGORY_PRIVACY = 14
522
+
523
+ # BCDR (Business Continuity and Disaster Recovery)
524
+ CC_CATEGORY_BCDR = 15
525
+ end
526
+
527
+ # The cloud platform.
528
+ module CloudProvider
529
+ # Default value. This value is unused.
530
+ CLOUD_PROVIDER_UNSPECIFIED = 0
531
+
532
+ # Amazon Web Services (AWS).
533
+ AWS = 1
534
+
535
+ # Microsoft Azure.
536
+ AZURE = 2
537
+
538
+ # Google Cloud.
539
+ GCP = 3
540
+ end
541
+
542
+ # The severity of the finding.
543
+ module Severity
544
+ # This value is used for findings when a source doesn't write a severity
545
+ # value.
546
+ SEVERITY_UNSPECIFIED = 0
547
+
548
+ # Vulnerability:
549
+ # A critical vulnerability is easily discoverable by an external actor,
550
+ # exploitable, and results in the direct ability to execute arbitrary code,
551
+ # exfiltrate data, and otherwise gain additional access and privileges to
552
+ # cloud resources and workloads. Examples include publicly accessible
553
+ # unprotected user data and public SSH access with weak or no
554
+ # passwords.
555
+ #
556
+ # Threat:
557
+ # Indicates a threat that is able to access, modify, or delete data or
558
+ # execute unauthorized code within existing resources.
559
+ CRITICAL = 1
560
+
561
+ # Vulnerability:
562
+ # A high risk vulnerability can be easily discovered and exploited in
563
+ # combination with other vulnerabilities in order to gain direct access and
564
+ # the ability to execute arbitrary code, exfiltrate data, and otherwise
565
+ # gain additional access and privileges to cloud resources and workloads.
566
+ # An example is a database with weak or no passwords that is only
567
+ # accessible internally. This database could easily be compromised by an
568
+ # actor that had access to the internal network.
569
+ #
570
+ # Threat:
571
+ # Indicates a threat that is able to create new computational resources in
572
+ # an environment but not able to access data or execute code in existing
573
+ # resources.
574
+ HIGH = 2
575
+
576
+ # Vulnerability:
577
+ # A medium risk vulnerability could be used by an actor to gain access to
578
+ # resources or privileges that enable them to eventually (through multiple
579
+ # steps or a complex exploit) gain access and the ability to execute
580
+ # arbitrary code or exfiltrate data. An example is a service account with
581
+ # access to more projects than it should have. If an actor gains access to
582
+ # the service account, they could potentially use that access to manipulate
583
+ # a project the service account was not intended to.
584
+ #
585
+ # Threat:
586
+ # Indicates a threat that is able to cause operational impact but may not
587
+ # access data or execute unauthorized code.
588
+ MEDIUM = 3
589
+
590
+ # Vulnerability:
591
+ # A low risk vulnerability hampers a security organization's ability to
592
+ # detect vulnerabilities or active threats in their deployment, or prevents
593
+ # the root cause investigation of security issues. An example is monitoring
594
+ # and logs being disabled for resource configurations and access.
595
+ #
596
+ # Threat:
597
+ # Indicates a threat that has obtained minimal access to an environment but
598
+ # is not able to access data, execute code, or create resources.
599
+ LOW = 4
600
+ end
601
+
602
+ # The action type of the rule.
603
+ module RuleActionType
604
+ # Default value. This value is unused.
605
+ RULE_ACTION_TYPE_UNSPECIFIED = 0
606
+
607
+ # Preventative action type.
608
+ RULE_ACTION_TYPE_PREVENTIVE = 1
609
+
610
+ # Detective action type.
611
+ RULE_ACTION_TYPE_DETECTIVE = 2
612
+
613
+ # Audit action type.
614
+ RULE_ACTION_TYPE_AUDIT = 3
615
+ end
616
+
617
+ # TargetResourceType represents the type of resource that a control or
618
+ # framework can be applied to.
619
+ module TargetResourceType
620
+ # Default value. This value is unused.
621
+ TARGET_RESOURCE_TYPE_UNSPECIFIED = 0
622
+
623
+ # Target resource is an Organization.
624
+ TARGET_RESOURCE_CRM_TYPE_ORG = 1
625
+
626
+ # Target resource is a Folder.
627
+ TARGET_RESOURCE_CRM_TYPE_FOLDER = 2
628
+
629
+ # Target resource is a Project.
630
+ TARGET_RESOURCE_CRM_TYPE_PROJECT = 3
631
+
632
+ # Target resource is an Application.
633
+ TARGET_RESOURCE_TYPE_APPLICATION = 4
634
+ end
635
+ end
636
+ end
637
+ end
638
+ end