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
@@ -21,6 +21,44 @@ module Google
21
21
  module Cloud
22
22
  module Chronicle
23
23
  module V1
24
+ # An Entity provides additional context about an entity in a UDM event (asset,
25
+ # user, etc.). For example, a PROCESS_LAUNCH event describes that user
26
+ # 'abc@example.corp' launched process 'shady.exe'. The event does not include
27
+ # information that user 'abc@example.com' is a recently terminated employee who
28
+ # administers a server storing finance data. Information stored in one or more
29
+ # Entities can add this additional context.
30
+ # @!attribute [rw] name
31
+ # @return [::String]
32
+ # The resource name of the entity.
33
+ # Format:
34
+ # `projects/{project}/locations/{location}/instances/{instance}/entities/{entity}`
35
+ # `projects/{project}/locations/{location}/instances/{instance}/analytics/{analytic}/entities/{entity}`
36
+ # `projects/{project}/locations/{location}/instances/{instance}/watchlists/{watchlist}/entities/{entity}`
37
+ # @!attribute [rw] metadata
38
+ # @return [::Google::Backstory::EntityMetadata]
39
+ # Entity metadata such as timestamp, product, etc.
40
+ # @!attribute [rw] entity
41
+ # @return [::Google::Backstory::Noun]
42
+ # Noun in the UDM event that this entity represents.
43
+ # @!attribute [rw] additional
44
+ # @return [::Google::Protobuf::Struct]
45
+ # Important entity data that cannot be adequately represented within
46
+ # the formal sections of the Entity.
47
+ # @!attribute [rw] risk_score
48
+ # @return [::Google::Backstory::EntityRisk]
49
+ # Represents the entity risk scores resource
50
+ # @!attribute [rw] metric
51
+ # @return [::Google::Backstory::Metric]
52
+ # Metric details of the entity. Used if EntityType is METRIC.
53
+ # @!attribute [rw] relations
54
+ # @return [::Array<::Google::Backstory::Relation>]
55
+ # One or more relationships between the entity (a) and other entities,
56
+ # including the relationship type and related entity.
57
+ class Entity
58
+ include ::Google::Protobuf::MessageExts
59
+ extend ::Google::Protobuf::MessageExts::ClassMethods
60
+ end
61
+
24
62
  # A watchlist is a list of entities that allows for bulk operations over the
25
63
  # included entities.
26
64
  # @!attribute [rw] name
