google-cloud-chronicle-v1 1.3.0 → 1.4.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 (31) hide show
  1. checksums.yaml +4 -4
  2. data/lib/google/cloud/chronicle/v1/entity_pb.rb +6 -1
  3. data/lib/google/cloud/chronicle/v1/event_pb.rb +24 -0
  4. data/lib/google/cloud/chronicle/v1/rest.rb +1 -0
  5. data/lib/google/cloud/chronicle/v1/search_pb.rb +64 -0
  6. data/lib/google/cloud/chronicle/v1/search_service/client.rb +643 -0
  7. data/lib/google/cloud/chronicle/v1/search_service/credentials.rb +49 -0
  8. data/lib/google/cloud/chronicle/v1/search_service/operations.rb +843 -0
  9. data/lib/google/cloud/chronicle/v1/search_service/paths.rb +94 -0
  10. data/lib/google/cloud/chronicle/v1/search_service/rest/client.rb +586 -0
  11. data/lib/google/cloud/chronicle/v1/search_service/rest/operations.rb +927 -0
  12. data/lib/google/cloud/chronicle/v1/search_service/rest/service_stub.rb +204 -0
  13. data/lib/google/cloud/chronicle/v1/search_service/rest.rb +53 -0
  14. data/lib/google/cloud/chronicle/v1/search_service.rb +56 -0
  15. data/lib/google/cloud/chronicle/v1/search_services_pb.rb +47 -0
  16. data/lib/google/cloud/chronicle/v1/simulated_data_pb.rb +21 -0
  17. data/lib/google/cloud/chronicle/v1/version.rb +1 -1
  18. data/lib/google/cloud/chronicle/v1.rb +1 -0
  19. data/proto_docs/backstory/collection.rb +371 -0
  20. data/proto_docs/backstory/data_access.rb +59 -0
  21. data/proto_docs/backstory/entity.rb +639 -0
  22. data/proto_docs/backstory/entity_risk.rb +98 -0
  23. data/proto_docs/backstory/id.rb +73 -0
  24. data/proto_docs/backstory/udm.rb +7008 -0
  25. data/proto_docs/google/cloud/chronicle/v1/entity.rb +38 -0
  26. data/proto_docs/google/cloud/chronicle/v1/event.rb +42 -0
  27. data/proto_docs/google/cloud/chronicle/v1/search.rb +593 -0
  28. data/proto_docs/google/cloud/chronicle/v1/simulated_data.rb +40 -0
  29. data/proto_docs/google/protobuf/struct.rb +108 -0
  30. data/proto_docs/google/type/latlng.rb +38 -0
  31. metadata +45 -1
