diff --git a/drdroid_debug_toolkit/core/integrations/source_api_processors/coralogix_api_processor.py b/drdroid_debug_toolkit/core/integrations/source_api_processors/coralogix_api_processor.py index e232aba..ae89d6e 100644 --- a/drdroid_debug_toolkit/core/integrations/source_api_processors/coralogix_api_processor.py +++ b/drdroid_debug_toolkit/core/integrations/source_api_processors/coralogix_api_processor.py @@ -526,6 +526,66 @@ def execute_spans_query(self, query: str, from_time: str = None, to_time: str = logger.error(f"Error executing spans query: {e}") raise + def execute_dataprime_spans_query(self, dataprime_query: str, from_time: str = None, to_time: str = None): + """ + Execute a DataPrime query scoped to spans. + + Args: + dataprime_query: Full DataPrime query string, e.g. + "source spans | filter $l.traceId == '...'" + from_time: Start time (e.g. "now-1h", RFC3339) + to_time: End time (e.g. "now", RFC3339) + + Returns: + dict: {"results": [...], "count": int} + """ + try: + start_time_rfc3339 = self._parse_time_to_rfc3339(from_time or "now-1h") + end_time_rfc3339 = self._parse_time_to_rfc3339(to_time or "now") + + url = f'{self.__endpoint}/api/v1/dataprime/query' + payload = { + "query": dataprime_query, + "metadata": { + "tier": "TIER_FREQUENT_SEARCH", + "syntax": "QUERY_SYNTAX_DATAPRIME", + "startDate": start_time_rfc3339, + "endDate": end_time_rfc3339, + "defaultSource": "spans", + }, + } + + response = requests.post( + url, headers=self.headers, json=payload, + verify=self.__ssl_verify, timeout=60 + ) + + if response.status_code != 200: + raise Exception(f"DataPrime spans query failed with status {response.status_code}: {response.text}") + + results = [] + for line in response.text.strip().split('\n'): + if not line.strip(): + continue + try: + line_data = json.loads(line) + if "result" in line_data and "results" in line_data["result"]: + for r in line_data["result"]["results"]: + if isinstance(r, dict): + results.append(r) + elif "results" in line_data: + for r in line_data["results"]: + if isinstance(r, dict): + results.append(r) + except Exception as parse_err: + logger.warning(f"Could not parse DataPrime line: {parse_err}") + + return {"results": results, "count": len(results)} + + except Exception as e: + logger.error(f"Error executing DataPrime spans query: {e}") + raise + def execute_widget_query(self, widget_config: dict, from_time: str = None, to_time: str = None): """ Execute a query from a widget configuration. @@ -924,6 +984,148 @@ def _kv_list_to_dict(field) -> dict: logger.info(f"fetch_services returning {len(services)} total unique services") return services + def _get_grpc_host(self) -> str: + """Derive the gRPC host (host:443) from the configured HTTP endpoint.""" + endpoint_url = self.__endpoint + if endpoint_url.startswith('https://'): + endpoint_url = endpoint_url[8:] + elif endpoint_url.startswith('http://'): + endpoint_url = endpoint_url[7:] + domain = endpoint_url.split('/')[0] + + region_map = { + 'eu2': 'api.eu2.coralogix.com', + 'eu1': 'api.eu1.coralogix.com', + 'us2': 'api.us2.coralogix.com', + 'us1': 'api.us1.coralogix.com', + 'ap1': 'api.ap1.coralogix.com', + 'ap2': 'api.ap2.coralogix.com', + 'ap3': 'api.ap3.coralogix.com', + } + for region, host in region_map.items(): + if region in domain.lower(): + return f'{host}:443' + + # Fall back to the domain itself + return domain if ':' in domain else f'{domain}:443' + + def fetch_apm_services(self): + """ + Fetch all services from the Coralogix APM Service Catalog. + + Calls: + com.coralogixapis.apm.services.v1.ApmServiceService/ListApmServices + + Uses the grpcio Python library (no grpcurl binary needed). Protobuf + message types are defined inline so no generated stubs are required. + + Returns: + list[dict]: Each entry contains id, name, type, workloads, technology, + and sloStatusCount as returned by the API. + """ + try: + import grpc + from google.protobuf import descriptor_pb2 + from google.protobuf.message_factory import GetMessages + from google.protobuf import json_format + + # --- Build inline proto descriptors --- + file_proto = descriptor_pb2.FileDescriptorProto() + file_proto.name = "coralogix_apm_services.proto" + file_proto.package = "com.coralogixapis.apm.services.v1" + file_proto.syntax = "proto3" + + # message ApmService + svc = file_proto.message_type.add() + svc.name = "ApmService" + for num, fname in [(1, "id"), (2, "name"), (3, "type"), (5, "technology")]: + f = svc.field.add() + f.name = fname + f.number = num + f.type = 9 # TYPE_STRING + f.label = 1 # LABEL_OPTIONAL + f = svc.field.add() + f.name = "workloads" + f.number = 4 + f.type = 9 # TYPE_STRING + f.label = 3 # LABEL_REPEATED + + # message ListApmServicesRequest (empty) + req_msg = file_proto.message_type.add() + req_msg.name = "ListApmServicesRequest" + + # message ListApmServicesResponse + resp_msg = file_proto.message_type.add() + resp_msg.name = "ListApmServicesResponse" + f = resp_msg.field.add() + f.name = "services" + f.number = 1 + f.type = 11 # TYPE_MESSAGE + f.label = 3 # LABEL_REPEATED + f.type_name = ".com.coralogixapis.apm.services.v1.ApmService" + + classes = GetMessages([file_proto]) + pkg = "com.coralogixapis.apm.services.v1" + RequestClass = classes[f"{pkg}.ListApmServicesRequest"] + ResponseClass = classes[f"{pkg}.ListApmServicesResponse"] + + # --- Make the gRPC call --- + grpc_host = self._get_grpc_host() + channel = grpc.secure_channel(grpc_host, grpc.ssl_channel_credentials()) + method = channel.unary_unary( + '/com.coralogixapis.apm.services.v1.ApmServiceService/ListApmServices', + request_serializer=RequestClass.SerializeToString, + response_deserializer=ResponseClass.FromString, + ) + + response = method( + RequestClass(), + metadata=[('authorization', f'Bearer {self.__api_key}')], + timeout=30, + ) + + raw_services = [json_format.MessageToDict(svc) for svc in response.services] + + def _unwrap_sv(v): + """ + Strip the StringValue wire-format prefix from a string field. + + Coralogix ApmService uses google.protobuf.StringValue wrappers. + When decoded against plain-string descriptors the value arrives as + the raw StringValue message bytes: + 0x0a (field 1, wire type 2) | varint(length) | utf-8 bytes + For strings shorter than 128 bytes the length varint is 1 byte. + """ + if ( + isinstance(v, str) + and len(v) >= 2 + and v[0] == '\n' # 0x0a = StringValue.value tag + ): + try: + length = ord(v[1]) + if len(v) == 2 + length: + return v[2:] + except Exception: + pass + return v + + services = [] + for raw in raw_services: + services.append({ + "id": _unwrap_sv(raw.get("id", "")), + "name": _unwrap_sv(raw.get("name", "")), + "type": _unwrap_sv(raw.get("type", "")), + "technology": _unwrap_sv(raw.get("technology", "")), + "workloads": [_unwrap_sv(w) for w in raw.get("workloads", [])], + }) + + logger.info(f"Fetched {len(services)} APM services from Coralogix Service Catalog") + return services + + except Exception as e: + logger.error(f"Exception fetching Coralogix APM services: {e}") + raise e + def fetch_alert_defs(self): """ Fetch all alert definition configurations from Coralogix using gRPC API. diff --git a/drdroid_debug_toolkit/core/integrations/source_managers/coralogix_source_manager.py b/drdroid_debug_toolkit/core/integrations/source_managers/coralogix_source_manager.py index 85c42b5..9c523e4 100644 --- a/drdroid_debug_toolkit/core/integrations/source_managers/coralogix_source_manager.py +++ b/drdroid_debug_toolkit/core/integrations/source_managers/coralogix_source_manager.py @@ -219,7 +219,81 @@ def __init__(self): "display_name": "Fetch Alert Definitions from Coralogix", "category": "Alerts", "form_fields": [], - } + }, + Coralogix.TaskType.FETCH_SPANS: { + "executor": self.execute_fetch_spans, + "model_types": [], + "result_type": PlaybookTaskResultType.API_RESPONSE, + "display_name": "Fetch Spans from Coralogix", + "category": "Traces", + "form_fields": [ + FormField( + key_name=StringValue(value="query"), + display_name=StringValue(value="Lucene Query"), + description=StringValue(value="Lucene query to filter spans (e.g., '*', 'serviceName:frontend', 'operationName:\"GET /api/users\" AND duration:>1000')"), + data_type=LiteralType.STRING, + form_field_type=FormFieldType.MULTILINE_FT, + is_optional=True, + ), + FormField( + key_name=StringValue(value="from_time"), + display_name=StringValue(value="From Time"), + description=StringValue(value="Start time (e.g., 'now-1h', '2024-01-01T00:00:00Z')"), + data_type=LiteralType.STRING, + form_field_type=FormFieldType.TEXT_FT, + is_optional=True, + ), + FormField( + key_name=StringValue(value="to_time"), + display_name=StringValue(value="To Time"), + description=StringValue(value="End time (e.g., 'now', '2024-01-01T01:00:00Z')"), + data_type=LiteralType.STRING, + form_field_type=FormFieldType.TEXT_FT, + is_optional=True, + ), + FormField( + key_name=StringValue(value="limit"), + display_name=StringValue(value="Limit"), + description=StringValue(value="Maximum number of spans to return (default: 100)"), + data_type=LiteralType.LONG, + form_field_type=FormFieldType.TEXT_FT, + is_optional=True, + ), + ], + }, + Coralogix.TaskType.FETCH_TRACE: { + "executor": self.execute_fetch_trace, + "model_types": [], + "result_type": PlaybookTaskResultType.API_RESPONSE, + "display_name": "Fetch Trace by ID from Coralogix", + "category": "Traces", + "form_fields": [ + FormField( + key_name=StringValue(value="trace_id"), + display_name=StringValue(value="Trace ID"), + description=StringValue(value="The trace ID to fetch all spans for (e.g., 'abc123def456...')"), + data_type=LiteralType.STRING, + form_field_type=FormFieldType.TEXT_FT, + is_optional=False, + ), + FormField( + key_name=StringValue(value="from_time"), + display_name=StringValue(value="From Time"), + description=StringValue(value="Start of search window (e.g., 'now-3h'). Default: now-3h"), + data_type=LiteralType.STRING, + form_field_type=FormFieldType.TEXT_FT, + is_optional=True, + ), + FormField( + key_name=StringValue(value="to_time"), + display_name=StringValue(value="To Time"), + description=StringValue(value="End of search window (e.g., 'now'). Default: now"), + data_type=LiteralType.STRING, + form_field_type=FormFieldType.TEXT_FT, + is_optional=True, + ), + ], + }, } self.connector_form_configs = [ @@ -450,6 +524,49 @@ def _normalize_logs_response(self, response): return None + @staticmethod + def _normalize_span(raw: dict) -> dict: + """ + Convert a raw Coralogix span (with metadata/labels/userData as KV lists) + into a flat, human-readable dict with key span fields at the top level. + """ + def kv_list_to_dict(lst): + if isinstance(lst, list): + return {item["key"]: item["value"] for item in lst if isinstance(item, dict) and "key" in item} + if isinstance(lst, dict): + return lst + return {} + + labels = kv_list_to_dict(raw.get("labels", {})) + metadata = kv_list_to_dict(raw.get("metadata", {})) + user_data = raw.get("userData", {}) + if isinstance(user_data, str): + try: + user_data = json.loads(user_data) + except Exception: + user_data = {} + + span = { + "traceId": labels.get("traceId") or metadata.get("traceId") or user_data.get("traceId", ""), + "spanId": labels.get("spanId") or metadata.get("spanId") or user_data.get("spanId", ""), + "parentSpanId": labels.get("parentSpanId") or metadata.get("parentSpanId") or user_data.get("parentSpanId", ""), + "serviceName": labels.get("serviceName") or labels.get("service.name") or user_data.get("serviceName", ""), + "operationName": labels.get("operationName") or user_data.get("operationName", ""), + "applicationName": labels.get("applicationName") or labels.get("applicationname", ""), + "subsystemName": labels.get("subsystemName") or labels.get("subsystemname", ""), + "durationMs": metadata.get("duration", ""), + "timestamp": metadata.get("timestamp") or metadata.get("timestampMillis", ""), + "status": labels.get("status") or user_data.get("status", ""), + } + + # Include any extra user_data attributes that aren't already captured + if isinstance(user_data, dict): + extra = {k: v for k, v in user_data.items() if k not in span and v is not None} + if extra: + span["attributes"] = extra + + return {k: v for k, v in span.items() if v != ""} + def execute_fetch_logs(self, time_range: TimeRange, coralogix_task: Coralogix, coralogix_connector: ConnectorProto): """ Execute the fetch logs task. @@ -624,6 +741,184 @@ def execute_fetch_logs(self, time_range: TimeRange, coralogix_task: Coralogix, c metadata=metadata ) + def execute_fetch_spans(self, time_range: TimeRange, coralogix_task: Coralogix, coralogix_connector: ConnectorProto): + try: + self._validate_connector(coralogix_connector) + task = coralogix_task.fetch_spans + + query = task.query.value if task.HasField("query") and task.query.value else "*" + from_time = task.from_time.value if task.HasField("from_time") and task.from_time.value else "now-1h" + to_time = task.to_time.value if task.HasField("to_time") and task.to_time.value else "now" + limit = task.limit.value if task.HasField("limit") and task.limit.value else 100 + + processor = self.get_connector_processor(coralogix_connector) + + print( + f"Playbook Task Downstream Request: Type -> Coralogix Spans, Query -> {query}, " + f"From -> {from_time}, To -> {to_time}, Limit -> {limit}" + ) + + response = processor.execute_spans_query(query=query, from_time=from_time, to_time=to_time) + + domain = self._extract_domain_from_connector(coralogix_connector) + time_params = self._get_coralogix_time_params(time_range) + metadata = self._create_metadata_with_coralogix_url(domain, "spans", { + "query": query, "from_time": from_time, "to_time": to_time, **time_params + }) + + if not response: + return PlaybookTaskResult( + type=PlaybookTaskResultType.TEXT, + text=TextResult(output=StringValue(value=f"No spans returned from Coralogix for query: {query}")), + source=self.source, metadata=metadata + ) + + normalized = self._normalize_logs_response(response) + if normalized is not None: + raw_spans = normalized['results'] + elif isinstance(response, dict) and 'results' in response: + raw_spans = response['results'] + else: + raw_spans = response if isinstance(response, list) else [] + + spans = [self._normalize_span(s) for s in raw_spans] + count = len(spans) + + try: + response_struct = dict_to_proto({'spans': spans, 'count': count}, Struct) + return PlaybookTaskResult( + source=self.source, + type=PlaybookTaskResultType.API_RESPONSE, + api_response=ApiResponseResult(response_body=response_struct), + metadata=metadata + ) + except Exception: + return PlaybookTaskResult( + source=self.source, + type=PlaybookTaskResultType.TEXT, + text=TextResult(output=StringValue(value=f"Spans fetched. Found {count} spans. Response: {str(spans)}")), + metadata=metadata + ) + + except Exception as e: + logger.error(f"Error executing Coralogix fetch spans task: {e}") + domain = self._extract_domain_from_connector(coralogix_connector) + metadata = self._create_metadata_with_coralogix_url(domain, "spans", {}) + return PlaybookTaskResult( + type=PlaybookTaskResultType.TEXT, + text=TextResult(output=StringValue(value=f"Error while executing Coralogix spans task: {e}")), + source=self.source, metadata=metadata + ) + + def execute_fetch_trace(self, time_range: TimeRange, coralogix_task: Coralogix, coralogix_connector: ConnectorProto): + try: + self._validate_connector(coralogix_connector) + task = coralogix_task.fetch_trace + + trace_id = task.trace_id.value if task.HasField("trace_id") and task.trace_id.value else None + if not trace_id: + raise Exception("trace_id is required for FETCH_TRACE task") + + from_time = task.from_time.value if task.HasField("from_time") and task.from_time.value else "now-3h" + to_time = task.to_time.value if task.HasField("to_time") and task.to_time.value else "now" + + processor = self.get_connector_processor(coralogix_connector) + + print(f"Playbook Task Downstream Request: Type -> Coralogix Trace, TraceId -> {trace_id}") + + # Try multiple field paths since Coralogix docs show traceId in both $l and $d + # depending on the instrumentation. Try all known paths and take the first with results. + trace_queries = [ + f"source spans | filter $l.traceId == '{trace_id}'", # standard OTel label + f"source spans | filter $d.traceId == '{trace_id}'", # data field (lowercase d) + f"source spans | filter $d.traceID == '{trace_id}'", # data field (uppercase D) + f"source spans | filter $m.traceId == '{trace_id}'", # metadata field + ] + response = None + for tq in trace_queries: + try: + candidate = processor.execute_dataprime_spans_query( + dataprime_query=tq, + from_time=from_time, + to_time=to_time + ) + if candidate and candidate.get("count", 0) > 0: + response = candidate + logger.info(f"Found {candidate['count']} spans for trace {trace_id} using query: {tq}") + break + except Exception as tq_err: + logger.warning(f"Trace query failed ({tq}): {tq_err}") + if response is None: + response = {"results": [], "count": 0} + + domain = self._extract_domain_from_connector(coralogix_connector) + time_params = self._get_coralogix_time_params(time_range) + metadata = self._create_metadata_with_coralogix_url(domain, "spans", { + "query": f"traceId:{trace_id}", + "from_time": from_time, "to_time": to_time, **time_params + }) + + if not response: + return PlaybookTaskResult( + type=PlaybookTaskResultType.TEXT, + text=TextResult(output=StringValue(value=f"No spans found for trace ID: {trace_id}")), + source=self.source, metadata=metadata + ) + + normalized = self._normalize_logs_response(response) + if normalized is not None: + raw_spans = normalized['results'] + elif isinstance(response, dict) and 'results' in response: + raw_spans = response['results'] + else: + raw_spans = response if isinstance(response, list) else [] + + # Convert raw KV-list spans into clean, readable dicts + spans = [self._normalize_span(s) for s in raw_spans] + count = len(spans) + + if count == 0: + return PlaybookTaskResult( + type=PlaybookTaskResultType.TEXT, + text=TextResult(output=StringValue( + value=f"No spans found for trace ID: {trace_id} in the last 24h. " + f"Try specifying a wider from_time." + )), + source=self.source, metadata=metadata + ) + + # Sort by timestamp so the trace waterfall is in order + try: + spans.sort(key=lambda s: s.get("timestamp", "")) + except Exception: + pass + + try: + response_struct = dict_to_proto({'trace_id': trace_id, 'spans': spans, 'count': count}, Struct) + return PlaybookTaskResult( + source=self.source, + type=PlaybookTaskResultType.API_RESPONSE, + api_response=ApiResponseResult(response_body=response_struct), + metadata=metadata + ) + except Exception: + return PlaybookTaskResult( + source=self.source, + type=PlaybookTaskResultType.TEXT, + text=TextResult(output=StringValue(value=f"Trace fetched. Found {count} spans for trace {trace_id}. Response: {str(spans)}")), + metadata=metadata + ) + + except Exception as e: + logger.error(f"Error executing Coralogix fetch trace task: {e}") + domain = self._extract_domain_from_connector(coralogix_connector) + metadata = self._create_metadata_with_coralogix_url(domain, "spans", {}) + return PlaybookTaskResult( + type=PlaybookTaskResultType.TEXT, + text=TextResult(output=StringValue(value=f"Error while executing Coralogix trace task: {e}")), + source=self.source, metadata=metadata + ) + def execute_fetch_metrics(self, time_range: TimeRange, coralogix_task: Coralogix, coralogix_connector: ConnectorProto): """ Execute the fetch metrics task. diff --git a/drdroid_debug_toolkit/core/integrations/source_metadata_extractors/coralogix_metadata_extractor.py b/drdroid_debug_toolkit/core/integrations/source_metadata_extractors/coralogix_metadata_extractor.py index 3216f4e..7d278dc 100644 --- a/drdroid_debug_toolkit/core/integrations/source_metadata_extractors/coralogix_metadata_extractor.py +++ b/drdroid_debug_toolkit/core/integrations/source_metadata_extractors/coralogix_metadata_extractor.py @@ -189,6 +189,39 @@ def extract_services(self): return model_data + @log_function_call + def extract_apm_services(self): + """ + Extract services from the Coralogix APM Service Catalog (gRPC). + + Each service is keyed by its name and the full API response is stored + as-is so callers have access to id, type, workloads, technology, and + sloStatusCount. + + Returns: + dict: Mapping of service name -> raw service dict from the API. + """ + model_type = SourceModelType.CORALOGIX_APM_SERVICE + model_data = {} + try: + services = self.__coralogix_api_processor.fetch_apm_services() + if not services: + return model_data + + for service in services: + name = service.get("name") + if not name: + continue + model_data[name] = service + + if model_data: + self.create_or_update_model_metadata(model_type, model_data) + logger.info(f"Extracted {len(model_data)} Coralogix APM services") + except Exception as e: + logger.error(f"Error extracting Coralogix APM services: {e}") + + return model_data + @log_function_call def extract_index_mappings(self, index_pattern="*"): """ diff --git a/drdroid_debug_toolkit/core/protos/assets/coralogix_asset.proto b/drdroid_debug_toolkit/core/protos/assets/coralogix_asset.proto index 7b9e70f..911b737 100644 --- a/drdroid_debug_toolkit/core/protos/assets/coralogix_asset.proto +++ b/drdroid_debug_toolkit/core/protos/assets/coralogix_asset.proto @@ -54,6 +54,7 @@ message CoralogixAssetModel { CoralogixDashboardWidgetAssetModel coralogix_dashboard = 5; CoralogixIndexMappingAssetModel coralogix_index_mapping = 6; CoralogixServiceAssetModel coralogix_service = 7; + CoralogixApmServiceAssetModel coralogix_apm_service = 8; } } @@ -73,6 +74,23 @@ message CoralogixIndexMappingAssetOptions { repeated CoralogixIndexMappingOptions index_mappings = 1; } +message CoralogixApmServiceAssetModel { + google.protobuf.StringValue id = 1; + google.protobuf.StringValue name = 2; + google.protobuf.StringValue type = 3; + repeated string workloads = 4; + google.protobuf.StringValue technology = 5; + google.protobuf.Struct slo_status_count = 6; +} + +message CoralogixApmServiceAssetOptions { + message CoralogixApmServiceOptions { + google.protobuf.StringValue name = 1; + google.protobuf.StringValue type = 2; + } + repeated CoralogixApmServiceOptions services = 1; +} + message CoralogixAssets { repeated CoralogixAssetModel assets = 1; } \ No newline at end of file diff --git a/drdroid_debug_toolkit/core/protos/assets/coralogix_asset_pb2.py b/drdroid_debug_toolkit/core/protos/assets/coralogix_asset_pb2.py index 33e0d06..cf50a19 100644 --- a/drdroid_debug_toolkit/core/protos/assets/coralogix_asset_pb2.py +++ b/drdroid_debug_toolkit/core/protos/assets/coralogix_asset_pb2.py @@ -28,7 +28,7 @@ from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n(core/protos/assets/coralogix_asset.proto\x12\x16\x63ore.protos.connectors\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x16\x63ore/protos/base.proto\x1a&core/protos/connectors/connector.proto\x1a\x1cgoogle/protobuf/struct.proto\"\xc9\x04\n\"CoralogixDashboardWidgetAssetModel\x12\x32\n\x0c\x64\x61shboard_id\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x35\n\x0f\x64\x61shboard_title\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\x0e\x64\x61shboard_json\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\x12R\n\x07widgets\x18\x04 \x03(\x0b\x32\x41.core.protos.connectors.CoralogixDashboardWidgetAssetModel.Widget\x1a\xb2\x02\n\x06Widget\x12/\n\twidget_id\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\x0bwidget_type\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0cwidget_title\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0cwidget_query\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\rwidget_config\x18\x05 \x01(\x0b\x32\x17.google.protobuf.Struct\x12,\n\x0bwidget_json\x18\x06 \x01(\x0b\x32\x17.google.protobuf.Struct\"\x8f\x02\n\x1e\x43oralogixDashboardAssetOptions\x12\x64\n\ndashboards\x18\x01 \x03(\x0b\x32P.core.protos.connectors.CoralogixDashboardAssetOptions.CoralogixDashboardOptions\x1a\x86\x01\n\x19\x43oralogixDashboardOptions\x12\x32\n\x0c\x64\x61shboard_id\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x35\n\x0f\x64\x61shboard_title\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\xa4\x02\n\x1a\x43oralogixServiceAssetModel\x12\x32\n\x0cservice_name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\x0b\x65nvironment\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x34\n\x0esubsystem_name\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x36\n\x10\x61pplication_name\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\x0b\x64\x65scription\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\xcd\x01\n\x1c\x43oralogixServiceAssetOptions\x12^\n\x08services\x18\x01 \x03(\x0b\x32L.core.protos.connectors.CoralogixServiceAssetOptions.CoralogixServiceOptions\x1aM\n\x17\x43oralogixServiceOptions\x12\x32\n\x0cservice_name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\xbf\x03\n\x13\x43oralogixAssetModel\x12(\n\x02id\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12+\n\x0e\x63onnector_type\x18\x02 \x01(\x0e\x32\x13.core.protos.Source\x12*\n\x04type\x18\x03 \x01(\x0e\x32\x1c.core.protos.SourceModelType\x12\x14\n\x0clast_updated\x18\x04 \x01(\x10\x12Y\n\x13\x63oralogix_dashboard\x18\x05 \x01(\x0b\x32:.core.protos.connectors.CoralogixDashboardWidgetAssetModelH\x00\x12Z\n\x17\x63oralogix_index_mapping\x18\x06 \x01(\x0b\x32\x37.core.protos.connectors.CoralogixIndexMappingAssetModelH\x00\x12O\n\x11\x63oralogix_service\x18\x07 \x01(\x0b\x32\x32.core.protos.connectors.CoralogixServiceAssetModelH\x00\x42\x07\n\x05\x61sset\"\x9e\x02\n\x1f\x43oralogixIndexMappingAssetModel\x12\x30\n\nindex_name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\rindex_pattern\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x0cmapping_data\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x32\n\x0cmapping_type\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\x0b\x64\x65scription\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\x9b\x02\n!CoralogixIndexMappingAssetOptions\x12n\n\x0eindex_mappings\x18\x01 \x03(\x0b\x32V.core.protos.connectors.CoralogixIndexMappingAssetOptions.CoralogixIndexMappingOptions\x1a\x85\x01\n\x1c\x43oralogixIndexMappingOptions\x12\x30\n\nindex_name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\rindex_pattern\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"N\n\x0f\x43oralogixAssets\x12;\n\x06\x61ssets\x18\x01 \x03(\x0b\x32+.core.protos.connectors.CoralogixAssetModelb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n(core/protos/assets/coralogix_asset.proto\x12\x16\x63ore.protos.connectors\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x16\x63ore/protos/base.proto\x1a&core/protos/connectors/connector.proto\x1a\x1cgoogle/protobuf/struct.proto\"\xc9\x04\n\"CoralogixDashboardWidgetAssetModel\x12\x32\n\x0c\x64\x61shboard_id\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x35\n\x0f\x64\x61shboard_title\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\x0e\x64\x61shboard_json\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\x12R\n\x07widgets\x18\x04 \x03(\x0b\x32\x41.core.protos.connectors.CoralogixDashboardWidgetAssetModel.Widget\x1a\xb2\x02\n\x06Widget\x12/\n\twidget_id\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\x0bwidget_type\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0cwidget_title\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x32\n\x0cwidget_query\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\rwidget_config\x18\x05 \x01(\x0b\x32\x17.google.protobuf.Struct\x12,\n\x0bwidget_json\x18\x06 \x01(\x0b\x32\x17.google.protobuf.Struct\"\x8f\x02\n\x1e\x43oralogixDashboardAssetOptions\x12\x64\n\ndashboards\x18\x01 \x03(\x0b\x32P.core.protos.connectors.CoralogixDashboardAssetOptions.CoralogixDashboardOptions\x1a\x86\x01\n\x19\x43oralogixDashboardOptions\x12\x32\n\x0c\x64\x61shboard_id\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x35\n\x0f\x64\x61shboard_title\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\xa4\x02\n\x1a\x43oralogixServiceAssetModel\x12\x32\n\x0cservice_name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\x0b\x65nvironment\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x34\n\x0esubsystem_name\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x36\n\x10\x61pplication_name\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\x0b\x64\x65scription\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\xcd\x01\n\x1c\x43oralogixServiceAssetOptions\x12^\n\x08services\x18\x01 \x03(\x0b\x32L.core.protos.connectors.CoralogixServiceAssetOptions.CoralogixServiceOptions\x1aM\n\x17\x43oralogixServiceOptions\x12\x32\n\x0cservice_name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\x97\x04\n\x13\x43oralogixAssetModel\x12(\n\x02id\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12+\n\x0e\x63onnector_type\x18\x02 \x01(\x0e\x32\x13.core.protos.Source\x12*\n\x04type\x18\x03 \x01(\x0e\x32\x1c.core.protos.SourceModelType\x12\x14\n\x0clast_updated\x18\x04 \x01(\x10\x12Y\n\x13\x63oralogix_dashboard\x18\x05 \x01(\x0b\x32:.core.protos.connectors.CoralogixDashboardWidgetAssetModelH\x00\x12Z\n\x17\x63oralogix_index_mapping\x18\x06 \x01(\x0b\x32\x37.core.protos.connectors.CoralogixIndexMappingAssetModelH\x00\x12O\n\x11\x63oralogix_service\x18\x07 \x01(\x0b\x32\x32.core.protos.connectors.CoralogixServiceAssetModelH\x00\x12V\n\x15\x63oralogix_apm_service\x18\x08 \x01(\x0b\x32\x35.core.protos.connectors.CoralogixApmServiceAssetModelH\x00\x42\x07\n\x05\x61sset\"\x9e\x02\n\x1f\x43oralogixIndexMappingAssetModel\x12\x30\n\nindex_name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\rindex_pattern\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x0cmapping_data\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x32\n\x0cmapping_type\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\x0b\x64\x65scription\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\x9b\x02\n!CoralogixIndexMappingAssetOptions\x12n\n\x0eindex_mappings\x18\x01 \x03(\x0b\x32V.core.protos.connectors.CoralogixIndexMappingAssetOptions.CoralogixIndexMappingOptions\x1a\x85\x01\n\x1c\x43oralogixIndexMappingOptions\x12\x30\n\nindex_name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x33\n\rindex_pattern\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\x99\x02\n\x1d\x43oralogixApmServiceAssetModel\x12(\n\x02id\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12*\n\x04name\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12*\n\x04type\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x11\n\tworkloads\x18\x04 \x03(\t\x12\x30\n\ntechnology\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x31\n\x10slo_status_count\x18\x06 \x01(\x0b\x32\x17.google.protobuf.Struct\"\xfd\x01\n\x1f\x43oralogixApmServiceAssetOptions\x12\x64\n\x08services\x18\x01 \x03(\x0b\x32R.core.protos.connectors.CoralogixApmServiceAssetOptions.CoralogixApmServiceOptions\x1at\n\x1a\x43oralogixApmServiceOptions\x12*\n\x04name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12*\n\x04type\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"N\n\x0f\x43oralogixAssets\x12;\n\x06\x61ssets\x18\x01 \x03(\x0b\x32+.core.protos.connectors.CoralogixAssetModelb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -50,13 +50,19 @@ _globals['_CORALOGIXSERVICEASSETOPTIONS_CORALOGIXSERVICEOPTIONS']._serialized_start=1480 _globals['_CORALOGIXSERVICEASSETOPTIONS_CORALOGIXSERVICEOPTIONS']._serialized_end=1557 _globals['_CORALOGIXASSETMODEL']._serialized_start=1560 - _globals['_CORALOGIXASSETMODEL']._serialized_end=2007 - _globals['_CORALOGIXINDEXMAPPINGASSETMODEL']._serialized_start=2010 - _globals['_CORALOGIXINDEXMAPPINGASSETMODEL']._serialized_end=2296 - _globals['_CORALOGIXINDEXMAPPINGASSETOPTIONS']._serialized_start=2299 - _globals['_CORALOGIXINDEXMAPPINGASSETOPTIONS']._serialized_end=2582 - _globals['_CORALOGIXINDEXMAPPINGASSETOPTIONS_CORALOGIXINDEXMAPPINGOPTIONS']._serialized_start=2449 - _globals['_CORALOGIXINDEXMAPPINGASSETOPTIONS_CORALOGIXINDEXMAPPINGOPTIONS']._serialized_end=2582 - _globals['_CORALOGIXASSETS']._serialized_start=2584 - _globals['_CORALOGIXASSETS']._serialized_end=2662 + _globals['_CORALOGIXASSETMODEL']._serialized_end=2095 + _globals['_CORALOGIXINDEXMAPPINGASSETMODEL']._serialized_start=2098 + _globals['_CORALOGIXINDEXMAPPINGASSETMODEL']._serialized_end=2384 + _globals['_CORALOGIXINDEXMAPPINGASSETOPTIONS']._serialized_start=2387 + _globals['_CORALOGIXINDEXMAPPINGASSETOPTIONS']._serialized_end=2670 + _globals['_CORALOGIXINDEXMAPPINGASSETOPTIONS_CORALOGIXINDEXMAPPINGOPTIONS']._serialized_start=2537 + _globals['_CORALOGIXINDEXMAPPINGASSETOPTIONS_CORALOGIXINDEXMAPPINGOPTIONS']._serialized_end=2670 + _globals['_CORALOGIXAPMSERVICEASSETMODEL']._serialized_start=2673 + _globals['_CORALOGIXAPMSERVICEASSETMODEL']._serialized_end=2954 + _globals['_CORALOGIXAPMSERVICEASSETOPTIONS']._serialized_start=2957 + _globals['_CORALOGIXAPMSERVICEASSETOPTIONS']._serialized_end=3210 + _globals['_CORALOGIXAPMSERVICEASSETOPTIONS_CORALOGIXAPMSERVICEOPTIONS']._serialized_start=3094 + _globals['_CORALOGIXAPMSERVICEASSETOPTIONS_CORALOGIXAPMSERVICEOPTIONS']._serialized_end=3210 + _globals['_CORALOGIXASSETS']._serialized_start=3212 + _globals['_CORALOGIXASSETS']._serialized_end=3290 # @@protoc_insertion_point(module_scope) diff --git a/drdroid_debug_toolkit/core/protos/assets/coralogix_asset_pb2.pyi b/drdroid_debug_toolkit/core/protos/assets/coralogix_asset_pb2.pyi index 1d7c2d1..33c1b07 100644 --- a/drdroid_debug_toolkit/core/protos/assets/coralogix_asset_pb2.pyi +++ b/drdroid_debug_toolkit/core/protos/assets/coralogix_asset_pb2.pyi @@ -193,6 +193,7 @@ class CoralogixAssetModel(google.protobuf.message.Message): CORALOGIX_DASHBOARD_FIELD_NUMBER: builtins.int CORALOGIX_INDEX_MAPPING_FIELD_NUMBER: builtins.int CORALOGIX_SERVICE_FIELD_NUMBER: builtins.int + CORALOGIX_APM_SERVICE_FIELD_NUMBER: builtins.int @property def id(self) -> google.protobuf.wrappers_pb2.UInt64Value: ... connector_type: core.protos.base_pb2.Source.ValueType @@ -204,6 +205,8 @@ class CoralogixAssetModel(google.protobuf.message.Message): def coralogix_index_mapping(self) -> global___CoralogixIndexMappingAssetModel: ... @property def coralogix_service(self) -> global___CoralogixServiceAssetModel: ... + @property + def coralogix_apm_service(self) -> global___CoralogixApmServiceAssetModel: ... def __init__( self, *, @@ -214,10 +217,11 @@ class CoralogixAssetModel(google.protobuf.message.Message): coralogix_dashboard: global___CoralogixDashboardWidgetAssetModel | None = ..., coralogix_index_mapping: global___CoralogixIndexMappingAssetModel | None = ..., coralogix_service: global___CoralogixServiceAssetModel | None = ..., + coralogix_apm_service: global___CoralogixApmServiceAssetModel | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["asset", b"asset", "coralogix_dashboard", b"coralogix_dashboard", "coralogix_index_mapping", b"coralogix_index_mapping", "coralogix_service", b"coralogix_service", "id", b"id"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["asset", b"asset", "connector_type", b"connector_type", "coralogix_dashboard", b"coralogix_dashboard", "coralogix_index_mapping", b"coralogix_index_mapping", "coralogix_service", b"coralogix_service", "id", b"id", "last_updated", b"last_updated", "type", b"type"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["asset", b"asset"]) -> typing_extensions.Literal["coralogix_dashboard", "coralogix_index_mapping", "coralogix_service"] | None: ... + def HasField(self, field_name: typing_extensions.Literal["asset", b"asset", "coralogix_apm_service", b"coralogix_apm_service", "coralogix_dashboard", b"coralogix_dashboard", "coralogix_index_mapping", b"coralogix_index_mapping", "coralogix_service", b"coralogix_service", "id", b"id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["asset", b"asset", "connector_type", b"connector_type", "coralogix_apm_service", b"coralogix_apm_service", "coralogix_dashboard", b"coralogix_dashboard", "coralogix_index_mapping", b"coralogix_index_mapping", "coralogix_service", b"coralogix_service", "id", b"id", "last_updated", b"last_updated", "type", b"type"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["asset", b"asset"]) -> typing_extensions.Literal["coralogix_dashboard", "coralogix_index_mapping", "coralogix_service", "coralogix_apm_service"] | None: ... global___CoralogixAssetModel = CoralogixAssetModel @@ -289,6 +293,78 @@ class CoralogixIndexMappingAssetOptions(google.protobuf.message.Message): global___CoralogixIndexMappingAssetOptions = CoralogixIndexMappingAssetOptions +@typing_extensions.final +class CoralogixApmServiceAssetModel(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ID_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + WORKLOADS_FIELD_NUMBER: builtins.int + TECHNOLOGY_FIELD_NUMBER: builtins.int + SLO_STATUS_COUNT_FIELD_NUMBER: builtins.int + @property + def id(self) -> google.protobuf.wrappers_pb2.StringValue: ... + @property + def name(self) -> google.protobuf.wrappers_pb2.StringValue: ... + @property + def type(self) -> google.protobuf.wrappers_pb2.StringValue: ... + @property + def workloads(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + @property + def technology(self) -> google.protobuf.wrappers_pb2.StringValue: ... + @property + def slo_status_count(self) -> google.protobuf.struct_pb2.Struct: ... + def __init__( + self, + *, + id: google.protobuf.wrappers_pb2.StringValue | None = ..., + name: google.protobuf.wrappers_pb2.StringValue | None = ..., + type: google.protobuf.wrappers_pb2.StringValue | None = ..., + workloads: collections.abc.Iterable[builtins.str] | None = ..., + technology: google.protobuf.wrappers_pb2.StringValue | None = ..., + slo_status_count: google.protobuf.struct_pb2.Struct | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["id", b"id", "name", b"name", "slo_status_count", b"slo_status_count", "technology", b"technology", "type", b"type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["id", b"id", "name", b"name", "slo_status_count", b"slo_status_count", "technology", b"technology", "type", b"type", "workloads", b"workloads"]) -> None: ... + +global___CoralogixApmServiceAssetModel = CoralogixApmServiceAssetModel + +@typing_extensions.final +class CoralogixApmServiceAssetOptions(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class CoralogixApmServiceOptions(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + @property + def name(self) -> google.protobuf.wrappers_pb2.StringValue: ... + @property + def type(self) -> google.protobuf.wrappers_pb2.StringValue: ... + def __init__( + self, + *, + name: google.protobuf.wrappers_pb2.StringValue | None = ..., + type: google.protobuf.wrappers_pb2.StringValue | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["name", b"name", "type", b"type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "type", b"type"]) -> None: ... + + SERVICES_FIELD_NUMBER: builtins.int + @property + def services(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___CoralogixApmServiceAssetOptions.CoralogixApmServiceOptions]: ... + def __init__( + self, + *, + services: collections.abc.Iterable[global___CoralogixApmServiceAssetOptions.CoralogixApmServiceOptions] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["services", b"services"]) -> None: ... + +global___CoralogixApmServiceAssetOptions = CoralogixApmServiceAssetOptions + @typing_extensions.final class CoralogixAssets(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor diff --git a/drdroid_debug_toolkit/core/protos/base.proto b/drdroid_debug_toolkit/core/protos/base.proto index 41e4a9d..5c1b23f 100644 --- a/drdroid_debug_toolkit/core/protos/base.proto +++ b/drdroid_debug_toolkit/core/protos/base.proto @@ -634,6 +634,7 @@ enum SourceModelType { CORALOGIX_DASHBOARD = 8001; CORALOGIX_INDEX_MAPPING = 8002; CORALOGIX_SERVICE = 8003; + CORALOGIX_APM_SERVICE = 8004; // VictoriaLogs Models VICTORIA_LOGS_FIELD = 9001; diff --git a/drdroid_debug_toolkit/core/protos/base_pb2.py b/drdroid_debug_toolkit/core/protos/base_pb2.py index e9e2040..8ca70dc 100644 --- a/drdroid_debug_toolkit/core/protos/base_pb2.py +++ b/drdroid_debug_toolkit/core/protos/base_pb2.py @@ -25,7 +25,7 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x63ore/protos/base.proto\x12\x0b\x63ore.protos\x1a\x1egoogle/protobuf/wrappers.proto\".\n\tTimeRange\x12\x10\n\x08time_geq\x18\x01 \x01(\x04\x12\x0f\n\x07time_lt\x18\x02 \x01(\x04\"a\n\x04Page\x12+\n\x05limit\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12,\n\x06offset\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\"a\n\rOpDescription\x12\x1b\n\x02op\x18\x01 \x01(\x0e\x32\x0f.core.protos.Op\x12\r\n\x05label\x18\x02 \x01(\t\x12\x10\n\x08is_unary\x18\x03 \x01(\x08\x12\x12\n\nis_logical\x18\x04 \x01(\x08\"\xc7\x02\n\x10TaskCronSchedule\x12-\n\x07minutes\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x05hours\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x36\n\x10\x64\x61ys_of_the_week\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x37\n\x11\x64\x61ys_of_the_month\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x36\n\x10\x64\x61ys_of_the_year\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\x08timezone\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"I\n\x0cTaskInterval\x12\x39\n\x13interval_in_seconds\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\"j\n\x0cTaskCronRule\x12*\n\x04rule\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\x08timezone\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\xef\x01\n\x08\x45ventKey\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x0b\n\x03key\x18\x02 \x01(\t\x12/\n\x08key_type\x18\x03 \x01(\x0e\x32\x1d.core.protos.EventKey.KeyType\x12\x31\n\nevent_type\x18\x04 \x01(\x0b\x32\x1d.core.protos.EventTypePartial\"f\n\x07KeyType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06STRING\x10\x01\x12\x08\n\x04LONG\x10\x02\x12\n\n\x06\x44OUBLE\x10\x03\x12\x0b\n\x07\x42OOLEAN\x10\x04\x12\x08\n\x04\x42YTE\x10\x05\x12\t\n\x05\x41RRAY\x10\x06\x12\n\n\x06OBJECT\x10\x07\"\x81\x01\n\tEventType\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\x12#\n\x04keys\x18\x03 \x03(\x0b\x32\x15.core.protos.EventKey\x12\x35\n\revent_sources\x18\x04 \x03(\x0e\x32\x1e.core.protos.Event.EventSource\"\xaa\x01\n\x0e\x45ventTypeStats\x12\x30\n\nkeys_count\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12\x31\n\x0b\x65vent_count\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12\x33\n\rmonitor_count\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\",\n\x10\x45ventTypePartial\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"q\n\x10\x45ventTypeSummary\x12\x31\n\nevent_type\x18\x01 \x01(\x0b\x32\x1d.core.protos.EventTypePartial\x12*\n\x05stats\x18\x02 \x01(\x0b\x32\x1b.core.protos.EventTypeStats\"m\n\x13\x45ventTypeDefinition\x12*\n\nevent_type\x18\x01 \x01(\x0b\x32\x16.core.protos.EventType\x12*\n\x05stats\x18\x02 \x01(\x0b\x32\x1b.core.protos.EventTypeStats\"\xdd\x02\n\x05\x45vent\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x31\n\nevent_type\x18\x02 \x01(\x0b\x32\x1d.core.protos.EventTypePartial\x12\"\n\x03kvs\x18\x03 \x03(\x0b\x32\x15.core.protos.KeyValue\x12\x11\n\ttimestamp\x18\x04 \x01(\x10\x12\x34\n\x0c\x65vent_source\x18\x05 \x01(\x0e\x32\x1e.core.protos.Event.EventSource\"\xa7\x01\n\x0b\x45ventSource\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06SAMPLE\x10\x01\x12\x07\n\x03\x41PI\x10\x02\x12\x07\n\x03SDK\x10\x03\x12\x0b\n\x07SEGMENT\x10\x04\x12\r\n\tAMPLITUDE\x10\x05\x12\x07\n\x03SNS\x10\x06\x12\x0e\n\nCLOUDWATCH\x10\x07\x12\r\n\tCOLLECTOR\x10\x08\x12\x0f\n\x0b\x41WS_KINESIS\x10\t\x12\t\n\x05SLACK\x10\n\x12\r\n\tOPS_GENIE\x10\x0b\"\xe5\x01\n\x05Value\x12\x16\n\x0cstring_value\x18\x01 \x01(\tH\x00\x12\x14\n\nbool_value\x18\x02 \x01(\x08H\x00\x12\x13\n\tint_value\x18\x03 \x01(\x03H\x00\x12\x16\n\x0c\x64ouble_value\x18\x04 \x01(\x01H\x00\x12.\n\x0b\x61rray_value\x18\x05 \x01(\x0b\x32\x17.core.protos.ArrayValueH\x00\x12\x31\n\x0ckvlist_value\x18\x06 \x01(\x0b\x32\x19.core.protos.KeyValueListH\x00\x12\x15\n\x0b\x62ytes_value\x18\x07 \x01(\x0cH\x00\x42\x07\n\x05value\"0\n\nArrayValue\x12\"\n\x06values\x18\x01 \x03(\x0b\x32\x12.core.protos.Value\"5\n\x0cKeyValueList\x12%\n\x06values\x18\x01 \x03(\x0b\x32\x15.core.protos.KeyValue\":\n\x08KeyValue\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.core.protos.Value*Q\n\x08\x46unction\x12\r\n\tUNKNOWN_F\x10\x00\x12\t\n\x05\x41VG_F\x10\x01\x12\t\n\x05SUM_F\x10\x02\x12\t\n\x05MIN_F\x10\x03\x12\t\n\x05MAX_F\x10\x04\x12\n\n\x06LAST_F\x10\x05*\xb7\x01\n\x08Operator\x12\r\n\tUNKNOWN_O\x10\x00\x12\x12\n\x0eGREATER_THAN_O\x10\x01\x12\x18\n\x14GREATER_THAN_EQUAL_O\x10\x02\x12\x0f\n\x0bLESS_THAN_O\x10\x03\x12\x15\n\x11LESS_THAN_EQUAL_O\x10\x04\x12\x0b\n\x07\x45QUAL_O\x10\x05\x12\x0f\n\x0bNOT_EQUAL_O\x10\x06\x12\n\n\x06LIKE_O\x10\x07\x12\x0c\n\x08\x45XISTS_O\x10\x08\x12\x0e\n\nCONTAINS_O\x10\t*D\n\x0fLogicalOperator\x12\x0e\n\nUNKNOWN_LO\x10\x00\x12\n\n\x06\x41ND_LO\x10\x01\x12\t\n\x05OR_LO\x10\x02\x12\n\n\x06NOT_LO\x10\x03*\x9c\x01\n\x02Op\x12\x0e\n\nUNKNOWN_OP\x10\x00\x12\x06\n\x02\x45Q\x10\x01\x12\x07\n\x03NEQ\x10\x02\x12\x06\n\x02GT\x10\x03\x12\x06\n\x02LT\x10\x04\x12\x07\n\x03GTE\x10\x05\x12\x07\n\x03LTE\x10\x06\x12\x06\n\x02IN\x10\x07\x12\n\n\x06NOT_IN\x10\x08\x12\x0b\n\x07IS_NULL\x10\t\x12\n\n\x06\x45XISTS\x10\n\x12\x0c\n\x08\x43ONTAINS\x10\x0b\x12\x07\n\x03\x41ND\x10\x14\x12\x06\n\x02OR\x10\x15\x12\x07\n\x03NOT\x10\x16*\xc7\t\n\x06Source\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06SENTRY\x10\x01\x12\x0b\n\x07SEGMENT\x10\x02\x12\x12\n\x0e\x45LASTIC_SEARCH\x10\x03\x12\r\n\tAMPLITUDE\x10\x04\x12\x0f\n\x0b\x41WS_KINESIS\x10\x05\x12\x0e\n\nCLOUDWATCH\x10\x06\x12\r\n\tCLEVERTAP\x10\x07\x12\x0f\n\x0bRUDDERSTACK\x10\x08\x12\x0c\n\x08MOENGAGE\x10\t\x12\t\n\x05\x43RIBL\x10\n\x12\t\n\x05KAFKA\x10\x0b\x12\x0b\n\x07\x44\x41TADOG\x10\x0c\x12\x0c\n\x08\x46ILEBEAT\x10\r\x12\x0c\n\x08LOGSTASH\x10\x0e\x12\x0b\n\x07\x46LUENTD\x10\x0f\x12\r\n\tFLUENTBIT\x10\x10\x12\x0e\n\nPAGER_DUTY\x10\x11\x12\r\n\tNEW_RELIC\x10\x12\x12\t\n\x05SLACK\x10\x13\x12\x0f\n\x0bHONEYBADGER\x10\x14\x12\x0f\n\x0bGOOGLE_CHAT\x10\x15\x12\x11\n\rDATADOG_OAUTH\x10\x16\x12\x07\n\x03GCM\x10\x17\x12\x0e\n\nPROMETHEUS\x10\x18\x12\x0f\n\x0b\x45LASTIC_APM\x10\x19\x12\x14\n\x10VICTORIA_METRICS\x10\x1a\x12\x11\n\rSLACK_CONNECT\x10\x1b\x12\x0b\n\x07GRAFANA\x10\x1c\x12\x0e\n\nCLICKHOUSE\x10\x1d\x12\x11\n\rDOCUMENTATION\x10\x1e\x12\x0c\n\x08POSTGRES\x10\x1f\x12\r\n\tOPS_GENIE\x10 \x12\x07\n\x03\x45KS\x10!\x12\x0f\n\x0b\x41GENT_PROXY\x10\"\x12\x0f\n\x0bGRAFANA_VPC\x10#\x12\n\n\x06GITHUB\x10$\x12\x1b\n\x17SQL_DATABASE_CONNECTION\x10%\x12\x0b\n\x07OPEN_AI\x10&\x12\x11\n\rREMOTE_SERVER\x10\'\x12\x07\n\x03\x41PI\x10(\x12\x08\n\x04\x42\x41SH\x10)\x12\t\n\x05\x41ZURE\x10*\x12\x11\n\rGRAFANA_MIMIR\x10+\x12\x07\n\x03GKE\x10,\x12\x0c\n\x08MS_TEAMS\x10-\x12\x10\n\x0cGRAFANA_LOKI\x10.\x12\x0e\n\nKUBERNETES\x10/\x12\x08\n\x04SMTP\x10\x30\x12\r\n\tBIG_QUERY\x10\x31\x12\x0b\n\x07ZENDUTY\x10\x32\x12\n\n\x06ROOTLY\x10\x33\x12\x0e\n\nJIRA_CLOUD\x10\x34\x12\t\n\x05\x41SANA\x10\x35\x12\x14\n\x10\x43ONFLUENCE_CLOUD\x10\x36\x12\x1a\n\x16\x43ONFLUENCE_SELF_HOSTED\x10\x37\x12\x10\n\x0cGOOGLE_DRIVE\x10\x38\x12\n\n\x06NOTION\x10\x39\x12\x13\n\x0f\x44RD_PROXY_AGENT\x10:\x12\x0b\n\x07MONGODB\x10;\x12\x0f\n\x0bOPEN_SEARCH\x10<\x12\n\n\x06LINEAR\x10=\x12\x0b\n\x07JENKINS\x10>\x12\x12\n\x0eGITHUB_ACTIONS\x10?\x12\x15\n\x11\x43USTOM_STRATEGIES\x10@\x12\n\n\x06\x41RGOCD\x10\x41\x12\x15\n\x11\x44RD_ALERT_WEBHOOK\x10\x42\x12\x0b\n\x07ROLLBAR\x10\x43\x12\n\n\x06LAMBDA\x10\x44\x12\x0b\n\x07\x42ROWSER\x10\x45\x12\x0b\n\x07POSTHOG\x10\x46\x12\x0c\n\x08MIXPANEL\x10G\x12\n\n\x06SIGNOZ\x10H\x12\r\n\tBITBUCKET\x10I\x12\r\n\tCORALOGIX\x10J\x12\n\n\x06RENDER\x10K\x12\x0e\n\nMCP_SERVER\x10L\x12\x11\n\rVICTORIA_LOGS\x10M\x12\x0c\n\x08METABASE\x10N\x12\x0e\n\nDATABRICKS\x10O*\xd9\x1d\n\rSourceKeyType\x12\x0f\n\x0bUNKNOWN_SKT\x10\x00\x12\x12\n\x0eSENTRY_API_KEY\x10\x01\x12\x13\n\x0fSENTRY_ORG_SLUG\x10\x06\x12\x13\n\x0f\x44\x41TADOG_APP_KEY\x10\x02\x12\x13\n\x0f\x44\x41TADOG_API_KEY\x10\x03\x12\x16\n\x12\x44\x41TADOG_AUTH_TOKEN\x10\x0f\x12\x16\n\x12\x44\x41TADOG_API_DOMAIN\x10\x12\x12\x14\n\x10NEWRELIC_API_KEY\x10\x04\x12\x13\n\x0fNEWRELIC_APP_ID\x10\x05\x12\x16\n\x12NEWRELIC_QUERY_KEY\x10\x07\x12\x17\n\x13NEWRELIC_API_DOMAIN\x10\x13\x12\x18\n\x14SLACK_BOT_AUTH_TOKEN\x10\x08\x12\x15\n\x11SLACK_CHANNEL_SKT\x10\t\x12\x10\n\x0cSLACK_APP_ID\x10.\x12\x18\n\x13SLACK_APP_CLIENT_ID\x10\x8d\x01\x12\x1c\n\x17SLACK_APP_CLIENT_SECRET\x10\x8e\x01\x12\x1d\n\x18SLACK_APP_SIGNING_SECRET\x10\x8f\x01\x12\x18\n\x14HONEYBADGER_USERNAME\x10\n\x12\x18\n\x14HONEYBADGER_PASSWORD\x10\x0b\x12\x1a\n\x16HONEYBADGER_PROJECT_ID\x10\x0c\x12\x12\n\x0e\x41WS_ACCESS_KEY\x10\r\x12\x12\n\x0e\x41WS_SECRET_KEY\x10\x0e\x12\x0e\n\nAWS_REGION\x10\x14\x12\x18\n\x14\x41WS_ASSUMED_ROLE_ARN\x10\x17\x12\x10\n\x0c\x45KS_ROLE_ARN\x10(\x12\x1a\n\x16\x41WS_DRD_CLOUD_ROLE_ARN\x10]\x12\x14\n\x0f\x41WS_EXTERNAL_ID\x10\xa5\x01\x12\x1f\n\x1bGOOGLE_CHAT_BOT_OAUTH_TOKEN\x10\x10\x12\x1a\n\x16GOOGLE_CHAT_BOT_SPACES\x10\x11\x12\x10\n\x0cGRAFANA_HOST\x10\x15\x12\x13\n\x0fGRAFANA_API_KEY\x10\x16\x12\x16\n\x11GRAFANA_TEAM_HOST\x10\x99\x01\x12\x18\n\x14\x43LICKHOUSE_INTERFACE\x10\x18\x12\x13\n\x0f\x43LICKHOUSE_HOST\x10\x19\x12\x13\n\x0f\x43LICKHOUSE_PORT\x10\x1a\x12\x13\n\x0f\x43LICKHOUSE_USER\x10\x1b\x12\x17\n\x13\x43LICKHOUSE_PASSWORD\x10\x1c\x12\x12\n\x0eGCM_PROJECT_ID\x10\x1d\x12\x13\n\x0fGCM_PRIVATE_KEY\x10\x1e\x12\x14\n\x10GCM_CLIENT_EMAIL\x10\x1f\x12\x11\n\rGCM_TOKEN_URI\x10 \x12\x1c\n\x18GCM_SERVICE_ACCOUNT_JSON\x10p\x12\x11\n\rPOSTGRES_HOST\x10!\x12\x11\n\rPOSTGRES_USER\x10\"\x12\x15\n\x11POSTGRES_PASSWORD\x10#\x12\x11\n\rPOSTGRES_PORT\x10$\x12\x15\n\x11POSTGRES_DATABASE\x10%\x12\x14\n\x10POSTGRES_OPTIONS\x10&\x12&\n\"SQL_DATABASE_CONNECTION_STRING_URI\x10\'\x12\x16\n\x12PAGER_DUTY_API_KEY\x10)\x12\x1f\n\x1bPAGER_DUTY_CONFIGURED_EMAIL\x10?\x12\x15\n\x11OPS_GENIE_API_KEY\x10*\x12\x14\n\x10\x41GENT_PROXY_HOST\x10+\x12\x17\n\x13\x41GENT_PROXY_API_KEY\x10,\x12\x10\n\x0cGITHUB_TOKEN\x10-\x12\x0e\n\nGITHUB_ORG\x10i\x12\x13\n\x0fOPEN_AI_API_KEY\x10/\x12\x15\n\x11REMOTE_SERVER_PEM\x10\x31\x12\x16\n\x12REMOTE_SERVER_USER\x10\x32\x12\x16\n\x12REMOTE_SERVER_HOST\x10\x33\x12\x1a\n\x16REMOTE_SERVER_PASSWORD\x10\x34\x12\x16\n\x12REMOTE_SERVER_PORT\x10o\x12\x0e\n\nMIMIR_HOST\x10\x35\x12\x12\n\x0eX_SCOPE_ORG_ID\x10\x36\x12\x0e\n\nSSL_VERIFY\x10\x37\x12\x19\n\x15\x41ZURE_SUBSCRIPTION_ID\x10\x38\x12\x13\n\x0f\x41ZURE_TENANT_ID\x10\x39\x12\x13\n\x0f\x41ZURE_CLIENT_ID\x10:\x12\x17\n\x13\x41ZURE_CLIENT_SECRET\x10;\x12\x12\n\x0eGKE_PROJECT_ID\x10<\x12\x1c\n\x18GKE_SERVICE_ACCOUNT_JSON\x10=\x12\"\n\x1eMS_TEAMS_CONNECTOR_WEBHOOK_URL\x10>\x12\x1b\n\x17\x45LASTIC_SEARCH_PROTOCOL\x10@\x12\x17\n\x13\x45LASTIC_SEARCH_HOST\x10\x41\x12\x17\n\x13\x45LASTIC_SEARCH_PORT\x10\x42\x12\x1d\n\x19\x45LASTIC_SEARCH_API_KEY_ID\x10\x43\x12\x1a\n\x16\x45LASTIC_SEARCH_API_KEY\x10\x44\x12\x19\n\x15GRAFANA_LOKI_PROTOCOL\x10\x45\x12\x15\n\x11GRAFANA_LOKI_HOST\x10\x46\x12\x15\n\x11GRAFANA_LOKI_PORT\x10G\x12\x1b\n\x17KUBERNETES_CLUSTER_NAME\x10H\x12!\n\x1dKUBERNETES_CLUSTER_API_SERVER\x10I\x12\x1c\n\x18KUBERNETES_CLUSTER_TOKEN\x10J\x12\x31\n-KUBERNETES_CLUSTER_CERTIFICATE_AUTHORITY_DATA\x10K\x12\x31\n-KUBERNETES_CLUSTER_CERTIFICATE_AUTHORITY_PATH\x10L\x12\r\n\tSMTP_HOST\x10M\x12\r\n\tSMTP_PORT\x10N\x12\r\n\tSMTP_USER\x10O\x12\x11\n\rSMTP_PASSWORD\x10P\x12\x18\n\x14\x42IG_QUERY_PROJECT_ID\x10Q\x12\"\n\x1e\x42IG_QUERY_SERVICE_ACCOUNT_JSON\x10R\x12\x13\n\x0fZENDUTY_API_KEY\x10S\x12\x12\n\x0eROOTLY_API_KEY\x10T\x12\x16\n\x12JIRA_CLOUD_API_KEY\x10U\x12\x0f\n\x0bJIRA_DOMAIN\x10m\x12\x0e\n\nJIRA_EMAIL\x10n\x12\x16\n\x12\x41SANA_ACCESS_TOKEN\x10V\x12\x1c\n\x18\x43ONFLUENCE_CLOUD_API_KEY\x10W\x12\x1e\n\x19\x43ONFLUENCE_CLOUD_SITE_URL\x10\x8b\x01\x12-\n(CONFLUENCE_CLOUD_ATLASSIAN_ACCOUNT_EMAIL\x10\x8c\x01\x12\x12\n\x0eNOTION_API_KEY\x10X\x12\x18\n\x14\x44RD_PROXY_AGENT_HOST\x10Y\x12\x1d\n\x19\x44RD_PROXY_AGENT_API_TOKEN\x10Z\x12\x1b\n\x17\x44RD_PROXY_AGENT_API_KEY\x10[\x12\x1d\n\x19MONGODB_CONNECTION_STRING\x10\\\x12\x18\n\x14OPEN_SEARCH_PROTOCOL\x10^\x12\x14\n\x10OPEN_SEARCH_HOST\x10_\x12\x14\n\x10OPEN_SEARCH_PORT\x10`\x12\x18\n\x14OPEN_SEARCH_USERNAME\x10\x61\x12\x18\n\x14OPEN_SEARCH_PASSWORD\x10\x62\x12\x12\n\x0eLINEAR_API_KEY\x10\x63\x12\x0f\n\x0bJENKINS_URL\x10\x64\x12\x14\n\x10JENKINS_USERNAME\x10\x65\x12\x15\n\x11JENKINS_API_TOKEN\x10\x66\x12\x11\n\rJENKINS_CRUMB\x10q\x12\x18\n\x14GITHUB_ACTIONS_TOKEN\x10g\x12 \n\x1c\x43USTOM_STRATEGIES_ACCOUNT_ID\x10h\x12\x11\n\rARGOCD_SERVER\x10j\x12\x10\n\x0c\x41RGOCD_TOKEN\x10k\x12\x18\n\x14ROLLBAR_ACCESS_TOKEN\x10l\x12\x13\n\x0fPOSTHOG_API_KEY\x10y\x12\x14\n\x10POSTHOG_APP_HOST\x10z\x12\x16\n\x12POSTHOG_PROJECT_ID\x10{\x12&\n!MIXPANEL_SERVICE_ACCOUNT_USERNAME\x10\x83\x01\x12$\n\x1fMIXPANEL_SERVICE_ACCOUNT_SECRET\x10\x84\x01\x12\x14\n\x0fMIXPANEL_DOMAIN\x10\x85\x01\x12\x18\n\x13MIXPANEL_PROJECT_ID\x10\x86\x01\x12\x1a\n\x15MIXPANEL_WORKSPACE_ID\x10\x87\x01\x12\x13\n\x0eSIGNOZ_API_URL\x10\x88\x01\x12\x15\n\x10SIGNOZ_API_TOKEN\x10\x89\x01\x12\x10\n\x0bKIBANA_HOST\x10\x8a\x01\x12\x18\n\x13\x42ITBUCKET_WORKSPACE\x10\x90\x01\x12\x16\n\x11\x42ITBUCKET_API_KEY\x10\x91\x01\x12\x13\n\x0e\x42ITBUCKET_REPO\x10\x92\x01\x12\x13\n\x0eRENDER_API_KEY\x10\x93\x01\x12\x16\n\x11\x43ORALOGIX_API_KEY\x10\x94\x01\x12\x17\n\x12\x43ORALOGIX_ENDPOINT\x10\x95\x01\x12\x15\n\x10\x43ORALOGIX_DOMAIN\x10\x98\x01\x12\x18\n\x13MCP_SERVER_BASE_URL\x10\x96\x01\x12\x1c\n\x17MCP_SERVER_AUTH_HEADERS\x10\x97\x01\x12\x1f\n\x1aMCP_SERVER_PASS_USER_EMAIL\x10\xa4\x01\x12\x1b\n\x16VICTORIA_LOGS_PROTOCOL\x10\x9a\x01\x12\x17\n\x12VICTORIA_LOGS_HOST\x10\x9b\x01\x12\x17\n\x12VICTORIA_LOGS_PORT\x10\x9c\x01\x12\x1a\n\x15VICTORIA_LOGS_HEADERS\x10\x9d\x01\x12\x12\n\rGITHUB_APP_ID\x10\x9e\x01\x12\x1b\n\x16GITHUB_APP_PRIVATE_KEY\x10\x9f\x01\x12\x1f\n\x1aGITHUB_APP_INSTALLATION_ID\x10\xa0\x01\x12\x1c\n\x17GITHUB_APP_ACCESS_TOKEN\x10\xa1\x01\x12\x11\n\x0cMETABASE_URL\x10\xa2\x01\x12\x15\n\x10METABASE_API_KEY\x10\xa3\x01\x12\x14\n\x0f\x44\x41TABRICKS_HOST\x10\xa6\x01\x12\x15\n\x10\x44\x41TABRICKS_TOKEN\x10\xa7\x01\x12\x13\n\x0eGITHUB_API_URL\x10\xa8\x01*\xa8\"\n\x0fSourceModelType\x12\x0e\n\nUNKNOWN_MT\x10\x00\x12\x14\n\x10NEW_RELIC_POLICY\x10\x01\x12\x17\n\x13NEW_RELIC_CONDITION\x10\x02\x12\x14\n\x10NEW_RELIC_ENTITY\x10\x03\x12\x1e\n\x1aNEW_RELIC_ENTITY_DASHBOARD\x10\x04\x12 \n\x1cNEW_RELIC_ENTITY_APPLICATION\x10\x05\x12\x12\n\x0eNEW_RELIC_NRQL\x10\x06\x12!\n\x1dNEW_RELIC_ENTITY_DASHBOARD_V2\x10\x07\x12\x13\n\x0f\x44\x41TADOG_MONITOR\x10\x65\x12\x15\n\x11\x44\x41TADOG_DASHBOARD\x10\x66\x12 \n\x1c\x44\x41TADOG_LIVE_INTEGRATION_AWS\x10g\x12$\n DATADOG_LIVE_INTEGRATION_AWS_LOG\x10h\x12\"\n\x1e\x44\x41TADOG_LIVE_INTEGRATION_AZURE\x10i\x12\'\n#DATADOG_LIVE_INTEGRATION_CLOUDFLARE\x10j\x12#\n\x1f\x44\x41TADOG_LIVE_INTEGRATION_FASTLY\x10k\x12 \n\x1c\x44\x41TADOG_LIVE_INTEGRATION_GCP\x10l\x12&\n\"DATADOG_LIVE_INTEGRATION_CONFLUENT\x10m\x12\x13\n\x0f\x44\x41TADOG_SERVICE\x10n\x12\x12\n\x0e\x44\x41TADOG_METRIC\x10o\x12\x11\n\rDATADOG_QUERY\x10p\x12\x0f\n\x0b\x44\x41TADOG_APM\x10q\x12\x12\n\x0e\x44\x41TADOG_FIELDS\x10r\x12\x16\n\x11\x43LOUDWATCH_METRIC\x10\xc9\x01\x12\x19\n\x14\x43LOUDWATCH_LOG_GROUP\x10\xca\x01\x12\x1f\n\x1a\x43LOUDWATCH_LOG_GROUP_QUERY\x10\xcb\x01\x12\x16\n\x11\x43LOUDWATCH_ALARMS\x10\xcc\x01\x12\x12\n\rRDS_INSTANCES\x10\xcd\x01\x12\x19\n\x14\x43LOUDWATCH_DASHBOARD\x10\xce\x01\x12\x16\n\x11\x43ODEBUILD_PROJECT\x10\xcf\x01\x12\x17\n\x12GRAFANA_DATASOURCE\x10\xad\x02\x12\x16\n\x11GRAFANA_DASHBOARD\x10\xae\x02\x12!\n\x1cGRAFANA_TARGET_METRIC_PROMQL\x10\xaf\x02\x12\"\n\x1dGRAFANA_PROMETHEUS_DATASOURCE\x10\xb0\x02\x12\x17\n\x12GRAFANA_ALERT_RULE\x10\xb1\x02\x12\x1c\n\x17GRAFANA_LOKI_DATASOURCE\x10\xb2\x02\x12\x1d\n\x18GRAFANA_TEMPO_DATASOURCE\x10\xb3\x02\x12\x1a\n\x15GRAFANA_TEMPO_SERVICE\x10\xb4\x02\x12\x18\n\x13\x43LICKHOUSE_DATABASE\x10\x91\x03\x12\x15\n\x10\x43LICKHOUSE_TABLE\x10\x92\x03\x12\x12\n\rSLACK_CHANNEL\x10\xf5\x03\x12\r\n\x08MARKDOWN\x10\xd9\x04\x12\x0b\n\x06IFRAME\x10\xda\x04\x12\x13\n\x0ePOSTGRES_QUERY\x10\xbd\x05\x12\x13\n\x0ePOSTGRES_TABLE\x10\xbe\x05\x12\x10\n\x0b\x45KS_CLUSTER\x10\xa1\x06\x12\x12\n\rEKS_NAMESPACE\x10\xa2\x06\x12\x10\n\x0b\x45KS_SERVICE\x10\xa3\x06\x12\x13\n\x0e\x45KS_DEPLOYMENT\x10\xa4\x06\x12\x10\n\x0b\x45KS_INGRESS\x10\xa5\x06\x12\x17\n\x12\x45KS_NETWORK_POLICY\x10\xa6\x06\x12\x0c\n\x07\x45KS_HPA\x10\xa7\x06\x12\x13\n\x0e\x45KS_REPLICASET\x10\xa8\x06\x12\x14\n\x0f\x45KS_STATEFULSET\x10\xa9\x06\x12&\n!SQL_DATABASE_CONNECTION_RAW_QUERY\x10\x85\x07\x12\x17\n\x12SQL_DATABASE_TABLE\x10\x86\x07\x12\x14\n\x0f\x41ZURE_WORKSPACE\x10\xe9\x07\x12\x13\n\x0e\x41ZURE_RESOURCE\x10\xea\x07\x12\x16\n\x11\x41ZURE_AKS_CLUSTER\x10\xeb\x07\x12\x18\n\x13\x41ZURE_AKS_NAMESPACE\x10\xec\x07\x12\x19\n\x14\x41ZURE_AKS_DEPLOYMENT\x10\xed\x07\x12\x16\n\x11\x41ZURE_AKS_SERVICE\x10\xee\x07\x12\x16\n\x11\x41ZURE_AKS_INGRESS\x10\xef\x07\x12\x1d\n\x18\x41ZURE_AKS_NETWORK_POLICY\x10\xf0\x07\x12\x12\n\rAZURE_AKS_HPA\x10\xf1\x07\x12\x19\n\x14\x41ZURE_AKS_REPLICASET\x10\xf2\x07\x12\x1a\n\x15\x41ZURE_AKS_STATEFULSET\x10\xf3\x07\x12\x1a\n\x15\x41ZURE_VIRTUAL_MACHINE\x10\xf4\x07\x12\x0f\n\nAZURE_VMSS\x10\xf5\x07\x12\x1a\n\x15\x41ZURE_STORAGE_ACCOUNT\x10\xf6\x07\x12\x19\n\x14\x41ZURE_BLOB_CONTAINER\x10\xf7\x07\x12\x15\n\x10\x41ZURE_SQL_SERVER\x10\xf8\x07\x12\x17\n\x12\x41ZURE_SQL_DATABASE\x10\xf9\x07\x12\x19\n\x14\x41ZURE_COSMOS_ACCOUNT\x10\xfa\x07\x12\x1a\n\x15\x41ZURE_POSTGRES_SERVER\x10\xfb\x07\x12\x1c\n\x17\x41ZURE_POSTGRES_DATABASE\x10\xfc\x07\x12\x17\n\x12\x41ZURE_METRIC_ALERT\x10\xfd\x07\x12\x17\n\x12\x41ZURE_ACTION_GROUP\x10\xfe\x07\x12\x19\n\x14\x41ZURE_RESOURCE_GROUP\x10\xff\x07\x12\x16\n\x11\x41ZURE_REDIS_CACHE\x10\x80\x08\x12\x0f\n\nSSH_SERVER\x10\xcc\x08\x12\r\n\x08SSH_USER\x10\xcd\x08\x12\x19\n\x14GRAFANA_MIMIR_PROMQL\x10\xb1\t\x12\x10\n\x0bGKE_CLUSTER\x10\x95\n\x12\x12\n\rGKE_NAMESPACE\x10\x96\n\x12\x10\n\x0bGKE_SERVICE\x10\x97\n\x12\x13\n\x0eGKE_DEPLOYMENT\x10\x98\n\x12\x10\n\x0bGKE_INGRESS\x10\x99\n\x12\x17\n\x12GKE_NETWORK_POLICY\x10\x9a\n\x12\x0c\n\x07GKE_HPA\x10\x9b\n\x12\x13\n\x0eGKE_REPLICASET\x10\x9c\n\x12\x14\n\x0fGKE_STATEFULSET\x10\x9d\n\x12\x19\n\x14GCP_COMPUTE_INSTANCE\x10\x9e\n\x12\x17\n\x12GCP_INSTANCE_GROUP\x10\x9f\n\x12\x17\n\x12GCP_STORAGE_BUCKET\x10\xa0\n\x12\x1b\n\x16GCP_CLOUD_SQL_INSTANCE\x10\xa1\n\x12\x1b\n\x16GCP_CLOUD_SQL_DATABASE\x10\xa2\n\x12\x1a\n\x15GCP_MEMORYSTORE_REDIS\x10\xa3\n\x12\x15\n\x10GCP_ALERT_POLICY\x10\xa4\n\x12\x1d\n\x18GCP_NOTIFICATION_CHANNEL\x10\xa5\n\x12\x17\n\x12GCP_CLOUD_FUNCTION\x10\xa6\n\x12\x1a\n\x15GCP_CLOUD_RUN_SERVICE\x10\xa7\n\x12\x15\n\x10GCP_PUBSUB_TOPIC\x10\xa8\n\x12\x1c\n\x17GCP_PUBSUB_SUBSCRIPTION\x10\xa9\n\x12\x19\n\x14GCP_BIGQUERY_DATASET\x10\xaa\n\x12\x17\n\x12GCP_BIGQUERY_TABLE\x10\xab\n\x12\x14\n\x0fGCP_VPC_NETWORK\x10\xac\n\x12\x13\n\x0eGCP_SUBNETWORK\x10\xad\n\x12\x16\n\x11GCP_FIREWALL_RULE\x10\xae\n\x12\x16\n\x11GCP_LOAD_BALANCER\x10\xaf\n\x12\x0f\n\nGCP_SECRET\x10\xb0\n\x12\x18\n\x13GCP_SERVICE_ACCOUNT\x10\xb1\n\x12\x11\n\x0cGCP_LOG_SINK\x10\xb2\n\x12\x13\n\x0eGCP_LOG_METRIC\x10\xb3\n\x12\x15\n\x10MS_TEAMS_CHANNEL\x10\xf9\n\x12\x17\n\x12PAGERDUTY_INCIDENT\x10\xdd\x0b\x12\x19\n\x14\x45LASTIC_SEARCH_INDEX\x10\xc1\x0c\x12\x1c\n\x17\x45LASTIC_SEARCH_SERVICES\x10\xc2\x0c\x12\x1e\n\x19\x45LASTIC_SEARCH_DASHBOARDS\x10\xc3\x0c\x12\"\n\x1d\x45LASTIC_SEARCH_INDEX_PATTERNS\x10\xc4\x0c\x12\x0f\n\nGCM_METRIC\x10\xa5\r\x12\x12\n\rGCM_DASHBOARD\x10\xa6\r\x12$\n\x1fGCM_CLOUD_RUN_SERVICE_DASHBOARD\x10\xa7\r\x12\x15\n\x10ZENDUTY_INCIDENT\x10\x89\x0e\x12\x14\n\x0fROOTLY_INCIDENT\x10\xed\x0e\x12\x19\n\x14OPS_GENIE_ESCALATION\x10\xd1\x0f\x12\x13\n\x0eOPS_GENIE_TEAM\x10\xd2\x0f\x12\x16\n\x11GOOGLE_CHAT_SPACE\x10\xb5\x10\x12\x15\n\x10MONGODB_DATABASE\x10\x99\x11\x12\x17\n\x12MONGODB_COLLECTION\x10\x9a\x11\x12\x16\n\x11OPEN_SEARCH_INDEX\x10\xfd\x11\x12\x12\n\rASANA_PROJECT\x10\xe1\x12\x12\x12\n\rMODELS_ACTIVE\x10\xc5\x13\x12\x16\n\x11GITHUB_REPOSITORY\x10\xa9\x14\x12\x12\n\rGITHUB_MEMBER\x10\xaa\x14\x12\x11\n\x0cJIRA_PROJECT\x10\x8d\x15\x12\x0e\n\tJIRA_USER\x10\x8e\x15\x12\x10\n\x0b\x41RGOCD_APPS\x10\xf1\x15\x12\x11\n\x0cJENKINS_JOBS\x10\xd5\x16\x12\x13\n\x0ePOSTHOG_PERSON\x10\xb9\x17\x12\x12\n\rPOSTHOG_GROUP\x10\xba\x17\x12\x13\n\x0ePOSTHOG_COHORT\x10\xbb\x17\x12\x15\n\x10POSTHOG_PROPERTY\x10\xbc\x17\x12\x16\n\x11POSTHOG_DASHBOARD\x10\xbd\x17\x12\x14\n\x0fPOSTHOG_PROJECT\x10\xbe\x17\x12\x10\n\x0b\x45\x43S_CLUSTER\x10\xa1\x1f\x12\r\n\x08\x45\x43S_TASK\x10\xa2\x1f\x12\x10\n\x0b\x45\x43S_SERVICE\x10\xa3\x1f\x12\x15\n\x10SIGNOZ_DASHBOARD\x10\x89\'\x12\x11\n\x0cSIGNOZ_ALERT\x10\x8a\'\x12\x12\n\rSIGNOZ_METRIC\x10\x8b\'\x12\x13\n\x0eSIGNOZ_SERVICE\x10\x8c\'\x12\x1a\n\x15SIGNOZ_LOG_ATTRIBUTES\x10\x8d\'\x12\x1d\n\x18SIGNOZ_CLICKHOUSE_SCHEMA\x10\x8e\'\x12\x19\n\x14KUBERNETES_NAMESPACE\x10\xf1.\x12\x17\n\x12KUBERNETES_SERVICE\x10\xf2.\x12\x1a\n\x15KUBERNETES_DEPLOYMENT\x10\xf3.\x12\x17\n\x12KUBERNETES_INGRESS\x10\xf4.\x12\x1e\n\x19KUBERNETES_NETWORK_POLICY\x10\xf5.\x12\x13\n\x0eKUBERNETES_HPA\x10\xf6.\x12\x1a\n\x15KUBERNETES_REPLICASET\x10\xf7.\x12\x1b\n\x16KUBERNETES_STATEFULSET\x10\xf8.\x12\x1b\n\x16KUBERNETES_NETWORK_MAP\x10\xf9.\x12\x13\n\x0eSENTRY_PROJECT\x10\xd9\x36\x12\x18\n\x13\x43ORALOGIX_DASHBOARD\x10\xc1>\x12\x1c\n\x17\x43ORALOGIX_INDEX_MAPPING\x10\xc2>\x12\x16\n\x11\x43ORALOGIX_SERVICE\x10\xc3>\x12\x18\n\x13VICTORIA_LOGS_FIELD\x10\xa9\x46\x12\x0e\n\tMCP_TOOLS\x10\x8dG\x12\x0f\n\nMCP_ASSETS\x10\x8eG\x12\x11\n\x0cLINEAR_TEAMS\x10\xf1G\x12\x11\n\x0cLINEAR_USERS\x10\xf2G\x12\x14\n\x0fLINEAR_PROJECTS\x10\xf3G\x12\x17\n\x12METABASE_DASHBOARD\x10\xd5H\x12\x12\n\rMETABASE_CARD\x10\xd6H\x12\x16\n\x11METABASE_DATABASE\x10\xd7H\x12\x18\n\x13METABASE_COLLECTION\x10\xd8H\x12\x1a\n\x15METABASE_SUBSCRIPTION\x10\xd9H\x12\x13\n\x0e\x44\x41TABRICKS_JOB\x10\xb9I\x12\x17\n\x12\x44\x41TABRICKS_CLUSTER\x10\xbaI\x12\x1d\n\x18\x44\x41TABRICKS_SQL_WAREHOUSE\x10\xbbI*\xac\x02\n\x07\x43ontext\x12\r\n\tUNKNOWN_C\x10\x00\x12\t\n\x05\x45VENT\x10\x01\x12\x17\n\x13MONITOR_TRANSACTION\x10\x02\x12\x13\n\x0f\x45NTITY_INSTANCE\x10\x03\x12\x0e\n\nEVENT_TYPE\x10\x04\x12\x0b\n\x07MONITOR\x10\x05\x12\n\n\x06\x45NTITY\x10\x06\x12\x15\n\x11\x45VENTS_CLICKHOUSE\x10\x07\x12\x0e\n\nPANEL_NAME\x10\x08\x12\x12\n\x0e\x44\x41SHBOARD_NAME\x10\t\x12\x1f\n\x1b\x45VENTS_ALERT_OPS_CLICKHOUSE\x10\n\x12\x0f\n\x0bSLACK_ALERT\x10\x0b\x12\x1e\n\x1a\x45VENTS_PRODIGAL_CLICKHOUSE\x10\x0c\x12\r\n\tALERT_OPS\x10\r\x12\x14\n\x10\x41LERT_MIDDLEWARE\x10\x0e*\x92\x02\n\x12RecentArtifactType\x12\x0e\n\nRA_UNKNOWN\x10\x00\x12\x12\n\x0eRA_GITHUB_REPO\x10\x01\x12\x14\n\x10RA_GITHUB_COMMIT\x10\x02\x12\x10\n\x0cRA_GITHUB_PR\x10\x03\x12\x15\n\x11RA_GITHUB_RELEASE\x10\x04\x12\x12\n\x0eRA_GITLAB_REPO\x10\x65\x12\x14\n\x10RA_GITLAB_COMMIT\x10\x66\x12\x10\n\x0cRA_GITLAB_MR\x10g\x12\x15\n\x11RA_GITLAB_RELEASE\x10h\x12\x16\n\x11RA_BITBUCKET_REPO\x10\xc9\x01\x12\x18\n\x13RA_BITBUCKET_COMMIT\x10\xca\x01\x12\x14\n\x0fRA_BITBUCKET_PR\x10\xcb\x01\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x63ore/protos/base.proto\x12\x0b\x63ore.protos\x1a\x1egoogle/protobuf/wrappers.proto\".\n\tTimeRange\x12\x10\n\x08time_geq\x18\x01 \x01(\x04\x12\x0f\n\x07time_lt\x18\x02 \x01(\x04\"a\n\x04Page\x12+\n\x05limit\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12,\n\x06offset\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\"a\n\rOpDescription\x12\x1b\n\x02op\x18\x01 \x01(\x0e\x32\x0f.core.protos.Op\x12\r\n\x05label\x18\x02 \x01(\t\x12\x10\n\x08is_unary\x18\x03 \x01(\x08\x12\x12\n\nis_logical\x18\x04 \x01(\x08\"\xc7\x02\n\x10TaskCronSchedule\x12-\n\x07minutes\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x05hours\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x36\n\x10\x64\x61ys_of_the_week\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x37\n\x11\x64\x61ys_of_the_month\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x36\n\x10\x64\x61ys_of_the_year\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\x08timezone\x18\x06 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"I\n\x0cTaskInterval\x12\x39\n\x13interval_in_seconds\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\"j\n\x0cTaskCronRule\x12*\n\x04rule\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\x08timezone\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\xef\x01\n\x08\x45ventKey\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x0b\n\x03key\x18\x02 \x01(\t\x12/\n\x08key_type\x18\x03 \x01(\x0e\x32\x1d.core.protos.EventKey.KeyType\x12\x31\n\nevent_type\x18\x04 \x01(\x0b\x32\x1d.core.protos.EventTypePartial\"f\n\x07KeyType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06STRING\x10\x01\x12\x08\n\x04LONG\x10\x02\x12\n\n\x06\x44OUBLE\x10\x03\x12\x0b\n\x07\x42OOLEAN\x10\x04\x12\x08\n\x04\x42YTE\x10\x05\x12\t\n\x05\x41RRAY\x10\x06\x12\n\n\x06OBJECT\x10\x07\"\x81\x01\n\tEventType\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\x12#\n\x04keys\x18\x03 \x03(\x0b\x32\x15.core.protos.EventKey\x12\x35\n\revent_sources\x18\x04 \x03(\x0e\x32\x1e.core.protos.Event.EventSource\"\xaa\x01\n\x0e\x45ventTypeStats\x12\x30\n\nkeys_count\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12\x31\n\x0b\x65vent_count\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12\x33\n\rmonitor_count\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\",\n\x10\x45ventTypePartial\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"q\n\x10\x45ventTypeSummary\x12\x31\n\nevent_type\x18\x01 \x01(\x0b\x32\x1d.core.protos.EventTypePartial\x12*\n\x05stats\x18\x02 \x01(\x0b\x32\x1b.core.protos.EventTypeStats\"m\n\x13\x45ventTypeDefinition\x12*\n\nevent_type\x18\x01 \x01(\x0b\x32\x16.core.protos.EventType\x12*\n\x05stats\x18\x02 \x01(\x0b\x32\x1b.core.protos.EventTypeStats\"\xdd\x02\n\x05\x45vent\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x31\n\nevent_type\x18\x02 \x01(\x0b\x32\x1d.core.protos.EventTypePartial\x12\"\n\x03kvs\x18\x03 \x03(\x0b\x32\x15.core.protos.KeyValue\x12\x11\n\ttimestamp\x18\x04 \x01(\x10\x12\x34\n\x0c\x65vent_source\x18\x05 \x01(\x0e\x32\x1e.core.protos.Event.EventSource\"\xa7\x01\n\x0b\x45ventSource\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06SAMPLE\x10\x01\x12\x07\n\x03\x41PI\x10\x02\x12\x07\n\x03SDK\x10\x03\x12\x0b\n\x07SEGMENT\x10\x04\x12\r\n\tAMPLITUDE\x10\x05\x12\x07\n\x03SNS\x10\x06\x12\x0e\n\nCLOUDWATCH\x10\x07\x12\r\n\tCOLLECTOR\x10\x08\x12\x0f\n\x0b\x41WS_KINESIS\x10\t\x12\t\n\x05SLACK\x10\n\x12\r\n\tOPS_GENIE\x10\x0b\"\xe5\x01\n\x05Value\x12\x16\n\x0cstring_value\x18\x01 \x01(\tH\x00\x12\x14\n\nbool_value\x18\x02 \x01(\x08H\x00\x12\x13\n\tint_value\x18\x03 \x01(\x03H\x00\x12\x16\n\x0c\x64ouble_value\x18\x04 \x01(\x01H\x00\x12.\n\x0b\x61rray_value\x18\x05 \x01(\x0b\x32\x17.core.protos.ArrayValueH\x00\x12\x31\n\x0ckvlist_value\x18\x06 \x01(\x0b\x32\x19.core.protos.KeyValueListH\x00\x12\x15\n\x0b\x62ytes_value\x18\x07 \x01(\x0cH\x00\x42\x07\n\x05value\"0\n\nArrayValue\x12\"\n\x06values\x18\x01 \x03(\x0b\x32\x12.core.protos.Value\"5\n\x0cKeyValueList\x12%\n\x06values\x18\x01 \x03(\x0b\x32\x15.core.protos.KeyValue\":\n\x08KeyValue\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.core.protos.Value*Q\n\x08\x46unction\x12\r\n\tUNKNOWN_F\x10\x00\x12\t\n\x05\x41VG_F\x10\x01\x12\t\n\x05SUM_F\x10\x02\x12\t\n\x05MIN_F\x10\x03\x12\t\n\x05MAX_F\x10\x04\x12\n\n\x06LAST_F\x10\x05*\xb7\x01\n\x08Operator\x12\r\n\tUNKNOWN_O\x10\x00\x12\x12\n\x0eGREATER_THAN_O\x10\x01\x12\x18\n\x14GREATER_THAN_EQUAL_O\x10\x02\x12\x0f\n\x0bLESS_THAN_O\x10\x03\x12\x15\n\x11LESS_THAN_EQUAL_O\x10\x04\x12\x0b\n\x07\x45QUAL_O\x10\x05\x12\x0f\n\x0bNOT_EQUAL_O\x10\x06\x12\n\n\x06LIKE_O\x10\x07\x12\x0c\n\x08\x45XISTS_O\x10\x08\x12\x0e\n\nCONTAINS_O\x10\t*D\n\x0fLogicalOperator\x12\x0e\n\nUNKNOWN_LO\x10\x00\x12\n\n\x06\x41ND_LO\x10\x01\x12\t\n\x05OR_LO\x10\x02\x12\n\n\x06NOT_LO\x10\x03*\x9c\x01\n\x02Op\x12\x0e\n\nUNKNOWN_OP\x10\x00\x12\x06\n\x02\x45Q\x10\x01\x12\x07\n\x03NEQ\x10\x02\x12\x06\n\x02GT\x10\x03\x12\x06\n\x02LT\x10\x04\x12\x07\n\x03GTE\x10\x05\x12\x07\n\x03LTE\x10\x06\x12\x06\n\x02IN\x10\x07\x12\n\n\x06NOT_IN\x10\x08\x12\x0b\n\x07IS_NULL\x10\t\x12\n\n\x06\x45XISTS\x10\n\x12\x0c\n\x08\x43ONTAINS\x10\x0b\x12\x07\n\x03\x41ND\x10\x14\x12\x06\n\x02OR\x10\x15\x12\x07\n\x03NOT\x10\x16*\xc7\t\n\x06Source\x12\x0b\n\x07UNKNOWN\x10\x00\x12\n\n\x06SENTRY\x10\x01\x12\x0b\n\x07SEGMENT\x10\x02\x12\x12\n\x0e\x45LASTIC_SEARCH\x10\x03\x12\r\n\tAMPLITUDE\x10\x04\x12\x0f\n\x0b\x41WS_KINESIS\x10\x05\x12\x0e\n\nCLOUDWATCH\x10\x06\x12\r\n\tCLEVERTAP\x10\x07\x12\x0f\n\x0bRUDDERSTACK\x10\x08\x12\x0c\n\x08MOENGAGE\x10\t\x12\t\n\x05\x43RIBL\x10\n\x12\t\n\x05KAFKA\x10\x0b\x12\x0b\n\x07\x44\x41TADOG\x10\x0c\x12\x0c\n\x08\x46ILEBEAT\x10\r\x12\x0c\n\x08LOGSTASH\x10\x0e\x12\x0b\n\x07\x46LUENTD\x10\x0f\x12\r\n\tFLUENTBIT\x10\x10\x12\x0e\n\nPAGER_DUTY\x10\x11\x12\r\n\tNEW_RELIC\x10\x12\x12\t\n\x05SLACK\x10\x13\x12\x0f\n\x0bHONEYBADGER\x10\x14\x12\x0f\n\x0bGOOGLE_CHAT\x10\x15\x12\x11\n\rDATADOG_OAUTH\x10\x16\x12\x07\n\x03GCM\x10\x17\x12\x0e\n\nPROMETHEUS\x10\x18\x12\x0f\n\x0b\x45LASTIC_APM\x10\x19\x12\x14\n\x10VICTORIA_METRICS\x10\x1a\x12\x11\n\rSLACK_CONNECT\x10\x1b\x12\x0b\n\x07GRAFANA\x10\x1c\x12\x0e\n\nCLICKHOUSE\x10\x1d\x12\x11\n\rDOCUMENTATION\x10\x1e\x12\x0c\n\x08POSTGRES\x10\x1f\x12\r\n\tOPS_GENIE\x10 \x12\x07\n\x03\x45KS\x10!\x12\x0f\n\x0b\x41GENT_PROXY\x10\"\x12\x0f\n\x0bGRAFANA_VPC\x10#\x12\n\n\x06GITHUB\x10$\x12\x1b\n\x17SQL_DATABASE_CONNECTION\x10%\x12\x0b\n\x07OPEN_AI\x10&\x12\x11\n\rREMOTE_SERVER\x10\'\x12\x07\n\x03\x41PI\x10(\x12\x08\n\x04\x42\x41SH\x10)\x12\t\n\x05\x41ZURE\x10*\x12\x11\n\rGRAFANA_MIMIR\x10+\x12\x07\n\x03GKE\x10,\x12\x0c\n\x08MS_TEAMS\x10-\x12\x10\n\x0cGRAFANA_LOKI\x10.\x12\x0e\n\nKUBERNETES\x10/\x12\x08\n\x04SMTP\x10\x30\x12\r\n\tBIG_QUERY\x10\x31\x12\x0b\n\x07ZENDUTY\x10\x32\x12\n\n\x06ROOTLY\x10\x33\x12\x0e\n\nJIRA_CLOUD\x10\x34\x12\t\n\x05\x41SANA\x10\x35\x12\x14\n\x10\x43ONFLUENCE_CLOUD\x10\x36\x12\x1a\n\x16\x43ONFLUENCE_SELF_HOSTED\x10\x37\x12\x10\n\x0cGOOGLE_DRIVE\x10\x38\x12\n\n\x06NOTION\x10\x39\x12\x13\n\x0f\x44RD_PROXY_AGENT\x10:\x12\x0b\n\x07MONGODB\x10;\x12\x0f\n\x0bOPEN_SEARCH\x10<\x12\n\n\x06LINEAR\x10=\x12\x0b\n\x07JENKINS\x10>\x12\x12\n\x0eGITHUB_ACTIONS\x10?\x12\x15\n\x11\x43USTOM_STRATEGIES\x10@\x12\n\n\x06\x41RGOCD\x10\x41\x12\x15\n\x11\x44RD_ALERT_WEBHOOK\x10\x42\x12\x0b\n\x07ROLLBAR\x10\x43\x12\n\n\x06LAMBDA\x10\x44\x12\x0b\n\x07\x42ROWSER\x10\x45\x12\x0b\n\x07POSTHOG\x10\x46\x12\x0c\n\x08MIXPANEL\x10G\x12\n\n\x06SIGNOZ\x10H\x12\r\n\tBITBUCKET\x10I\x12\r\n\tCORALOGIX\x10J\x12\n\n\x06RENDER\x10K\x12\x0e\n\nMCP_SERVER\x10L\x12\x11\n\rVICTORIA_LOGS\x10M\x12\x0c\n\x08METABASE\x10N\x12\x0e\n\nDATABRICKS\x10O*\xd9\x1d\n\rSourceKeyType\x12\x0f\n\x0bUNKNOWN_SKT\x10\x00\x12\x12\n\x0eSENTRY_API_KEY\x10\x01\x12\x13\n\x0fSENTRY_ORG_SLUG\x10\x06\x12\x13\n\x0f\x44\x41TADOG_APP_KEY\x10\x02\x12\x13\n\x0f\x44\x41TADOG_API_KEY\x10\x03\x12\x16\n\x12\x44\x41TADOG_AUTH_TOKEN\x10\x0f\x12\x16\n\x12\x44\x41TADOG_API_DOMAIN\x10\x12\x12\x14\n\x10NEWRELIC_API_KEY\x10\x04\x12\x13\n\x0fNEWRELIC_APP_ID\x10\x05\x12\x16\n\x12NEWRELIC_QUERY_KEY\x10\x07\x12\x17\n\x13NEWRELIC_API_DOMAIN\x10\x13\x12\x18\n\x14SLACK_BOT_AUTH_TOKEN\x10\x08\x12\x15\n\x11SLACK_CHANNEL_SKT\x10\t\x12\x10\n\x0cSLACK_APP_ID\x10.\x12\x18\n\x13SLACK_APP_CLIENT_ID\x10\x8d\x01\x12\x1c\n\x17SLACK_APP_CLIENT_SECRET\x10\x8e\x01\x12\x1d\n\x18SLACK_APP_SIGNING_SECRET\x10\x8f\x01\x12\x18\n\x14HONEYBADGER_USERNAME\x10\n\x12\x18\n\x14HONEYBADGER_PASSWORD\x10\x0b\x12\x1a\n\x16HONEYBADGER_PROJECT_ID\x10\x0c\x12\x12\n\x0e\x41WS_ACCESS_KEY\x10\r\x12\x12\n\x0e\x41WS_SECRET_KEY\x10\x0e\x12\x0e\n\nAWS_REGION\x10\x14\x12\x18\n\x14\x41WS_ASSUMED_ROLE_ARN\x10\x17\x12\x10\n\x0c\x45KS_ROLE_ARN\x10(\x12\x1a\n\x16\x41WS_DRD_CLOUD_ROLE_ARN\x10]\x12\x14\n\x0f\x41WS_EXTERNAL_ID\x10\xa5\x01\x12\x1f\n\x1bGOOGLE_CHAT_BOT_OAUTH_TOKEN\x10\x10\x12\x1a\n\x16GOOGLE_CHAT_BOT_SPACES\x10\x11\x12\x10\n\x0cGRAFANA_HOST\x10\x15\x12\x13\n\x0fGRAFANA_API_KEY\x10\x16\x12\x16\n\x11GRAFANA_TEAM_HOST\x10\x99\x01\x12\x18\n\x14\x43LICKHOUSE_INTERFACE\x10\x18\x12\x13\n\x0f\x43LICKHOUSE_HOST\x10\x19\x12\x13\n\x0f\x43LICKHOUSE_PORT\x10\x1a\x12\x13\n\x0f\x43LICKHOUSE_USER\x10\x1b\x12\x17\n\x13\x43LICKHOUSE_PASSWORD\x10\x1c\x12\x12\n\x0eGCM_PROJECT_ID\x10\x1d\x12\x13\n\x0fGCM_PRIVATE_KEY\x10\x1e\x12\x14\n\x10GCM_CLIENT_EMAIL\x10\x1f\x12\x11\n\rGCM_TOKEN_URI\x10 \x12\x1c\n\x18GCM_SERVICE_ACCOUNT_JSON\x10p\x12\x11\n\rPOSTGRES_HOST\x10!\x12\x11\n\rPOSTGRES_USER\x10\"\x12\x15\n\x11POSTGRES_PASSWORD\x10#\x12\x11\n\rPOSTGRES_PORT\x10$\x12\x15\n\x11POSTGRES_DATABASE\x10%\x12\x14\n\x10POSTGRES_OPTIONS\x10&\x12&\n\"SQL_DATABASE_CONNECTION_STRING_URI\x10\'\x12\x16\n\x12PAGER_DUTY_API_KEY\x10)\x12\x1f\n\x1bPAGER_DUTY_CONFIGURED_EMAIL\x10?\x12\x15\n\x11OPS_GENIE_API_KEY\x10*\x12\x14\n\x10\x41GENT_PROXY_HOST\x10+\x12\x17\n\x13\x41GENT_PROXY_API_KEY\x10,\x12\x10\n\x0cGITHUB_TOKEN\x10-\x12\x0e\n\nGITHUB_ORG\x10i\x12\x13\n\x0fOPEN_AI_API_KEY\x10/\x12\x15\n\x11REMOTE_SERVER_PEM\x10\x31\x12\x16\n\x12REMOTE_SERVER_USER\x10\x32\x12\x16\n\x12REMOTE_SERVER_HOST\x10\x33\x12\x1a\n\x16REMOTE_SERVER_PASSWORD\x10\x34\x12\x16\n\x12REMOTE_SERVER_PORT\x10o\x12\x0e\n\nMIMIR_HOST\x10\x35\x12\x12\n\x0eX_SCOPE_ORG_ID\x10\x36\x12\x0e\n\nSSL_VERIFY\x10\x37\x12\x19\n\x15\x41ZURE_SUBSCRIPTION_ID\x10\x38\x12\x13\n\x0f\x41ZURE_TENANT_ID\x10\x39\x12\x13\n\x0f\x41ZURE_CLIENT_ID\x10:\x12\x17\n\x13\x41ZURE_CLIENT_SECRET\x10;\x12\x12\n\x0eGKE_PROJECT_ID\x10<\x12\x1c\n\x18GKE_SERVICE_ACCOUNT_JSON\x10=\x12\"\n\x1eMS_TEAMS_CONNECTOR_WEBHOOK_URL\x10>\x12\x1b\n\x17\x45LASTIC_SEARCH_PROTOCOL\x10@\x12\x17\n\x13\x45LASTIC_SEARCH_HOST\x10\x41\x12\x17\n\x13\x45LASTIC_SEARCH_PORT\x10\x42\x12\x1d\n\x19\x45LASTIC_SEARCH_API_KEY_ID\x10\x43\x12\x1a\n\x16\x45LASTIC_SEARCH_API_KEY\x10\x44\x12\x19\n\x15GRAFANA_LOKI_PROTOCOL\x10\x45\x12\x15\n\x11GRAFANA_LOKI_HOST\x10\x46\x12\x15\n\x11GRAFANA_LOKI_PORT\x10G\x12\x1b\n\x17KUBERNETES_CLUSTER_NAME\x10H\x12!\n\x1dKUBERNETES_CLUSTER_API_SERVER\x10I\x12\x1c\n\x18KUBERNETES_CLUSTER_TOKEN\x10J\x12\x31\n-KUBERNETES_CLUSTER_CERTIFICATE_AUTHORITY_DATA\x10K\x12\x31\n-KUBERNETES_CLUSTER_CERTIFICATE_AUTHORITY_PATH\x10L\x12\r\n\tSMTP_HOST\x10M\x12\r\n\tSMTP_PORT\x10N\x12\r\n\tSMTP_USER\x10O\x12\x11\n\rSMTP_PASSWORD\x10P\x12\x18\n\x14\x42IG_QUERY_PROJECT_ID\x10Q\x12\"\n\x1e\x42IG_QUERY_SERVICE_ACCOUNT_JSON\x10R\x12\x13\n\x0fZENDUTY_API_KEY\x10S\x12\x12\n\x0eROOTLY_API_KEY\x10T\x12\x16\n\x12JIRA_CLOUD_API_KEY\x10U\x12\x0f\n\x0bJIRA_DOMAIN\x10m\x12\x0e\n\nJIRA_EMAIL\x10n\x12\x16\n\x12\x41SANA_ACCESS_TOKEN\x10V\x12\x1c\n\x18\x43ONFLUENCE_CLOUD_API_KEY\x10W\x12\x1e\n\x19\x43ONFLUENCE_CLOUD_SITE_URL\x10\x8b\x01\x12-\n(CONFLUENCE_CLOUD_ATLASSIAN_ACCOUNT_EMAIL\x10\x8c\x01\x12\x12\n\x0eNOTION_API_KEY\x10X\x12\x18\n\x14\x44RD_PROXY_AGENT_HOST\x10Y\x12\x1d\n\x19\x44RD_PROXY_AGENT_API_TOKEN\x10Z\x12\x1b\n\x17\x44RD_PROXY_AGENT_API_KEY\x10[\x12\x1d\n\x19MONGODB_CONNECTION_STRING\x10\\\x12\x18\n\x14OPEN_SEARCH_PROTOCOL\x10^\x12\x14\n\x10OPEN_SEARCH_HOST\x10_\x12\x14\n\x10OPEN_SEARCH_PORT\x10`\x12\x18\n\x14OPEN_SEARCH_USERNAME\x10\x61\x12\x18\n\x14OPEN_SEARCH_PASSWORD\x10\x62\x12\x12\n\x0eLINEAR_API_KEY\x10\x63\x12\x0f\n\x0bJENKINS_URL\x10\x64\x12\x14\n\x10JENKINS_USERNAME\x10\x65\x12\x15\n\x11JENKINS_API_TOKEN\x10\x66\x12\x11\n\rJENKINS_CRUMB\x10q\x12\x18\n\x14GITHUB_ACTIONS_TOKEN\x10g\x12 \n\x1c\x43USTOM_STRATEGIES_ACCOUNT_ID\x10h\x12\x11\n\rARGOCD_SERVER\x10j\x12\x10\n\x0c\x41RGOCD_TOKEN\x10k\x12\x18\n\x14ROLLBAR_ACCESS_TOKEN\x10l\x12\x13\n\x0fPOSTHOG_API_KEY\x10y\x12\x14\n\x10POSTHOG_APP_HOST\x10z\x12\x16\n\x12POSTHOG_PROJECT_ID\x10{\x12&\n!MIXPANEL_SERVICE_ACCOUNT_USERNAME\x10\x83\x01\x12$\n\x1fMIXPANEL_SERVICE_ACCOUNT_SECRET\x10\x84\x01\x12\x14\n\x0fMIXPANEL_DOMAIN\x10\x85\x01\x12\x18\n\x13MIXPANEL_PROJECT_ID\x10\x86\x01\x12\x1a\n\x15MIXPANEL_WORKSPACE_ID\x10\x87\x01\x12\x13\n\x0eSIGNOZ_API_URL\x10\x88\x01\x12\x15\n\x10SIGNOZ_API_TOKEN\x10\x89\x01\x12\x10\n\x0bKIBANA_HOST\x10\x8a\x01\x12\x18\n\x13\x42ITBUCKET_WORKSPACE\x10\x90\x01\x12\x16\n\x11\x42ITBUCKET_API_KEY\x10\x91\x01\x12\x13\n\x0e\x42ITBUCKET_REPO\x10\x92\x01\x12\x13\n\x0eRENDER_API_KEY\x10\x93\x01\x12\x16\n\x11\x43ORALOGIX_API_KEY\x10\x94\x01\x12\x17\n\x12\x43ORALOGIX_ENDPOINT\x10\x95\x01\x12\x15\n\x10\x43ORALOGIX_DOMAIN\x10\x98\x01\x12\x18\n\x13MCP_SERVER_BASE_URL\x10\x96\x01\x12\x1c\n\x17MCP_SERVER_AUTH_HEADERS\x10\x97\x01\x12\x1f\n\x1aMCP_SERVER_PASS_USER_EMAIL\x10\xa4\x01\x12\x1b\n\x16VICTORIA_LOGS_PROTOCOL\x10\x9a\x01\x12\x17\n\x12VICTORIA_LOGS_HOST\x10\x9b\x01\x12\x17\n\x12VICTORIA_LOGS_PORT\x10\x9c\x01\x12\x1a\n\x15VICTORIA_LOGS_HEADERS\x10\x9d\x01\x12\x12\n\rGITHUB_APP_ID\x10\x9e\x01\x12\x1b\n\x16GITHUB_APP_PRIVATE_KEY\x10\x9f\x01\x12\x1f\n\x1aGITHUB_APP_INSTALLATION_ID\x10\xa0\x01\x12\x1c\n\x17GITHUB_APP_ACCESS_TOKEN\x10\xa1\x01\x12\x11\n\x0cMETABASE_URL\x10\xa2\x01\x12\x15\n\x10METABASE_API_KEY\x10\xa3\x01\x12\x14\n\x0f\x44\x41TABRICKS_HOST\x10\xa6\x01\x12\x15\n\x10\x44\x41TABRICKS_TOKEN\x10\xa7\x01\x12\x13\n\x0eGITHUB_API_URL\x10\xa8\x01*\xc4\"\n\x0fSourceModelType\x12\x0e\n\nUNKNOWN_MT\x10\x00\x12\x14\n\x10NEW_RELIC_POLICY\x10\x01\x12\x17\n\x13NEW_RELIC_CONDITION\x10\x02\x12\x14\n\x10NEW_RELIC_ENTITY\x10\x03\x12\x1e\n\x1aNEW_RELIC_ENTITY_DASHBOARD\x10\x04\x12 \n\x1cNEW_RELIC_ENTITY_APPLICATION\x10\x05\x12\x12\n\x0eNEW_RELIC_NRQL\x10\x06\x12!\n\x1dNEW_RELIC_ENTITY_DASHBOARD_V2\x10\x07\x12\x13\n\x0f\x44\x41TADOG_MONITOR\x10\x65\x12\x15\n\x11\x44\x41TADOG_DASHBOARD\x10\x66\x12 \n\x1c\x44\x41TADOG_LIVE_INTEGRATION_AWS\x10g\x12$\n DATADOG_LIVE_INTEGRATION_AWS_LOG\x10h\x12\"\n\x1e\x44\x41TADOG_LIVE_INTEGRATION_AZURE\x10i\x12\'\n#DATADOG_LIVE_INTEGRATION_CLOUDFLARE\x10j\x12#\n\x1f\x44\x41TADOG_LIVE_INTEGRATION_FASTLY\x10k\x12 \n\x1c\x44\x41TADOG_LIVE_INTEGRATION_GCP\x10l\x12&\n\"DATADOG_LIVE_INTEGRATION_CONFLUENT\x10m\x12\x13\n\x0f\x44\x41TADOG_SERVICE\x10n\x12\x12\n\x0e\x44\x41TADOG_METRIC\x10o\x12\x11\n\rDATADOG_QUERY\x10p\x12\x0f\n\x0b\x44\x41TADOG_APM\x10q\x12\x12\n\x0e\x44\x41TADOG_FIELDS\x10r\x12\x16\n\x11\x43LOUDWATCH_METRIC\x10\xc9\x01\x12\x19\n\x14\x43LOUDWATCH_LOG_GROUP\x10\xca\x01\x12\x1f\n\x1a\x43LOUDWATCH_LOG_GROUP_QUERY\x10\xcb\x01\x12\x16\n\x11\x43LOUDWATCH_ALARMS\x10\xcc\x01\x12\x12\n\rRDS_INSTANCES\x10\xcd\x01\x12\x19\n\x14\x43LOUDWATCH_DASHBOARD\x10\xce\x01\x12\x16\n\x11\x43ODEBUILD_PROJECT\x10\xcf\x01\x12\x17\n\x12GRAFANA_DATASOURCE\x10\xad\x02\x12\x16\n\x11GRAFANA_DASHBOARD\x10\xae\x02\x12!\n\x1cGRAFANA_TARGET_METRIC_PROMQL\x10\xaf\x02\x12\"\n\x1dGRAFANA_PROMETHEUS_DATASOURCE\x10\xb0\x02\x12\x17\n\x12GRAFANA_ALERT_RULE\x10\xb1\x02\x12\x1c\n\x17GRAFANA_LOKI_DATASOURCE\x10\xb2\x02\x12\x1d\n\x18GRAFANA_TEMPO_DATASOURCE\x10\xb3\x02\x12\x1a\n\x15GRAFANA_TEMPO_SERVICE\x10\xb4\x02\x12\x18\n\x13\x43LICKHOUSE_DATABASE\x10\x91\x03\x12\x15\n\x10\x43LICKHOUSE_TABLE\x10\x92\x03\x12\x12\n\rSLACK_CHANNEL\x10\xf5\x03\x12\r\n\x08MARKDOWN\x10\xd9\x04\x12\x0b\n\x06IFRAME\x10\xda\x04\x12\x13\n\x0ePOSTGRES_QUERY\x10\xbd\x05\x12\x13\n\x0ePOSTGRES_TABLE\x10\xbe\x05\x12\x10\n\x0b\x45KS_CLUSTER\x10\xa1\x06\x12\x12\n\rEKS_NAMESPACE\x10\xa2\x06\x12\x10\n\x0b\x45KS_SERVICE\x10\xa3\x06\x12\x13\n\x0e\x45KS_DEPLOYMENT\x10\xa4\x06\x12\x10\n\x0b\x45KS_INGRESS\x10\xa5\x06\x12\x17\n\x12\x45KS_NETWORK_POLICY\x10\xa6\x06\x12\x0c\n\x07\x45KS_HPA\x10\xa7\x06\x12\x13\n\x0e\x45KS_REPLICASET\x10\xa8\x06\x12\x14\n\x0f\x45KS_STATEFULSET\x10\xa9\x06\x12&\n!SQL_DATABASE_CONNECTION_RAW_QUERY\x10\x85\x07\x12\x17\n\x12SQL_DATABASE_TABLE\x10\x86\x07\x12\x14\n\x0f\x41ZURE_WORKSPACE\x10\xe9\x07\x12\x13\n\x0e\x41ZURE_RESOURCE\x10\xea\x07\x12\x16\n\x11\x41ZURE_AKS_CLUSTER\x10\xeb\x07\x12\x18\n\x13\x41ZURE_AKS_NAMESPACE\x10\xec\x07\x12\x19\n\x14\x41ZURE_AKS_DEPLOYMENT\x10\xed\x07\x12\x16\n\x11\x41ZURE_AKS_SERVICE\x10\xee\x07\x12\x16\n\x11\x41ZURE_AKS_INGRESS\x10\xef\x07\x12\x1d\n\x18\x41ZURE_AKS_NETWORK_POLICY\x10\xf0\x07\x12\x12\n\rAZURE_AKS_HPA\x10\xf1\x07\x12\x19\n\x14\x41ZURE_AKS_REPLICASET\x10\xf2\x07\x12\x1a\n\x15\x41ZURE_AKS_STATEFULSET\x10\xf3\x07\x12\x1a\n\x15\x41ZURE_VIRTUAL_MACHINE\x10\xf4\x07\x12\x0f\n\nAZURE_VMSS\x10\xf5\x07\x12\x1a\n\x15\x41ZURE_STORAGE_ACCOUNT\x10\xf6\x07\x12\x19\n\x14\x41ZURE_BLOB_CONTAINER\x10\xf7\x07\x12\x15\n\x10\x41ZURE_SQL_SERVER\x10\xf8\x07\x12\x17\n\x12\x41ZURE_SQL_DATABASE\x10\xf9\x07\x12\x19\n\x14\x41ZURE_COSMOS_ACCOUNT\x10\xfa\x07\x12\x1a\n\x15\x41ZURE_POSTGRES_SERVER\x10\xfb\x07\x12\x1c\n\x17\x41ZURE_POSTGRES_DATABASE\x10\xfc\x07\x12\x17\n\x12\x41ZURE_METRIC_ALERT\x10\xfd\x07\x12\x17\n\x12\x41ZURE_ACTION_GROUP\x10\xfe\x07\x12\x19\n\x14\x41ZURE_RESOURCE_GROUP\x10\xff\x07\x12\x16\n\x11\x41ZURE_REDIS_CACHE\x10\x80\x08\x12\x0f\n\nSSH_SERVER\x10\xcc\x08\x12\r\n\x08SSH_USER\x10\xcd\x08\x12\x19\n\x14GRAFANA_MIMIR_PROMQL\x10\xb1\t\x12\x10\n\x0bGKE_CLUSTER\x10\x95\n\x12\x12\n\rGKE_NAMESPACE\x10\x96\n\x12\x10\n\x0bGKE_SERVICE\x10\x97\n\x12\x13\n\x0eGKE_DEPLOYMENT\x10\x98\n\x12\x10\n\x0bGKE_INGRESS\x10\x99\n\x12\x17\n\x12GKE_NETWORK_POLICY\x10\x9a\n\x12\x0c\n\x07GKE_HPA\x10\x9b\n\x12\x13\n\x0eGKE_REPLICASET\x10\x9c\n\x12\x14\n\x0fGKE_STATEFULSET\x10\x9d\n\x12\x19\n\x14GCP_COMPUTE_INSTANCE\x10\x9e\n\x12\x17\n\x12GCP_INSTANCE_GROUP\x10\x9f\n\x12\x17\n\x12GCP_STORAGE_BUCKET\x10\xa0\n\x12\x1b\n\x16GCP_CLOUD_SQL_INSTANCE\x10\xa1\n\x12\x1b\n\x16GCP_CLOUD_SQL_DATABASE\x10\xa2\n\x12\x1a\n\x15GCP_MEMORYSTORE_REDIS\x10\xa3\n\x12\x15\n\x10GCP_ALERT_POLICY\x10\xa4\n\x12\x1d\n\x18GCP_NOTIFICATION_CHANNEL\x10\xa5\n\x12\x17\n\x12GCP_CLOUD_FUNCTION\x10\xa6\n\x12\x1a\n\x15GCP_CLOUD_RUN_SERVICE\x10\xa7\n\x12\x15\n\x10GCP_PUBSUB_TOPIC\x10\xa8\n\x12\x1c\n\x17GCP_PUBSUB_SUBSCRIPTION\x10\xa9\n\x12\x19\n\x14GCP_BIGQUERY_DATASET\x10\xaa\n\x12\x17\n\x12GCP_BIGQUERY_TABLE\x10\xab\n\x12\x14\n\x0fGCP_VPC_NETWORK\x10\xac\n\x12\x13\n\x0eGCP_SUBNETWORK\x10\xad\n\x12\x16\n\x11GCP_FIREWALL_RULE\x10\xae\n\x12\x16\n\x11GCP_LOAD_BALANCER\x10\xaf\n\x12\x0f\n\nGCP_SECRET\x10\xb0\n\x12\x18\n\x13GCP_SERVICE_ACCOUNT\x10\xb1\n\x12\x11\n\x0cGCP_LOG_SINK\x10\xb2\n\x12\x13\n\x0eGCP_LOG_METRIC\x10\xb3\n\x12\x15\n\x10MS_TEAMS_CHANNEL\x10\xf9\n\x12\x17\n\x12PAGERDUTY_INCIDENT\x10\xdd\x0b\x12\x19\n\x14\x45LASTIC_SEARCH_INDEX\x10\xc1\x0c\x12\x1c\n\x17\x45LASTIC_SEARCH_SERVICES\x10\xc2\x0c\x12\x1e\n\x19\x45LASTIC_SEARCH_DASHBOARDS\x10\xc3\x0c\x12\"\n\x1d\x45LASTIC_SEARCH_INDEX_PATTERNS\x10\xc4\x0c\x12\x0f\n\nGCM_METRIC\x10\xa5\r\x12\x12\n\rGCM_DASHBOARD\x10\xa6\r\x12$\n\x1fGCM_CLOUD_RUN_SERVICE_DASHBOARD\x10\xa7\r\x12\x15\n\x10ZENDUTY_INCIDENT\x10\x89\x0e\x12\x14\n\x0fROOTLY_INCIDENT\x10\xed\x0e\x12\x19\n\x14OPS_GENIE_ESCALATION\x10\xd1\x0f\x12\x13\n\x0eOPS_GENIE_TEAM\x10\xd2\x0f\x12\x16\n\x11GOOGLE_CHAT_SPACE\x10\xb5\x10\x12\x15\n\x10MONGODB_DATABASE\x10\x99\x11\x12\x17\n\x12MONGODB_COLLECTION\x10\x9a\x11\x12\x16\n\x11OPEN_SEARCH_INDEX\x10\xfd\x11\x12\x12\n\rASANA_PROJECT\x10\xe1\x12\x12\x12\n\rMODELS_ACTIVE\x10\xc5\x13\x12\x16\n\x11GITHUB_REPOSITORY\x10\xa9\x14\x12\x12\n\rGITHUB_MEMBER\x10\xaa\x14\x12\x11\n\x0cJIRA_PROJECT\x10\x8d\x15\x12\x0e\n\tJIRA_USER\x10\x8e\x15\x12\x10\n\x0b\x41RGOCD_APPS\x10\xf1\x15\x12\x11\n\x0cJENKINS_JOBS\x10\xd5\x16\x12\x13\n\x0ePOSTHOG_PERSON\x10\xb9\x17\x12\x12\n\rPOSTHOG_GROUP\x10\xba\x17\x12\x13\n\x0ePOSTHOG_COHORT\x10\xbb\x17\x12\x15\n\x10POSTHOG_PROPERTY\x10\xbc\x17\x12\x16\n\x11POSTHOG_DASHBOARD\x10\xbd\x17\x12\x14\n\x0fPOSTHOG_PROJECT\x10\xbe\x17\x12\x10\n\x0b\x45\x43S_CLUSTER\x10\xa1\x1f\x12\r\n\x08\x45\x43S_TASK\x10\xa2\x1f\x12\x10\n\x0b\x45\x43S_SERVICE\x10\xa3\x1f\x12\x15\n\x10SIGNOZ_DASHBOARD\x10\x89\'\x12\x11\n\x0cSIGNOZ_ALERT\x10\x8a\'\x12\x12\n\rSIGNOZ_METRIC\x10\x8b\'\x12\x13\n\x0eSIGNOZ_SERVICE\x10\x8c\'\x12\x1a\n\x15SIGNOZ_LOG_ATTRIBUTES\x10\x8d\'\x12\x1d\n\x18SIGNOZ_CLICKHOUSE_SCHEMA\x10\x8e\'\x12\x19\n\x14KUBERNETES_NAMESPACE\x10\xf1.\x12\x17\n\x12KUBERNETES_SERVICE\x10\xf2.\x12\x1a\n\x15KUBERNETES_DEPLOYMENT\x10\xf3.\x12\x17\n\x12KUBERNETES_INGRESS\x10\xf4.\x12\x1e\n\x19KUBERNETES_NETWORK_POLICY\x10\xf5.\x12\x13\n\x0eKUBERNETES_HPA\x10\xf6.\x12\x1a\n\x15KUBERNETES_REPLICASET\x10\xf7.\x12\x1b\n\x16KUBERNETES_STATEFULSET\x10\xf8.\x12\x1b\n\x16KUBERNETES_NETWORK_MAP\x10\xf9.\x12\x13\n\x0eSENTRY_PROJECT\x10\xd9\x36\x12\x18\n\x13\x43ORALOGIX_DASHBOARD\x10\xc1>\x12\x1c\n\x17\x43ORALOGIX_INDEX_MAPPING\x10\xc2>\x12\x16\n\x11\x43ORALOGIX_SERVICE\x10\xc3>\x12\x1a\n\x15\x43ORALOGIX_APM_SERVICE\x10\xc4>\x12\x18\n\x13VICTORIA_LOGS_FIELD\x10\xa9\x46\x12\x0e\n\tMCP_TOOLS\x10\x8dG\x12\x0f\n\nMCP_ASSETS\x10\x8eG\x12\x11\n\x0cLINEAR_TEAMS\x10\xf1G\x12\x11\n\x0cLINEAR_USERS\x10\xf2G\x12\x14\n\x0fLINEAR_PROJECTS\x10\xf3G\x12\x17\n\x12METABASE_DASHBOARD\x10\xd5H\x12\x12\n\rMETABASE_CARD\x10\xd6H\x12\x16\n\x11METABASE_DATABASE\x10\xd7H\x12\x18\n\x13METABASE_COLLECTION\x10\xd8H\x12\x1a\n\x15METABASE_SUBSCRIPTION\x10\xd9H\x12\x13\n\x0e\x44\x41TABRICKS_JOB\x10\xb9I\x12\x17\n\x12\x44\x41TABRICKS_CLUSTER\x10\xbaI\x12\x1d\n\x18\x44\x41TABRICKS_SQL_WAREHOUSE\x10\xbbI*\xac\x02\n\x07\x43ontext\x12\r\n\tUNKNOWN_C\x10\x00\x12\t\n\x05\x45VENT\x10\x01\x12\x17\n\x13MONITOR_TRANSACTION\x10\x02\x12\x13\n\x0f\x45NTITY_INSTANCE\x10\x03\x12\x0e\n\nEVENT_TYPE\x10\x04\x12\x0b\n\x07MONITOR\x10\x05\x12\n\n\x06\x45NTITY\x10\x06\x12\x15\n\x11\x45VENTS_CLICKHOUSE\x10\x07\x12\x0e\n\nPANEL_NAME\x10\x08\x12\x12\n\x0e\x44\x41SHBOARD_NAME\x10\t\x12\x1f\n\x1b\x45VENTS_ALERT_OPS_CLICKHOUSE\x10\n\x12\x0f\n\x0bSLACK_ALERT\x10\x0b\x12\x1e\n\x1a\x45VENTS_PRODIGAL_CLICKHOUSE\x10\x0c\x12\r\n\tALERT_OPS\x10\r\x12\x14\n\x10\x41LERT_MIDDLEWARE\x10\x0e*\x92\x02\n\x12RecentArtifactType\x12\x0e\n\nRA_UNKNOWN\x10\x00\x12\x12\n\x0eRA_GITHUB_REPO\x10\x01\x12\x14\n\x10RA_GITHUB_COMMIT\x10\x02\x12\x10\n\x0cRA_GITHUB_PR\x10\x03\x12\x15\n\x11RA_GITHUB_RELEASE\x10\x04\x12\x12\n\x0eRA_GITLAB_REPO\x10\x65\x12\x14\n\x10RA_GITLAB_COMMIT\x10\x66\x12\x10\n\x0cRA_GITLAB_MR\x10g\x12\x15\n\x11RA_GITLAB_RELEASE\x10h\x12\x16\n\x11RA_BITBUCKET_REPO\x10\xc9\x01\x12\x18\n\x13RA_BITBUCKET_COMMIT\x10\xca\x01\x12\x14\n\x0fRA_BITBUCKET_PR\x10\xcb\x01\x62\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -45,11 +45,11 @@ _globals['_SOURCEKEYTYPE']._serialized_start=4123 _globals['_SOURCEKEYTYPE']._serialized_end=7924 _globals['_SOURCEMODELTYPE']._serialized_start=7927 - _globals['_SOURCEMODELTYPE']._serialized_end=12319 - _globals['_CONTEXT']._serialized_start=12322 - _globals['_CONTEXT']._serialized_end=12622 - _globals['_RECENTARTIFACTTYPE']._serialized_start=12625 - _globals['_RECENTARTIFACTTYPE']._serialized_end=12899 + _globals['_SOURCEMODELTYPE']._serialized_end=12347 + _globals['_CONTEXT']._serialized_start=12350 + _globals['_CONTEXT']._serialized_end=12650 + _globals['_RECENTARTIFACTTYPE']._serialized_start=12653 + _globals['_RECENTARTIFACTTYPE']._serialized_end=12927 _globals['_TIMERANGE']._serialized_start=71 _globals['_TIMERANGE']._serialized_end=117 _globals['_PAGE']._serialized_start=119 diff --git a/drdroid_debug_toolkit/core/protos/base_pb2.pyi b/drdroid_debug_toolkit/core/protos/base_pb2.pyi index 99e6598..e67f83e 100644 --- a/drdroid_debug_toolkit/core/protos/base_pb2.pyi +++ b/drdroid_debug_toolkit/core/protos/base_pb2.pyi @@ -854,6 +854,7 @@ class _SourceModelTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper """Coralogix Models""" CORALOGIX_INDEX_MAPPING: _SourceModelType.ValueType # 8002 CORALOGIX_SERVICE: _SourceModelType.ValueType # 8003 + CORALOGIX_APM_SERVICE: _SourceModelType.ValueType # 8004 VICTORIA_LOGS_FIELD: _SourceModelType.ValueType # 9001 """VictoriaLogs Models""" MCP_TOOLS: _SourceModelType.ValueType # 9101 @@ -1085,6 +1086,7 @@ CORALOGIX_DASHBOARD: SourceModelType.ValueType # 8001 """Coralogix Models""" CORALOGIX_INDEX_MAPPING: SourceModelType.ValueType # 8002 CORALOGIX_SERVICE: SourceModelType.ValueType # 8003 +CORALOGIX_APM_SERVICE: SourceModelType.ValueType # 8004 VICTORIA_LOGS_FIELD: SourceModelType.ValueType # 9001 """VictoriaLogs Models""" MCP_TOOLS: SourceModelType.ValueType # 9101 diff --git a/drdroid_debug_toolkit/core/protos/playbooks/source_task_definitions/coralogix_task.proto b/drdroid_debug_toolkit/core/protos/playbooks/source_task_definitions/coralogix_task.proto index a2c45e5..e69cbf5 100644 --- a/drdroid_debug_toolkit/core/protos/playbooks/source_task_definitions/coralogix_task.proto +++ b/drdroid_debug_toolkit/core/protos/playbooks/source_task_definitions/coralogix_task.proto @@ -36,6 +36,19 @@ message Coralogix { message FetchAlertDefsTask { } + message FetchSpansTask { + google.protobuf.StringValue query = 1; + google.protobuf.StringValue from_time = 2; + google.protobuf.StringValue to_time = 3; + google.protobuf.UInt64Value limit = 4; + } + + message FetchTraceTask { + google.protobuf.StringValue trace_id = 1; + google.protobuf.StringValue from_time = 2; + google.protobuf.StringValue to_time = 3; + } + enum TaskType { UNKNOWN = 0; FETCH_LOGS = 1; @@ -44,6 +57,8 @@ message Coralogix { FETCH_DASHBOARD_VARIABLES = 4; FETCH_INDEX_MAPPINGS = 5; FETCH_ALERT_DEFS = 6; + FETCH_SPANS = 7; + FETCH_TRACE = 8; } TaskType type = 1; @@ -54,5 +69,7 @@ message Coralogix { FetchDashboardVariablesTask fetch_dashboard_variables = 5; FetchIndexMappingsTask fetch_index_mappings = 6; FetchAlertDefsTask fetch_alert_defs = 7; + FetchSpansTask fetch_spans = 8; + FetchTraceTask fetch_trace = 9; } } \ No newline at end of file diff --git a/drdroid_debug_toolkit/core/protos/playbooks/source_task_definitions/coralogix_task_pb2.py b/drdroid_debug_toolkit/core/protos/playbooks/source_task_definitions/coralogix_task_pb2.py index a156c70..16455c5 100644 --- a/drdroid_debug_toolkit/core/protos/playbooks/source_task_definitions/coralogix_task_pb2.py +++ b/drdroid_debug_toolkit/core/protos/playbooks/source_task_definitions/coralogix_task_pb2.py @@ -25,7 +25,7 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\nBcore/protos/playbooks/source_task_definitions/coralogix_task.proto\x12\x15\x63ore.protos.playbooks\x1a\x1egoogle/protobuf/wrappers.proto\"\xaf\x0c\n\tCoralogix\x12\x37\n\x04type\x18\x01 \x01(\x0e\x32).core.protos.playbooks.Coralogix.TaskType\x12\x44\n\nfetch_logs\x18\x02 \x01(\x0b\x32..core.protos.playbooks.Coralogix.FetchLogsTaskH\x00\x12J\n\rfetch_metrics\x18\x03 \x01(\x0b\x32\x31.core.protos.playbooks.Coralogix.FetchMetricsTaskH\x00\x12]\n\x17\x66\x65tch_dashboard_widgets\x18\x04 \x01(\x0b\x32:.core.protos.playbooks.Coralogix.FetchDashboardWidgetsTaskH\x00\x12\x61\n\x19\x66\x65tch_dashboard_variables\x18\x05 \x01(\x0b\x32<.core.protos.playbooks.Coralogix.FetchDashboardVariablesTaskH\x00\x12W\n\x14\x66\x65tch_index_mappings\x18\x06 \x01(\x0b\x32\x37.core.protos.playbooks.Coralogix.FetchIndexMappingsTaskH\x00\x12O\n\x10\x66\x65tch_alert_defs\x18\x07 \x01(\x0b\x32\x33.core.protos.playbooks.Coralogix.FetchAlertDefsTaskH\x00\x1a\xc9\x01\n\rFetchLogsTask\x12+\n\x05query\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\tfrom_time\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x07to_time\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x05limit\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x1a\xe7\x01\n\x19\x46\x65tchDashboardWidgetsTask\x12\x32\n\x0c\x64\x61shboard_id\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x30\n\nwidget_ids\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12*\n\x04step\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12\x38\n\x12template_variables\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x1aQ\n\x1b\x46\x65tchDashboardVariablesTask\x12\x32\n\x0c\x64\x61shboard_id\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x1a\xcb\x01\n\x10\x46\x65tchMetricsTask\x12+\n\x05query\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\tfrom_time\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x07to_time\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12*\n\x04step\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x1aM\n\x16\x46\x65tchIndexMappingsTask\x12\x33\n\rindex_pattern\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x1a\x14\n\x12\x46\x65tchAlertDefsTask\"\xa6\x01\n\x08TaskType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0e\n\nFETCH_LOGS\x10\x01\x12\x11\n\rFETCH_METRICS\x10\x02\x12\x1b\n\x17\x46\x45TCH_DASHBOARD_WIDGETS\x10\x03\x12\x1d\n\x19\x46\x45TCH_DASHBOARD_VARIABLES\x10\x04\x12\x18\n\x14\x46\x45TCH_INDEX_MAPPINGS\x10\x05\x12\x14\n\x10\x46\x45TCH_ALERT_DEFS\x10\x06\x42\x06\n\x04taskb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\nBcore/protos/playbooks/source_task_definitions/coralogix_task.proto\x12\x15\x63ore.protos.playbooks\x1a\x1egoogle/protobuf/wrappers.proto\"\xd1\x10\n\tCoralogix\x12\x37\n\x04type\x18\x01 \x01(\x0e\x32).core.protos.playbooks.Coralogix.TaskType\x12\x44\n\nfetch_logs\x18\x02 \x01(\x0b\x32..core.protos.playbooks.Coralogix.FetchLogsTaskH\x00\x12J\n\rfetch_metrics\x18\x03 \x01(\x0b\x32\x31.core.protos.playbooks.Coralogix.FetchMetricsTaskH\x00\x12]\n\x17\x66\x65tch_dashboard_widgets\x18\x04 \x01(\x0b\x32:.core.protos.playbooks.Coralogix.FetchDashboardWidgetsTaskH\x00\x12\x61\n\x19\x66\x65tch_dashboard_variables\x18\x05 \x01(\x0b\x32<.core.protos.playbooks.Coralogix.FetchDashboardVariablesTaskH\x00\x12W\n\x14\x66\x65tch_index_mappings\x18\x06 \x01(\x0b\x32\x37.core.protos.playbooks.Coralogix.FetchIndexMappingsTaskH\x00\x12O\n\x10\x66\x65tch_alert_defs\x18\x07 \x01(\x0b\x32\x33.core.protos.playbooks.Coralogix.FetchAlertDefsTaskH\x00\x12\x46\n\x0b\x66\x65tch_spans\x18\x08 \x01(\x0b\x32/.core.protos.playbooks.Coralogix.FetchSpansTaskH\x00\x12\x46\n\x0b\x66\x65tch_trace\x18\t \x01(\x0b\x32/.core.protos.playbooks.Coralogix.FetchTraceTaskH\x00\x1a\xc9\x01\n\rFetchLogsTask\x12+\n\x05query\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\tfrom_time\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x07to_time\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x05limit\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x1a\xe7\x01\n\x19\x46\x65tchDashboardWidgetsTask\x12\x32\n\x0c\x64\x61shboard_id\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x30\n\nwidget_ids\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12*\n\x04step\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12\x38\n\x12template_variables\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x1aQ\n\x1b\x46\x65tchDashboardVariablesTask\x12\x32\n\x0c\x64\x61shboard_id\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x1a\xcb\x01\n\x10\x46\x65tchMetricsTask\x12+\n\x05query\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\tfrom_time\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x07to_time\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12*\n\x04step\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x1aM\n\x16\x46\x65tchIndexMappingsTask\x12\x33\n\rindex_pattern\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x1a\x14\n\x12\x46\x65tchAlertDefsTask\x1a\xca\x01\n\x0e\x46\x65tchSpansTask\x12+\n\x05query\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\tfrom_time\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x07to_time\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12+\n\x05limit\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x1a\xa0\x01\n\x0e\x46\x65tchTraceTask\x12.\n\x08trace_id\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12/\n\tfrom_time\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12-\n\x07to_time\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\"\xc8\x01\n\x08TaskType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0e\n\nFETCH_LOGS\x10\x01\x12\x11\n\rFETCH_METRICS\x10\x02\x12\x1b\n\x17\x46\x45TCH_DASHBOARD_WIDGETS\x10\x03\x12\x1d\n\x19\x46\x45TCH_DASHBOARD_VARIABLES\x10\x04\x12\x18\n\x14\x46\x45TCH_INDEX_MAPPINGS\x10\x05\x12\x14\n\x10\x46\x45TCH_ALERT_DEFS\x10\x06\x12\x0f\n\x0b\x46\x45TCH_SPANS\x10\x07\x12\x0f\n\x0b\x46\x45TCH_TRACE\x10\x08\x42\x06\n\x04taskb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -33,19 +33,23 @@ if not _descriptor._USE_C_DESCRIPTORS: DESCRIPTOR._loaded_options = None _globals['_CORALOGIX']._serialized_start=126 - _globals['_CORALOGIX']._serialized_end=1709 - _globals['_CORALOGIX_FETCHLOGSTASK']._serialized_start=707 - _globals['_CORALOGIX_FETCHLOGSTASK']._serialized_end=908 - _globals['_CORALOGIX_FETCHDASHBOARDWIDGETSTASK']._serialized_start=911 - _globals['_CORALOGIX_FETCHDASHBOARDWIDGETSTASK']._serialized_end=1142 - _globals['_CORALOGIX_FETCHDASHBOARDVARIABLESTASK']._serialized_start=1144 - _globals['_CORALOGIX_FETCHDASHBOARDVARIABLESTASK']._serialized_end=1225 - _globals['_CORALOGIX_FETCHMETRICSTASK']._serialized_start=1228 - _globals['_CORALOGIX_FETCHMETRICSTASK']._serialized_end=1431 - _globals['_CORALOGIX_FETCHINDEXMAPPINGSTASK']._serialized_start=1433 - _globals['_CORALOGIX_FETCHINDEXMAPPINGSTASK']._serialized_end=1510 - _globals['_CORALOGIX_FETCHALERTDEFSTASK']._serialized_start=1512 - _globals['_CORALOGIX_FETCHALERTDEFSTASK']._serialized_end=1532 - _globals['_CORALOGIX_TASKTYPE']._serialized_start=1535 - _globals['_CORALOGIX_TASKTYPE']._serialized_end=1701 + _globals['_CORALOGIX']._serialized_end=2255 + _globals['_CORALOGIX_FETCHLOGSTASK']._serialized_start=851 + _globals['_CORALOGIX_FETCHLOGSTASK']._serialized_end=1052 + _globals['_CORALOGIX_FETCHDASHBOARDWIDGETSTASK']._serialized_start=1055 + _globals['_CORALOGIX_FETCHDASHBOARDWIDGETSTASK']._serialized_end=1286 + _globals['_CORALOGIX_FETCHDASHBOARDVARIABLESTASK']._serialized_start=1288 + _globals['_CORALOGIX_FETCHDASHBOARDVARIABLESTASK']._serialized_end=1369 + _globals['_CORALOGIX_FETCHMETRICSTASK']._serialized_start=1372 + _globals['_CORALOGIX_FETCHMETRICSTASK']._serialized_end=1575 + _globals['_CORALOGIX_FETCHINDEXMAPPINGSTASK']._serialized_start=1577 + _globals['_CORALOGIX_FETCHINDEXMAPPINGSTASK']._serialized_end=1654 + _globals['_CORALOGIX_FETCHALERTDEFSTASK']._serialized_start=1656 + _globals['_CORALOGIX_FETCHALERTDEFSTASK']._serialized_end=1676 + _globals['_CORALOGIX_FETCHSPANSTASK']._serialized_start=1679 + _globals['_CORALOGIX_FETCHSPANSTASK']._serialized_end=1881 + _globals['_CORALOGIX_FETCHTRACETASK']._serialized_start=1884 + _globals['_CORALOGIX_FETCHTRACETASK']._serialized_end=2044 + _globals['_CORALOGIX_TASKTYPE']._serialized_start=2047 + _globals['_CORALOGIX_TASKTYPE']._serialized_end=2247 # @@protoc_insertion_point(module_scope) diff --git a/drdroid_debug_toolkit/core/protos/playbooks/source_task_definitions/coralogix_task_pb2.pyi b/drdroid_debug_toolkit/core/protos/playbooks/source_task_definitions/coralogix_task_pb2.pyi index aa70b4f..f7c2ce5 100644 --- a/drdroid_debug_toolkit/core/protos/playbooks/source_task_definitions/coralogix_task_pb2.pyi +++ b/drdroid_debug_toolkit/core/protos/playbooks/source_task_definitions/coralogix_task_pb2.pyi @@ -34,6 +34,8 @@ class Coralogix(google.protobuf.message.Message): FETCH_DASHBOARD_VARIABLES: Coralogix._TaskType.ValueType # 4 FETCH_INDEX_MAPPINGS: Coralogix._TaskType.ValueType # 5 FETCH_ALERT_DEFS: Coralogix._TaskType.ValueType # 6 + FETCH_SPANS: Coralogix._TaskType.ValueType # 7 + FETCH_TRACE: Coralogix._TaskType.ValueType # 8 class TaskType(_TaskType, metaclass=_TaskTypeEnumTypeWrapper): ... UNKNOWN: Coralogix.TaskType.ValueType # 0 @@ -43,6 +45,8 @@ class Coralogix(google.protobuf.message.Message): FETCH_DASHBOARD_VARIABLES: Coralogix.TaskType.ValueType # 4 FETCH_INDEX_MAPPINGS: Coralogix.TaskType.ValueType # 5 FETCH_ALERT_DEFS: Coralogix.TaskType.ValueType # 6 + FETCH_SPANS: Coralogix.TaskType.ValueType # 7 + FETCH_TRACE: Coralogix.TaskType.ValueType # 8 @typing_extensions.final class FetchLogsTask(google.protobuf.message.Message): @@ -165,6 +169,56 @@ class Coralogix(google.protobuf.message.Message): self, ) -> None: ... + @typing_extensions.final + class FetchSpansTask(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + QUERY_FIELD_NUMBER: builtins.int + FROM_TIME_FIELD_NUMBER: builtins.int + TO_TIME_FIELD_NUMBER: builtins.int + LIMIT_FIELD_NUMBER: builtins.int + @property + def query(self) -> google.protobuf.wrappers_pb2.StringValue: ... + @property + def from_time(self) -> google.protobuf.wrappers_pb2.StringValue: ... + @property + def to_time(self) -> google.protobuf.wrappers_pb2.StringValue: ... + @property + def limit(self) -> google.protobuf.wrappers_pb2.UInt64Value: ... + def __init__( + self, + *, + query: google.protobuf.wrappers_pb2.StringValue | None = ..., + from_time: google.protobuf.wrappers_pb2.StringValue | None = ..., + to_time: google.protobuf.wrappers_pb2.StringValue | None = ..., + limit: google.protobuf.wrappers_pb2.UInt64Value | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["from_time", b"from_time", "limit", b"limit", "query", b"query", "to_time", b"to_time"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["from_time", b"from_time", "limit", b"limit", "query", b"query", "to_time", b"to_time"]) -> None: ... + + @typing_extensions.final + class FetchTraceTask(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TRACE_ID_FIELD_NUMBER: builtins.int + FROM_TIME_FIELD_NUMBER: builtins.int + TO_TIME_FIELD_NUMBER: builtins.int + @property + def trace_id(self) -> google.protobuf.wrappers_pb2.StringValue: ... + @property + def from_time(self) -> google.protobuf.wrappers_pb2.StringValue: ... + @property + def to_time(self) -> google.protobuf.wrappers_pb2.StringValue: ... + def __init__( + self, + *, + trace_id: google.protobuf.wrappers_pb2.StringValue | None = ..., + from_time: google.protobuf.wrappers_pb2.StringValue | None = ..., + to_time: google.protobuf.wrappers_pb2.StringValue | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["from_time", b"from_time", "to_time", b"to_time", "trace_id", b"trace_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["from_time", b"from_time", "to_time", b"to_time", "trace_id", b"trace_id"]) -> None: ... + TYPE_FIELD_NUMBER: builtins.int FETCH_LOGS_FIELD_NUMBER: builtins.int FETCH_METRICS_FIELD_NUMBER: builtins.int @@ -172,6 +226,8 @@ class Coralogix(google.protobuf.message.Message): FETCH_DASHBOARD_VARIABLES_FIELD_NUMBER: builtins.int FETCH_INDEX_MAPPINGS_FIELD_NUMBER: builtins.int FETCH_ALERT_DEFS_FIELD_NUMBER: builtins.int + FETCH_SPANS_FIELD_NUMBER: builtins.int + FETCH_TRACE_FIELD_NUMBER: builtins.int type: global___Coralogix.TaskType.ValueType @property def fetch_logs(self) -> global___Coralogix.FetchLogsTask: ... @@ -185,6 +241,10 @@ class Coralogix(google.protobuf.message.Message): def fetch_index_mappings(self) -> global___Coralogix.FetchIndexMappingsTask: ... @property def fetch_alert_defs(self) -> global___Coralogix.FetchAlertDefsTask: ... + @property + def fetch_spans(self) -> global___Coralogix.FetchSpansTask: ... + @property + def fetch_trace(self) -> global___Coralogix.FetchTraceTask: ... def __init__( self, *, @@ -195,9 +255,11 @@ class Coralogix(google.protobuf.message.Message): fetch_dashboard_variables: global___Coralogix.FetchDashboardVariablesTask | None = ..., fetch_index_mappings: global___Coralogix.FetchIndexMappingsTask | None = ..., fetch_alert_defs: global___Coralogix.FetchAlertDefsTask | None = ..., + fetch_spans: global___Coralogix.FetchSpansTask | None = ..., + fetch_trace: global___Coralogix.FetchTraceTask | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["fetch_alert_defs", b"fetch_alert_defs", "fetch_dashboard_variables", b"fetch_dashboard_variables", "fetch_dashboard_widgets", b"fetch_dashboard_widgets", "fetch_index_mappings", b"fetch_index_mappings", "fetch_logs", b"fetch_logs", "fetch_metrics", b"fetch_metrics", "task", b"task"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["fetch_alert_defs", b"fetch_alert_defs", "fetch_dashboard_variables", b"fetch_dashboard_variables", "fetch_dashboard_widgets", b"fetch_dashboard_widgets", "fetch_index_mappings", b"fetch_index_mappings", "fetch_logs", b"fetch_logs", "fetch_metrics", b"fetch_metrics", "task", b"task", "type", b"type"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["task", b"task"]) -> typing_extensions.Literal["fetch_logs", "fetch_metrics", "fetch_dashboard_widgets", "fetch_dashboard_variables", "fetch_index_mappings", "fetch_alert_defs"] | None: ... + def HasField(self, field_name: typing_extensions.Literal["fetch_alert_defs", b"fetch_alert_defs", "fetch_dashboard_variables", b"fetch_dashboard_variables", "fetch_dashboard_widgets", b"fetch_dashboard_widgets", "fetch_index_mappings", b"fetch_index_mappings", "fetch_logs", b"fetch_logs", "fetch_metrics", b"fetch_metrics", "fetch_spans", b"fetch_spans", "fetch_trace", b"fetch_trace", "task", b"task"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["fetch_alert_defs", b"fetch_alert_defs", "fetch_dashboard_variables", b"fetch_dashboard_variables", "fetch_dashboard_widgets", b"fetch_dashboard_widgets", "fetch_index_mappings", b"fetch_index_mappings", "fetch_logs", b"fetch_logs", "fetch_metrics", b"fetch_metrics", "fetch_spans", b"fetch_spans", "fetch_trace", b"fetch_trace", "task", b"task", "type", b"type"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["task", b"task"]) -> typing_extensions.Literal["fetch_logs", "fetch_metrics", "fetch_dashboard_widgets", "fetch_dashboard_variables", "fetch_index_mappings", "fetch_alert_defs", "fetch_spans", "fetch_trace"] | None: ... global___Coralogix = Coralogix