@@ -0,0 +1,42 @@
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 Cloud
22
+ module Chronicle
23
+ module V1
24
+ # Event is a resource that contains information about a telemetry event.
25
+ # @!attribute [rw] name
26
+ # @return [::String]
27
+ # The resource name of the event.
28
+ # Format:
29
+ # projects/\\{project}/locations/\\{location}/instances/\\{instance}/events/\\{event}
30
+ # where 'event' is URL-encoded Base64. The unencoded value of 'event' can
31
+ # also be found in udm.metadata.id.
32
+ # @!attribute [rw] udm
33
+ # @return [::Google::Backstory::UDM]
34
+ # Event data in UDM format.
35
+ class Event
36
+ include ::Google::Protobuf::MessageExts
37
+ extend ::Google::Protobuf::MessageExts::ClassMethods
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,593 @@
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 Cloud
22
+ module Chronicle
23
+ module V1
24
+ # SearchSession represents an asynchronous search session.
25
+ # @!attribute [rw] name
26
+ # @return [::String]
27
+ # Identifier. The resource name of the search session.
28
+ # Format:
29
+ # projects/\\{project}/locations/\\{location}/instances/\\{instance}/searchSessions/\\{search_session}
30
+ # @!attribute [rw] query
31
+ # @return [::String]
32
+ # Required. The search query, in the dialect set in `dialect`.
33
+ # Example: 'ip=/172.*/ AND metadata.event_type!="NETWORK_CONNECTION" AND (
34
+ # target.ip = "3.225.179.73" OR target.ip = "23.47.48.70")'
35
+ # @!attribute [rw] time_range
36
+ # @return [::Google::Type::Interval]
37
+ # Required. Time range to search for [Inclusive start time, exclusive end
38
+ # time).
39
+ # @!attribute [rw] dialect
40
+ # @return [::Google::Cloud::Chronicle::V1::QueryDialect]
41
+ # Optional. Specifies how to parse the 'query' string. If not specified, the
42
+ # query will be parsed as YL2.
43
+ # @!attribute [rw] draft_data_access_scope
44
+ # @return [::Google::Cloud::Chronicle::V1::DataAccessScope]
45
+ # Optional. Data access scope used to filter events. This is intended to be
46
+ # used by admins to preview in-development scopes. Should only be called by
47
+ # users with global access. If the caller does not have global access, the
48
+ # request will fail.
49
+ # @!attribute [r] metadata
50
+ # @return [::Google::Cloud::Chronicle::V1::SearchSessionMetadata]
51
+ # Output only. Metadata about the search session.
52
+ class SearchSession
53
+ include ::Google::Protobuf::MessageExts
54
+ extend ::Google::Protobuf::MessageExts::ClassMethods
55
+ end
56
+
57
+ # SearchedResult contains the results of a Search operation.
58
+ # @!attribute [rw] name
59
+ # @return [::String]
60
+ # Identifier. The resource name of the search results.
61
+ # Format:
62
+ # projects/\\{project}/locations/\\{location}/instances/\\{instance}/searchSessions/\\{search_session}/searchedResults/\\{searched_result}
63
+ # @!attribute [rw] result_row
64
+ # @return [::Google::Cloud::Chronicle::V1::ResultRow]
65
+ # Contains a flexible row which can support a standard UDM Event, Stats,
66
+ # Entity Context, Join result, Data Table, etc.
67
+ class SearchedResult
68
+ include ::Google::Protobuf::MessageExts
69
+ extend ::Google::Protobuf::MessageExts::ClassMethods
70
+ end
71
+
72
+ # Request message for the Search method.
73
+ # @!attribute [rw] parent
74
+ # @return [::String]
75
+ # Required. The resource name of the instance on which to perform the search.
76
+ # Format: projects/\\{project}/locations/\\{location}/instances/\\{instance}
77
+ # @!attribute [rw] query
78
+ # @return [::String]
79
+ # Required. The search query, in the dialect set in `dialect`.
80
+ # Example: 'ip=/172.*/ AND metadata.event_type!="NETWORK_CONNECTION" AND (
81
+ # target.ip = "3.225.179.73" OR target.ip = "23.47.48.70")'
82
+ # @!attribute [rw] time_range
83
+ # @return [::Google::Type::Interval]
84
+ # Required. Time range to search for [Inclusive start time, exclusive end
85
+ # time).
86
+ # @!attribute [rw] dialect
87
+ # @return [::Google::Cloud::Chronicle::V1::QueryDialect]
88
+ # Optional. Specifies the dialect the Search Query is written in. If not
89
+ # specified, the query will be parsed as YL2.
90
+ # @!attribute [rw] draft_data_access_scope
91
+ # @return [::Google::Cloud::Chronicle::V1::DataAccessScope]
92
+ # Optional. Data access scope used to filter events. This is intended to be
93
+ # used by admins to preview in-development scopes. Should only be called by
94
+ # users with global access. If the caller does not have global access, the
95
+ # request will fail.
96
+ # @!attribute [rw] result_limit
97
+ # @return [::Integer]
98
+ # Optional. Requested maximum number of rows to materialize. The service may
99
+ # return fewer. If unspecified, a server-side default of 10,000 is used. The
100
+ # maximum value is 1,000,000. Some dialects have a lower maximum; see
101
+ # `QueryDialect`.
102
+ # @!attribute [rw] simulated_data_visibility
103
+ # @return [::Google::Cloud::Chronicle::V1::SimulatedDataVisibility]
104
+ # Optional. Specifies visibility of simulated data to include in search
105
+ # results.
106
+ class SearchRequest
107
+ include ::Google::Protobuf::MessageExts
108
+ extend ::Google::Protobuf::MessageExts::ClassMethods
109
+ end
110
+
111
+ # Request message for the ListSearchedResults method.
112
+ # @!attribute [rw] parent
113
+ # @return [::String]
114
+ # Required. The parent SearchSession resource name.
115
+ # Format:
116
+ # projects/\\{project}/locations/\\{location}/instances/\\{instance}/searchSessions/\\{search_session}
117
+ # @!attribute [rw] page_size
118
+ # @return [::Integer]
119
+ # Optional. The maximum number of results to return. The service may return
120
+ # fewer. If unspecified, at most 100 results will be returned. The maximum
121
+ # value is 1000.
122
+ # @!attribute [rw] page_token
123
+ # @return [::String]
124
+ # Optional. A page token, received from a previous `ListSearchedResults`
125
+ # call. Provide this to retrieve the subsequent page.
126
+ # @!attribute [rw] order_by
127
+ # @return [::String]
128
+ # Optional. The column to sort the results on. Example: "event_timestamp
129
+ # desc", "principal.hostname asc". Multi-columnar sorting is not supported.
130
+ # @!attribute [rw] skip
131
+ # @return [::Integer]
132
+ # Optional. The number of results to skip before starting to return results.
133
+ # This field should not be used in conjunction with page_token.
134
+ class ListSearchedResultsRequest
135
+ include ::Google::Protobuf::MessageExts
136
+ extend ::Google::Protobuf::MessageExts::ClassMethods
137
+ end
138
+
139
+ # Response message for the ListSearchedResults method.
140
+ # @!attribute [rw] searched_results
141
+ # @return [::Array<::Google::Cloud::Chronicle::V1::SearchedResult>]
142
+ # List of Searched Results.
143
+ # @!attribute [rw] total_size
144
+ # @return [::Integer]
145
+ # Total number of rows in the result set of the search query.
146
+ # @!attribute [rw] column_names
147
+ # @return [::Google::Cloud::Chronicle::V1::ColumnNames]
148
+ # List of column names for the outcome section of the query result.
149
+ # @!attribute [rw] column_schema
150
+ # @return [::Google::Cloud::Chronicle::V1::ColumnSchema]
151
+ # Column schema for the results based on the query columns. Contains metadata
152
+ # like data source, event_name etc.
153
+ # @!attribute [rw] next_page_token
154
+ # @return [::String]
155
+ # A token, which can be sent as `page_token` to retrieve the next page.
156
+ # If this field is omitted, there are no subsequent pages.
157
+ class ListSearchedResultsResponse
158
+ include ::Google::Protobuf::MessageExts
159
+ extend ::Google::Protobuf::MessageExts::ClassMethods
160
+ end
161
+
162
+ # Metadata about the search session.
163
+ # @!attribute [r] operation_id
164
+ # @return [::String]
165
+ # Output only. The operation id corresponding to the search session which can
166
+ # be used to poll the operation resource to know its state and progress.
167
+ # @!attribute [r] start_time
168
+ # @return [::Google::Protobuf::Timestamp]
169
+ # Output only. The start time of the session.
170
+ # @!attribute [r] end_time
171
+ # @return [::Google::Protobuf::Timestamp]
172
+ # Output only. The end time of the session, if done.
173
+ # @!attribute [r] expire_time
174
+ # @return [::Google::Protobuf::Timestamp]
175
+ # Output only. The time when the search results expire.
176
+ # @!attribute [r] result_row_count
177
+ # @return [::Integer]
178
+ # Output only. Total number of rows returned in the search session.
179
+ # @!attribute [r] more_data_available
180
+ # @return [::Boolean]
181
+ # Output only. If true, there are more search results available than what can
182
+ # be returned and have been omitted.
183
+ class SearchSessionMetadata
184
+ include ::Google::Protobuf::MessageExts
185
+ extend ::Google::Protobuf::MessageExts::ClassMethods
186
+ end
187
+
188
+ # Metadata for the google.longrunning.Operation returned by the Search
189
+ # method.
190
+ # @!attribute [r] state
191
+ # @return [::Google::Cloud::Chronicle::V1::SearchOperationMetadata::State]
192
+ # Output only. State of the Search operation.
193
+ # @!attribute [r] start_time
194
+ # @return [::Google::Protobuf::Timestamp]
195
+ # Output only. The start time of the search.
196
+ # @!attribute [r] end_time
197
+ # @return [::Google::Protobuf::Timestamp]
198
+ # Output only. The end time of the search, if done.
199
+ # @!attribute [r] expire_time
200
+ # @return [::Google::Protobuf::Timestamp]
201
+ # Output only. The time when the search results expire.
202
+ # @!attribute [r] progress
203
+ # @return [::Integer]
204
+ # Output only. Progress Percentage of the search LRO, ranges from 0 to 100.
205
+ # @!attribute [r] datatable_export_metadata
206
+ # @return [::Google::Cloud::Chronicle::V1::DataTableExportMetadata]
207
+ # Output only. Metadata of the data table export operation if the search
208
+ # results are written to a Data Table.
209
+ class SearchOperationMetadata
210
+ include ::Google::Protobuf::MessageExts
211
+ extend ::Google::Protobuf::MessageExts::ClassMethods
212
+
213
+ # State of the Search operation.
214
+ module State
215
+ # Unspecified state.
216
+ STATE_UNSPECIFIED = 0
217
+
218
+ # Initial state, Search operation is running.
219
+ RUNNING = 1
220
+
221
+ # Search operation completed, results are available.
222
+ SUCCEEDED = 2
223
+
224
+ # Search operation failed.
225
+ FAILED = 3
226
+
227
+ # Search operation was cancelled.
228
+ CANCELLED = 4
229
+
230
+ # Search operation expired.
231
+ EXPIRED = 5
232
+ end
233
+ end
234
+
235
+ # Metadata about a DataTable export operation.
236
+ # @!attribute [rw] error
237
+ # @return [::Google::Rpc::Status]
238
+ # The error result of the export operation in case of failure.
239
+ #
240
+ # Note: The following fields are mutually exclusive: `error`, `result_metadata`. If a field in that set is populated, all other fields in the set will automatically be cleared.
241
+ # @!attribute [rw] result_metadata
242
+ # @return [::Google::Cloud::Chronicle::V1::DataTableExportMetadata::ResultMetadata]
243
+ # Metadata about the export operation's result in case of success.
244
+ #
245
+ # Note: The following fields are mutually exclusive: `result_metadata`, `error`. If a field in that set is populated, all other fields in the set will automatically be cleared.
246
+ # @!attribute [rw] data_table
247
+ # @return [::String]
248
+ # The name of the DataTable.
249
+ class DataTableExportMetadata
250
+ include ::Google::Protobuf::MessageExts
251
+ extend ::Google::Protobuf::MessageExts::ClassMethods
252
+
253
+ # The result of the export operation.
254
+ # @!attribute [rw] datatable_export_operation_id
255
+ # @return [::String]
256
+ # The operation ID of the export operation.
257
+ # @!attribute [rw] rows_count
258
+ # @return [::Integer]
259
+ # The number of rows exported to the datatable.
260
+ class ResultMetadata
261
+ include ::Google::Protobuf::MessageExts
262
+ extend ::Google::Protobuf::MessageExts::ClassMethods
263
+ end
264
+ end
265
+
266
+ # Metadata about a table used in a query.
267
+ # @!attribute [rw] table
268
+ # @return [::String]
269
+ # The alias of the table in the query.
270
+ # @!attribute [rw] data_source
271
+ # @return [::Google::Cloud::Chronicle::V1::TableMetadata::DataSource]
272
+ # The type of data source.
273
+ # @!attribute [rw] index
274
+ # @return [::Integer]
275
+ # The index of the table in the query.
276
+ class TableMetadata
277
+ include ::Google::Protobuf::MessageExts
278
+ extend ::Google::Protobuf::MessageExts::ClassMethods
279
+
280
+ # The type of data source.
281
+ module DataSource
282
+ # Unspecified data source.
283
+ DATA_SOURCE_UNSPECIFIED = 0
284
+
285
+ # UDM events.
286
+ EVENTS = 1
287
+
288
+ # Entity context.
289
+ ENTITY_CONTEXT = 2
290
+
291
+ # Data tables.
292
+ DATA_TABLES = 3
293
+
294
+ # Detections.
295
+ DETECTIONS = 4
296
+
297
+ # SOAR cases.
298
+ SOAR_CASE = 5
299
+
300
+ # SOAR case histories.
301
+ SOAR_CASE_HISTORY = 6
302
+ end
303
+ end
304
+
305
+ # Schema of the tables used in a query.
306
+ # @!attribute [rw] metadata
307
+ # @return [::Array<::Google::Cloud::Chronicle::V1::TableMetadata>]
308
+ # Metadata about the tables used in the query.
309
+ class ColumnSchema
310
+ include ::Google::Protobuf::MessageExts
311
+ extend ::Google::Protobuf::MessageExts::ClassMethods
312
+ end
313
+
314
+ # List of column names for the outcome section of the query result.
315
+ # @!attribute [rw] names
316
+ # @return [::Array<::String>]
317
+ # List of column names.
318
+ class ColumnNames
319
+ include ::Google::Protobuf::MessageExts
320
+ extend ::Google::Protobuf::MessageExts::ClassMethods
321
+ end
322
+
323
+ # ResultRow is a flexible collection that captures a search result row. It can
324
+ # currently support UDM Events, Entity Contexts, Data Tables, Join results,
325
+ # etc. and will support all other data sources in the future.
326
+ # @!attribute [rw] event_record
327
+ # @return [::Google::Cloud::Chronicle::V1::EventRecord]
328
+ # UDM event.
329
+ #
330
+ # Note: The following fields are mutually exclusive: `event_record`, `stats_record`, `entity_context_record`, `join_record`, `detection_record`, `data_table_record`. If a field in that set is populated, all other fields in the set will automatically be cleared.
331
+ # @!attribute [rw] stats_record
332
+ # @return [::Google::Cloud::Chronicle::V1::StatsRecord]
333
+ # Stats record.
334
+ #
335
+ # Note: The following fields are mutually exclusive: `stats_record`, `event_record`, `entity_context_record`, `join_record`, `detection_record`, `data_table_record`. If a field in that set is populated, all other fields in the set will automatically be cleared.
336
+ # @!attribute [rw] entity_context_record
337
+ # @return [::Google::Cloud::Chronicle::V1::EntityContextRecord]
338
+ # Entity context graph.
339
+ #
340
+ # Note: The following fields are mutually exclusive: `entity_context_record`, `event_record`, `stats_record`, `join_record`, `detection_record`, `data_table_record`. If a field in that set is populated, all other fields in the set will automatically be cleared.
341
+ # @!attribute [rw] join_record
342
+ # @return [::Google::Cloud::Chronicle::V1::JoinRecord]
343
+ # Join results.
344
+ #
345
+ # Note: The following fields are mutually exclusive: `join_record`, `event_record`, `stats_record`, `entity_context_record`, `detection_record`, `data_table_record`. If a field in that set is populated, all other fields in the set will automatically be cleared.
346
+ # @!attribute [rw] detection_record
347
+ # @return [::Google::Cloud::Chronicle::V1::DetectionRecord]
348
+ # Detection.
349
+ #
350
+ # Note: The following fields are mutually exclusive: `detection_record`, `event_record`, `stats_record`, `entity_context_record`, `join_record`, `data_table_record`. If a field in that set is populated, all other fields in the set will automatically be cleared.
351
+ # @!attribute [rw] data_table_record
352
+ # @return [::Google::Cloud::Chronicle::V1::DataTableRecord]
353
+ # Data table.
354
+ #
355
+ # Note: The following fields are mutually exclusive: `data_table_record`, `event_record`, `stats_record`, `entity_context_record`, `join_record`, `detection_record`. If a field in that set is populated, all other fields in the set will automatically be cleared.
356
+ # @!attribute [rw] outcomes
357
+ # @return [::Array<::Google::Cloud::Chronicle::V1::ColumnType>]
358
+ # Outcome fields for an event specified in query request.
359
+ class ResultRow
360
+ include ::Google::Protobuf::MessageExts
361
+ extend ::Google::Protobuf::MessageExts::ClassMethods
362
+ end
363
+
364
+ # StatsRecord contains a row in the response of a stats query.
365
+ # @!attribute [rw] results
366
+ # @return [::Array<::Google::Cloud::Chronicle::V1::StatsColumnData>]
367
+ # Contains all columns resulting from a stats query and one row of values.
368
+ class StatsRecord
369
+ include ::Google::Protobuf::MessageExts
370
+ extend ::Google::Protobuf::MessageExts::ClassMethods
371
+ end
372
+
373
+ # Represents a single column with a single cell in the set of columns
374
+ # returned as the stats query result.
375
+ # @!attribute [rw] column
376
+ # @return [::String]
377
+ # Used to store column names.
378
+ # @!attribute [rw] values
379
+ # @return [::Google::Cloud::Chronicle::V1::ColumnType]
380
+ # Store the values in a single column.
381
+ class StatsColumnData
382
+ include ::Google::Protobuf::MessageExts
383
+ extend ::Google::Protobuf::MessageExts::ClassMethods
384
+ end
385
+
386
+ # Singular vs list of values in a single column.
387
+ # @!attribute [rw] value
388
+ # @return [::Google::Cloud::Chronicle::V1::ColumnType::ColumnValue]
389
+ # Single value in a column.
390
+ #
391
+ # Note: The following fields are mutually exclusive: `value`, `list`. If a field in that set is populated, all other fields in the set will automatically be cleared.
392
+ # @!attribute [rw] list
393
+ # @return [::Google::Cloud::Chronicle::V1::ColumnType::ColumnValueList]
394
+ # List of values in a column e.g. IPs.
395
+ #
396
+ # Note: The following fields are mutually exclusive: `list`, `value`. If a field in that set is populated, all other fields in the set will automatically be cleared.
397
+ class ColumnType
398
+ include ::Google::Protobuf::MessageExts
399
+ extend ::Google::Protobuf::MessageExts::ClassMethods
400
+
401
+ # Represents a single value in the set of values returned as the query
402
+ # result.
403
+ # @!attribute [rw] null_val
404
+ # @return [::Boolean]
405
+ # True if the value is NULL.
406
+ #
407
+ # Note: The following fields are mutually exclusive: `null_val`, `bool_val`, `bytes_val`, `double_val`, `int64_val`, `uint64_val`, `string_val`, `timestamp_val`, `date_val`, `proto_val`. If a field in that set is populated, all other fields in the set will automatically be cleared.
408
+ # @!attribute [rw] bool_val
409
+ # @return [::Boolean]
410
+ # Boolean value.
411
+ #
412
+ # Note: The following fields are mutually exclusive: `bool_val`, `null_val`, `bytes_val`, `double_val`, `int64_val`, `uint64_val`, `string_val`, `timestamp_val`, `date_val`, `proto_val`. If a field in that set is populated, all other fields in the set will automatically be cleared.
413
+ # @!attribute [rw] bytes_val
414
+ # @return [::String]
415
+ # Bytes value.
416
+ #
417
+ # Note: The following fields are mutually exclusive: `bytes_val`, `null_val`, `bool_val`, `double_val`, `int64_val`, `uint64_val`, `string_val`, `timestamp_val`, `date_val`, `proto_val`. If a field in that set is populated, all other fields in the set will automatically be cleared.
418
+ # @!attribute [rw] double_val
419
+ # @return [::Float]
420
+ # Double value.
421
+ #
422
+ # Note: The following fields are mutually exclusive: `double_val`, `null_val`, `bool_val`, `bytes_val`, `int64_val`, `uint64_val`, `string_val`, `timestamp_val`, `date_val`, `proto_val`. If a field in that set is populated, all other fields in the set will automatically be cleared.
423
+ # @!attribute [rw] int64_val
424
+ # @return [::Integer]
425
+ # Integer value (signed).
426
+ #
427
+ # Note: The following fields are mutually exclusive: `int64_val`, `null_val`, `bool_val`, `bytes_val`, `double_val`, `uint64_val`, `string_val`, `timestamp_val`, `date_val`, `proto_val`. If a field in that set is populated, all other fields in the set will automatically be cleared.
428
+ # @!attribute [rw] uint64_val
429
+ # @return [::Integer]
430
+ # Un-signed integer value.
431
+ #
432
+ # Note: The following fields are mutually exclusive: `uint64_val`, `null_val`, `bool_val`, `bytes_val`, `double_val`, `int64_val`, `string_val`, `timestamp_val`, `date_val`, `proto_val`. If a field in that set is populated, all other fields in the set will automatically be cleared.
433
+ # @!attribute [rw] string_val
434
+ # @return [::String]
435
+ # String value. Enum values are returned as strings.
436
+ #
437
+ # Note: The following fields are mutually exclusive: `string_val`, `null_val`, `bool_val`, `bytes_val`, `double_val`, `int64_val`, `uint64_val`, `timestamp_val`, `date_val`, `proto_val`. If a field in that set is populated, all other fields in the set will automatically be cleared.
438
+ # @!attribute [rw] timestamp_val
439
+ # @return [::Google::Protobuf::Timestamp]
440
+ # Timestamp values.
441
+ #
442
+ # Note: The following fields are mutually exclusive: `timestamp_val`, `null_val`, `bool_val`, `bytes_val`, `double_val`, `int64_val`, `uint64_val`, `string_val`, `date_val`, `proto_val`. If a field in that set is populated, all other fields in the set will automatically be cleared.
443
+ # @!attribute [rw] date_val
444
+ # @return [::Google::Type::Date]
445
+ # Date values.
446
+ #
447
+ # Note: The following fields are mutually exclusive: `date_val`, `null_val`, `bool_val`, `bytes_val`, `double_val`, `int64_val`, `uint64_val`, `string_val`, `timestamp_val`, `proto_val`. If a field in that set is populated, all other fields in the set will automatically be cleared.
448
+ # @!attribute [rw] proto_val
449
+ # @return [::Google::Protobuf::Any]
450
+ # For any proto values that are not any of the above.
451
+ #
452
+ # Note: The following fields are mutually exclusive: `proto_val`, `null_val`, `bool_val`, `bytes_val`, `double_val`, `int64_val`, `uint64_val`, `string_val`, `timestamp_val`, `date_val`. If a field in that set is populated, all other fields in the set will automatically be cleared.
453
+ class ColumnValue
454
+ include ::Google::Protobuf::MessageExts
455
+ extend ::Google::Protobuf::MessageExts::ClassMethods
456
+ end
457
+
458
+ # Store list of values for a single column.
459
+ # @!attribute [rw] values
460
+ # @return [::Array<::Google::Cloud::Chronicle::V1::ColumnType::ColumnValue>]
461
+ # List of values in one cell of the column.
462
+ class ColumnValueList
463
+ include ::Google::Protobuf::MessageExts
464
+ extend ::Google::Protobuf::MessageExts::ClassMethods
465
+ end
466
+ end
467
+
468
+ # Contains a key-value pair of column name and its value. It represents a cell
469
+ # in the Data Table.
470
+ # @!attribute [rw] column
471
+ # @return [::String]
472
+ # The name of the column.
473
+ # @!attribute [rw] value
474
+ # @return [::String]
475
+ # The value of the column.
476
+ class SearchDataTableRowCell
477
+ include ::Google::Protobuf::MessageExts
478
+ extend ::Google::Protobuf::MessageExts::ClassMethods
479
+ end
480
+
481
+ # DataTableRecord contains information about a Data table.
482
+ # @!attribute [rw] data_table
483
+ # @return [::String]
484
+ # The resource name of the Data table.
485
+ # Format:
486
+ # projects/\\{project_id}/locations/\\{location}/instances/\\{instances}/dataTables/\\{data_table}
487
+ # @!attribute [rw] cells
488
+ # @return [::Array<::Google::Cloud::Chronicle::V1::SearchDataTableRowCell>]
489
+ # Stores information about a single row of a Data table.
490
+ class DataTableRecord
491
+ include ::Google::Protobuf::MessageExts
492
+ extend ::Google::Protobuf::MessageExts::ClassMethods
493
+ end
494
+
495
+ # EventRecord stores information about a UDM event.
496
+ # @!attribute [rw] event
497
+ # @return [::Google::Cloud::Chronicle::V1::Event]
498
+ # The UDM Event.
499
+ # @!attribute [rw] event_log_token
500
+ # @return [::String]
501
+ # Raw log tokens mapped to the event. Can be used to locate the raw log entry
502
+ # that generated the event.
503
+ # @!attribute [rw] alert_number
504
+ # @return [::Integer]
505
+ # If the event should be treated as an alert, the unique identifier for the
506
+ # alert.
507
+ # @!attribute [rw] alert_view_id
508
+ # @return [::String]
509
+ # Alert View specific Id. Helps create a link to Alert View.
510
+ # @!attribute [rw] annotations
511
+ # @return [::Array<::Google::Cloud::Chronicle::V1::EventRecord::Annotation>]
512
+ # Annotations added to an event.
513
+ # @!attribute [rw] detections
514
+ # @return [::Array<::Google::Backstory::Collection>]
515
+ # Detections associated with an event.
516
+ # @!attribute [rw] table
517
+ # @return [::String]
518
+ # User defined table name for the event in joins query.
519
+ class EventRecord
520
+ include ::Google::Protobuf::MessageExts
521
+ extend ::Google::Protobuf::MessageExts::ClassMethods
522
+
523
+ # Annotation for an event.
524
+ module Annotation
525
+ # Unspecified - no annotation to display.
526
+ ANNOTATION_UNSPECIFIED = 0
527
+
528
+ # Event is associated with one or more alerts.
529
+ ANNOTATION_ALERT = 1
530
+ end
531
+ end
532
+
533
+ # EntityContextRecord stores information about a entity context graph.
534
+ # @!attribute [rw] entity
535
+ # @return [::Google::Cloud::Chronicle::V1::Entity]
536
+ # The entity information to be retrieved with UDM ECG search.
537
+ # @!attribute [rw] event_log_token
538
+ # @return [::String]
539
+ # Raw log tokens mapped to the event that created the entity. This is only
540
+ # for entity context events.
541
+ # @!attribute [rw] timed
542
+ # @return [::Boolean]
543
+ # If the entity is timed or not.
544
+ # @!attribute [rw] table
545
+ # @return [::String]
546
+ # User defined table name for the entity in joins query.
547
+ class EntityContextRecord
548
+ include ::Google::Protobuf::MessageExts
549
+ extend ::Google::Protobuf::MessageExts::ClassMethods
550
+ end
551
+
552
+ # JoinRecord stores information about a join result.
553
+ # @!attribute [rw] events
554
+ # @return [::Array<::Google::Cloud::Chronicle::V1::EventRecord>]
555
+ # The events that are joined.
556
+ # @!attribute [rw] entities
557
+ # @return [::Array<::Google::Cloud::Chronicle::V1::EntityContextRecord>]
558
+ # The entities that are joined.
559
+ # @!attribute [rw] data_tables
560
+ # @return [::Array<::Google::Cloud::Chronicle::V1::DataTableRecord>]
561
+ # The data tables that are joined.
562
+ class JoinRecord
563
+ include ::Google::Protobuf::MessageExts
564
+ extend ::Google::Protobuf::MessageExts::ClassMethods
565
+ end
566
+
567
+ # DetectionRecord stores information about a detection.
568
+ # @!attribute [rw] id
569
+ # @return [::String]
570
+ # The ID of the detection.
571
+ # @!attribute [rw] collection
572
+ # @return [::Google::Backstory::Collection]
573
+ # The detection.
574
+ class DetectionRecord
575
+ include ::Google::Protobuf::MessageExts
576
+ extend ::Google::Protobuf::MessageExts::ClassMethods
577
+ end
578
+
579
+ # Specifies the dialect the Search Query is written in.
580
+ module QueryDialect
581
+ # Defaults to YL2.
582
+ QUERY_DIALECT_UNSPECIFIED = 0
583
+
584
+ # YL2 query dialect.
585
+ YL2 = 1
586
+
587
+ # SQL query dialect.
588
+ SQL = 2
589
+ end
590
+ end
591
+ end
592
+ end
593
+ end