@@ -0,0 +1,371 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2026 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 Backstory
22
+ # Collection represents a container of objects (such as events, entity
23
+ # context metadata, detection finding metadata) and state (such as
24
+ # investigation details).
25
+ #
26
+ # An example use case for Collection is to model a detection and investigation
27
+ # from detection finding metadata to investigative state collected in the
28
+ # course of the investigation. For more complex investigation and response
29
+ # workflows a Collection could represent an incident consisting of multiple
30
+ # child findings or incidents. This can be expanded on to model remediation
31
+ # elements of a full detection and response workflow.
32
+ # @!attribute [rw] id
33
+ # @return [::String]
34
+ # Unique ID for the collection.
35
+ # The ID is specific to the type of collection. For example, with rule
36
+ # detections this is the detection ID.
37
+ # @!attribute [rw] type
38
+ # @return [::Google::Backstory::Collection::CollectionType]
39
+ # What the collection represents.
40
+ # @!attribute [rw] id_namespace
41
+ # @return [::Google::Backstory::Id::Namespace]
42
+ # The ID namespace used for the Collection.
43
+ # @!attribute [rw] created_time
44
+ # @return [::Google::Protobuf::Timestamp]
45
+ # Time the collection was created.
46
+ # @!attribute [rw] last_updated_time
47
+ # @return [::Google::Protobuf::Timestamp]
48
+ # Time the collection was last updated.
49
+ # @!attribute [rw] time_window
50
+ # @return [::Google::Type::Interval]
51
+ # Time interval that the collection represents.
52
+ # @!attribute [rw] collection_elements
53
+ # @return [::Array<::Google::Backstory::Element>]
54
+ # Constituent elements of the collection. Each element shares an association
55
+ # that groups it together and is a component of the overall collection. For
56
+ # example, a detection collection may have several constituent elements that
57
+ # each share a correlation association that together represent a particular
58
+ # pattern or behavior.
59
+ # @!attribute [rw] detection
60
+ # @return [::Array<::Google::Backstory::SecurityResult>]
61
+ # Detection metadata for findings that represent detections, can include
62
+ # rule details, machine learning model metadata, and indicators implicated
63
+ # in the detection (using the .about field).
64
+ # @!attribute [rw] detection_time
65
+ # @return [::Google::Protobuf::Timestamp]
66
+ # Timestamp within the time_window related to the time of the
67
+ # collection_elements. For Rule Detections, this timestamp is the end of the
68
+ # the time_window for multi-event rules or the time of the event for single
69
+ # event rules. For late-arriving events that trigger new alerts, the
70
+ # detection_time will be the event time of the event.
71
+ # @!attribute [rw] investigation
72
+ # @return [::Google::Backstory::Investigation]
73
+ # Consolidated investigation details (categorization, status, etc) typically
74
+ # for collections that begin as detection findings and then evolve with
75
+ # analyst action and feedback into investigations around the detection
76
+ # output.
77
+ # @!attribute [rw] tags
78
+ # @return [::Array<::String>]
79
+ # Tags set by UC/DSML/RE for the Finding during creation.
80
+ # @!attribute [rw] response_platform_info
81
+ # @return [::Google::Backstory::ResponsePlatformInfo]
82
+ # Alert related info of this same alert in customer's SOAR platform.
83
+ # @!attribute [rw] case_name
84
+ # @return [::String]
85
+ # The resource name of the Case that this collection belongs to.
86
+ # Example:
87
+ # projects/\\{project id}/locations/\\{region}/chronicle/cases/\\{internal_case_id}
88
+ # @!attribute [rw] soar_alert
89
+ # @return [::Boolean]
90
+ # A boolean field indicating that the alert is present in SOAR.
91
+ # @!attribute [rw] soar_alert_metadata
92
+ # @return [::Google::Backstory::SoarAlertMetadata]
93
+ # Metadata fields of alerts coming from other SIEM systems via SOAR.
94
+ # @!attribute [rw] data_access_scope
95
+ # @return [::String]
96
+ # The resource name of the DataAccessScope of this collection.
97
+ # @!attribute [rw] detection_timing_details
98
+ # @return [::Array<::Google::Backstory::Collection::DetectionTimingDetails>]
99
+ # Detection timing details for the collection. These details are used to
100
+ # determine prossible causes of latency for the detection.
101
+ # This field is only set for detections that are generated by rules.
102
+ # @!attribute [rw] latency_metrics
103
+ # @return [::Google::Backstory::LatencyMetrics]
104
+ # The latency metrics for the specific detection. These metrics are
105
+ # calculated from ALL of the events that contribute to the detection, not
106
+ # just the sampled ones.
107
+ # @!attribute [rw] rule_run_frequency
108
+ # @return [::Google::Backstory::Collection::RunFrequency]
109
+ # The run frequency of the rule when it generated the detection.
110
+ # @!attribute [rw] simulated_event_count
111
+ # @return [::Integer]
112
+ # The total number of simulated events that contributed to this detection.
113
+ # Simulated events are realistic threat sequences (Raw Logs or UDM)
114
+ # programmatically delivered into the production ingestion pipeline to verify
115
+ # the entire detection lifecycle—from identification to action.
116
+ # @!attribute [rw] simulated_event_names
117
+ # @return [::Array<::String>]
118
+ # The set of all values from event ingestion_labels where SIMULATED is set as
119
+ # the key, for all simulated events that participated in this detection.
120
+ class Collection
121
+ include ::Google::Protobuf::MessageExts
122
+ extend ::Google::Protobuf::MessageExts::ClassMethods
123
+
124
+ # The type of the collection which will indicate which other fields are
125
+ # relevant. For example, detection finding collections will populate the
126
+ # detection field. Findings that evolve into investigations will populate the
127
+ # investigation field.
128
+ module CollectionType
129
+ # An unspecified collection type.
130
+ COLLECTION_TYPE_UNSPECIFIED = 0
131
+
132
+ # An alert reported in customer telemetry.
133
+ TELEMETRY_ALERT = 1
134
+
135
+ # A finding from the Uppercase team.
136
+ GCTI_FINDING = 2
137
+
138
+ UPPERCASE_ALERT = 2
139
+
140
+ # A detection found by applying a rule.
141
+ RULE_DETECTION = 3
142
+
143
+ # An alert generated by Chronicle machine learning models.
144
+ MACHINE_INTELLIGENCE_ALERT = 4
145
+
146
+ # An alert coming from other SIEMs via Chronicle SOAR.
147
+ SOAR_ALERT = 5
148
+ end
149
+
150
+ # Detection timing details for the collection.
151
+ module DetectionTimingDetails
152
+ # Detection timing details are unspecified.
153
+ DETECTION_TIMING_DETAILS_UNSPECIFIED = 0
154
+
155
+ # Detection is generated by a reprocessing run.
156
+ DETECTION_TIMING_DETAILS_REPROCESSING = 1
157
+
158
+ # Detection is generated by a retrohunt run.
159
+ DETECTION_TIMING_DETAILS_RETROHUNT = 2
160
+ end
161
+
162
+ # Run frequencies used by rule executions.
163
+ module RunFrequency
164
+ # Unspecified run frequency.
165
+ RUN_FREQUENCY_UNSPECIFIED = 0
166
+
167
+ # Real-time run frequency.
168
+ RUN_FREQUENCY_REALTIME = 1
169
+
170
+ # Executes once an hour.
171
+ RUN_FREQUENCY_HOURLY = 2
172
+
173
+ # Executes once a day.
174
+ RUN_FREQUENCY_DAILY = 3
175
+ end
176
+ end
177
+
178
+ # EntityGraphEnrichment contains the data table name and the enrichment applied
179
+ # to the entity.
180
+ # @!attribute [rw] data_table
181
+ # @return [::String]
182
+ # The name of the data table.
183
+ # @!attribute [rw] enrichment_type
184
+ # @return [::Google::Backstory::EntityGraphEnrichment::EnrichmentType]
185
+ # The type of enrichment.
186
+ # @!attribute [rw] overridden_entity
187
+ # @return [::Google::Backstory::Entity]
188
+ # The entity which has only the overridden fields populated. Only populated
189
+ # if the enrichment type is OVERRIDE.
190
+ class EntityGraphEnrichment
191
+ include ::Google::Protobuf::MessageExts
192
+ extend ::Google::Protobuf::MessageExts::ClassMethods
193
+
194
+ # Type of enrichment.
195
+ module EnrichmentType
196
+ # Enrichment type is unspecified.
197
+ ENRICHMENT_TYPE_UNSPECIFIED = 0
198
+
199
+ # The data table was appended to the entity graph.
200
+ APPEND = 1
201
+
202
+ # The entity graph was overridden by the data table.
203
+ OVERRIDE = 2
204
+ end
205
+ end
206
+
207
+ # DataTableRowInfo captures information about a data table row including the
208
+ # name of the data table.
209
+ # @!attribute [rw] data_table
210
+ # @return [::String]
211
+ # The name of data table.
212
+ # @!attribute [rw] row
213
+ # @return [::Google::Protobuf::Struct]
214
+ # Stores the key value pair for a data table row where the key is the name
215
+ # of the column for the given value.
216
+ # @!attribute [rw] row_id
217
+ # @return [::String]
218
+ # The row id of the data table row.
219
+ class DataTableRowInfo
220
+ include ::Google::Protobuf::MessageExts
221
+ extend ::Google::Protobuf::MessageExts::ClassMethods
222
+ end
223
+
224
+ # LatencyMetrics contains relevant timestamps for measuring latency per event
225
+ # variable. These metrics are calculated from ALL of the events that contribute
226
+ # to the detection, not just the sampled ones.
227
+ # @!attribute [rw] oldest_ingestion_time
228
+ # @return [::Google::Protobuf::Timestamp]
229
+ # The oldest ingestion timestamp from the events used to create the
230
+ # detection.
231
+ # @!attribute [rw] newest_ingestion_time
232
+ # @return [::Google::Protobuf::Timestamp]
233
+ # The newest (most recent) ingestion timestamp from the events used to
234
+ # create the detection.
235
+ # @!attribute [rw] oldest_event_time
236
+ # @return [::Google::Protobuf::Timestamp]
237
+ # The oldest event timestamp from the events used to create the detection.
238
+ # @!attribute [rw] newest_event_time
239
+ # @return [::Google::Protobuf::Timestamp]
240
+ # The newest (most recent) event timestamp from the events used to create
241
+ # the detection.
242
+ # @!attribute [rw] ingestion_latency
243
+ # @return [::Google::Protobuf::Duration]
244
+ # The difference between newest ingestion timestamp and newest event
245
+ # timestamp.
246
+ class LatencyMetrics
247
+ include ::Google::Protobuf::MessageExts
248
+ extend ::Google::Protobuf::MessageExts::ClassMethods
249
+ end
250
+
251
+ # Reference to model primatives including event and entity. As support is added
252
+ # for fast retrieval of objects by identifiers, this will be
253
+ # expanded to include ID references rather than full object copies.
254
+ # @!attribute [rw] event
255
+ # @return [::Google::Backstory::UDM]
256
+ # Only one of event or entity will be populated for a single
257
+ # reference.
258
+ # Start one-of
259
+ # Event being referenced.
260
+ # @!attribute [rw] entity
261
+ # @return [::Google::Backstory::Entity]
262
+ # Entity being referenced. In cases where the entity graph is overridden by
263
+ # data table, this will represent the original entity.
264
+ # End one-of
265
+ # @!attribute [rw] joined_data_table_rows
266
+ # @return [::Array<::Google::Backstory::DataTableRowInfo>]
267
+ # The data table rows joined with the event.
268
+ # @!attribute [rw] graph_enrichment
269
+ # @return [::Google::Backstory::EntityGraphEnrichment]
270
+ # The entity graph enrichment details. Only set when the reference is an
271
+ # Entity which has been overridden by a data table or appended from a data
272
+ # table.
273
+ # @!attribute [rw] id
274
+ # @return [::Google::Backstory::Id]
275
+ # Id being referenced. This field will also be populated for both event and
276
+ # entity with the event id. For detections, only this field will be
277
+ # populated.
278
+ # @!attribute [rw] log_batch_token
279
+ # @return [::String]
280
+ # The log batch token of the event being referenced. This field is
281
+ # used to fetch the raw log associated with the event in some legacy systems.
282
+ # This field is only populated for events/entities.
283
+ class Reference
284
+ include ::Google::Protobuf::MessageExts
285
+ extend ::Google::Protobuf::MessageExts::ClassMethods
286
+ end
287
+
288
+ # @!attribute [rw] association
289
+ # @return [::Google::Backstory::SecurityResult]
290
+ # Metadata that provides the relevant association for the references in the
291
+ # element. For a detection, this can be the correlated aspect of the
292
+ # references that contributed to the overall detection. For example, may
293
+ # include sub-rule condition, machine learning model metadata, and/or
294
+ # indicators implicated in this component of the detection
295
+ # (using the .about field).
296
+ # @!attribute [rw] references
297
+ # @return [::Array<::Google::Backstory::Reference>]
298
+ # References to model primatives including events and entities that share a
299
+ # common association.
300
+ # Even though a reference can have both UDM and entity, a collection of
301
+ # references (of a single element) will only have one type of message in it
302
+ # (either UDM / Entity).
303
+ # @!attribute [rw] label
304
+ # @return [::String]
305
+ # A name that labels the entire references group.
306
+ # @!attribute [rw] references_sampled
307
+ # @return [::Boolean]
308
+ # Copied from the detection event_sample.too_many_event_samples field.
309
+ # If true, the number of references will be capped at the sample limit
310
+ # (set at rule service).
311
+ # This is applicable to both UDM references and Entity references.
312
+ # @!attribute [rw] latency_metrics
313
+ # @return [::Google::Backstory::LatencyMetrics]
314
+ # Latency metrics for the specific element. These are
315
+ # calculated from all the contributing events or entities for a single event
316
+ # variable, not just the sampled ones included in references. This is
317
+ # currently only populated for UDM events.
318
+ class Element
319
+ include ::Google::Protobuf::MessageExts
320
+ extend ::Google::Protobuf::MessageExts::ClassMethods
321
+ end
322
+
323
+ # Related info of an Alert in customer's SOAR platform.
324
+ # @!attribute [rw] alert_id
325
+ # @return [::String]
326
+ # Id of the alert in SOAR product.
327
+ # @!attribute [rw] response_platform_type
328
+ # @return [::Google::Backstory::ResponsePlatformInfo::ResponsePlatformType]
329
+ # Type of SOAR product.
330
+ class ResponsePlatformInfo
331
+ include ::Google::Protobuf::MessageExts
332
+ extend ::Google::Protobuf::MessageExts::ClassMethods
333
+
334
+ # Available response platforms.
335
+ module ResponsePlatformType
336
+ # Response platform not specified.
337
+ RESPONSE_PLATFORM_TYPE_UNSPECIFIED = 0
338
+
339
+ # Siemplify
340
+ RESPONSE_PLATFORM_TYPE_SIEMPLIFY = 1
341
+ end
342
+ end
343
+
344
+ # Metadata fields of alerts coming from other SIEM systems.
345
+ # @!attribute [rw] alert_id
346
+ # @return [::String]
347
+ # Alert ID in the source SIEM system.
348
+ # @!attribute [rw] source_rule
349
+ # @return [::String]
350
+ # Name of the rule triggering the alert in the source SIEM.
351
+ # @!attribute [rw] vendor
352
+ # @return [::String]
353
+ # Name of the vendor.
354
+ # @!attribute [rw] source_system
355
+ # @return [::String]
356
+ # Name of the Source SIEM system.
357
+ # @!attribute [rw] product
358
+ # @return [::String]
359
+ # Name of the product the alert is coming from.
360
+ # @!attribute [rw] source_system_ticket_id
361
+ # @return [::String]
362
+ # Ticket id for the alert in the source system.
363
+ # @!attribute [rw] source_system_uri
364
+ # @return [::String]
365
+ # Url to the source SIEM system.
366
+ class SoarAlertMetadata
367
+ include ::Google::Protobuf::MessageExts
368
+ extend ::Google::Protobuf::MessageExts::ClassMethods
369
+ end
370
+ end
371
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2026 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 Backstory
22
+ # Label used in data access for ingestion.
23
+ # @!attribute [rw] key
24
+ # @return [::String]
25
+ # The key.
26
+ # @!attribute [rw] value
27
+ # @return [::String]
28
+ # The value.
29
+ class DataAccessIngestionLabel
30
+ include ::Google::Protobuf::MessageExts
31
+ extend ::Google::Protobuf::MessageExts::ClassMethods
32
+ end
33
+
34
+ # Label used in data access.
35
+ # @!attribute [rw] log_types
36
+ # @return [::Array<::String>]
37
+ # All the LogType labels.
38
+ # @!attribute [rw] ingestion_labels
39
+ # @deprecated This field is deprecated and may be removed in the next major version update.
40
+ # @return [::Array<::String>]
41
+ # All the ingestion labels.
42
+ # @!attribute [rw] namespaces
43
+ # @return [::Array<::String>]
44
+ # All the namespaces.
45
+ # @!attribute [rw] custom_labels
46
+ # @return [::Array<::String>]
47
+ # All the complex labels (UDM search syntax based).
48
+ # @!attribute [rw] ingestion_kv_labels
49
+ # @return [::Array<::Google::Backstory::DataAccessIngestionLabel>]
50
+ # All the ingestion labels (key/value pairs).
51
+ # @!attribute [rw] allow_scoped_access
52
+ # @return [::Boolean]
53
+ # Are the labels ready for scoped access
54
+ class DataAccessLabels
55
+ include ::Google::Protobuf::MessageExts
56
+ extend ::Google::Protobuf::MessageExts::ClassMethods
57
+ end
58
+ end
59
+ end