/** * This file was auto-generated by openapi-typescript. * Do not make direct changes to the file. */ export interface paths { "/v1/activity-logs/search": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Search activity logs * @description Search activity logs with flexible filtering and pagination. Logs are returned as LogEvent objects with metadata stored in attributes and tags. Full-text search is supported on the message field using PostgreSQL's text search capabilities. All list filters are optional - null or empty lists mean 'match all' for that field. */ post: operations["searchActivityLogs"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agent-memory": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** List this organization's investigation memories, most recently seen first, filtered by tags (key=value, ANDed), agent, significance, verdict or text. Pass nextCursor back as after for the next page. */ get: operations["list_5"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agent-memory/search": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** Search past investigation memories for the closest CANDIDATES — for the agent to judge for itself, not a ranked answer */ post: operations["search"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agent-memory/tags": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** Count the tag keys in use in this organization's memories, or one key's values when key is given. Pass agentId to count only that agent's memories. */ get: operations["tags"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agent-memory/{investigationId}/link/{memoryId}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** Record that this investigation is another occurrence of a memory you already found, instead of recording a second copy of it. Counts a recurrence against that memory and fills in anything it was missing, unless a person edited it: then it takes none of the request's text and textMerged is false. A memory a person marked wrong refuses a new link with 409; only a retried link from an investigation it already counts is accepted, taking no text. The memory must belong to the same agent. */ post: operations["link"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agent-memory/{investigationId}/record": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** Record what this investigation concluded. Writes only this investigation's own memory, and may be called again to correct or extend it — a field you leave out keeps what was already recorded, so a later call cannot lose an earlier finding. */ post: operations["record"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agent-memory/{memoryId}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** Read one memory in full by its id (its investigation id), with the investigations linked to it as recurrences */ get: operations["get_5"]; /** Edit a memory as a person. Every editable field is replaced; tags derived from the triggering signal are kept. Refused with 409 if the memory changed since expectedRevision. An edit that changes nothing writes nothing. */ put: operations["edit"]; post?: never; /** Delete a memory and the recurrence links pointing at it. The linked investigations keep their transcripts. */ delete: operations["delete_3"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agent-memory/{memoryId}/verdict": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** Mark a memory's conclusion wrong. Agents that find it are told a person rejected it, with this note. */ put: operations["setVerdict"]; post?: never; /** Lift a person's verdict that a memory is wrong. */ delete: operations["clearVerdict"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agent-session-analytics/jobs": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["list"]; put?: never; post: operations["create"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agent-session-analytics/jobs/{jobId}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["get"]; put?: never; post?: never; delete: operations["delete"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agent-session-analytics/jobs/{jobId}/download": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["download"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agent-suggestions": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List agent suggestions * @description Returns the organization's agent suggestions, newest first, optionally filtered by pipeline, review status, and proposing agent. */ get: operations["list_2"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agent-suggestions/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get an agent suggestion * @description Returns one agent suggestion, including the template-inputs patch, the job version it was proposed against, and the sample events it was verified with. */ get: operations["get_2"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agent-suggestions/{id}/apply": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Apply a pending agent suggestion * @description Re-verifies the suggestion's template-inputs patch against the pipeline's current version and applies it as a new job version, marking the suggestion APPLIED. The resolution is compare-and-set on the pending status: a reviewer who loses a race to another gets 409 rather than overwriting it. Findings mean the pipeline changed since the suggestion was recorded; nothing is applied and the suggestion stays PENDING. Applying restarts the pipeline from a savepoint. */ post: operations["apply"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agent-suggestions/{id}/reject": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Reject a pending agent suggestion * @description Marks a pending suggestion REJECTED, recording the reviewer. Returns 409 when the suggestion was already resolved by another reviewer. */ post: operations["reject"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agents": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List agents * @description Returns every agent configured for your organization, newest first. */ get: operations["list_3"]; put?: never; /** * Create an agent * @description Creates an agent with the given model configuration, tools and prompt. */ post: operations["create_2"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agents/mcp-integrations/{integrationId}/tools": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List an MCP integration's tools * @description Returns the tools the MCP server publishes, so an agent's allowed-tools list can name them exactly. Read live from the server with the integration's credentials, and cached briefly. */ get: operations["mcpIntegrationTools"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agents/roster": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List the agent roster * @description Returns every agent configured for your organization, projected to its id, name, description and pickup filters: enough to decide whose recorded memory is worth searching, or how to put an issue in Ready so an agent picks it up. */ get: operations["roster"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agents/tools": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List available agent tools * @description Returns the catalog of tools that can be enabled on an agent. */ get: operations["tools"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agents/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get an agent * @description Returns a single agent by id. */ get: operations["get_3"]; /** * Update an agent * @description Updates an agent. The version must match the version the client most recently observed, else a 409 Conflict is returned. */ put: operations["update"]; post?: never; /** * Delete an agent * @description Soft-deletes an agent. Returns 409 while the agent is still subscribed to any pipeline; unsubscribe it first. */ delete: operations["delete_2"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agents/{id}/investigations": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List an agent's investigations * @description Returns the investigations the agent has run, newest first. */ get: operations["investigations"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agents/{id}/investigations/cancel-all": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Cancel every active investigation of an agent * @description Marks every queued, running, and paused investigation of the agent as CANCELLING in one request. Cancellation is completed asynchronously. With pause=true, the agent is paused in the same transaction so it starts no new investigations. */ post: operations["cancelAllAgentInvestigations"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agents/{id}/investigations/cancellable-counts": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Count an agent's active investigations * @description Returns how many of the agent's investigations are queued, running, or paused, and so would be cancelled by cancel-all, and whether the caller is authorized to call cancel-all for the agent. */ get: operations["countCancellableAgentInvestigations"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agents/{id}/issue-reach": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get the issues an agent reads and works on * @description Returns whose issues the agent reads, and whose it can be handed, pick up and change: every issue in your organization or those of some teams, from its service account's issue scopes. */ get: operations["issueReach"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agents/{id}/max-tokens-status": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get an agent's max-tokens admission status * @description Returns whether a new investigation could start for the agent right now, the max-tokens limit blocking it when not, and when the current max-tokens window resets. */ get: operations["maxTokensStatus"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agents/{id}/pipelines/{jobId}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Subscribe an agent to a pipeline * @description Subscribes the agent to the pipeline's pattern signals. Requires the pipeline to have new-pattern signal emission enabled on its reducer or pattern matcher. The running pipeline picks up the subscriber automatically, without a restart. */ post: operations["subscribe"]; /** * Unsubscribe an agent from a pipeline * @description Unsubscribes the agent from the pipeline's pattern signals. The running pipeline drops the subscriber automatically, without a restart. */ delete: operations["unsubscribe"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agents/{id}/pipelines/{jobId}/state": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Pause or resume an agent's pipeline subscription * @description Sets one subscription to PAUSED or ACTIVE. While paused, new signals from the pipeline are dropped for this agent, and the pipeline keeps marking new patterns as sent. Investigations already queued still run. The running pipeline is not restarted. */ put: operations["setPipelineState"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agents/{id}/state": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Pause or resume an agent * @description Sets the agent to PAUSED or ACTIVE. A paused agent runs no investigations: signals from every source are dropped, manual starts and resumes are refused, and queued investigations wait until the agent is resumed, except those on an issue, which are discarded so other agents can take the issue. Pipelines keep marking new patterns as sent, so after resuming, the agent usually reacts only to patterns that are new since then. */ put: operations["setState"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/agents/{id}/subscriptions": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List an agent's subscriptions * @description Returns the agent's pipeline subscriptions, including when each was paused. */ get: operations["subscriptions"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/anomalies/{jobId}/{ruleEngineName}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["getAnomaliesForJobRuleEngineAndTriggers"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/apikey": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** Get a Grepr API Key */ get: operations["getGreprApiKey"]; put?: never; /** Create a Grepr API Key */ post: operations["createGreprApiKey"]; /** Delete a Grepr API Key */ delete: operations["deleteGreprApiKey"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/billing/daily-table": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get daily-usage table (JSON or CSV) * @description Returns the daily-usage table for the requested reporting period. */ get: operations["getDailyTable"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/billing/periods": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get reporting periods + customer display name * @description Returns the customer display name plus reporting periods available for the authenticated user's organization. Returns 404 when no billing record exists for the customer or no eligible subscription has any closed orders. */ get: operations["getPeriods"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/billing/summary": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get billing summary for one reporting period * @description Returns the per-period payload — contract bounds, reporting-period descriptor, and plan-specific commitment summary — for the authenticated user's organization. When no period is supplied, defaults to the period containing today. */ get: operations["getSummary"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/chat-preferences": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get the caller's chat preferences * @description Returns the defaults new chats start with for this user. A field the user has never set is null, which the client reads as "use the default" rather than "empty". */ get: operations["get_1"]; /** * Set the caller's chat preferences * @description Replaces the defaults new chats start with for this user. Storing an empty skill list is a deliberate choice to start with none, and is kept as such. */ put: operations["set"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/chats": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List the user's chats * @description Returns one page of the authenticated user's chats within their org, most-recently-updated first. Metadata only (id, title, timestamps); turn content is read per-chat. Page backwards with the response's nextCursor. */ get: operations["list_1"]; put?: never; /** * Create a chat * @description Creates a chat, starts its workflow, and submits the first message. Returns the new chat id; the turn runs asynchronously. */ post: operations["create_1"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/chats/{chatId}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get chat metadata * @description Returns the chat's status (mirrored from the backing workflow's Temporal status) and its current turn index. Polled while the chat runs. */ get: operations["status"]; /** * Append a message to a chat * @description Signals the chat's workflow with a new user message. Returns 202 immediately. */ put: operations["append"]; post?: never; /** * Delete a chat * @description Soft-deletes the chat: it stops being listed and is reported as not found, while its row and journal are retained. Cancels any in-flight turn and tears down the sandbox. Idempotent. Returns 202 immediately. */ delete: operations["delete_1"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/chats/{chatId}/auto-approve": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Switch a chat's auto-approval mode * @description Turns auto-approval on or off for the chat. While on, gated actions run without prompting, and a turn already parked on an approval is released. The setting is persisted and survives a restart of the chat. Returns 202 immediately. */ put: operations["setAutoApprove"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/chats/{chatId}/cancel": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Cancel a chat * @description Signals the chat's workflow to abort the current turn and finish as CANCELLED. */ post: operations["cancel"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/chats/{chatId}/permissions/{permissionId}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Reply to a chat's pending approval * @description Signals the chat's workflow with the user's approve/reject decision for the gated action it is waiting on, resuming the turn. Returns 202 immediately. */ post: operations["respondToPermission"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/chats/{chatId}/stop": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Stop a chat's in-flight turn * @description Signals the chat's workflow to abort the current turn but stay alive, parked for the next message. Returns 202 immediately. */ post: operations["stop"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/chats/{chatId}/title": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Rename a chat * @description Replaces the chat's display title with a user-chosen one, clamped to the same length as a derived title. Does not reorder the chat list. Returns 202 immediately. */ put: operations["rename"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/chats/{chatId}/turns": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Stream a chat's turns by sequence cursor * @description Returns journalled turns after the given sequence, oldest first. */ get: operations["turns"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/datasets": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get all datasets * @description Get all datasets for the org the user belongs to. */ get: operations["getAllDatasets"]; put?: never; /** * Create a new dataset * @description Create a new dataset. */ post: operations["createDataset"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/datasets/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get dataset by ID * @description Get a dataset by its ID. */ get: operations["getDatasetById"]; /** * Update a dataset * @description Update a dataset. Currently, only the name is updated. */ put: operations["updateDataset"]; post?: never; /** * Delete a dataset * @description Delete the dataset. */ delete: operations["deleteDataset"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/datasets/{id}/estimation-config": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get dataset impact estimation configuration * @description Returns the impact-estimation configuration for the dataset, or null when the dataset is not opted in for estimation. The presence of a configuration is the per-dataset opt-in for impact estimation. */ get: operations["getDatasetEstimationConfig"]; /** * Create or update dataset impact estimation configuration * @description Creates or replaces the impact-estimation configuration for the dataset. Replacing the configuration takes effect on the next estimation cycle. */ put: operations["upsertDatasetEstimationConfig"]; post?: never; /** * Delete dataset impact estimation configuration * @description Deletes the impact-estimation configuration for the dataset. Existing estimation rows for the dataset remain dormant until a new configuration is created. */ delete: operations["deleteDatasetEstimationConfig"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/datasets/{id}/tables/{tableKey}/column-metrics": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get a dataset table's file-statistics setting * @description Returns whether the table's default column statistics mode is Grepr's, truncate(16), which collects min/max values and null counts on every column of its data files that has no per-column mode, indexed columns past the first 100 included, so searches can skip files on them. Off by default: the table then has Iceberg's inferred statistics on its first 100 columns, unless mode reports a default set outside Grepr. spans_raw keeps them on its built-in span fields either way. Supported for logs_raw and spans_raw. */ get: operations["getTableColumnMetrics"]; /** * Set a dataset table's file-statistics setting * @description Turns Grepr's default column statistics mode on or off for the table. On sets the table's write.metadata.metrics.default to truncate(16), replacing any other default; off removes it when it holds that value, and leaves a value set outside Grepr alone. Per-column modes are never changed. On costs about 18 bytes of table metadata per indexed column for each data file. Pipelines writing the dataset apply a change to new files by their next restart, and possibly sooner; files already written keep their statistics. Supported for logs_raw and spans_raw. */ put: operations["putTableColumnMetrics"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/datasets/{id}/tables/{tableKey}/promotion": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Replace a dataset table promotion policy * @description Validates and stores the complete promotion policy on the table. Newly included tag columns, and the columns of exact attribute includes the attribute cap has room for, are added synchronously before the request returns, in the same commit as the policy. Send back the revision the policy was read at to be refused rather than overwrite a change made since; omit it to replace whatever is stored. */ put: operations["putTablePromotion"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/datasets/{id}/{tableKey}/config": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get a dataset table config * @description Returns the configuration for one of the dataset's tables (e.g. logs_raw), including the system-controlled effective partition spec. Without an override, the spec's editable rows are the table's defaults. */ get: operations["getTableConfig"]; /** * Replace a dataset table config * @description Replaces the configuration override for one of the dataset's tables. Applies the resulting schema and partition-spec changes to the live Iceberg table. 409 if any pipeline currently references the dataset. */ put: operations["putTableConfig"]; post?: never; /** * Remove a dataset table config * @description Removes the user override and reverts the table to defaults. Idempotent. */ delete: operations["deleteTableConfig"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/files/upload/presigned-url": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Generate a presigned URL for uploading a file * @description Generates a presigned URL that allows the client to upload a file directly. The file will be automatically deleted after 24 hours. */ post: operations["generatePresignedUrl"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/grok/parse": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Validate a log sample * @description Parses a log sample using provided Grok rules and returns the extracted fields and which rule matched. */ post: operations["parse_1"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/grok/parse/batch": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Validate log samples * @description Parse slog samples using provided Grok rules and returns the extracted fields and which rule matched. */ post: operations["parse"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/anthropic": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List all Anthropic integrations * @description Get all Anthropic integrations for your organization. This will contain masked API keys if present. */ get: operations["list_6"]; put?: never; /** * Create an Anthropic integration * @description Creates an integration to connect to Anthropic. */ post: operations["create_4"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/anthropic/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get an Anthropic integration * @description Get an Anthropic integration by ID. */ get: operations["get_6"]; /** * Update an Anthropic integration. * @description Updates an Anthropic integration. The version should be increased by one for every new update in order for the write to succeed. Otherwise, a '409 Conflict' will be returned. */ put: operations["update_2"]; post?: never; /** * Delete an Anthropic integration * @description Deletes an Anthropic integration. This will delete the associated API key as well. No-op if already deleted. */ delete: operations["delete_4"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/anthropic/{id}/api-key": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Creates or updates an Anthropic integration API key * @description Creates an API key for an Anthropic integration if it doesn't exist and updates it otherwise. If the key is updated while the integration is being used by a pipeline, the new key will be picked at pipeline restart, rescaling or an update. */ put: operations["upsertApiKey"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/anthropic/{id}/models": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["models"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/data-warehouse": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List all Data Warehouse integrations * @description Retrieves all Data Warehouse integrations for the organization. */ get: operations["listDataWarehouseIntegrations"]; put?: never; /** * Create a Data Warehouse integration * @description Creates a new Data Warehouse integration for connecting to Grepr S3 bucket. */ post: operations["createDataWarehouseIntegration"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/data-warehouse/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get a Data Warehouse integration * @description Retrieves a Data Warehouse integration. */ get: operations["getDataWarehouseIntegration"]; /** * Update a Data Warehouse integration * @description Updates an existing Data Warehouse integration. */ put: operations["updateDataWarehouseIntegration"]; post?: never; /** * Delete a Data Warehouse integration * @description Deletes a Data Warehouse integration if it exists. No-op otherwise. */ delete: operations["deleteDataWarehouseIntegration"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/datadog": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List all Datadog integrations * @description Get all Datadog integrations for your organization. This will contain masked keys if present. */ get: operations["listDatadogIntegrations"]; put?: never; /** * Create a Datadog integration * @description Creates an integration to connect to Datadog. */ post: operations["createDatadogIntegration"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/datadog-mcp": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List all Datadog MCP integrations * @description Get all Datadog MCP server integrations for your organization. This will contain masked API keys if present. */ get: operations["list_9"]; put?: never; /** * Create a Datadog MCP integration * @description Creates an integration to connect to a Datadog MCP server. */ post: operations["create_7"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/datadog-mcp/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get a Datadog MCP integration * @description Get a Datadog MCP integration by ID. */ get: operations["get_9"]; /** * Update a Datadog MCP integration. * @description Updates a Datadog MCP integration. The version should be increased by one for every new update in order for the write to succeed. Otherwise, a '409 Conflict' will be returned. */ put: operations["update_5"]; post?: never; /** * Delete a Datadog MCP integration * @description Deletes a Datadog MCP integration. This will delete the associated API keys as well. No-op if already deleted. */ delete: operations["delete_7"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/datadog-mcp/{id}/api-key": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Creates or updates a Datadog MCP integration API key * @description Creates the DD-API-KEY for a Datadog MCP integration if it doesn't exist and updates it otherwise. */ put: operations["upsertApiKey_3"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/datadog-mcp/{id}/app-key": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Creates or updates a Datadog MCP integration application key * @description Creates the DD-APPLICATION-KEY for a Datadog MCP integration if it doesn't exist and updates it otherwise. */ put: operations["upsertAppKey"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/datadog/app-key/scopes/preview": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Preview authorization scopes for keys not yet saved to any integration * @description Probes Datadog with the supplied site and keys and reports each authorization scope. For the create form, where there is no integration to take keys from, so every field is required. Nothing is written and nothing is stored. */ post: operations["previewNewDatadogAppKeyScopes"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/datadog/sites": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List all valid Datadog sites * @description Get all valid Datadog sites for your organization. */ get: operations["listValidDatadogSites"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/datadog/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get a Datadog integration * @description Get an integration to connect to Datadog. */ get: operations["getDatadogIntegration"]; /** * Update a Datadog integration. * @description Updates an integration to connect to Datadog. The version should be increased by one for every new update in order for the write to succeed. Otherwise, a '409 Conflict' will be returned. */ put: operations["updateDatadogIntegration"]; post?: never; /** * Delete a Datadog integration * @description Deletes an integration to connect to Datadog. This will delete the associated keys as well. No-op if already deleted. */ delete: operations["deleteDatadogIntegration"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/datadog/{id}/api-key": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Creates or updates a Datadog integration api key * @description Creates an API key for a Datadog integration if it doesn't exist and updates it otherwise. If the key is updated while the integration is being used by a pipeline, the new key will be picked at pipeline restart, rescaling or an update. Ingestion supports the previous and the updated key for up to 24 hours of a key update. Make sure to change the key used by the agents to send data within 24 hours of an update for a seamless transition */ put: operations["upsertDatadogApiKey"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/datadog/{id}/api-keys": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Set a Datadog integration's API keys * @description Replaces the integration's entire set of API keys in one atomic write. Existing keys are referenced by id (kept or rotated), new keys carry only a value, and omitted keys are removed; one key is marked as the send key used to write data back to Datadog. If any key is rejected the existing set is left unchanged. All keys are accepted for inbound telemetry. Requires the organization to have multiple Datadog API keys enabled. Adding, removing, relabeling, or rotating a key other than the send key is allowed while the integration's pipeline is running; a change that affects the send key (which key it is, or its value) requires the pipeline to be stopped, since that key is baked into the running Flink job. */ put: operations["setDatadogApiKeys"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/datadog/{id}/app-key": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Creates or updates a Datadog integration app key * @description Creates an app key for a Datadog integration if it doesn't exist and updates it otherwise. If the key is updated while the integration is being used by a pipeline, the new key will be picked at pipeline restart, rescaling or an update. */ put: operations["upsertDatadogAppKey"]; post?: never; /** * Delete a Datadog integration app key * @description Deletes a Datadog integration app key. No-op if already deleted. */ delete: operations["deleteDatadogAppKey"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/datadog/{id}/app-key/scopes/preview": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Preview authorization scopes for unsaved changes to an integration * @description Probes Datadog with the integration's stored keys, overridden by whatever the body supplies, and reports each authorization scope. Nothing is written. An omitted field means "use what is stored", so an empty body reports what the stored key can do right now. A scope whose probe does not complete is reported UNKNOWN rather than as a permission the user has to grant. */ post: operations["previewDatadogAppKeyScopes"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/datadog/{id}/client-token": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Creates or updates a Datadog browser integration client token * @description Creates a client token for a Datadog browser integration if it doesn't exist and updates it otherwise. */ put: operations["upsertClientToken-hidden"]; post?: never; /** * Delete a Datadog browser integration client token * @description Deletes a Datadog browser integration client token. No-op if already deleted. */ delete: operations["deleteClientToken-hidden"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/datadog/{id}/exceptions": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get Datadog integration exceptions * @description Returns a paginated list of vendor imported exceptions for the specified Datadog integration */ get: operations["getDatadogIntegrationExceptions"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/datadog/{id}/with-exceptions": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get a Datadog integration with exceptions * @description Get an integration to connect to Datadog with vendor imported exceptions populated. */ get: operations["getDatadogIntegrationWithExceptions"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/gemini": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List all Gemini integrations * @description Get all Google Gemini integrations for your organization. This will contain masked API keys if present. */ get: operations["list_7"]; put?: never; /** * Create a Gemini integration * @description Creates an integration to connect to Google Gemini. */ post: operations["create_5"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/gemini/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get a Gemini integration * @description Get a Gemini integration by ID. */ get: operations["get_7"]; /** * Update a Gemini integration. * @description Updates a Gemini integration. The version should be increased by one for every new update in order for the write to succeed. Otherwise, a '409 Conflict' will be returned. */ put: operations["update_3"]; post?: never; /** * Delete a Gemini integration * @description Deletes a Gemini integration. This will delete the associated API key as well. No-op if already deleted. */ delete: operations["delete_5"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/gemini/{id}/api-key": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Creates or updates a Gemini integration API key * @description Creates an API key for a Gemini integration if it doesn't exist and updates it otherwise. If the key is updated while the integration is being used by a pipeline, the new key will be picked at pipeline restart, rescaling or an update. */ put: operations["upsertApiKey_1"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/gemini/{id}/models": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["models_1"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/github-mcp": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List all GitHub MCP integrations * @description Get all GitHub MCP server integrations for your organization. This will contain masked tokens if present. */ get: operations["list_10"]; put?: never; /** * Create a GitHub MCP integration * @description Creates an integration to connect to a GitHub MCP server. */ post: operations["create_8"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/github-mcp/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get a GitHub MCP integration * @description Get a GitHub MCP integration by ID. */ get: operations["get_10"]; /** * Update a GitHub MCP integration. * @description Updates a GitHub MCP integration. The version should be increased by one for every new update in order for the write to succeed. Otherwise, a '409 Conflict' will be returned. */ put: operations["update_6"]; post?: never; /** * Delete a GitHub MCP integration * @description Deletes a GitHub MCP integration. This will delete the associated token as well. No-op if already deleted. */ delete: operations["delete_8"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/github-mcp/{id}/api-key": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Creates or updates a GitHub MCP integration token * @description Creates a token for a GitHub MCP integration if it doesn't exist and updates it otherwise. If the token is updated while the integration is being used by a pipeline, the new token will be picked at pipeline restart, rescaling or an update. */ put: operations["upsertApiKey_4"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/grepr-pipe": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List all Grepr pipe integrations * @description Get all Grepr pipe integrations. */ get: operations["listGreprPipeIntegrations"]; put?: never; /** * Create a Grepr pipe integration * @description Creates a pipe that pipelines write log events into with a pipe sink and read them from with a pipe source. */ post: operations["createGreprPipeIntegration"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/grepr-pipe/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get a Grepr pipe integration * @description Get a Grepr pipe integration. */ get: operations["getGreprPipeIntegration"]; /** * Update a Grepr pipe integration. * @description Updates a Grepr pipe integration. The version should be increased by one for every new update in order for the write to succeed. Otherwise, a '409 Conflict' will be returned. */ put: operations["updateGreprPipeIntegration"]; post?: never; /** * Delete a Grepr pipe integration * @description Deletes a Grepr pipe integration and its topic. Rejected while a pipeline uses it. No-op if already deleted. */ delete: operations["deleteGreprPipeIntegration"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/litellm": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** List all LiteLLM integrations */ get: operations["list_8"]; put?: never; /** Create a LiteLLM integration */ post: operations["create_6"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/litellm/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** Get a LiteLLM integration */ get: operations["get_8"]; /** Update a LiteLLM integration */ put: operations["update_4"]; post?: never; /** Delete a LiteLLM integration */ delete: operations["delete_6"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/litellm/{id}/api-key": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** Creates or updates a LiteLLM integration API key */ put: operations["upsertApiKey_2"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/litellm/{id}/models": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["models_2"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/newrelic": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List all NewRelic integrations * @description Get all NewRelic integrations. */ get: operations["listNewRelicIntegrations"]; put?: never; /** * Create a NewRelic integration * @description Creates an integration to connect to NewRelic. */ post: operations["createNewRelicIntegration"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/newrelic/sites": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List all valid NewRelic sites * @description Get all valid NewRelic sites for your organization. */ get: operations["listValidNewRelicSites"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/newrelic/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get a NewRelic integration * @description Get an integration to connect to NewRelic. */ get: operations["getNewRelicIntegration"]; /** * Update a NewRelic integration. * @description Updates an integration to connect to NewRelic. The version should be increased by one for every new update in order for the write to succeed. Otherwise, a '409 Conflict' will be returned. */ put: operations["updateNewRelicIntegration"]; post?: never; /** * Delete a NewRelic integration * @description Deletes an integration to connect to NewRelic. This will delete the associated keys as well. No-op if already deleted. */ delete: operations["deleteNewRelicIntegration"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/newrelic/{id}/api-key": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Creates or updates an API key for integration with New Relic * @description Creates a NewRelic API key for a NewRelic integration if a key doesn't exist, and updates it otherwise. If the api key is updated while the integration is being used by a pipeline, the new key is used at pipeline restart, rescaling, or an update. This key is used for the NewRelic API to retrieve the dashboards and alerts. */ put: operations["upsertNewRelicApiKey"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/newrelic/{id}/exceptions": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get New Relic integration exceptions * @description Returns a paginated list of vendor imported exceptions for the specified New Relic integration */ get: operations["getNewRelicIntegrationExceptions"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/newrelic/{id}/license-key": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Creates or updates a NewRelic integration api key * @description Creates an API key for a NewRelic integration if it doesn't exist and updates it otherwise. If the key is updated while the integration is being used by a pipeline, the new key will be picked at pipeline restart, rescaling or an update. Ingestion supports the previous and the updated key for up to 24 hours of a key update. Make sure to change the key used by the agents to send data within 24 hours of an update for a seamless transition */ put: operations["upsertNewRelicLicenseKey"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/newrelic/{id}/with-exceptions": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get a NewRelic integration with exceptions * @description Get an integration to connect to NewRelic with vendor imported exceptions populated. */ get: operations["getNewRelicIntegrationWithExceptions"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/openai": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List all OpenAI integrations * @description Get all OpenAI integrations for your organization. This will contain masked API keys if present. */ get: operations["list_13"]; put?: never; /** * Create an OpenAI integration * @description Creates an integration to connect to OpenAI. */ post: operations["create_11"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/openai/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get an OpenAI integration * @description Get an OpenAI integration by ID. */ get: operations["get_13"]; /** * Update an OpenAI integration. * @description Updates an OpenAI integration. The version should be increased by one for every new update in order for the write to succeed. Otherwise, a '409 Conflict' will be returned. */ put: operations["update_9"]; post?: never; /** * Delete an OpenAI integration * @description Deletes an OpenAI integration. This will delete the associated API key as well. No-op if already deleted. */ delete: operations["delete_11"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/openai/{id}/api-key": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Creates or updates an OpenAI integration API key * @description Creates an API key for an OpenAI integration if it doesn't exist and updates it otherwise. If the key is updated while the integration is being used by a pipeline, the new key will be picked at pipeline restart, rescaling or an update. */ put: operations["upsertApiKey_7"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/otlp": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List all OTLP integrations * @description Get all OTLP integrations. */ get: operations["listOtlpIntegrations"]; put?: never; /** * Create an OTLP integration * @description Creates an integration to connect to OTLP. */ post: operations["createOtlpIntegration"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/otlp/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get a OTLP integration * @description Get an integration to connect to OTLP. */ get: operations["getOtlpIntegration"]; /** * Update a OTLP integration. * @description Updates an integration to connect to OTLP. The version should be increased by one for every new update in order for the write to succeed. Otherwise, a '409 Conflict' will be returned. */ put: operations["updateOtlpIntegration"]; post?: never; /** * Delete a OTLP integration * @description Deletes an integration to connect to OTLP. This will delete the associated keys as well. No-op if already deleted. */ delete: operations["deleteOtlpIntegration"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/otlp/{id}/secret-headers/{name}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Create or update a single OTLP integration secret header * @description Creates or updates a single secret HTTP header for an OTLP integration. */ put: operations["upsertOtlpSecretHeader"]; post?: never; /** * Delete a single OTLP integration secret header * @description Deletes a single secret HTTP header from an OTLP integration. */ delete: operations["deleteOtlpSecretHeader"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/otlp/{id}/token": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Retrieve OTLP integration token in clear text * @description Retrieves the plain-text authentication token for an OTLP integration. */ get: operations["getOtlpToken"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/pagerduty-mcp": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List all PagerDuty MCP integrations * @description Get all PagerDuty MCP server integrations for your organization. This will contain masked API keys if present. */ get: operations["list_11"]; put?: never; /** * Create a PagerDuty MCP integration * @description Creates an integration to connect to a PagerDuty MCP server. */ post: operations["create_9"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/pagerduty-mcp/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get a PagerDuty MCP integration * @description Get a PagerDuty MCP integration by ID. */ get: operations["get_11"]; /** * Update a PagerDuty MCP integration. * @description Updates a PagerDuty MCP integration. The version should be increased by one for every new update in order for the write to succeed. Otherwise, a '409 Conflict' will be returned. */ put: operations["update_7"]; post?: never; /** * Delete a PagerDuty MCP integration * @description Deletes a PagerDuty MCP integration. This will delete the associated API key as well. No-op if already deleted. */ delete: operations["delete_9"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/pagerduty-mcp/{id}/api-key": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Creates or updates a PagerDuty MCP integration API key * @description Creates an API key for a PagerDuty MCP integration if it doesn't exist and updates it otherwise. If the key is updated while the integration is being used by a pipeline, the new key will be picked at pipeline restart, rescaling or an update. */ put: operations["upsertApiKey_5"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/s3-data-warehouse": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** List all S3 Data Warehouse integrations */ get: operations["listS3DataWarehouseIntegrations"]; put?: never; /** * Create a S3 Data Warehouse integration * @description Creates an external S3 Data Warehouse integration */ post: operations["createS3DataWarehouseIntegration"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/s3-data-warehouse/cloudformation-setup-info": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get AWS Cloudformation setup information for a S3 Data Warehouse integration * @description Gets AWS Cloudformation setup information for an external S3 Data Warehouse integration */ get: operations["getCloudFormationSetupInfo"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/s3-data-warehouse/console-setup-info": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get AWS console setup information for a S3 Data Warehouse integration * @description Gets AWS console setup information for an external S3 Data Warehouse integration */ get: operations["getConsoleSetupInfo"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/s3-data-warehouse/test": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Validate whether Grepr can access the S3 bucket * @description Validates whether Grepr can access the S3 bucket. This can be used to test the bucket access before creating the integration. */ post: operations["test"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/s3-data-warehouse/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get a S3 Data Warehouse integration * @description Gets an external S3 Data Warehouse integration */ get: operations["getS3DataWarehouseIntegration"]; /** * Update a S3 Data Warehouse integration * @description Updates an external S3 Data Warehouse integration */ put: operations["updateS3DataWarehouseIntegration"]; post?: never; /** * Delete a S3 Data Warehouse integration * @description Deletes an external S3 Data Warehouse integration if it exists. No-op otherwise. */ delete: operations["deleteS3DataWarehouseIntegration"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/s3-vector-index": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List all S3 Vector Index integrations * @description Retrieves all S3 Vector Index integrations for the organization. */ get: operations["list_14"]; put?: never; /** * Create an S3 Vector Index integration * @description Creates a new S3 Vector Index integration and provisions the index in the grepr-managed S3 vector bucket. */ post: operations["create_12"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/s3-vector-index/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get an S3 Vector Index integration * @description Retrieves an S3 Vector Index integration. */ get: operations["get_14"]; /** * Update an S3 Vector Index integration * @description Updates an existing S3 Vector Index integration. Note: dimensions and distanceMetric are immutable after creation. */ put: operations["update_10"]; post?: never; /** * Delete an S3 Vector Index integration * @description Deletes an S3 Vector Index integration and removes the index from the S3 vector bucket. No-op if integration doesn't exist. */ delete: operations["delete_12"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/slack-mcp": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List all Slack MCP integrations * @description Get all Slack MCP server integrations for your organization. This will contain masked tokens if present. */ get: operations["list_12"]; put?: never; /** * Create a Slack MCP integration * @description Creates an integration to connect to a Slack MCP server. */ post: operations["create_10"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/slack-mcp/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get a Slack MCP integration * @description Get a Slack MCP integration by ID. */ get: operations["get_12"]; /** * Update a Slack MCP integration. * @description Updates a Slack MCP integration. The version should be increased by one for every new update in order for the write to succeed. Otherwise, a '409 Conflict' will be returned. */ put: operations["update_8"]; post?: never; /** * Delete a Slack MCP integration * @description Deletes a Slack MCP integration. This will delete the associated token as well. No-op if already deleted. */ delete: operations["delete_10"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/slack-mcp/{id}/api-key": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Creates or updates a Slack MCP integration token * @description Creates a token for a Slack MCP integration if it doesn't exist and updates it otherwise. If the token is updated while the integration is being used by a pipeline, the new token will be picked at pipeline restart, rescaling or an update. */ put: operations["upsertApiKey_6"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/splunk": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List all Splunk integrations * @description Get all Splunk integrations for your organization. This will contain masked keys if present. */ get: operations["listSplunkIntegrations"]; put?: never; /** * Create a Splunk integration * @description Creates an integration to connect to Splunk. */ post: operations["createSplunkIntegration"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/splunk/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get a Splunk integration * @description Get an integration to connect to Splunk. */ get: operations["getSplunkIntegration"]; /** * Update a Splunk integration. * @description Updates an integration to connect to Splunk. The version should be increased by one for every new update in order for the write to succeed. Otherwise, a '409 Conflict' will be returned. */ put: operations["updateSplunkIntegration"]; post?: never; /** * Delete a Splunk integration * @description Deletes an integration to connect to Splunk. This will delete the associated keys as well. No-op if already deleted. */ delete: operations["deleteSplunkIntegration"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/splunk/{id}/auth-token": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Creates or updates a Splunk integration auth token * @description Creates an HEC API auth token for a Splunk integration if it doesn't exist and updates it otherwise. If the key is updated while the integration is being used by a pipeline, the new key will be picked at pipeline restart, rescaling or an update. Ingestion supports the previous and the updated key for up to 24 hours of a key update. Make sure to change the key used by the agents to send data within 24 hours of an update for a seamless transition */ put: operations["upsertSplunkAuthToken"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/splunk/{id}/exceptions": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get Splunk integration exceptions * @description Returns a paginated list of vendor imported exceptions for the specified Splunk integration */ get: operations["getSplunkIntegrationExceptions"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/splunk/{id}/rest-auth-token": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Creates or updates a Splunk integration API auth token * @description Creates a Splunk API auth token for a Splunk integration if it doesn't exist and updates it otherwise. If the token is updated while the integration is being used by a pipeline, the new token will be picked at pipeline restart, rescaling or an update. This token is used for the Splunk API to search and retrieve logs. */ put: operations["upsertSplunkRestAuthToken"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/splunk/{id}/with-exceptions": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get a Splunk integration with exceptions * @description Get an integration to connect to Splunk with vendor imported exceptions populated. */ get: operations["getSplunkIntegrationWithExceptions"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/sumo": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List all SumoLogic integrations * @description Get all SumoLogic integrations. */ get: operations["listSumoIntegrations"]; put?: never; /** * Create a SumoLogic integration * @description Creates an integration to connect to SumoLogic. */ post: operations["createSumoIntegration"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/sumo/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get a SumoLogic integration * @description Get an integration to connect to SumoLogic. */ get: operations["getSumoIntegration"]; /** * Update a SumoLogic integration. * @description Updates an integration to connect to SumoLogic. The version should be increased by one for every new update in order for the write to succeed. Otherwise, a '409 Conflict' will be returned. */ put: operations["updateSumoIntegration"]; post?: never; /** * Delete a SumoLogic integration * @description Deletes an integration to connect to SumoLogic. This will delete the associated keys as well. No-op if already deleted. */ delete: operations["deleteSumoIntegration"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/sumo/{id}/endpoint": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Creates or updates the endpoint for the SumoLogic integration * @description Sets the endpoint for a SumoLogic integration if it doesn't exist and updates it otherwise. If the key is updated while the integration is being used by a pipeline, the new key will be picked at pipeline restart, rescaling or an update. Ingestion supports the previous and the updated key for up to 24 hours of a key update. Make sure to change the key used by the agents to send data within 24 hours of an update for a seamless transition */ put: operations["upsertSumoEndpoint"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/webhooks": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List webhook integrations * @description Get all webhook integrations for your organization, optionally filtered to integrations that target the given agent. */ get: operations["list_15"]; put?: never; /** * Create a webhook integration * @description Creates a webhook integration. Senders POST events to /v1/integrations/webhooks/{id}/events and authenticate with a Grepr API key (GREPR-API-KEY header). */ post: operations["create_13"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/webhooks/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get a webhook integration * @description Get a webhook integration by ID. */ get: operations["get_15"]; /** * Update a webhook integration * @description Updates a webhook integration. The version should be increased by one for every new update in order for the write to succeed. Otherwise, a '409 Conflict' will be returned. */ put: operations["update_11"]; post?: never; /** * Delete a webhook integration * @description Deletes a webhook integration. No-op if already deleted. */ delete: operations["delete_13"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/webhooks/{id}/events": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Submit a webhook event * @description Accepts one JSON event from the sending system and starts an investigation on each target agent of the integration. The org is taken from the Grepr API key and the integration id from the path. Returns 202 with the started investigation ids. Retries after a 5xx may start duplicate investigations. */ post: operations["postEvent"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/{integrationId}/exceptions/estimation-datasets": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List estimation-eligible datasets for an integration * @description Returns datasets that are sinks of the integration's non-deleted pipelines, each with the pipelines that wire the integration to that dataset and the dataset's current estimation configuration (or null when not opted in). The estimation configuration is per-dataset and shared across every integration whose pipelines target the same dataset. */ get: operations["getEstimationDatasets"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/{integrationId}/exceptions/impacts": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get parsed alert query impacts for an integration and dataset * @description Returns the estimated percentage of the dataset's raw log volume each of the integration's parsed alert queries matches, with the time that estimate was measured. Queries that have not been estimated are absent from the response rather than reported as zero. The dataset must be one of those returned by the estimation-datasets endpoint for this integration. */ get: operations["getIntegrationExceptionImpactsByDataset"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/{integrationId}/exceptions/usage": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get the usage of an integration's parsed queries * @description Returns the usage the observability vendor reports for the source of each parsed query, such as when a Datadog dashboard was last viewed and its total views, with whether the last attempt to read it worked. Queries the vendor reported nothing for are absent rather than reported as never viewed. */ get: operations["getIntegrationExceptionUsage"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/{integrationId}/exceptions/vendor-estimation-runs": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List vendor estimation runs for an integration * @description Returns the integration's estimation runs newest first, in every state. */ get: operations["listVendorEstimationRuns"]; put?: never; /** * Start a vendor estimation run * @description Creates a run over the given scope and window covering every exception the integration has imported. Runs are counted in the background, in short slices shared fairly between organizations. */ post: operations["createVendorEstimationRun"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/{integrationId}/exceptions/vendor-estimation-runs/preview": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Preview a vendor estimation run * @description Returns how many exceptions and distinct queries a run would cover, and which exceptions cannot be counted because their query never parsed. Writes nothing. */ post: operations["previewVendorEstimationRun"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/{integrationId}/exceptions/vendor-estimation-runs/{runId}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get a vendor estimation run * @description Returns the run's state and progress. Results are readable while it runs. */ get: operations["getVendorEstimationRun"]; put?: never; post?: never; /** * Delete a vendor estimation run * @description Deletes a stopped, complete or failed run and its results. A run in progress returns 409 and has to be stopped first. */ delete: operations["deleteVendorEstimationRun"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/{integrationId}/exceptions/vendor-estimation-runs/{runId}/results": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get vendor estimation results for a run * @description Returns the run's per-exception estimates keyed by composite exception id. Each is counted, pending, unparseable or an error, selected by its type field. An exception missing from the response was not in this run. */ get: operations["getVendorEstimationRunResults"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/{integrationId}/exceptions/vendor-estimation-runs/{runId}/resume": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Resume a stopped vendor estimation run * @description Makes a stopped run active again; counting continues where it stopped. Returns 409 for a run that is not stopped, or when the organization has the most runs allowed in progress. */ post: operations["resumeVendorEstimationRun"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/{integrationId}/exceptions/vendor-estimation-runs/{runId}/stop": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Stop a vendor estimation run * @description Stops the run and keeps every count it has made. A stopped run can be resumed or deleted. A no-op on a run that is not in progress. */ post: operations["stopVendorEstimationRun"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/integrations/{integrationId}/parsed-queries/import": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get parsed-query import state * @description Says whether this vendor's parsed queries can be imported, whether the credential the import needs is saved, whether an import is already under way, and which integrations an import covers. Poll this while an import is running; what it imported is reported in the integration's activity log. */ get: operations["getParsedQueryImportStatus"]; put?: never; /** * Import an integration's parsed queries now * @description Reads the integration's alert, monitor and dashboard queries from its vendor without waiting for the hourly import. One fetch is shared by every integration in the organization using the same vendor account, so this updates all of them. If an import is already under way this joins it rather than starting another. The import runs in the background; its result appears in the integration's activity log. */ post: operations["importParsedQueries"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/investigations": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Start an investigation * @description Triggers an agent investigation with optional free-form context and returns the new investigation id. The investigation is queued and runs asynchronously once the agent has a free concurrency slot. With issueId, a person hands the agent that issue, which becomes the investigation's subject and records the handoff in its history. */ post: operations["start"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/investigations/cancel": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Cancel multiple investigations * @description Marks eligible investigations as CANCELLING in one organization-scoped request. Cancellation is completed asynchronously. */ post: operations["batchCancelInvestigations"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/investigations/cancel-all": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Cancel every active investigation in the organization * @description Marks every queued, running, and paused investigation of every agent in the organization as CANCELLING in one request. Cancellation is completed asynchronously. With pause=true, every active agent is paused in the same transaction so none starts new investigations; resume each agent to undo it. */ post: operations["cancelAllInvestigations"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/investigations/cancellable-counts": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Count the organization's active investigations * @description Returns how many investigations across every agent in the organization are queued, running, or paused, and so would be cancelled by cancel-all, and whether the caller is authorized to call cancel-all. */ get: operations["countCancellableInvestigations"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/investigations/{investigationId}/cancel": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Cancel an investigation * @description Durably marks an eligible investigation as CANCELLING and returns 202. An asynchronous reconciler cancels its workflow, if one exists, and it then finalizes as CANCELLED. */ post: operations["cancel_1"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/investigations/{investigationId}/chat": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Open an investigation as a chat * @description Creates a new chat seeded with a copy of the investigation's transcript and returns its chat id, then durably requests the investigation's cancellation so it does not keep running alongside the chat. Each call opens a separate chat. */ post: operations["chat"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/investigations/{investigationId}/resume": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Resume a stopped investigation * @description Resumes a stopped (resumable) investigation in place. A non-blank message is appended as a new user turn; an empty body continues the agent with no added input. */ post: operations["resume"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/investigations/{investigationId}/stop": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Stop a running investigation * @description Durably marks a running investigation as STOPPING and returns 202. An asynchronous reconciler signals the workflow, which pauses at its next turn boundary and records STOPPED; it can then be resumed with a message. */ post: operations["stop_1"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/investigations/{investigationId}/transcript": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get investigation metadata * @description Returns the investigation's status, timestamps, summary, and recorded actions. Read transcript content from the cursor-paged turns endpoint. */ get: operations["transcript"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/investigations/{investigationId}/turns": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Stream an investigation's transcript turns by sequence cursor * @description Returns journalled turns after the given sequence, oldest first. */ get: operations["turns_1"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/invitations": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** Get all invitations */ get: operations["listInvitations"]; put?: never; /** Invite multiple people */ post: operations["invite"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/invitations/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** Get an invitation by id */ get: operations["getInvitation"]; put?: never; post?: never; /** Delete an invitation */ delete: operations["deleteInvitation"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/issues": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * File an issue * @description Files a new issue on the organization's board. Search first and update an existing issue instead of filing a duplicate; this call never matches existing issues. */ post: operations["create_14"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/issues/access": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get your issue access * @description Returns which issues you may view and which you may edit: every issue in the organization, or those of some teams. Clients use it to show write controls; every request is still authorized on its own. */ get: operations["access"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/issues/search": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Search issues * @description Returns the issues matching every given filter, ranked by full-text relevance when a query is given and by latest sighting otherwise. By default, open issues plus those closed in the last 30 days. */ post: operations["search_1"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/issues/titles": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get issue titles * @description Returns the number and title of each issue named, one entry per id in the order sent. Repeat id, up to 100 times. An issue you can't see, or one that doesn't exist, comes back as hidden with nothing else. */ get: operations["titles"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/issues/{idOrNumber}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get an issue * @description Returns an issue with its assignees, its newest guidance comments, and its latest comments and history entries; the comments route pages every comment. Plain sightings are left out of that history; the issue's occurrence counts summarize them, and the history route pages them. */ get: operations["get_16"]; put?: never; post?: never; delete?: never; options?: never; head?: never; /** * Update an issue * @description Changes the given fields and leaves the rest. A person's change to priority, entities or teams locks that field against agents. A stale version is rejected with the current issue, so the caller can reapply its change. */ patch: operations["update_12"]; trace?: never; }; "/v1/issues/{idOrNumber}/assignees": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Join an issue * @description Adds the caller as an active assignee. Joining a Ready issue moves it to In progress; joining again changes nothing, or reactivates a finished assignment. */ post: operations["join"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/issues/{idOrNumber}/assignees/me": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; post?: never; delete?: never; options?: never; head?: never; /** * Finish your assignment * @description Marks the caller's own assignment done. Join again to pick the work back up. */ patch: operations["finishAssignment"]; trace?: never; }; "/v1/issues/{idOrNumber}/assignees/{assigneeKind}/{assigneeId}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; post?: never; /** * Remove an assignee * @description Removes an assignee. People only; the removal stops agents from changing who is assigned. */ delete: operations["removeAssignee"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/issues/{idOrNumber}/comments": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List an issue's comments * @description Returns an issue's comments, newest first. */ get: operations["comments"]; put?: never; /** * Comment on an issue * @description Posts a comment, on an open or closed issue. A person may make it guidance, advice every later investigation on the issue's entities weighs. */ post: operations["comment"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/issues/{idOrNumber}/comments/{commentId}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Edit a comment * @description Replaces the body of a comment the caller wrote. People only. The history keeps the old text; editing a guidance comment changes the issue's version. */ put: operations["editComment"]; post?: never; /** * Delete a comment * @description Deletes a comment the caller wrote: it leaves the issue's comments, guidance and search. People only. The history keeps its text; deleting a guidance comment changes the issue's version. */ delete: operations["deleteComment"]; options?: never; head?: never; /** * Mark a comment as guidance * @description Makes a person's comment guidance, advice agents weigh, or stops it being guidance. People only; an agent's comment can never be guidance. */ patch: operations["setCommentGuidance"]; trace?: never; }; "/v1/issues/{idOrNumber}/events": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List an issue's history * @description Returns an issue's history entries, newest first. Repeat kind to return only those kinds, for example to leave out OCCURRED sightings. */ get: operations["events"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/issues/{idOrNumber}/locks": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Set an issue's locks * @description Replaces the fields and labels locked against agent changes. Leaving a lock out unlocks it. People only. */ put: operations["setLocks"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/issues/{idOrNumber}/occurrences": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Record a sighting * @description Links the calling investigation to the issue once and counts it. A sighting of a fixed or obsolete issue reopens it, and of a Monitoring issue moves it back to In progress, when the investigation started after the issue's last state change. A duplicate's sighting lands on its survivor. Only an agent's investigation can record one. */ post: operations["recordOccurrence"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/issues/{idOrNumber}/transitions": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Change an issue's state * @description Moves an issue through its lifecycle: Triage, Ready, In progress, Waiting, Monitoring, Closed. Closing needs a resolution; Monitoring needs a revisit time or expiry; both need every assignee done unless a person forces it. */ post: operations["transition"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/jobs": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List jobs * @description Get the list of jobs for your organization based on filters. */ get: operations["getJobs"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/jobs/async": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Submit an Asynchronous Job * @description Submit an async job (`streaming` or `batch`). This is an asynchronous operation which returns an identifier (field: `id`) for the job to be created, in the response. The id can be used to query the status of the job using the `GET` jobs endpoint. Job creation lifecycle is represented by the state field in the `GET` response. States represent the following: * - `PENDING`: Job has been successfully accepted for submission * - `WAITING`: Job is waiting on other jobs to finish to be submitted. * - `STARTING`: Job is being transitioned to the `RUNNING` state. * - `RUNNING`: Job is running. * - `FAILED` : Job creation failed. */ post: operations["submitAsyncJob"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/jobs/backfills": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Create a backfill job * @description Creates a logs or spans backfill batch job from backfill parameters (time window, query, vendor sinks, and optional type-specific fields). The `dataType` selects the built-in logs or spans template. This is an asynchronous batch job: the response returns an identifier (field: `id`) that can be used to query the status of the job using the `GET` jobs endpoint. The server builds the backfill job graph from the parameters, so callers do not assemble it themselves. */ post: operations["submitBackfillJob"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/jobs/sync": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Submit a sync job * @description Submits a job whose results will be returned synchronously as a stream of nd-json. Both streaming and batch jobs using a source with synchronous processing type are supported. The returned data is new-line delimited json log event records. The returned data will be wrapped in an EventRecord object that contains the state of the job. The server will periodically send heartbeats to the client through the same stream so the client knows the server is still alive. The client in return should send a heartbeat back to the server using the `/sync/heartbeat` endpoint to keep the connection alive. The client should use the heartbeat token returned in the EventRecord object to send the heartbeat. The connection will be closed if the client does not send a heartbeat within the timeout period. Additionally, the connection will close if the job fails or finished, or if the job runs for too long. This last timeout is dependent on whether the job is a batch or streaming job. */ post: operations["submitSyncJob"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/jobs/sync/heartbeat": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Heartbeat a sync job to keep it alive * @description Sends a heartbeat to a synchronous job to keep it alive. This is needed to keep the connection open and to prevent the server from closing it. */ post: operations["heartbeatSyncJob"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/jobs/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get a job * @description Gets a job with the given id. If version is not specified, the latest version is returned, otherwise, the job with the specified version is returned. If the job has templates, the 'resolved' query parameter can be used to resolve templates and return the fully resolved job. */ get: operations["getJob"]; /** * Update an Asynchronous Streaming Job * @description Updates an asynchronous streaming job. This is an asynchronous operation which returns an identifier (field: id) for the job to be created, in the response. The id can be used to query the status of the job using the GET jobs endpoint. If a change in the job graph is detected, a new version of the job will be created and sent back in the response object. Job update lifecycle is represented by the state field in the GET response. Following states can be expected in the response: * - PENDING: Job is in the process of being updated. * - RUNNING: Job is running. * - STOPPED: Job is stopped. * - FAILED: Job update failed. * - INFRA_UPDATE: Job is undergoing an infra change. */ put: operations["updateJob"]; post?: never; /** * Delete an Asynchronous Streaming Job * @description Delete an asynchronous streaming job. This is an asynchronous operation which cleans up all resources associated with the job. Job deletion lifecycle is represented by the state field in the GET jobs response. Following states can be expected in the response: * - `PENDING`: Job is being transitioned to the DELETED state. * - `DELETED`: Job is deleted. */ delete: operations["deleteJob"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/jobs/{id}/jobs": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["getAsyncBatchJobsForJob-hidden"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/jobs/{id}/tags": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Update Job Tags * @description Replaces all tags on the job's latest version. This does not create a new version or restart the job. Tags can be changed only while the pipeline is running or stopped. A job can have at most 10 tags; keys can be at most 64 characters and values at most 256. */ put: operations["updateJobTags"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/llm-usage/{integrationId}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** Get the current maxTokens window of one LLM integration */ get: operations["currentWindow"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/manifest": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get application manifest * @description Returns authentication configuration and other manifest data needed by the frontend */ get: operations["getManifest"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/masking/mask": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Apply masks to samples * @description Applies a masking operator's masks to sample log events and returns the masked result for each, so the editor can preview a configuration without deploying it. The operator's predicate gates which logs are masked in production, not how, so it is ignored here and the masks are applied to every sample. */ post: operations["mask"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/me/login": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; post: operations["recordLogin"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/me/permissions": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["getUserPermissions"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/me/provision": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put: operations["provisionUser"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/metrics/query": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; post: operations["query"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/metrics/query_range": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; post: operations["queryRange"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/metrics/scrape": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Scrape metrics in Prometheus text exposition format * @description Returns metrics for the organization in Prometheus text exposition format (0.0.4). Selected when the Accept header prefers text/plain;version=0.0.4. */ get: operations["scrapePrometheus"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/organization": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get Organization * @description Get the organization to which the authenticated user belongs. */ get: operations["getOrganization"]; /** * Update Organization * @description Update the organization to which the authenticated user belongs. */ put: operations["updateOrganization"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/organization/access-config": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get the access configuration for the organization * @description Returns the current access configuration for the organization. */ get: operations["getAccessConfig"]; /** * Update access configuration for the organization * @description Updates the access configuration for the organization. */ put: operations["updateAccessConfig"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/organization/sso-request": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Request SSO enablement * @description Sends a notification to the Grepr team requesting that SSO be enabled for the authenticated user's organization. */ post: operations["requestSsoEnablement"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/permissions": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get available permissions * @description Returns all permissions available for assignment to organization wide roles. */ get: operations["getAvailablePermissions"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/pipelines/{jobId}/apply-change": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Verify and apply or suggest a pipeline change * @description Deep-merges a partial templateInputs patch into the pipeline's current configuration and verifies the result against the supplied samples. A change that fails verification is rejected with findings and nothing is touched. A change that verifies cleanly is recorded as an agent suggestion for human review when the proposing agent requires approval, and applied as a new job version otherwise. Works only on pipelines with a single template-operation vertex. */ post: operations["applyChange"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/pipelines/{pipelineId}/exceptions/estimation-datasets": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List estimation-eligible datasets for a pipeline * @description Returns the pipeline's sink datasets, each joined with the dataset's current estimation configuration (or null when the dataset is not opted in). The estimation configuration is per-dataset and shared across every pipeline whose sink targets the same dataset. */ get: operations["getEstimationDatasets_1"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/pipelines/{pipelineId}/exceptions/impact-estimation-reset": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Reset impact estimations for a pipeline * @description Clears the cached impact percentage and last-updated timestamp on estimation rows in the pipeline's scope. The hourly impact-estimation cycle picks up the cleared rows on its next tick; fresh values appear on a later poll. Rows currently being processed by an active estimation job are skipped and retain their values until that job completes. Returns the number of rows cleared; zero indicates a no-op (no opted-in sink datasets, or no estimation-capable source integrations). */ post: operations["resetImpactEstimation"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/pipelines/{pipelineId}/exceptions/integrations/{integrationId}/impacts": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get integration exception impacts for a pipeline * @description Returns the per-exception impact percentages the runtime auto-sync threshold filter would compare against for this pipeline/integration pair, each with the time that estimate was measured. The pipeline's sink dataset scopes the lookup; exceptions without an estimation row are absent from the response rather than reported as zero. */ get: operations["getIntegrationExceptionImpacts"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/query/analytics-draft": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Check an analytics query being written * @description Checks request constraints and server limits for an analytics draft. When those pass, translates the whole query once and reports its first SQL failure. Diagnostics name the field when it is known, or the query as a whole. Draft feedback is advisory; submission still validates against the actual table and engine. The query is deliberately not bean-validated on the way in, so incomplete drafts receive diagnostics rather than a rejected request. */ post: operations["checkAnalyticsDraft"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/query/analytics-vocabulary": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get analytics expression vocabulary * @description Returns parser-approved expression functions and logical log fields. With a dataset, includes that dataset's promoted logs_raw tag keys. */ get: operations["getAnalyticsVocabulary"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/query/parse": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Parses a query * @description Parses a query and returns the parsed query. If the query is invalid, an error is returned. */ post: operations["parse_2"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/roles": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List all available roles for the organization * @description Returns all roles available for the organization */ get: operations["listRoles"]; put?: never; /** * Create a new custom role * @description Creates a new custom role with specified permissions */ post: operations["createRole"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/roles/{roleId}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get role by ID * @description Returns details of a specific role by its ID */ get: operations["getRoleById"]; /** * Update a custom role * @description Updates an existing custom role. System roles cannot be updated. */ put: operations["updateRole"]; post?: never; /** * Delete a custom role * @description Deletes a custom role. System roles cannot be deleted. */ delete: operations["deleteRole"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/service-accounts": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List service accounts * @description Lists all service accounts for the organization with pagination support */ get: operations["listServiceAccounts"]; put?: never; /** * Create a service account * @description Creates a new service account with OAuth2 client credentials for programmatic API access */ post: operations["createServiceAccount"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/service-accounts/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get service account details * @description Gets the details of a specific service account */ get: operations["getServiceAccount"]; /** * Update service account * @description Updates the name and role assignments of a service account */ put: operations["updateServiceAccount"]; post?: never; /** * Delete service account * @description Deletes a service account and immediately revokes all API access using its credentials */ delete: operations["deleteServiceAccount"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/service-accounts/{id}/secret": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get service account secret * @description Retrieves the OAuth2 client secret for a service account */ get: operations["getServiceAccountSecret"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/service-accounts/{id}/secret/regenerate": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Regenerate service account secret * @description Generates a new OAuth2 client secret for the service account. The old secret will be invalidated immediately. */ post: operations["regenerateServiceAccountSecret"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/signup": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; post: operations["signup"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/skills": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** List skills */ get: operations["list_4"]; put?: never; /** Create an organization skill */ post: operations["create_3"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/skills/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** Get a skill */ get: operations["get_4"]; /** Update an organization skill */ put: operations["update_1"]; post?: never; /** Archive an organization skill */ delete: operations["archive"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/sso-claim-mapping": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List all SSO claim mappings * @description Returns all configured SSO claim-to-role mappings for the organization */ get: operations["listClaimMappings"]; put?: never; /** * Create a new SSO claim mapping * @description Creates a new SSO claim mapping that assigns roles when token claims match */ post: operations["createClaimMapping"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/sso-claim-mapping/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get claim mapping by ID * @description Returns details of a specific SSO claim mapping */ get: operations["getClaimMapping"]; /** * Update an SSO claim mapping * @description Updates an existing SSO claim mapping */ put: operations["updateClaimMapping"]; post?: never; /** * Delete an SSO claim mapping * @description Deletes an existing SSO claim mapping */ delete: operations["deleteClaimMapping"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/teams": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get Teams * @description Get all the teams for the organization. */ get: operations["listTeams"]; put?: never; post: operations["createTeam"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/teams/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["getTeamById"]; put: operations["updateTeam"]; post?: never; delete: operations["deleteTeam"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/teams/{id}/roles": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get available roles for a team * @description Returns the leader and member roles available for assignment in this team */ get: operations["getTeamRoles"]; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/teams/{id}/users": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get: operations["getUsersInTeam"]; put?: never; /** * Add users to a team * @description Add users to a team. */ post: operations["addUsersToTeam"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/teams/{id}/users/{userId}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; post?: never; /** * Removes a user from the team * @description Remove a user from the team. */ delete: operations["removeUserFromTeam"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/teams/{id}/users/{userId}/roles": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put: operations["updateRolesForUserInTeam"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/templates": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List templates * @description Lists templates a user has access to. Only returns the latest versions of each. */ get: operations["listTemplates"]; put?: never; /** * Create a template * @description Creates a new template for generating job subgraphs. */ post: operations["createTemplate"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/templates/test": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Runs a template script and returns the result. * @description Runs a template script and returns the result. The result should be deserializable to a GreprJobGraph if the 'testDeserialization' parameter is true in the payload. */ post: operations["testTemplate"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/templates/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Gets templates by ID * @description Gets all versions of a template by ID. Supports query params: latest=true for the latest version, version=x for a specific version. If both are specified, latest takes precedence. */ get: operations["getTemplate"]; /** * Update a template * @description Updates a template by ID. The previous version is tombstoned. */ put: operations["updateTemplate"]; post?: never; /** * Delete a template * @description Deletes all versions of a template if no job is currently using it. */ delete: operations["deleteTemplate"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/triggers": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** Submit trigger */ post: operations["submitTrigger"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/users": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List all users * @description Get all users in the system. */ get: operations["list_16"]; put?: never; /** * Create a new user * @description Create a new user and add them to the organization. */ post: operations["createUser"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/users/{id}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get user by ID * @description Get a user by their ID. */ get: operations["getUser"]; put: operations["updateUser"]; post?: never; delete: operations["deleteUser"]; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/users/{id}/orgRoles": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put: operations["updateUserOrgRoles"]; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/v1/validation/sql/flink": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Validate a Flink SQL query * @description Validates that the given Flink SQL query is valid. */ post: operations["validate"]; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; } export type webhooks = Record; export interface components { schemas: { AccessConfig: { /** @default true */ autoSignupEnabled?: boolean; }; /** @description Base class of all Action Rules */ ActionRule: components["schemas"]["EventActionRule"] | components["schemas"]["JobActionRule"]; /** @description Activity logs search criteria */ ActivityLogsSearch: { /** * Format: date-time * @description End of time range filter. Must be a valid ISO timestamp in UTC. * @example 2024-01-01T23:59:59Z */ endTime?: string; /** * Format: int32 * @description Maximum number of results to return * @default 100 * @example 100 */ limit?: number; /** * @description Optional filter by log types. If null or empty, matches all log types. * @default [] * @example [ * "INTEGRATION_IMPORT", * "JOB_EXECUTION" * ] */ logTypes?: ActivityLogsSearchLogTypes[]; /** * Format: int32 * @description Number of results to skip for pagination * @example 0 */ offset?: number; /** * @description Optional resource filters. Multiple filters use OR logic. If null or empty, matches all resources the user has access to (requires system logs permission if no filters specified). * @default [] * @example [ * { * "resourceId": "int-123", * "resourceType": "INTEGRATION" * }, * { * "resourceId": "job-456", * "resourceType": "JOB" * } * ] */ resourceFilters?: components["schemas"]["ResourceFilter"][]; /** * @description Optional full-text search query for message content. Uses PostgreSQL's text search capabilities. * @example failed import */ searchQuery?: string; /** * Format: date-time * @description Start of time range filter. Must be a valid ISO timestamp in UTC. * @example 2024-01-01T00:00:00Z */ startTime?: string; /** * @description Optional filter by log statuses. If null or empty, matches all log statuses. * @default [] * @example [ * "INFO", * "ERROR" * ] */ statuses?: ActivityLogsSearchStatuses[]; /** * @description Optional filter by user IDs who triggered the activity. If null or empty, matches all users. * @default [] * @example [ * "user123", * "user456" * ] */ userIds?: string[]; }; AddToListAttributeAction: { /** * Format: int32 * @description Action order. Lower is applied first. * @default 0 */ order?: number; /** * @description The path to the list to add to. * @example applications */ targetPath: string; /** * @description Add values to a list in event attributes. If the target list is not present, it is created. If the target is present and not a list, it's a no-op. (enum property replaced by openapi-typescript) * @enum {string} */ type: AddToListAttributeActionType; value: components["schemas"]["Any"]; }; AgentAnalyticsDashboardSummary: { dataQuality?: components["schemas"]["DataQuality"]; emitters?: components["schemas"]["Breakdown"][]; intentToolMatrix?: components["schemas"]["MatrixCell"][]; intentUsage?: components["schemas"]["Breakdown"][]; models?: components["schemas"]["Breakdown"][]; topIntents?: components["schemas"]["Intent"][]; topTools?: components["schemas"]["Tool"][]; totals?: components["schemas"]["Totals"]; }; AgentConfig: { /** Format: date-time */ createdAt: string; id: string; name: string; organizationId: string; payload: components["schemas"]["AgentConfigPayload"]; /** @enum {string} */ state?: AgentConfigState; /** Format: date-time */ updatedAt: string; /** Format: int32 */ version?: number; }; AgentConfigCreate: { /** Format: int64 */ agentMaxTokens?: number; /** Format: int32 */ automaticSignalMaxQueueAgeMinutes?: number; /** @enum {string} */ changeApprovalMode: AgentConfigCreateChangeApprovalMode; /** @enum {string} */ concurrencyLimitPolicy?: AgentConfigCreateConcurrencyLimitPolicy; /** @description What the agent handles, shown to other agents when they list the agents; null for none. */ description?: string; enabledMcpIntegrations: components["schemas"]["AgentMcpIntegrations"][]; enabledSkills: string[]; enabledTools: string[]; /** * @description Whether the agent may put issues in Ready; null falls back to REQUIRE_TRIAGE. * @enum {string} */ issueHandoffMode?: AgentConfigCreateIssueHandoffMode; issuePickup?: components["schemas"]["AgentIssuePickup"]; /** * Format: int32 * @default 3 */ maxConcurrentInvestigations?: number; /** * Format: int32 * @default 3000000 */ maxTokens?: number; /** Format: int32 */ maxTurns?: number; memoryConfiguration?: components["schemas"]["AgentMemoryConfiguration"]; modelConfiguration: components["schemas"]["ModelConfiguration"]; name: string; serviceAccountId: string; systemPrompt: string; /** @description Whether the agent files and works on issues; null means true. */ worksOnIssues?: boolean; }; AgentConfigPayload: { /** Format: int64 */ agentMaxTokens?: number; /** Format: int32 */ automaticSignalMaxQueueAgeMinutes?: number; /** @enum {string} */ changeApprovalMode: AgentConfigCreateChangeApprovalMode; /** @enum {string} */ concurrencyLimitPolicy?: AgentConfigCreateConcurrencyLimitPolicy; /** @description What the agent handles, shown to other agents when they list the agents; null for none. */ description?: string; enabledMcpIntegrations: components["schemas"]["AgentMcpIntegrations"][]; enabledSkills: string[]; enabledTools: string[]; /** * @description Whether the agent may put issues in Ready; null falls back to REQUIRE_TRIAGE. * @enum {string} */ issueHandoffMode?: AgentConfigCreateIssueHandoffMode; issuePickup?: components["schemas"]["AgentIssuePickup"]; /** Format: int32 */ maxConcurrentInvestigations?: number; /** Format: int32 */ maxTokens?: number; /** Format: int32 */ maxTurns?: number; memoryConfiguration?: components["schemas"]["AgentMemoryConfiguration"]; modelConfiguration: components["schemas"]["ModelConfiguration"]; serviceAccountId: string; systemPrompt: string; /** @description Whether the agent files and works on issues; every agent reads them. */ worksOnIssues?: boolean; }; AgentConfigUpdate: { /** Format: int64 */ agentMaxTokens?: number; /** Format: int32 */ automaticSignalMaxQueueAgeMinutes?: number; /** @enum {string} */ changeApprovalMode: AgentConfigCreateChangeApprovalMode; /** @enum {string} */ concurrencyLimitPolicy?: AgentConfigCreateConcurrencyLimitPolicy; /** @description What the agent handles, shown to other agents; required, like worksOnIssues, and empty for none. */ description: string; enabledMcpIntegrations: components["schemas"]["AgentMcpIntegrations"][]; enabledSkills: string[]; enabledTools: string[]; /** * @description Whether the agent may put issues in Ready; required, like worksOnIssues. * @enum {string} */ issueHandoffMode: AgentConfigCreateIssueHandoffMode; issuePickup: components["schemas"]["AgentIssuePickup"]; /** Format: int32 */ maxConcurrentInvestigations?: number; /** Format: int32 */ maxTokens?: number; /** Format: int32 */ maxTurns?: number; memoryConfiguration?: components["schemas"]["AgentMemoryConfiguration"]; modelConfiguration: components["schemas"]["ModelConfiguration"]; name: string; serviceAccountId: string; systemPrompt: string; /** Format: int32 */ version?: number; /** @description Whether the agent files and works on issues; required, since an update replaces the agent and an omitted switch would turn issue work off unnoticed. */ worksOnIssues: boolean; }; AgentDetail: { agent?: components["schemas"]["AgentConfig"]; metrics?: components["schemas"]["AgentInvestigationMetrics"]; }; AgentInvestigationMetrics: { /** Format: int64 */ avgDurationMs?: number; /** Format: int32 */ completed?: number; /** Format: int32 */ failed?: number; /** Format: int32 */ total?: number; }; /** @description Whether an agent picks up Ready issues on its own, and which: the board's own filters, applied to Ready issues nobody is working on. The server checks the filters' limits and teams when the agent is saved. */ AgentIssuePickup: { /** @description Whether the dispatcher starts the agent on Ready issues; it also needs Works on issues. */ enabled?: boolean; /** @description Issues with every one of these entity keys, each with any of its values, as the issue search's entity filter; null or empty for any. */ entities?: { [key: string]: string[]; }; /** @description Issues carrying every one of these labels; null or empty for any. */ labels?: string[]; /** * Format: int32 * @description Pickup starts no run while the agent has this many runs on issues, queued or running, handed or picked up; people's handoffs aren't held to it, and pickups use the agent's run slots. Null for 1. At most the agent's concurrency limit, and below it when the agent discards work at its limit, so a slot stays free for alerts and handoffs. */ maxRuns?: number; /** @description `P0` to `P3`: issues of this priority or more urgent; null for any. */ priority?: string; /** @description Issues on any of these teams; null or empty for any the agent can reach. */ teamIds?: string[]; }; /** @description Whose issues an agent reads and whose it can work on, from its service account's issue scopes. */ AgentIssueScopes: { reads?: components["schemas"]["IssueScopeView"]; worksOn?: components["schemas"]["IssueScopeView"]; }; /** @description Processes native agent-harness OTel logs into canonical agent LogEvents. */ AgentLogProcessor: { /** @example operation_name */ name: string; /** * @description Processes native agent-harness OTel logs. (enum property replaced by openapi-typescript) * @enum {string} */ type: AgentLogProcessorType; }; AgentMaxTokensStatus: { admits?: boolean; /** Format: int64 */ agentLimit?: number; /** Format: int64 */ agentReserved?: number; /** Format: int64 */ agentUsage?: number; /** @enum {string} */ blockedBy?: AgentMaxTokensStatusBlockedBy; /** Format: int64 */ integrationLimit?: number; /** Format: int64 */ integrationReserved?: number; /** Format: int64 */ integrationUsage?: number; /** Format: int32 */ investigationsQueued?: number; /** Format: int64 */ reservation?: number; /** Format: date-time */ windowResetsAt?: string; }; AgentMcpIntegrations: { allowedTools?: string[]; integrationId: string; }; AgentMemoryConfiguration: { digest?: components["schemas"]["AgentMemoryHistoryDigest"]; embeddingIntegrationId?: string; embeddingModel?: string; enabled?: boolean; policy?: components["schemas"]["AgentMemoryPolicy"]; /** * @deprecated * @description Ignored: every agent can search memories. */ searchTool?: boolean; signalTagMappings?: { [key: string]: { [key: string]: string[]; }; }; vectorIndexIntegrationId?: string; }; AgentMemoryHistoryDigest: { enabled?: boolean; /** Format: int32 */ maxItems?: number; /** Format: int32 */ windowDays?: number; }; AgentMemoryPolicy: { guidance?: string; /** Format: int32 */ maxSearchesPerInvestigation?: number; /** @enum {string} */ recordPolicy?: AgentMemoryPolicyRecordPolicy; }; AgentPipelineSubscription: { jobId: string; /** Format: date-time */ pausedAt?: string; /** Format: date-time */ subscribedAt: string; }; AgentRecentHealth: { /** Format: int32 */ completed?: number; /** Format: int32 */ failed?: number; }; /** @description What one agent may learn about another: enough to decide whose memory is worth querying, or how to put an issue in Ready so that agent picks it up, and nothing more. */ AgentRosterEntry: { /** @description What the agent handles, as its configuration says, or null when it says nothing. */ description?: string; /** @description The agent's id, as named in a cross-agent memory search's `agentId`. */ id?: string; /** @description The agent's human-readable name. */ name?: string; picksUp?: components["schemas"]["PickupFilters"]; }; AgentSessionAnalytics: { analysisJobId: string; analysisVersion: string; datasetId: string; /** Format: int32 */ embeddingCapacity?: number; /** Format: int32 */ embeddingDimensions?: number; embeddingModel: string; /** Format: date-time */ end: string; labelModel: string; /** Format: int32 */ maxRetries?: number; /** Format: int32 */ maximumNamedGroups?: number; modelIntegrationId: string; /** @example operation_name */ name: string; query: components["schemas"]["EventPredicate"]; /** * Format: ISO-8601 * @description Duration in ISO-8601 format (e.g., 'PT20.345S' for 20.345 seconds). * @example PT20.345S */ requestTimeout: string; /** Format: int64 */ retainedAnalyticsMemoryLimitBytes?: number; /** Format: int32 */ sessionCap?: number; /** Format: date-time */ start: string; /** * @description discriminator enum property added by openapi-typescript * @enum {string} */ type: AgentSessionAnalyticsType; }; AgentSessionAnalyticsDownload: { /** Format: date-time */ expiresAt?: string; filename?: string; url?: string; }; AgentSessionAnalyticsJob: { analysisVersion?: string; /** Format: int64 */ analyzedSessionCount?: number; /** Format: int64 */ artifactByteSize?: number; clusteringAlgorithmVersion?: string; /** Format: date-time */ completedAt?: string; /** Format: date-time */ createdAt?: string; dashboardSummary?: components["schemas"]["AgentAnalyticsDashboardSummary"]; datasetId?: string; downloadAvailable?: boolean; /** Format: int32 */ embeddingDimensions?: number; embeddingModel?: string; /** Format: int64 */ exportedSessionCount?: number; failureReason?: string; jobId?: string; /** @enum {string} */ jobState?: PathsV1JobsGetParametersQueryState; labelModel?: string; /** Format: int64 */ matchingSessionCount?: number; /** Format: int32 */ miscellaneousSessionCount?: number; /** Format: int32 */ namedGroupCount?: number; request?: components["schemas"]["CreateAgentSessionAnalyticsJob"]; resultWasCapped?: boolean; /** @enum {string} */ state?: AgentSessionAnalyticsJobState; /** Format: int32 */ warningCount?: number; }; AgentSessionAnalyticsPage: { items?: components["schemas"]["AgentSessionAnalyticsJob"][]; /** Format: int32 */ limit?: number; /** Format: int32 */ offset?: number; /** Format: int64 */ total?: number; }; /** * Inputs Schema * @description Schema for the agent-session analytics job graph. */ AgentSessionAnalyticsTemplateInput: { analyticsJobId: string; artifactPrefix: string; datasetId: string; /** * Format: int32 * @default 32 */ embeddingCapacity?: number; /** Format: int32 */ embeddingDimensions?: number; embeddingModel: string; /** Format: date-time */ end: string; labelModel: string; /** * Format: int32 * @default 2 */ maxRetries?: number; /** Format: int32 */ maximumNamedGroups?: number; modelIntegrationId: string; organizationId: string; query: components["schemas"]["EventPredicate"]; /** * Format: ISO-8601 * @description Duration in ISO-8601 format (e.g., 'PT20.345S' for 20.345 seconds). * @default PT30S * @example PT20.345S */ requestTimeout: string; /** * Format: int64 * @default 1073741824 */ retainedAnalyticsMemoryLimitBytes?: number; /** Format: int32 */ sessionCap?: number; /** Format: date-time */ start: string; warehouseIntegrationId: string; }; AgentSessionEventsIcebergTableSource: { /** @description The ID of the dataset to read data from. */ datasetId: string; /** * Format: date-time * @description End of time interval to query data for. * @example 2023-01-01T01:00:00Z */ end: string; /** * Format: int32 * @description The maximum number of rows to process * @default 2500 */ limit?: number; /** @example operation_name */ name: string; /** * Format: int32 * @description Offset on the number of rows to process * @default 0 */ offset?: number; query: components["schemas"]["query"]; /** * @description The order in which the rows should be sorted by * @default ASCENDING * @enum {string} */ sortOrder?: AgentSessionEventsIcebergTableSourceSortOrder; /** * Format: date-time * @description Start of time interval to query data for. * @example 2023-01-01T00:00:00Z */ start: string; /** * @description Reads every event of the agent sessions whose events match the query. (enum property replaced by openapi-typescript) * @enum {string} */ type: AgentSessionEventsIcebergTableSourceType; /** * @description Variables that can be used to modify the query while parsed * @default {} * @example { * "__application": "app1", * "__service": "service1" * } */ variables?: { [key: string]: components["schemas"]["Any"]; }; }; AgentSessionSummary: { emitter: string; /** Format: int64 */ errorCount: number; /** Format: date-time */ firstActivityTimestamp: string; firstPrompt?: string; identity?: { [key: string]: string; }; /** Format: date-time */ lastActivityTimestamp: string; matchedPreview?: string; model?: string; sessionId: string; /** Format: int64 */ toolCallCount: number; /** * @description discriminator enum property added by openapi-typescript * @enum {string} */ type: AgentSessionSummaryType; }; /** @description An OTLP integration attached as an Agent Sessions source or sink. */ AgentSessionsEndpoint: { /** @description OTLP integration carrying both agent event logs and execution spans. */ integrationId: string; /** @description Base operation name; the generated logs and traces operations suffix it. */ name: string; }; AgentSessionsIcebergTableSource: { /** @description The ID of the dataset to read data from. */ datasetId: string; /** * Format: date-time * @description End of time interval to query data for. * @example 2023-01-01T01:00:00Z */ end: string; /** * Format: int32 * @description The maximum number of rows to process * @default 2500 */ limit?: number; /** @example operation_name */ name: string; /** * Format: int32 * @description Offset on the number of rows to process * @default 0 */ offset?: number; query: components["schemas"]["query"]; /** * @description The order in which the rows should be sorted by * @default ASCENDING * @enum {string} */ sortOrder?: AgentSessionEventsIcebergTableSourceSortOrder; /** * Format: date-time * @description Start of time interval to query data for. * @example 2023-01-01T00:00:00Z */ start: string; /** * @description Selects grouped agent session summaries from the logs Iceberg table. (enum property replaced by openapi-typescript) * @enum {string} */ type: AgentSessionsIcebergTableSourceType; /** * @description Variables that can be used to modify the query while parsed * @default {} * @example { * "__application": "app1", * "__service": "service1" * } */ variables?: { [key: string]: components["schemas"]["Any"]; }; }; AgentSessionsSynchronousSink: { /** @example operation_name */ name: string; /** * @description Sink for returning agent session summaries to the caller. (enum property replaced by openapi-typescript) * @enum {string} */ type: AgentSessionsSynchronousSinkType; }; /** * Inputs Schema * @description Schema for the Agent Sessions job graph. */ AgentSessionsTemplateInput: { /** @description Dataset receiving canonical events and normalized spans. */ datasetId: string; /** @description Optional OTLP integrations fed canonical agent events and normalized spans. */ sinks?: components["schemas"]["AgentSessionsEndpoint"][]; /** @description OTLP integrations receiving agent harness events and execution spans. */ sources: components["schemas"]["AgentSessionsEndpoint"][]; }; /** @description Emits a generic pipeline signal for each input log event. */ AgentSignalSink: { /** @description Optional author-provided context included with every emitted signal. */ context?: string; /** @example operation_name */ name: string; /** * @description Agent ids that should investigate every signal emitted by this sink. * @default [] */ targetAgentIds: string[]; /** * @description Emits generic pipeline signals to selected agents. (enum property replaced by openapi-typescript) * @enum {string} */ type: AgentSignalSinkType; }; /** @description Normalizes agent span attributes and projects observed transcript content as canonical agent LogEvents in one pass. */ AgentSpanProcessor: { /** @example operation_name */ name: string; /** * @description Processes native agent-harness OTel spans. (enum property replaced by openapi-typescript) * @enum {string} */ type: AgentSpanProcessorType; }; AgentSubscriptionCounts: { /** Format: int32 */ pipelines?: number; }; AgentSuggestion: { agentId?: string; /** Format: int64 */ appliedJobVersion?: number; /** Format: int64 */ baseJobVersion?: number; /** Format: date-time */ createdAt?: string; description?: string; id?: string; investigationId?: string; jobId?: string; organizationId?: string; /** Format: date-time */ reviewedAt?: string; reviewedBy?: string; samples?: components["schemas"]["LogEvent"][]; /** @enum {string} */ status?: PathsV1AgentSuggestionsGetParametersQueryStatus; teamIds?: string[]; templateInputsPatch?: components["schemas"]["JsonNode"]; toolCallId?: string; /** Format: date-time */ updatedAt?: string; }; AgentSuggestionApplyResult: { /** * Format: int64 * @description The new job version the suggestion was applied as, or absent when it was rejected by verification. Applying restarts the pipeline from a savepoint, so the new version reaches its desired state asynchronously. */ appliedJobVersion?: number; /** * @description Verification findings that blocked the apply. When present the pipeline is untouched and the suggestion stays PENDING: the pipeline changed since the suggestion was recorded, so the change is no longer safe to apply as-is. * @default [] */ findings?: components["schemas"]["ChangeFinding"][]; suggestion: components["schemas"]["AgentSuggestion"]; }; AgentSuggestionsList: { hasMore?: boolean; /** Format: int32 */ limit?: number; /** Format: int32 */ start?: number; suggestions?: components["schemas"]["ItemsCollectionAgentSuggestion"]; }; AgentSummary: { agent?: components["schemas"]["AgentConfig"]; recentHealth?: components["schemas"]["AgentRecentHealth"]; subscriptionCounts?: components["schemas"]["AgentSubscriptionCounts"]; }; /** * @description Aggregation function. * @enum {string} */ AggType: AggType; AggregationAccumulator: { /** @enum {string} */ accumulatorType?: AggregationAccumulatorAccumulatorType; /** Format: double */ materializedValue?: number; }; /** @description One aggregation function declaration. */ AggregationDecl: { /** * @description Function arguments. Heterogeneous; validated at pipeline construction. PERCENTILE accepts [rank], [rank, relativeAccuracy], or [rank, relativeAccuracy, maxNumBins]. * @default [] */ args?: Record[]; /** @description Output suffix. Omitted = preserve source metric name; in rule conditions the output is addressed as `.val` (at most one as-less aggregation per block). */ as?: string; fn: components["schemas"]["AggType"]; }; AllQueryNode: { /** * @description A node that represents a parsed query that matches all. (enum property replaced by openapi-typescript) * @enum {string} */ type: AllQueryNodeType; }; /** @description User-facing completion templates for this function. */ AnalyticsCompletion: { /** Format: int32 */ caretFromEnd?: number; detail?: string; insert?: string; label?: string; }; /** @description Request constraints, followed by the first SQL failure when the request is complete, at most one per field. Empty means no draft errors were found; execution still validates the query against its actual table and engine. */ AnalyticsDiagnostic: { fix?: components["schemas"]["AnalyticsDiagnosticFix"]; /** * @description What is wrong, as a finished sentence to show the person editing the query. * @example Result aliases must be unique. */ message: string; /** * @description Where the rule was broken, as a path into the request: 'select', 'select[1].expression', 'select[1].alias', 'groupBy[0]', 'window.size', 'window.slide', 'having', 'orderBy[2].expression', 'limit', 'scanBudgetBytes', 'predicate', or 'query' for a failure that names no single item. * @example select[1].alias */ path: string; }; /** @description A change that resolves this diagnostic, when the server has verified one: today, the GROUP BY entry that makes an ungrouped SELECT expression valid. */ AnalyticsDiagnosticFix: { /** * @description A GROUP BY entry to append: the result column's alias, quoted when it starts with a digit, or its expression when it has no alias. The server has translated the query with this entry added and found it valid. * @example service */ addGroupBy: string; }; AnalyticsDraftRequest: { /** @description Dataset the query reads. Supplying it checks the scan budget against that dataset's ceiling and requires VIEW permission on it. */ datasetId?: string; query: components["schemas"]["StructuredAnalyticsQuery"]; /** * Format: int64 * @description Bytes the run may scan, checked against the organization's ceiling. Zero stands for a budget field left empty and is reported as a diagnostic. * @example 107374182400 */ scanBudgetBytes: number; }; AnalyticsDraftResponse: { /** @description Request constraints, followed by the first SQL failure when the request is complete, at most one per field. Empty means no draft errors were found; execution still validates the query against its actual table and engine. */ diagnostics: components["schemas"]["AnalyticsDiagnostic"][]; }; /** @description Example calls demonstrating the function. */ AnalyticsExample: { /** @description One sentence on what this call does. */ explanation: string; /** @description The call, in the analytics source language. */ expression: string; }; AnalyticsField: { /** @description Format string for a nested key accessor, when applicable. */ accessorTemplate?: string; name: string; type: string; }; AnalyticsFunction: { aggregate?: boolean; /** @description Function family used to group completions. */ category?: string; /** @description User-facing completion templates for this function. */ completions?: components["schemas"]["AnalyticsCompletion"][]; /** @description Example calls demonstrating the function. */ examples?: components["schemas"]["AnalyticsExample"][]; /** @description Short user-facing explanation shown with completions. */ help: string; /** @description True when the call is written with SQL keywords rather than a comma-separated argument list, e.g. CAST(value AS type) or EXTRACT(field FROM timestamp). Show the examples rather than a signature synthesized from parameters. */ keywordSyntax?: boolean; /** * Format: int32 * @description Null for variadic functions. */ maxArgs?: number; /** * Format: int32 * @description Null for variadic functions. */ minArgs?: number; name: string; /** @description The function's arguments in call order, for rendering a signature. Required arguments precede optional ones. */ parameters?: components["schemas"]["AnalyticsParameter"][]; }; /** * @description Ordering applied to the analytical results. * @default [] */ AnalyticsOrderBy: { /** * @description Sort direction. * @default ASC * @enum {string} */ direction?: AnalyticsOrderByDirection; /** @description Grepr SQL expression or projection alias to order by. The expression may reference projection aliases. */ expression: string; }; /** @description The function's arguments in call order, for rendering a signature. Required arguments precede optional ones. */ AnalyticsParameter: { /** @description What the argument means, e.g. "fraction" for a percentile's rank. */ name: string; /** @description Whether a call may omit this argument. */ optional?: boolean; /** @description Whether this argument may be supplied more than once. */ repeating?: boolean; /** * @description What the argument accepts. * @enum {string} */ type: AnalyticsParameterType; }; AnalyticsProjection: { /** @description Optional result column name. */ alias?: string; /** @description Grepr SQL expression to project. */ expression: string; }; /** @description Complete analytical query to execute. */ AnalyticsQuery: { type: string; } & components["schemas"]["StructuredAnalyticsQuery"]; /** @description Dataset tables available to the query under logical aliases. */ AnalyticsTableBinding: { /** @description Logical table name used by the analytical query. */ alias: string; /** @description ID of the dataset that owns the table. */ datasetId: string; /** * @description Dataset-owned table exposed under the logical alias. * @enum {string} */ table: AnalyticsTableBindingTable; }; /** @description Optional time window that buckets the results. Adds leading 'window_start' and 'window_end' result columns, which are always grouped. */ AnalyticsTimeWindow: { /** * @description Window layout: TUMBLING windows do not overlap; SLIDING windows start every 'slide'. * @enum {string} */ kind: AnalyticsTimeWindowKind; /** * Format: ISO-8601 * @description Window length as an ISO-8601 duration, a whole number of milliseconds. * @example PT20.345S */ size: string; /** * Format: ISO-8601 * @description Distance between consecutive SLIDING window starts as an ISO-8601 duration, a whole number of milliseconds dividing 'size'. Absent for TUMBLING windows. * @example PT20.345S */ slide?: string; /** * @description Which timestamp the windows bucket by. * @default EVENT_TIMESTAMP * @enum {string} */ timestamp?: AnalyticsTimeWindowTimestamp; }; AnalyticsVocabularyResponse: { fields: components["schemas"]["AnalyticsField"][]; functions: components["schemas"]["AnalyticsFunction"][]; /** * Format: int32 * @description Largest number of result rows an analytics query may ask for. A builder uses it to bound its input; the server refuses a larger request whether or not the caller did. */ maxRowLimit: number; /** * Format: int64 * @description Largest scan budget, in bytes, an Athena analytics query over this dataset may request. Absent when no ceiling applies. Queries routed to a Trino query engine are not subject to it. */ maxScanBudgetBytes?: number; /** @description Promoted logs_raw tag keys for the requested dataset. */ promotedTagKeys?: string[]; /** @description Words the analytics SQL grammar reserves; they cannot be used as result aliases. */ reservedWords?: string[]; }; AndEventPredicate: { /** * Child predicates * @description List of predicates that must all match for this predicate to match. * @default [] */ queries: components["schemas"]["EventPredicate"][]; /** * @description A predicate that matches when every child predicate matches. (enum property replaced by openapi-typescript) * @enum {string} */ type: AndEventPredicateType; }; AndQueryNode: { /** * @description The and query node. This is a list of expressions that are combined with an AND operator. * @default [] * @example [ * "attribute", * "index=main" * ] */ expressions: components["schemas"]["ParsedQueryNode"][]; /** * @description A node that represents AND operator in a parsed query. (enum property replaced by openapi-typescript) * @enum {string} */ type: AndQueryNodeType; }; /** @description Commitment summary for Annual - Credit Pool plans. */ AnnualCreditPoolSummary: { /** @description Yearly committed dollar amount. */ annualCommitment: number; /** @description Cumulative dollar value of consumption since contract start. */ usedCumulative: number; /** @description Dollar value of consumption during this reporting period. */ usedThisPeriod: number; /** * @description discriminator enum property added by openapi-typescript * @enum {string} */ type: AnnualCreditPoolSummaryType; }; /** @description Commitment summary for Annual - Data Processing plans. */ AnnualDataProcessingSummary: { /** * @description One row per metric the customer is pre-committed on (e.g. Data Processing GB, Compute Units). * @default [] */ rows: components["schemas"]["MeteredDimensionCommitment"][]; /** * @description discriminator enum property added by openapi-typescript * @enum {string} */ type: AnnualDataProcessingSummaryType; }; /** @description Pre-commitment summary for Annual + SaaS plans. */ AnnualSaasPreCommitmentSummary: { /** * @description One row per metric the customer is pre-committed on, ordered by the configured displayed brick id list. * @default [] */ rows: components["schemas"]["MeteredDimensionCommitment"][]; /** * @description discriminator enum property added by openapi-typescript * @enum {string} */ type: AnnualSaasPreCommitmentSummaryType; }; /** @description Actions applied when an object is flagged anomalous. */ AnomalyActions: { objectMetricsPassthrough?: components["schemas"]["ObjectMetricsPassthrough"]; }; /** @description One anomaly rule. */ AnomalyConfig: { /** * Format: ISO-8601 * @description START..END lifecycle window after the last triggering datapoint. * @example PT20.345S */ anomalyDuration: string; /** * @description Scalar SQL condition that fires the rule. * @example obj.avg > coh.p90 */ condition: string; /** * @description Alias → aggregation declaration. * @default {} */ from: { [key: string]: components["schemas"]["MetricAggregation"]; }; /** * @description Join expressions linking aliases (Calcite-parsed SQL). * @default [] */ joinOn?: string[]; /** * @description Unique rule name. * @example top_decile_cpu */ name: string; }; /** @description The payload containing integration data. */ Anthropic: { /** * @description Masked API key for Anthropic * @example **************ey */ readonly apiKey?: string; /** * Format: int64 * @description Total tokens all agents using this integration may consume per max-tokens window. Null uses the default of 200,000,000. * @example 200000000 */ integrationMaxTokens?: number; /** * Format: int32 * @description Length in hours of the UTC-aligned max tokens window; must be a divisor of 24. Null uses the default of 1. * @example 24 */ maxTokensWindowHours?: number; /** @description Whether this provider offers an embeddings API and can back agent investigation memory. */ readonly supportsEmbedding?: boolean; /** * @description Indicates whether to validate the API key when saving. * @default true * @example true */ validateKeysOnSave?: boolean; }; /** * @description A value that can be a primitive (String or number), a list, or a map. * @example [ * 12, * "a", * { * "b": 1 * }, * [ * 1, * 2, * 3 * ] * ] */ Any: unknown; /** @description One key in the desired set */ ApiKey: { /** * @description Id of an existing key to keep or rotate * @example k_7f3a */ keyId?: string; /** @description User-supplied display name for the key, purely informational. Omitting it clears any existing label. */ label?: string; /** @description Whether this key is used to send data back to Datadog */ sendKey?: boolean; /** @description The cleartext key value (for an added or rotated key) */ value?: string; }; /** @description Whether a Datadog application key holds one authorization scope */ AppKeyScopeCheck: { /** @description Whether Grepr rejects an application key without this scope */ required?: boolean; /** * @description The Datadog authorization scope identifier * @example monitors_read */ scope?: string; /** * @description Whether the application key was found to hold a scope, or could not be checked * @enum {string} */ status?: AppKeyScopeCheckStatus; }; AppendMessageRequest: { text: string; }; ArrayData: Record; AthenaAgentSessionsSource: { /** @description The ID of the dataset to read data from. */ datasetId: string; /** * Format: date-time * @description End of time interval to query data for. * @example 2023-01-01T01:00:00Z */ end: string; /** * Format: int32 * @description The maximum number of rows to process * @default 2500 */ limit?: number; /** @example operation_name */ name: string; /** * Format: int32 * @description Offset on the number of rows to process * @default 0 */ offset?: number; query: components["schemas"]["query"]; /** * @description The order in which the rows should be sorted by * @default ASCENDING * @enum {string} */ sortOrder?: AgentSessionEventsIcebergTableSourceSortOrder; /** * Format: date-time * @description Start of time interval to query data for. * @example 2023-01-01T00:00:00Z */ start: string; /** * @description Returns grouped agent session summaries through Athena. (enum property replaced by openapi-typescript) * @enum {string} */ type: AthenaAgentSessionsSourceType; /** * @description Variables that can be used to modify the query while parsed * @default {} * @example { * "__application": "app1", * "__service": "service1" * } */ variables?: { [key: string]: components["schemas"]["Any"]; }; }; AthenaAnalyticsSource: { /** @example operation_name */ name: string; query: components["schemas"]["AnalyticsQuery"]; /** * Format: int64 * @description Maximum number of bytes this query may scan. * @default 107374182400 */ scanBudgetBytes?: number; /** @description Dataset tables available to the query under logical aliases. */ tables: components["schemas"]["AnalyticsTableBinding"][]; /** * @description Executes an analytical query against dataset tables using Athena. (enum property replaced by openapi-typescript) * @enum {string} */ type: AthenaAnalyticsSourceType; }; /** * @description Maps a log event attribute path to an HTTP header name * @example [ * { * "attributePath": [ * "kubernetes", * "namespace", * "name" * ], * "headerName": "X-Tenant" * } * ] */ AttributeHeaderMapping: { /** * @description Attribute path segments to extract the header value from. Each segment represents one level of nesting in the log event attributes. * @example [ * "kubernetes", * "namespace", * "name" * ] */ attributePath?: string[]; /** * @description HTTP header name to set from the attribute value * @example X-Tenant */ headerName: string; }; AttributeKeyTermNode: { /** * @description The string that is matched against the attribute key. * @default * @example "app" */ attribute: string; /** * @description A node that represents an attribute key in a parsed query. (enum property replaced by openapi-typescript) * @enum {string} */ type: AttributeKeyTermNodeType; }; /** * @description Masks to apply to attribute values. Each entry names an attribute path (as a list of segments) and the masks to apply to the value at that path. Only string values at the exact path are masked; missing or non-string attributes are skipped. Paths must be unique. The same matching rules as messageMasks apply. * @example [ * { * "masks": { * "email": "\\S+@\\S+" * }, * "path": [ * "user", * "contact" * ] * } * ] */ AttributeMask: { /** * @description Masks to apply to the value at this path, as a map of label to mask. The same matching rules as messageMasks apply. * @example { * "email": "\\S+@\\S+" * } */ masks: { [key: string]: components["schemas"]["Mask"]; }; /** * @description Attribute path to mask, as a list of segments. * @example [ * "user", * "contact" * ] */ path: string[]; }; AttributeNode: { /** * @description The attribute name * @default * @example "service" */ attribute: string; /** * @description The term to match. This is a string that is matched against the attribute. * @default * @example "grepr-service-1" */ term: string; /** * @description A node that matches an attribute in a parsed query. (enum property replaced by openapi-typescript) * @enum {string} */ type: AttributeNodeType; }; AttributePrefixNode: { /** * @description The attribute name * @default * @example "service" */ attribute: string; /** * @description The prefix to match in the attribute. * @default * @example "grepr-service" */ prefix: string; /** * @description A node that represents an attribute with a prefix in a parsed query. (enum property replaced by openapi-typescript) * @enum {string} */ type: AttributePrefixNodeType; }; AttributeRe2Node: { /** * @description This is the attribute that is matched against the value of the regex field. * @default * @example "appName" */ attribute: string; /** * @description The regex to match. This is a regex string that is matched against the value of the attribute field. * @default * @example "grepr-service-1.*" */ regex: string; /** * @description A node that represents an attribute regex in a parsed query. (enum property replaced by openapi-typescript) * @enum {string} */ type: AttributeRe2NodeType; }; /** @description List of attribute-to-attribute remapping rules. Each rule moves the value from a source attribute path to a target attribute path, removing the source unless the rule's preserveSource flag is set. An optional predicate filter controls when each rule is applied. */ AttributeRemappingRule: { predicate?: components["schemas"]["EventPredicate"]; /** * @description When true, the source attribute is preserved (copied) instead of being removed (moved). Defaults to false (source is removed after remapping). * @default false */ preserveSource?: boolean; /** * @description Source attribute path: a dotted string ("resource.service" is resource → service), or an array of literal keys (["http", "user.agent"]). * @example resource.service */ source: string | string[]; /** * @description Target attribute path: a dotted string, or an array of literal keys. * @example _service */ target: string | string[]; }; AttributeWildcardNode: { /** * @description The attribute name * @default * @example "service" */ attribute: string; /** * @description A node that represents an attribute wildcard in a parsed query. (enum property replaced by openapi-typescript) * @enum {string} */ type: AttributeWildcardNodeType; /** * @description The term to match. This is a wildcard string that contains wildcards * @default * @example "grepr-service*" */ wildcard: string; }; AttributeWithComparatorNode: { /** * @description The attribute name * @default * @example "service" */ attribute: string; /** * @description The comparator to use for the match. * @default EQUAL * @example "EQUALS" * @enum {string} */ comparator: AttributeWithComparatorNodeComparator; /** * @description The term to match. This is a string that is matched against the attribute. * @default * @example "grepr-service-1" */ term: string; /** * @description A node that matches an attribute in a parsed query. (enum property replaced by openapi-typescript) * @enum {string} */ type: AttributeWithComparatorNodeType; }; /** * Default attributes merge strategy * @description Default merge strategy to use for merging leaf-valued attributes. This is used when no specific merge strategy is defined for an attribute path. * @default { * "type": "exact" * } * @example {type: "ExactAttributesMergeStrategy"} */ AttributesMergeStrategy: components["schemas"]["ExactAttributesMergeStrategy"] | components["schemas"]["SamplingAttributesMergeStrategy"] | components["schemas"]["PreserveAllAttributesMergeStrategy"] | components["schemas"]["SumAttributesMergeStrategy"] | components["schemas"]["MinAttributesMergeStrategy"] | components["schemas"]["MaxAttributesMergeStrategy"] | components["schemas"]["AverageAttributesMergeStrategy"] | components["schemas"]["CompositeAttributesMergeStrategy"] | components["schemas"]["IgnoreAttributesMergeStrategy"]; /** * Attributes merge strategy entries * @description List of attribute paths and their corresponding merge strategies. If no strategy is defined for a path, the terminal merge strategy will be used. */ AttributesMergeStrategyEntry: { /** * @description The attribute path, represented as an array of strings (e.g., ["user", "id"]). * @example [ * "user", * "id" * ] */ attributePath: string[]; strategy: components["schemas"]["AttributesMergeStrategy"]; }; AuthConfig: { adminPortalClientId?: string; appClientId: string; authServerUrl: string; provider: string; signupClientId?: string; }; AutoApproveRequest: { autoApprove?: boolean; }; AvailablePermission: { /** @description Action being permitted (e.g., view, edit) */ action: string; /** * @description The category that the permission belongs to * @default Other */ category: string; /** @description Human-readable description of what this permission allows */ description: string; /** @description Unique identifier for this permission */ id: string; /** @description Resource type (e.g., jobs, users, integrations) */ resource: string; }; AverageAttributesMergeStrategy: { /** * @description AverageAttributesMergeStrategy: Computes the average of numeric attribute values. (enum property replaced by openapi-typescript) * @enum {string} */ type: AverageAttributesMergeStrategyType; }; BackfillJobAction: { backfillQuery: components["schemas"]["backfillQuery"]; /** * Format: ISO-8601 * @description The timespan for which to backfill data. This field is not required. If you do not specify it, you need to specify a duration in the trigger. For TraceSamplingTriggers, this can be specified in the traceDuration field. For others, you will need to specify a duration in the variables, e.g. __duration:PT1H * @example PT20.345S */ backfillTimespan?: string; /** @description The ID of the dataset to read data from */ datasetId: string; /** * @description The tags added to the backfill job, for ease of search. * @example { * "job-type": "backfill" * } */ jobTags: { [key: string]: string; }; /** * Format: int32 * @description Maximum number of logs to backfill. Default and max is 500,000. * @default 500000 * @example 100000 */ limit?: number; /** * @description The name of the backfill job. * @example custom_backfill_job */ name: string; /** * Format: int32 * @description Action order. Lower is applied first. * @example 1 */ order?: number; /** * @description Specifies the sinks that should be used for the backfill job. * @default [] */ sinkOperations: components["schemas"]["Operation"][]; /** * @description Backfills data from the raw logs to the configured sink. This action runs an asynch batch job to backfill data from the raw logs table to the configured sink. The back-filled data is also added to the processed logs table to ensure that the same log is not backfilled twice leading to duplicates. The context on what needs to be backfilled is provided by the 'backfillQuery' which will filter logs that will be backfilled. (enum property replaced by openapi-typescript) * @enum {string} */ type: BackfillJobActionType; }; BatchCancelInvestigationsRequest: { investigationIds: string[]; }; BatchCancelInvestigationsResponse: { cancelling?: string[]; skipped?: components["schemas"]["SkippedInvestigation"][]; }; /** @description Static customer header data for the billing page: display name + selectable reporting periods. */ BillingPeriodsResponse: { /** @description Customer display name (e.g. "ACME, Inc."). */ customerName: string; /** * @description Reporting periods available for this customer, newest first. * @default [] */ periods: components["schemas"]["PeriodEntry"][]; }; /** @description Plan-specific usage summary. */ BillingSummary: { type: string; } & (components["schemas"]["PaygSummary"] | components["schemas"]["MonthlyCreditPoolSummary"] | components["schemas"]["AnnualCreditPoolSummary"] | components["schemas"]["AnnualDataProcessingSummary"] | components["schemas"]["AnnualSaasPreCommitmentSummary"]); /** @description Per-period billing summary: contract bounds, period, summary. */ BillingSummaryResponse: { contract: components["schemas"]["Contract"]; period: components["schemas"]["PeriodEntry"]; summary: components["schemas"]["BillingSummary"]; }; Breakdown: { /** Format: int64 */ cacheReadTokens?: number; /** Format: int64 */ cacheWriteTokens?: number; /** Format: int64 */ calls?: number; /** Format: int64 */ callsWithUsage?: number; costReportingComplete?: boolean; /** Format: int64 */ inputTokens?: number; name?: string; /** Format: int64 */ outputTokens?: number; /** Format: int64 */ reasoningTokens?: number; /** Format: double */ reportedCostUsd?: number; /** Format: int64 */ sessions?: number; }; BucketAccessResult: { accessible?: boolean; message?: string; retryable?: boolean; }; BucketPartitionTransform: Omit & { /** * Format: int32 * @description Number of hash buckets. */ numBuckets: number; } & { /** * @description discriminator enum property added by openapi-typescript * @enum {string} */ type: BucketPartitionTransformType; }; CancelAllInvestigationsResponse: { /** Format: int32 */ cancelling: number; /** Format: int32 */ paused: number; }; CancellableInvestigationCounts: { /** Format: int32 */ paused: number; /** Format: int32 */ queued: number; /** Format: int32 */ running: number; }; CancellableInvestigationsResponse: { canCancel: boolean; counts: components["schemas"]["CancellableInvestigationCounts"]; }; /** @description One node of the recursive chain tree. Every chain (and every nested chain) is rooted at a ChainNode; the recursion terminates at a DropNode or PassthroughNode leaf. */ ChainNode: { kind: string; } & (components["schemas"]["DropNode"] | components["schemas"]["PassthroughNode"] | components["schemas"]["SqlNode"] | components["schemas"]["ConditionNode"]); /** @description Verification findings that blocked the change. When present the pipeline is untouched: fix the findings and submit again. */ ChangeFinding: { /** @enum {string} */ code?: ChangeFindingCode; details?: { [key: string]: string; }; message?: string; sampleId?: string; }; ChatList: { chats?: components["schemas"]["ChatSummary"][]; nextCursor?: string; }; ChatPreferences: { enabledSkills?: string[]; }; ChatStatusResponse: { autoApprove?: boolean; model?: components["schemas"]["ModelConfiguration"]; pendingApproval?: components["schemas"]["PendingApproval"]; processing?: boolean; status?: string; /** Format: int32 */ turnIndex?: number; }; ChatSummary: { chatId?: string; /** Format: date-time */ createdAt?: string; title?: string; /** Format: date-time */ updatedAt?: string; }; /** @description Keys and site to check Datadog authorization scopes against */ CheckAppKeyScopesRequest: { /** @description API key to authenticate the probes with */ apiKey: string; /** @description Application key to check */ appKey: string; /** * @description The Datadog site to probe * @example datadoghq.com */ site: string; }; ChunkedOutputEventRecordReadableData: { closed?: boolean; type?: { typeName?: string; }; }; ClearSecret: { value?: string; }; CloudFormationSetupInfo: { /** @description The AWS account ID */ awsAccountId: string; /** @description The name of the S3 bucket to use for the data warehouse */ bucketName: string; /** @description The AWS region the bucket must be created in. Matches the region the Grepr deployment is running in. */ region: string; /** @description The IAM role name for the data warehouse integration */ roleName: string; /** @description The name of the CloudFormation stack */ stackName: string; }; CloudTrailLogsFileSource: { /** * @description The list of account IDs from which to read logs. * @default [] * @example [ * "123456789012", * "987654321098" * ] */ accountIds: string[]; fileReadingStrategy?: components["schemas"]["FileReadingStrategy"]; format?: components["schemas"]["JsonFileFormat"]; /** @example operation_name */ name: string; /** * @description The s3 path under the provided bucket to monitor. Optional.In the case of CloudTrail logs, this is the path to the AWSLogs/ directory. * @default * @example path/to/monitor */ pathPrefix?: string; /** * @description The list of regions from which to read logs from. If empty or null, reads logs from all regions. * @default [ * "US_EAST_1", * "US_EAST_2", * "US_WEST_1", * "US_WEST_2", * "AF_SOUTH_1", * "AP_EAST_1", * "AP_SOUTH_1", * "AP_SOUTH_2", * "AP_SOUTHEAST_1", * "AP_SOUTHEAST_2", * "AP_SOUTHEAST_3", * "AP_SOUTHEAST_4", * "AP_NORTHEAST_1", * "AP_NORTHEAST_2", * "AP_NORTHEAST_3", * "CA_CENTRAL_1", * "CN_NORTH_1", * "CN_NORTHWEST_1", * "EU_CENTRAL_1", * "EU_CENTRAL_2", * "EU_WEST_1", * "EU_WEST_2", * "EU_WEST_3", * "EU_NORTH_1", * "EU_SOUTH_1", * "EU_SOUTH_2", * "IL_CENTRAL_1", * "ME_CENTRAL_1", * "ME_SOUTH_1", * "SA_EAST_1" * ] * @example [ * "us-east-1", * "us-west-2" * ] */ regions?: CloudTrailLogsFileSourceRegions[]; /** @description Integration ID for the S3 bucket where Grepr will be reading data. This corresponds to the 's3-data-warehouse' integration type. */ s3IntegrationId: string; /** * Format: ISO-8601 * @description The interval at which Grepr will check for new files in the S3 bucket. This is only applicable in streaming mode. * @default PT5S * @example PT20.345S */ streamingPollInterval?: string; /** * @description Reads logs from an S3 bucket at a CloudTrail path. Only reads logs in folders at or after the specified start time. The path prefix is optional. Each record will need to be mapped to the Grepr data model before being usable. (enum property replaced by openapi-typescript) * @enum {string} */ type: CloudTrailLogsFileSourceType; }; /** @description One cohort-output entry. */ CohortOutputDecl: { /** * @description Aggregations to emit. Null = [{ fn: DEFAULT }]. * @default [] */ aggregations?: components["schemas"]["AggregationDecl"][]; selectors?: components["schemas"]["FilterPrimitive"]; /** * @description When false, emit per-series time-only aggregation (no space/cohort collapse); aggregations apply as time-window folds. Default true keeps cohort aggregation. * @default true */ spaceAggregation?: boolean; }; /** @description Cohort-identity + space-aggregation configuration. */ CohortsConfig: { /** * @description Level-prefixed attribute keys that group objects into cohorts. * @default [] * @example [ * "resource.cluster", * "resource.region" * ] */ identifyingAttributes?: string[]; /** * @description Level-prefixed attribute keys describing cohorts. * @default [] */ metadataAttributes?: string[]; /** * Format: int32 * @description Parallelism multiplier for cohort outputs (anomaly rules ignore this). Splits each cohort across 2^n CohortCalc instances by the low n bits of tsIdLo, trading parallelism for partial per-shard aggregation. 0 = one instance per cohort. * @default 0 * @example 4 */ numShardBits?: number; /** * @description Ordered cohort-output entries (first-match-wins). * @default [] */ outputs?: components["schemas"]["CohortOutputDecl"][]; }; /** @description A complete span with its resource and instrumentation scope context. */ CompleteSpan: { /** Format: int64 */ critPathNs?: number; /** Format: double */ critPathPct?: number; /** Format: int64 */ duration?: number; /** Format: int64 */ eventTimestamp?: number; hasError?: boolean; percentileBucket?: string; /** Format: int64 */ receivedTimestamp?: number; resource?: components["schemas"]["Resource"]; /** Format: int32 */ samplingType?: number; scope?: components["schemas"]["InstrumentationScope"]; serviceName?: string; span?: components["schemas"]["Span"]; traceSignature?: string; traceSignatureId?: string; /** * @description discriminator enum property added by openapi-typescript * @enum {string} */ type: CompleteSpanType; }; CompositeAttributesMergeStrategy: { /** @default [] */ strategies: components["schemas"]["AttributesMergeStrategy"][]; /** * @description CompositeAttributesMergeStrategy: Applies multiple merge strategies to produce multiple output attributes with suffixed keys. (enum property replaced by openapi-typescript) * @enum {string} */ type: CompositeAttributesMergeStrategyType; }; /** * @description The action rules that get applied when the condition is triggered. * @example { * "condition-1": { * "actionRules": [ * { * "actionPredicate": { * "query": "service:__service", * "type": "datadog-query" * }, * "actions": [ * { * "modification": "ADD", * "order": 1, * "tagKey": "hosts", * "type": "tag-action", * "values": [ * "host1", * "host2" * ] * } * ], * "type": "event-rule" * } * ] * } * } */ Condition: { /** @default [] */ actionRules: components["schemas"]["ActionRule"][]; }; /** @description Non-terminal — events matching `predicate` route into `thenAction`; non-matching events route into `elseAction`. `lateDataDuration` is honored only when this node is the root of a stage's slot. */ ConditionNode: { elseAction: components["schemas"]["ChainNode"]; /** * Format: ISO-8601 * @description Optional ISO-8601 maximum allowed lateness applied at the chain's entry filter. Honored only when this is the root node of a stage's slot; values set on a nested ConditionNode are ignored by the templates-layer compiler. * @example PT20.345S */ lateDataDuration?: string; predicate: components["schemas"]["EventPredicate"]; thenAction: components["schemas"]["ChainNode"]; /** * @description discriminator enum property added by openapi-typescript * @enum {string} */ kind: ConditionNodeKind; }; /** @description One conditional branch in the raw log if-else routing ladder. */ ConditionalDataLakeConfig: { /** @description Target dataset ID for logs matching this branch's filter. */ datasetId: string; filter: components["schemas"]["LogsFilter"]; rawSinkConfig?: components["schemas"]["RawLogsSinkConfig"]; }; ConsoleSetupInfo: { /** @description The AWS account ID */ awsAccountId: string; /** @description The name of the S3 bucket to use for the data warehouse */ bucketName: string; /** @description The name of the organization */ orgName: string; /** @description The AWS region the bucket must be created in. Matches the region the Grepr deployment is running in. */ region: string; /** @description The IAM policy to attach to the assumed role */ resourcePolicy: string; }; ConstantSampling: { /** * @description A sampler that reduces with a maximum limit. (enum property replaced by openapi-typescript) * @enum {string} */ type: ConstantSamplingType; }; /** @description Metadata about the contract. */ Contract: { /** * Format: date * @description Inclusive contract end date — the last day this contract covers. For renewed or recast contracts, this is the day before the next contract's start. */ endDate: string; /** * Format: date * @description Inclusive contract start date. */ startDate: string; }; CreateAgentSessionAnalyticsJob: { datasetId: string; /** Format: date-time */ end: string; /** * Format: int32 * @default 20 */ maximumNamedGroups?: number; modelIntegrationId: string; query: components["schemas"]["EventPredicate"]; /** * Format: int32 * @default 10000 */ sessionCap?: number; /** Format: date-time */ start: string; }; /** @description Parameters for creating a logs or spans backfill batch job. */ CreateBackfillJob: { dataType: string; datasetId?: string; /** Format: date-time */ end?: string; /** Format: int32 */ limit?: number; name?: string; sinks?: components["schemas"]["Operation"][]; /** Format: date-time */ start?: string; tags?: { [key: string]: string; }; teamIds?: string[]; } & (components["schemas"]["CreateLogsBackfillJob"] | components["schemas"]["CreateSpansBackfillJob"]); CreateChatRequest: { autoApprove?: boolean; enabledSkills?: string[]; model: components["schemas"]["ModelConfiguration"]; text: string; }; CreateChatResponse: { chatId?: string; }; /** @description Files a new issue. Creating never deduplicates: search first, and update or record an occurrence on an existing issue instead of filing a second one. The reporter, number and timestamps come from the caller and the server, never from the request. */ CreateIssueRequest: { /** * @description How sure the reporter is that the problem is real. * @enum {string} */ confidence: CreateIssueRequestConfidence; /** @description The current understanding, in markdown, or null for none. */ description?: string; /** @description The `entity:*` tags it concerns; an unprefixed key is put in the `entity:` namespace. */ entities?: { [key: string]: string; }; /** @description Things a person can open to check the claim. */ evidence?: components["schemas"]["IssueEvidence"][]; /** * Format: date-time * @description When the issue stops applying. */ expiresAt?: string; /** @description An optional free-form key for exact-match search. */ fingerprint?: string; /** @description Categories; reuse the labels search reports as in use. */ labels?: string[]; /** @description Related pipelines, investigations, memories, suggestions and external tickets. */ links?: components["schemas"]["IssueLink"][]; /** @description The concrete next action and who it waits on. */ nextStep?: string; /** * @description How soon someone should act; agents must set it. A person who leaves it null files at `P2`, unlocked, so triage can set it. * @enum {string} */ priority?: CreateIssueRequestPriority; /** * Format: date-time * @description When someone should check back. */ revisitAt?: string; /** * @description The open state to file it in; null files it in `TRIAGE`. Agents may file only in `TRIAGE`, or `READY` when their handoff mode allows it. * @enum {string} */ state?: CreateIssueRequestState; /** @description The teams that may see it; people only, from the teams they can edit issues of (any for an organization-wide person). Absent: a team-scoped person's own teams, and none for an organization-wide person, which keeps the issue to organization-wide users. */ teamIds?: string[]; /** @description One line naming the problem, not the symptom's timestamp. */ title: string; }; /** @description Attributes of the Grepr Job to create */ CreateJob: { /** * @description Execution mode of the job * @default ASYNCHRONOUS * @example ASYNCHRONOUS * @enum {string} */ execution: PathsV1JobsGetParametersQueryExecution; jobGraph: components["schemas"]["GreprJobGraph"]; /** * @description Name of the job * @example demo_pipeline */ name: string; /** * @description Processing method of the job * @default STREAMING * @example STREAMING * @enum {string} */ processing: PathsV1JobsGetParametersQueryProcessing; /** * @description Custom tags added to the job for ease of search * @default {} * @example { * "env": "dev", * "type": "logs" * } */ tags?: { [key: string]: string; }; /** * @description The team IDs that this job is associated with. * @default [] */ teamIds?: string[]; }; /** @description Parameters for a logs backfill. */ CreateLogsBackfillJob: { /** * @description Selects the built-in logs backfill template. (enum property replaced by openapi-typescript) * @enum {string} */ dataType: CreateLogsBackfillJobDataType; /** @description The dataset the backfill reads from and the dedup sinks track delivery in. */ datasetId: string; /** * Format: date-time * @description End of the time interval to backfill. * @example 2023-01-01T01:00:00Z */ end: string; /** * Format: int32 * @description Maximum number of rows to backfill. Default and max is 500,000. For spans this applies independently to each vendor source. A negative value means no limit. * @default 500000 * @example 100000 */ limit?: number; /** * @description Name of the backfill job. Must match the job name pattern [a-z0-9_]{1,128}. * @example manual_backfill_1 */ name: string; query: components["schemas"]["EventPredicate"]; /** @description The vendor sink operations that deliver the backfilled events. Passed through verbatim, matching the sinks a rule action would carry. */ sinks: components["schemas"]["Operation"][]; /** * Format: date-time * @description Start of the time interval to backfill, inclusive. * @example 2023-01-01T00:00:00Z */ start: string; /** * @description Custom tags added to the backfill job for ease of search. * @default {} * @example { * "source": "manual" * } */ tags?: { [key: string]: string; }; /** * @description The team IDs that the backfill job is associated with. * @default [] */ teamIds?: string[]; /** * @description Variables used to modify the query while it is parsed. * @default {} */ variables?: { [key: string]: components["schemas"]["Any"]; }; /** * @description Vendor integration IDs, if any, whose prior delivery the backfill skips. Also gates concurrent overlapping backfills. Empty (the default) does no per-vendor dedup join and never blocks on other backfills. * @default [] */ vendorSinkIntegrationIds?: string[]; }; CreateRole: { /** @description Description of the role */ description: string; /** @description The name of the role */ name: string; /** * @description Permission IDs to assign to this role * @default [] * @example [ * "perm_001", * "perm_002" * ] */ permissionIds: string[]; }; /** @description Request to create a service account */ CreateServiceAccount: { /** * @description Display name for the service account * @example Production API Access */ name: string; /** * @description List of role IDs to assign to the service account * @default [] * @example [ * "rol_AlphaNum1234", * "rol_alphaNum5678" * ] */ roleIds: string[]; }; CreateSkillRequest: { displayName: string; files: components["schemas"]["SkillFile"][]; toolIds: string[]; }; /** @description Parameters for a spans backfill. */ CreateSpansBackfillJob: { /** * @description Selects the built-in spans backfill template. (enum property replaced by openapi-typescript) * @enum {string} */ dataType: CreateSpansBackfillJobDataType; /** @description The dataset the backfill reads from and the dedup sinks track delivery in. */ datasetId: string; /** * Format: date-time * @description End of the time interval to backfill. * @example 2023-01-01T01:00:00Z */ end: string; /** * Format: int32 * @description Maximum number of rows to backfill. Default and max is 500,000. For spans this applies independently to each vendor source. A negative value means no limit. * @default 500000 * @example 100000 */ limit?: number; /** * @description Name of the backfill job. Must match the job name pattern [a-z0-9_]{1,128}. * @example manual_backfill_1 */ name: string; query: components["schemas"]["EventPredicate"]; /** @description The vendor sink operations that deliver the backfilled events. Passed through verbatim, matching the sinks a rule action would carry. */ sinks: components["schemas"]["Operation"][]; sqlOperation?: components["schemas"]["SqlOperation"]; /** * Format: date-time * @description Start of the time interval to backfill, inclusive. * @example 2023-01-01T00:00:00Z */ start: string; /** * @description Custom tags added to the backfill job for ease of search. * @default {} * @example { * "source": "manual" * } */ tags?: { [key: string]: string; }; /** * @description The team IDs that the backfill job is associated with. * @default [] */ teamIds?: string[]; /** * @description Variables used to modify the query while it is parsed. * @default {} */ variables?: { [key: string]: components["schemas"]["Any"]; }; }; CreateUser: { /** @description The email associated with the user. */ email: string; /** @description The first name of the user. */ firstName: string; /** @description The last name of the user. */ lastName: string; password: components["schemas"]["SecretApi"]; /** * @description The roles associated with this user. * @example [ * "rol_AlphaNum1234", * "rol_alphaNum5678" * ] */ roleIds: string[]; }; CreateVendorEstimationRunRequest: { /** * @description Vendor query limiting the estimate to part of the customer's traffic. Applied to both the matched count and the total. Leave empty for all logs. * @example service:broker-* AND env:prod */ scopeQuery?: string; /** * Format: date-time * @description Absolute end of the window to count over; must be after the start and not in the future */ windowEnd: string; /** * Format: date-time * @description Absolute start of the window to count over */ windowStart: string; }; /** * Critical Path Analysis * @description Opt-in critical-path analysis settings. Computed during trace assembly; requires tail sampling. The maxSpans and sampleRate levers bound the per-trace cost. */ CriticalPathAnalysisConfig: { /** * Max spans analyzed * Format: int32 * @description Cap on how many spans are analyzed per trace; the critical chain is kept first. Null means no cap beyond the global per-trace assembly limit. * @example 500 */ maxSpans?: number; /** * Analysis sample rate * Format: double * @description Fraction of assembled traces to analyze, in [0.0, 1.0], selected deterministically by trace id. Defaults to 1.0 (analyze every trace). * @default 1 * @example 1 */ sampleRate?: number; }; /** @description Daily-usage table. */ DailyTable: { /** @description True when the reporting period contains today. Same semantic as PeriodEntry.current — the last entry of days[] represents an incomplete day, so consumers should mark it as in-progress. */ current?: boolean; /** * @description The reporting period's days in ascending order. * @default [] */ days: string[]; /** * @description One usage series per metered dimension, in display order. Bricks absent from the configured displayed-brick list are skipped. * @default [] */ metrics: components["schemas"]["MeteredDimensionUsage"][]; }; Data: { resultType: string; }; DataQuality: { /** Format: int64 */ embeddingFailures?: number; /** Format: int64 */ incompleteContentSessions?: number; /** Format: int64 */ labelFailures?: number; /** Format: int64 */ metadataOnlyEvents?: number; /** Format: int64 */ missingUsageSessions?: number; /** Format: int64 */ truncatedEvents?: number; /** Format: int64 */ warnings?: number; }; /** @description The payload containing integration data. */ DataWarehouse: Record; DatabaseUserInfo: { email: string; firstName: string; lastName: string; /** * @description discriminator enum property added by openapi-typescript * @enum {string} */ type: DatabaseUserInfoType; }; /** @description The payload containing integration data. */ Datadog: { /** * @description Tags to add when writing data to Datadog * @default [] * @example [ * "tag1:value1", * "tag2:value2" * ] */ additionalTags: string[]; /** * @description Masked API key for Datadog * @example **************ey */ readonly apiKey?: string; /** @description The API keys configured for this integration (masked). */ readonly apiKeys?: components["schemas"]["IngestKeyView"][]; /** * @description Masked App key for Datadog * @example **************ey */ readonly appKey?: string; /** * @description Client token for Datadog * @example ************EN */ readonly clientToken?: string; /** * Format: ISO-8601 * @description The active dashboard threshold: only dashboards viewed within it are imported as parsed queries. When unset, every dashboard is imported. Minimum one day. * @example PT20.345S */ dashboardFreshnessWindow?: string; /** @description The imported exceptions from Datadog. This is a map from the vendor resource Id to the exception. */ readonly exceptions?: { [key: string]: components["schemas"]["VendorImportedException"]; }; /** * @description Filter to apply when reading any data from the Datadog API * @default * @example service:my-service */ filterQuery: string; /** * @description When the active dashboard threshold is set, whether dashboards that were never viewed are still imported. Unset means they are. * @default true */ includeNeverViewedDashboards?: boolean; /** * @description Identifier of the API key used to send data back to Datadog. Defaults to the only key when unset. * @example k_7f3a */ sendKeyId?: string; /** * @description Datadog site URL * @example datadoghq.com */ site: string; /** * @description Indicates whether to validate the API and App keys when saving the keys. * @default true * @example true */ validateKeysOnSave?: boolean; }; DatadogLogAgentSource: { /** @default false */ hostEnrichmentEnabled?: boolean; /** @description The integration id for the observability vendor. */ integrationId: string; /** @example operation_name */ name: string; /** * @description Strategy for resetting Kafka consumer offset when no committed offset exists or has expired. EARLIEST reads from oldest available offset (prevents data loss on restart after retention period). LATEST skips to newest offset (current behavior). * @default LATEST * @enum {string} */ offsetResetStrategy?: DatadogLogAgentSourceOffsetResetStrategy; /** * @description Reads log events from Grepr's Datadog collection agent. This is used to pre-process logs before being sent to Datadog. (enum property replaced by openapi-typescript) * @enum {string} */ type: DatadogLogAgentSourceType; }; DatadogLogCloudSource: { /** * @description The Datadog query filter to use when reading logs from Datadog. This is concatenated with the one from the integration. * @default * @example tag1,tag2 */ filterQuery?: string; /** @description The Datadog integration id. */ integrationId: string; /** @example operation_name */ name: string; /** * @description Pulls log events from the Datadog cloud service for processing using a specified query. (enum property replaced by openapi-typescript) * @enum {string} */ type: DatadogLogCloudSourceType; }; DatadogLogSink: { /** * @description Additional tags to add to the logs when writing to Datadog. Gets combined with the integration's additionalTags. * @default [] * @example [ * "additional_tag" * ] */ additionalTags?: string[]; /** * @description Group by attributes to use when writing logs to Datadog browser intake.Defaults to ["http.useragent", "network.client.ip"]. * @default [] * @example [ * "http.useragent", * "network.client.ip" * ] */ browserLogGroupByAttributes?: string[]; /** * @description Top-level JSON field names to write the host to. Datadog only maps one of these onto the log's host if the name is in the destination organization's "Preprocessing for JSON logs -> Host attributes" list, so an organization that has removed the default entry needs this overridden. Defaults to ["hostname"]. * @default [] * @example [ * "hostname", * "host" * ] */ hostFieldNames?: string[]; /** @description The Datadog integration id. */ integrationId: string; /** @example operation_name */ name: string; /** * @description Writes processed events to Datadog. (enum property replaced by openapi-typescript) * @enum {string} */ type: DatadogLogSinkType; }; /** @description The payload containing integration data. */ DatadogMcp: { /** @description Masked API key for the MCP server. */ readonly apiKey?: string; /** @description Masked Application key for the Datadog MCP server. */ readonly appKey?: string; /** * @description MCP server endpoint URL. * @example https://mcp.notion.so/v1 */ serverUrl: string; /** * @description Indicates whether to validate the API key when saving. * @default true * @example true */ validateKeysOnSave?: boolean; }; DatadogMetricsSink: { /** * @description Additional tags to add to the logs when writing to Datadog. Gets combined with the integration's additionalTags. * @default [] * @example [ * "env:dev" * ] */ additionalTags?: string[]; /** @description The Datadog integration id. */ integrationId: string; /** @example operation_name */ name: string; /** * @description Writes processed metrics to Datadog. (enum property replaced by openapi-typescript) * @enum {string} */ type: DatadogMetricsSinkType; }; DatadogQueryPredicate: { /** * @description The datadog query used by the predicate. See https://docs.datadoghq.com/tracing/trace_explorer/query_syntax * @default * @example service:grepr-service-1 */ query: string; /** * @description A predicate that checks if an event matches a datadog query. (enum property replaced by openapi-typescript) * @enum {string} */ type: DatadogQueryPredicateType; }; /** @description Rule that monitors events matching a Datadog query and fires when rate exceeds a threshold. */ DatadogQueryRuleConfig: Omit & { /** * Format: double * @description Multiplier applied to baseline rate. Effective threshold = baselineRate * baselineMultiplier. * @example 5 */ baselineMultiplier?: number; /** * Format: double * @description Baseline rate (events/min) from historical data. * @example 2.5 */ baselineRate?: number; /** Format: double */ effectiveThreshold?: number; /** @default true */ enabled?: boolean; /** @description Name of the LLM prompt operator that created this rule. Used to route trigger actions back to the originating prompt. */ originatingLlmPromptOperatorName?: string; /** * @description Datadog logs search syntax for matching events. See https://docs.datadoghq.com/logs/explorer/search_syntax/ * @example service:demo-service status:error */ query: string; /** * Format: double * @description Rate threshold (events/min) above which the rule triggers. If baselineMultiplier and baselineRate are both set, the effective threshold is baselineRate * baselineMultiplier instead. * @default 10 * @example 10 */ rateThreshold?: number; /** @description Prompt sent to the LLM when this rule triggers. Supports template variables: {{rate}}, {{threshold}}, {{query}}, {{baselineRate}}, {{baselineMultiplier}}. */ triggerPrompt: string; } & { /** * @description discriminator enum property added by openapi-typescript * @enum {string} */ type: DatadogQueryPredicateType; }; /** @description Forwards Datadog stats payloads to the Datadog platform for accurate RED metrics. Stats are pre-computed by the Datadog agent and bypass all processing. */ DatadogStatsSink: { /** * @description Additional tags to add to stats when writing to Datadog. Gets combined with the integration's and global additionalTags. * @default {} * @example { * "env": "prod", * "team": "platform" * } */ additionalTags?: { [key: string]: string; }; /** @description Integration ID for Datadog connection */ integrationId: string; /** @example operation_name */ name: string; /** * @description Writes Datadog stats payloads to Datadog for accurate RED metrics. (enum property replaced by openapi-typescript) * @enum {string} */ type: DatadogStatsSinkType; }; DatadogTraceAgentSource: { /** * @description Whether stats should be discarded instead of being forwarded to Datadog * @default false */ discardStats?: boolean; /** @description The integration id for the observability vendor. */ integrationId: string; /** @example operation_name */ name: string; /** * @description Strategy for resetting Kafka consumer offset when no committed offset exists or has expired. EARLIEST reads from oldest available offset (prevents data loss on restart after retention period). LATEST skips to newest offset (current behavior). * @default LATEST * @enum {string} */ offsetResetStrategy?: DatadogLogAgentSourceOffsetResetStrategy; /** * @description Reads dd_trace protos from Datadog Agent. This is used to process traces from Datadog. (enum property replaced by openapi-typescript) * @enum {string} */ type: DatadogTraceAgentSourceType; }; /** @description Converts CompleteSpan objects to Datadog's native trace format and sends them to the Datadog platform. */ DatadogTraceSink: { /** * @description Additional attributes to add to traces when writing to Datadog. Gets combined with the integration's additionalAttributes. * @default {} * @example { * "env": "prod", * "team": "platform" * } */ additionalAttributes?: { [key: string]: string; }; /** @description Integration ID for Datadog connection */ integrationId: string; /** @example operation_name */ name: string; /** * @description Writes processed traces to Datadog in native format. (enum property replaced by openapi-typescript) * @enum {string} */ type: DatadogTraceSinkType; }; DatasetCreate: { integrationId: string; name: string; /** * @description The team IDs that this dataset is associated with. * @default [] */ teamIds?: string[]; }; DatasetEstimationConfig: { /** Format: date-time */ readonly createdAt?: string; readonly datasetId?: string; /** * Format: int32 * @description Maximum number of log messages to scan per estimation run. * @default 10000000 * @example 10000000 */ logLimit: number; /** * Format: ISO-8601 * @description Time window of data to scan per estimation run. ISO-8601 duration format. * @default PT1H * @example PT20.345S */ lookbackDuration: string; readonly organizationId?: string; query?: components["schemas"]["EventPredicate"]; /** * Format: ISO-8601 * @description How often to recalculate impact percentages. ISO-8601 duration format. * @default PT168H * @example PT20.345S */ refreshPeriod: string; /** Format: date-time */ readonly updatedAt?: string; }; DatasetRead: { id: string; integrationId: string; name: string; organizationId: string; /** * @description Per-table configuration overrides, keyed by table key (e.g. logs_raw). Absent entries use system defaults. * @default {} */ tables?: { [key: string]: components["schemas"]["TableConfig"]; }; /** * @description The team IDs that this dataset is associated with. * @default [] */ teamIds?: string[]; }; DatasetUpdate: { name: string; /** * @description Per-table configuration overrides. Read-only here; use /datasets/{id}/{tableKey}/config to mutate. * @default {} */ tables?: { [key: string]: components["schemas"]["TableConfig"]; }; /** * @description The team IDs that this dataset is associated with. * @default [] */ teamIds?: string[]; }; /** @description Sink that discards all of its input. */ DiscardingSink: { /** @example operation_name */ name: string; /** * @description Sink that discards all of its input. (enum property replaced by openapi-typescript) * @enum {string} */ type: DiscardingSinkType; }; DoubleDatapoint: { metricName?: string; /** @enum {string} */ metricType?: DoubleDatapointMetricType; tags?: { [key: string]: string[]; }; /** Format: int64 */ timestampMillis?: number; /** Format: int64 */ timestampNanos?: number; /** Format: double */ value?: number; /** * @description discriminator enum property added by openapi-typescript * @enum {string} */ type: DoubleDatapointType; }; /** @description Terminal — discards every event reaching this node. */ DropNode: { /** * @description discriminator enum property added by openapi-typescript * @enum {string} */ kind: DropNodeKind; }; /** @description Drops matching series outright. */ DropRule: { /** * @description Level-prefixed attribute key → glob pattern. All entries must match. * @default {} * @example { * "resource.test": "true" * } */ attributeFilters?: { [key: string]: string; }; metricName?: components["schemas"]["MetricNameFilter"]; }; /** @description Strategy to read all files from the beginning */ EarliestReadingStrategy: { type: "EarliestReadingStrategy"; } & Omit; /** @description Replaces the body of a comment its author wrote; people only. */ EditIssueCommentRequest: { /** @description The new markdown body. */ body: string; /** * Format: int32 * @description The version the edit was written against; a stale one is rejected with 409 and the current issue. Null edits against whatever is current. */ version?: number; }; /** @description Full effective partition spec, including system-controlled rows. */ EffectivePartitionField: { /** @description Logical column the row partitions by (built-in name or bare tag key). */ column: string; /** @description Whether this row is system-controlled and cannot be edited. */ systemControlled: boolean; transform?: components["schemas"]["PartitionTransform"]; }; /** @description A reference to an Entity associated with produced telemetry. */ EntityRef: { /** * @description Descriptive (non-identifying) attribute keys of the entity. MAY change over the lifetime of the entity. * @example [ * "service.version", * "service.instance.id" * ] */ descriptionKeys?: string[]; /** * @description Attribute Keys that identify the entity. MUST not change during the lifetime of the entity. * @example [ * "service.name", * "service.namespace" * ] */ idKeys?: string[]; /** * @description The Schema URL, if known. This is the identifier of the Schema that the entity data is recorded in. * @example https://opentelemetry.io/schemas/1.17.0 */ schemaUrl?: string; /** * @description Defines the type of the entity. MUST not change during the lifetime of the entity. * @example service */ type?: string; }; ErrorDetails: { exception?: string; message?: string; }; EstimationDatasetSummary: { config?: components["schemas"]["DatasetEstimationConfig"]; /** * @description Dataset this summary describes * @example ds-prod-1 */ datasetId: string; /** * @description Display name of the dataset * @example logs-prod */ datasetName: string; /** @default [] */ pipelines: components["schemas"]["PipelineRef"][]; }; /** @description Base class of all Event Actions */ EventAction: { /** Format: int32 */ order?: number; } & (components["schemas"]["TagAction"] | components["schemas"]["RemoveKeyAttributeAction"] | components["schemas"]["MergeMapAttributeAction"] | components["schemas"]["AddToListAttributeAction"]); EventActionRule: { actionPredicate: components["schemas"]["EventPredicate"]; /** * @description Actions to take on a matching event. * @default [] * @example [ * { * "tagKey": "hosts", * "type": "tag-action", * "values": [ * "host1", * "host2" * ] * } * ] */ actions: components["schemas"]["EventAction"][]; /** * @description This takes event actions on events that match the actionPredicate when this rule is triggered. (enum property replaced by openapi-typescript) * @enum {string} */ type: EventActionRuleType; }; EventDedupIcebergTableSink: { /** @description The id of the dataset to write to */ datasetId: string; /** @example operation_name */ name: string; /** * @description Writes event IDs to an Iceberg table to keep track of which events have been sent to a particular sink. (enum property replaced by openapi-typescript) * @enum {string} */ type: EventDedupIcebergTableSinkType; vendorSinkId: string; }; /** @description Predicate applied to rows before analytical aggregation. */ EventPredicate: { query?: string; type: string; } & (components["schemas"]["AndEventPredicate"] | components["schemas"]["DatadogQueryPredicate"] | components["schemas"]["MetricEventPredicate"] | components["schemas"]["NewRelicQueryPredicate"] | components["schemas"]["NrqlQueryPredicate"]); EventPredicateTrigger: { /** * @description The ids for the conditions that are activated by this trigger. * @default [] * @example [ * "condition-1", * "condition-2" * ] */ conditionIds: string[]; /** * Format: ISO-8601 * @description The duration for which the associated conditions will be active. * @example PT20.345S */ duration: string; predicate: components["schemas"]["EventPredicate"]; /** * @description This is triggered by an event matching the given predicate. (enum property replaced by openapi-typescript) * @enum {string} */ type: EventPredicateTriggerType; /** * @description Map from variable names to paths for variables to extract from a matching event. If starting with '@', the path indicates an attribute. Otherwise, it's a tag. The variable names must start with '__' and be unique. Note that __timestamp (and __severity for logs) variable is automatically extracted from the respective top level fields of the matching event. * @default {} * @example { * "__variable1": "tag1", * "__variable2": "@attribute1" * } */ variables: { [key: string]: string; }; }; /** @description A streaming event record. Records are newline-separated as per the chunked output standard. Each record will contain a 'state' field and potentially a 'data' field. When the state is 'RUNNING', the 'data' field will be valid. In all other states, the 'data' field will be null. */ EventRecord: { data?: components["schemas"]["ReadableData"]; /** @description The token that should be used by the client to send a heartbeat back to the server. This will usually only be set for the 'HEARTBEAT' state. Heartbeats back from the client are only required when heartbeatToken is not null. */ heartbeatToken?: string; /** * @description The state of the job at the time of the record. Also indicates validity of the data field. * @enum {string} */ jobState: EventRecordJobState; }; ExactAttributesMergeStrategy: { /** * @description ExactAttributesMergeStrategy: If target is empty, incoming value is used. If target is already wildcard, it remains wildcard. If target and incoming are deeply equal, target remains unchanged. If target and incoming are different, target becomes the WILDCARD. (enum property replaced by openapi-typescript) * @enum {string} */ type: ExactAttributesMergeStrategyType; }; /** @description Estimated passthrough for one parsed alert query against one dataset */ ExceptionImpact: { /** * Format: date-time * @description When the estimation run that produced this percentage completed. Absent when the age of the measurement is not known; that is not the same as freshly measured. * @example 2026-09-09T04:15:00Z */ measuredAt?: string; /** * Format: double * @description Estimated percentage of the dataset's raw log volume this query matches. Honouring the query as a pipeline exception passes approximately this share of the data through without aggregation. * @example 4.27 */ percentage: number; }; /** @description Usage the vendor reports for the source of one parsed query */ ExceptionUsage: { /** * Format: date-time * @description When the source was last viewed. Null means the vendor reports it was never viewed. * @example 2026-09-20T14:05:00Z */ lastViewedAt?: string; /** * Format: int64 * @description How many times the source was viewed, as the vendor counts them. Datadog counts views since January 2025 and refreshes the count daily. * @example 1204 */ totalViews?: number; }; /** @description Usage the vendor reports for an integration's parsed queries */ ExceptionUsageResponse: { /** * @description The parsed query exception types (values of a parsed query's exceptionType) the vendor reports usage for. Empty when the vendor reports none; a query of any other type has no usage to show. * @example [ * "DATADOG_DASHBOARD" * ] */ reportedTypes: string[]; status: components["schemas"]["UsageStatus"]; /** @description Usage keyed by composite exception id (integrationId:vendorResourceId:exceptionType), the key the impacts endpoint uses. A query the vendor reported nothing for is absent, which is not the same as never viewed. */ usage: { [key: string]: components["schemas"]["ExceptionUsage"]; }; }; ExternalSourceTrigger: { /** * @description The ids for the conditions that are activated by this trigger. * @default [] * @example [ * "condition-1, condition-2" * ] */ conditionIds: string[]; /** * Format: ISO-8601 * @description The duration for which the associated conditions will be active. * @example PT20.345S */ duration: string; /** * @description This trigger is activated by an external source, for eg: an API call from an observability tool. (enum property replaced by openapi-typescript) * @enum {string} */ type: ExternalSourceTriggerType; }; /** @description Payload that define attributes that will fire an external source trigger. */ ExternalTriggerPayload: { /** * @description ID of the job that the trigger is meant for. * @example ABC0123D4 */ jobId: string; /** * @description Name of the rule engine that will process the trigger. This must exist in the corresponding Grepr job graph. * @example logs-rule-engine */ logsRuleEngineName: string; /** * @description ID of the external source trigger that should be triggered. This must exist in the Logs Rule Engine configuration of the corresponding job * @example trigger-1 */ triggerId: string; /** * @description Variables needed by the conditions that get activated when the corresponding triggers gets fired. * @example { * "__application": "app1", * "__service": "service1" * } */ variables?: { [key: string]: components["schemas"]["Any"]; }; }; /** @description Describes the file format to read from. */ FileFormat: { mapper?: components["schemas"]["LogEventMapper"]; type: string; }; /** * @description The file reading strategy will determine how files are enumerated. Timestamp reading strategy will only read files created after the specified timestamp. Latest reading strategy will only read files created after the job start time. * @default latest */ FileReadingStrategy: { type: string; }; /** @description Combined metric-name + attribute-value filter. */ FilterPrimitive: { /** * @description Level-prefixed attribute key → glob pattern. All entries must match. * @default {} * @example { * "resource.env": "prod" * } */ attributeFilters?: { [key: string]: string; }; metricName?: components["schemas"]["MetricNameFilter"]; }; /** @description Marks the caller's own assignment done. To pick the work up again, join the issue again. */ FinishAssignmentRequest: { /** @description What the caller did, or null. */ note?: string; /** * Format: int32 * @description The version the finish was decided against, or null for whatever is current. */ version?: number; }; FrontendConfig: { appBaseUrl?: string; billingEnabled?: boolean; flinkBaseUrl?: string; gtmContainerId?: string; intercomEnabled?: boolean; kafkaToolkitClusterName?: string; region?: string; }; /** @description The payload containing integration data. */ Gemini: { /** * @description Masked API key for Google Gemini * @example **************ey */ readonly apiKey?: string; /** * Format: int64 * @description Total tokens all agents using this integration may consume per max-tokens window. Null uses the default of 200,000,000. * @example 200000000 */ integrationMaxTokens?: number; /** * Format: int32 * @description Length in hours of the UTC-aligned max tokens window; must be a divisor of 24. Null uses the default of 1. * @example 24 */ maxTokensWindowHours?: number; /** @description Whether this provider offers an embeddings API and can back agent investigation memory. */ readonly supportsEmbedding?: boolean; /** * @description Indicates whether to validate the API key when saving. * @default true * @example true */ validateKeysOnSave?: boolean; }; /** @description The payload containing integration data. */ GithubMcp: { /** @description Masked API key for the MCP server. */ readonly apiKey?: string; /** * @description MCP server endpoint URL. * @example https://mcp.notion.so/v1 */ serverUrl: string; /** * @description Indicates whether to validate the API key when saving. * @default true * @example true */ validateKeysOnSave?: boolean; }; GreprApiKey: { apiKey: string; }; GreprJobGraph: { /** * @description Edges that connect the vertices of the Grepr job graph * @default [] * @example [ * "source -> sink" * ] */ edges: string[]; /** * @description Operations that make up the vertices of the Grepr job graph * @default [] * @example [ * { * "end": "2024-08-07T22:05:07Z", * "integrationId": "0jn5rdc93r10t", * "name": "source", * "processing": "BATCH", * "query": { * "query": "service:grepr-query", * "type": "datadog-query" * }, * "start": "2024-08-07T22:00:07Z", * "table": "logevent_raw_devpipeline", * "type": "logs-iceberg-table-source" * }, * { * "name": "sink", * "type": "logs-sync-sink" * } * ] */ vertices: components["schemas"]["Operation"][]; }; GreprMetricsSource: { /** * @description Additional tags to add to the metrics while loading. * @default {} * @example { * "metric_source": [ * "grepr" * ] * } */ additionalTags?: { [key: string]: string[]; }; /** * @description The list of metrics to load. Will load all possible metrics if nothing is specified * @default [] */ metrics?: GreprMetricsSourceMetrics[]; /** @example operation_name */ name: string; /** * @description Reads metric events from Grepr for processing. (enum property replaced by openapi-typescript) * @enum {string} */ type: GreprMetricsSourceType; }; /** @description The payload containing integration data. */ GreprPipe: Record; /** @description Writes log events into a Grepr pipe integration. */ GreprPipeLogSink: { /** @description Destination Grepr pipe integration in the pipeline's organization. */ integrationId: string; /** @example operation_name */ name: string; /** * @description discriminator enum property added by openapi-typescript * @enum {string} */ type: GreprPipeLogSinkType; }; GreprPipeLogSource: { /** @description The integration id for the observability vendor. */ integrationId: string; /** @example operation_name */ name: string; /** * @description Strategy for resetting Kafka consumer offset when no committed offset exists or has expired. EARLIEST reads from oldest available offset (prevents data loss on restart after retention period). LATEST skips to newest offset (current behavior). * @default LATEST * @enum {string} */ offsetResetStrategy?: DatadogLogAgentSourceOffsetResetStrategy; /** * @description Reads log events that other pipelines write into a Grepr pipe. (enum property replaced by openapi-typescript) * @enum {string} */ type: GreprPipeLogSourceType; }; GreprRawLogsSource: { /** @description The ID of the dataset to read data from. */ datasetId: string; /** * Format: date-time * @description End of time interval to query data for. * @example 2023-01-01T01:00:00Z */ end: string; /** * Format: int32 * @description The maximum number of rows to process * @default 2500 */ limit?: number; /** @example operation_name */ name: string; /** * Format: int32 * @description Offset on the number of rows to process * @default 0 */ offset?: number; query: components["schemas"]["query"]; /** * @description The order in which the rows should be sorted by * @default ASCENDING * @enum {string} */ sortOrder?: AgentSessionEventsIcebergTableSourceSortOrder; /** * Format: date-time * @description Start of time interval to query data for. * @example 2023-01-01T00:00:00Z */ start: string; /** * @description Reads raw log events using Grepr's internal query system from an Iceberg Table without pattern enrichment. (enum property replaced by openapi-typescript) * @enum {string} */ type: GreprRawLogsSourceType; /** * @description Variables that can be used to modify the query while parsed * @default {} * @example { * "__application": "app1", * "__service": "service1" * } */ variables?: { [key: string]: components["schemas"]["Any"]; }; }; GreprRawSpanSource: { /** @description The ID of the dataset to read data from. */ datasetId: string; /** * Format: date-time * @description End of time interval to query data for. * @example 2023-01-01T01:00:00Z */ end: string; /** * Format: int32 * @description The maximum number of rows to process * @default 2500 */ limit?: number; /** @example operation_name */ name: string; /** * Format: int32 * @description Offset on the number of rows to process * @default 0 */ offset?: number; query: components["schemas"]["query"]; /** * @description The order in which the rows should be sorted by * @default ASCENDING * @enum {string} */ sortOrder?: AgentSessionEventsIcebergTableSourceSortOrder; /** * Format: date-time * @description Start of time interval to query data for. * @example 2023-01-01T00:00:00Z */ start: string; /** * @description Reads spans using Grepr's internal query system out of an Iceberg Table for processing. (enum property replaced by openapi-typescript) * @enum {string} */ type: GreprRawSpanSourceType; /** * @description Variables that can be used to modify the query while parsed * @default {} * @example { * "__application": "app1", * "__service": "service1" * } */ variables?: { [key: string]: components["schemas"]["Any"]; }; }; GreprReducerLogSource: { /** @description The ID of the dataset to read data from. */ datasetId: string; /** * Format: date-time * @description End of time interval to query data for. * @example 2023-01-01T01:00:00Z */ end: string; /** * Format: int32 * @description The maximum number of rows to process * @default 2500 */ limit?: number; /** @example operation_name */ name: string; /** * Format: int32 * @description Offset on the number of rows to process * @default 0 */ offset?: number; /** * @description The name of the table containing processed logs. * @example "processed_logs" */ processedLogsTableName?: string; query: components["schemas"]["query"]; /** * Format: ISO-8601 * @description The interval used by the Log Reducer for the query. Uses ISO 8601 format for intervals. * @default PT2M * @example PT20.345S */ reductionInterval: string; /** * @description The order in which the rows should be sorted by * @default ASCENDING * @enum {string} */ sortOrder?: AgentSessionEventsIcebergTableSourceSortOrder; /** * Format: date-time * @description Start of time interval to query data for. * @example 2023-01-01T00:00:00Z */ start: string; /** * @description Reads events using Grepr's internal query system out of an Iceberg Table for processing. (enum property replaced by openapi-typescript) * @enum {string} */ type: GreprReducerLogSourceType; /** * @description Variables that can be used to modify the query while parsed * @default {} * @example { * "__application": "app1", * "__service": "service1" * } */ variables?: { [key: string]: components["schemas"]["Any"]; }; }; GreprUploadedLogFileSource: { format: components["schemas"]["FileFormat"]; /** @example operation_name */ name: string; /** * @description Reads log files uploaded to Grepr using environment credentials. Intended for file uploads in draft mode. (enum property replaced by openapi-typescript) * @enum {string} */ type: GreprUploadedLogFileSourceType; /** * @description Unique identifier for the upload. The full S3 path will be constructed as uploaded_files/{organizationId}/{uploadId} to ensure customers can only access their own uploads. Use the uploadId returned by the file upload endpoint. * @example 3f2b8c1e-9a4d-4e7b-8c2a-1d5e6f7a8b9c */ uploadId: string; }; GreprVendorSource: { /** @description The integration id for the observability vendor. */ integrationId: string; /** @example operation_name */ name: string; /** * @description discriminator enum property added by openapi-typescript * @enum {string} */ type: GreprVendorSourceType; }; GrokParseBatchRequest: { grokParser: components["schemas"]["GrokParser"]; /** * @description Log sample to parse using the provided Grok rules. * @default [] * @example john id:12345 connected on 11/08/2017 on server XYZ in production */ logSamples: string[]; }; GrokParseBatchResponse: { results?: components["schemas"]["GrokParseResponse"][]; }; GrokParseErrors: { /** @default [] */ errors: components["schemas"]["GrokRuleErrors"][]; }; GrokParseRequest: { grokParser: components["schemas"]["GrokParser"]; /** * @description Log sample to parse using the provided Grok rules. * @example john id:12345 connected on 11/08/2017 on server XYZ in production */ logSample: string; }; GrokParseResponse: { /** * @description JSON object of the matched attributes. * @example { * "connect_date": "11/08/2017", * "server": { * "env": "production", * "name": "XYZ" * }, * "user": { * "id": 12345, * "name": "john" * } * } */ attributes: { [key: string]: components["schemas"]["Any"]; }; /** @description Whether a rule matched the log message. */ match?: boolean; /** @description Which rule matched the log message. */ matchingRuleName?: string; /** * @description JSON Object of the matched tags. * @example { * "tag1": [ * "value1", * "value2" * ], * "tag2": [ * "value3" * ] * } */ tags: { [key: string]: string[]; }; /** * @description JSON object of the top-level fields extracted from the Grok rule. Currently, only severity and eventTimestamp can be extracted as top-level fields. * @example { * "eventTimestamp": "13201984190509", * "severity": "9" * } */ topLevelFields: { [key: string]: string; }; }; GrokParser: { /** @description Optional attribute to extract. Does nothing if it does not refer to a string attribute. A dotted string, or an array of literal keys. */ extractAttribute?: string | string[]; /** * @default [] * @example [ * "user %{word:user.name} id:%{integer:user.id}", * "connection connected on %{date(\"MM/dd/yyyy\"):connect_date}", * "server on server %{notSpace:server.name} in %{notSpace:server.env}" * ] */ grokHelperRules?: string[]; /** * @description The Grok parser enriches log events by parsing unstructured text into structured attributes. * @default [] * @example [ * "MyParsingRule %{user} %{connection} %{server}" * ] */ grokParsingRules?: string[]; /** @example operation_name */ name: string; predicate?: components["schemas"]["EventPredicate"]; /** * @description Processes unstructured logs and extracts fields from them using Grok patterns. (enum property replaced by openapi-typescript) * @enum {string} */ type: GrokParserType; }; GrokRuleError: { /** @default */ message?: string; /** Format: int32 */ position?: number; }; GrokRuleErrors: { /** @default */ rule?: string; /** @default [] */ ruleErrors?: components["schemas"]["GrokRuleError"][]; }; /** @description Predicate that determines whether a span matches a head sampling rule. */ HeadSamplingFilter: { type: string; }; /** * @description A header with name and value * @example [ * [ * "Host", * "my_server" * ], * [ * "Accept-Language", * "en-US" * ], * [ * "Accept-Language", * "en;q=0.9" * ] * ] */ Header: { /** * @description Header name * @example Accept-Language */ name: string; /** * @description Header value * @example en-US */ value: string; }; /** @description Keep a vendor's host inventory in sync with the metric reduction. */ HostMetadataReporting: { /** * @description Collapse each cohort's real hosts into a single virtual cohort host. * @default false */ aggregateCohortHosts?: boolean; /** * @description Datadog integration IDs that receive the reported host metadata. * @default [] */ integrationIds: string[]; /** * @description While an object is anomalous, re-report its real host to Datadog. * @default false */ rehydrateAnomalousHosts?: boolean; }; HumanMemoryEdit: { entityTags: { [key: string]: string; }; /** Format: int32 */ expectedRevision: number; resolution?: string; rootCause?: string; /** @enum {string} */ rootCauseConfidence?: HumanMemoryEditRootCauseConfidence; ruledOut?: string; /** @enum {string} */ significance: PathsV1AgentMemoryGetParametersQuerySignificance; symptoms?: string; title: string; }; IcebergLogsReplaySource: { /** @description The ID of the dataset to read data from. */ datasetId: string; /** * Format: date-time * @description End of time interval to query data for. * @example 2023-01-01T01:00:00Z */ end: string; /** * Format: int32 * @description The maximum number of rows to process * @default 2500 */ limit?: number; /** @example operation_name */ name: string; /** * Format: int32 * @description Offset on the number of rows to process * @default 0 */ offset?: number; query: components["schemas"]["query"]; /** * @description The order in which the rows should be sorted by * @default ASCENDING * @enum {string} */ sortOrder?: AgentSessionEventsIcebergTableSourceSortOrder; /** * Format: date-time * @description Start of time interval to query data for. * @example 2023-01-01T00:00:00Z */ start: string; /** * @description Replays log events from an Iceberg table at their original ingestion rate using receivedTimestamp for timing. (enum property replaced by openapi-typescript) * @enum {string} */ type: IcebergLogsReplaySourceType; /** * @description Variables that can be used to modify the query while parsed * @default {} * @example { * "__application": "app1", * "__service": "service1" * } */ variables?: { [key: string]: components["schemas"]["Any"]; }; }; IgnoreAttributesMergeStrategy: { /** * @description IgnoreAttributesMergeStrategy: Does nothing during merge - leaves the current value unchanged. Used internally for suffixed keys managed by CompositeAttributesMergeStrategy. (enum property replaced by openapi-typescript) * @enum {string} */ type: IgnoreAttributesMergeStrategyType; }; /** * Inputs Schema * @description Schema for the impact estimation job graph. */ ImpactEstimationTemplateInput: { /** * Format: date-time * @description Time of the estimation check recorded on the LogCounter. * @example 2023-01-01T01:00:00Z */ checkTime: string; /** @description The dataset the estimation reads from and scopes the impact propagation to. */ datasetId: string; /** * Format: date-time * @description End of the time interval to scan, inclusive. * @example 2023-01-01T01:00:00Z */ end: string; /** * Format: int32 * @description Maximum total number of log messages to process for the estimation. */ logLimit: number; /** @description Organization the estimation runs for; used to route impact updates. */ organizationId: string; /** @description The query predicates the LogCounter counts matches against. */ predicates: components["schemas"]["EventPredicate"][]; query: components["schemas"]["EventPredicate"]; /** * Format: date-time * @description Start of the time interval to scan, inclusive. * @example 2023-01-01T00:00:00Z */ start: string; }; /** @description The API keys configured for this integration (masked). */ IngestKeyView: { /** * @description Opaque identifier of the API key * @example k_7f3a */ keyId?: string; /** @description User-supplied display name for the key, purely informational */ label?: string; /** * @description Masked value of the API key * @example **************a1 */ maskedValue?: string; /** @description Whether this key is used to send data back to the vendor */ sendKey?: boolean; }; /** @description Instrumentation scope information describing the library/framework that produced the telemetry. */ InstrumentationScope: { attributes?: components["schemas"]["Variant"]; /** * Format: int32 * @description Number of attributes that were dropped due to limits. */ droppedAttributesCount?: number; /** * @description Name of the instrumentation scope (e.g., library name). * @example io.opentelemetry.contrib.mongodb */ name?: string; /** * @description Version of the instrumentation scope (e.g., library version). * @example 1.0.0 */ version?: string; }; IntegrationExceptionConfig: { /** * Automatically sync Exceptions from Integration * @description When enabled, the exceptions list will be updated automatically based on the integration's exceptions. * @default false * @example false */ autoSync?: boolean; /** * Format: double * @description Maximum impact percentage threshold for autosync (0.0 to 100.0). When set, only exceptions with impact percentage <= threshold are auto-included. * @example 25 */ autosyncPassthroughRateThreshold?: number; /** * Dataset ID for auto-sync threshold * @description Dataset against which the auto-sync impact threshold is evaluated. Required for threshold filtering to apply; when null, no exceptions bypass via auto-sync. * @example 0n1fhg95fhgp2 */ datasetId?: string; /** @default [] */ ids?: string[]; /** * Integration ID * @description The ID of the integration associated with this exception configuration. * @example 0kk67gfs56a */ integrationId: string; }; /** @description Paginated list of vendor imported exceptions for an integration */ IntegrationExceptionsList: { exceptions?: components["schemas"]["ItemsCollectionVendorImportedException"]; /** @description Whether there are more pages available */ hasMore?: boolean; /** * Format: int32 * @description Current page number (0-based) */ page?: number; /** * Format: int32 * @description Number of items per page */ pageSize?: number; }; Intent: { description?: string; label?: string; miscellaneous?: boolean; /** Format: double */ percentage?: number; /** Format: int64 */ sessions?: number; }; InvestigationAction: { description?: string; toolCallId?: string; toolName?: string; url?: string; }; InvestigationSummary: { actions?: components["schemas"]["InvestigationAction"][]; agentId?: string; /** Format: date-time */ createdAt?: string; /** Format: date-time */ endedAt?: string; /** Format: int32 */ inputTokens?: number; investigationId?: string; live?: boolean; /** Format: int32 */ outputTokens?: number; resumable?: boolean; /** Format: date-time */ startedAt?: string; /** @enum {string} */ status?: InvestigationSummaryStatus; summary?: string; triggerSignals?: components["schemas"]["TriggerSignal"][]; }; InvestigationTranscript: { actions?: components["schemas"]["InvestigationAction"][]; agentId?: string; /** Format: date-time */ createdAt?: string; /** Format: date-time */ endedAt?: string; investigationId?: string; /** Format: date-time */ startedAt?: string; /** @enum {string} */ status?: InvestigationSummaryStatus; summary?: string; }; InvestigationsList: { investigations?: components["schemas"]["ItemsCollectionInvestigationSummary"]; /** Format: int32 */ limit?: number; /** Format: int32 */ start?: number; /** Format: int32 */ total?: number; }; InvitationsList: { invitations?: components["schemas"]["ItemsCollectionReadInvitation"]; /** Format: int32 */ limit?: number; /** Format: int32 */ start?: number; }; Invitee: { email?: string; /** * @description Role IDs assigned to the invitation * @default [] */ roleIds?: string[]; /** * @description Team-specific role assignments * @default [] */ teamAssignments?: components["schemas"]["TeamAssignment"][]; }; /** @description One durable problem or task on the organization's issue board. */ Issue: { /** * Format: date-time * @description When it closed, or null while open. */ closedAt?: string; /** * @description How sure the reporter is that the problem is real. * @enum {string} */ confidence?: CreateIssueRequestConfidence; /** * Format: date-time * @description When it was filed. */ createdAt?: string; /** @description The current understanding, in markdown, kept current rather than appended to. */ description?: string; /** @description The surviving issue, set exactly when resolved as `DUPLICATE`; null in a response when the reader can't see the survivor. */ duplicateOf?: string; /** @description True in a response whose reader can't see the surviving issue. */ duplicateOfHidden?: boolean; /** @description The `entity:*` tags it concerns, the same vocabulary as memory tags, sorted by key. */ entities?: { [key: string]: string; }; /** @description Things a person can open to check the claim. */ evidence?: components["schemas"]["IssueEvidence"][]; /** * Format: date-time * @description When the issue stops applying and closes as `EXPIRED`, or null. */ expiresAt?: string; /** @description An optional free-form key for exact-match search, or null. */ fingerprint?: string; /** * Format: date-time * @description The first sighting, or null before any. */ firstSeenAt?: string; /** @description The issue id. */ id?: string; /** @description Categories, such as `cost`, sorted. */ labels?: string[]; /** * Format: date-time * @description The latest sighting, or when it was filed. */ lastSeenAt?: string; /** @description Related pipelines, investigations, memories, suggestions and external tickets. */ links?: components["schemas"]["IssueLink"][]; locks?: components["schemas"]["IssueLocks"]; /** @description The concrete next action and who it waits on, or null. */ nextStep?: string; /** * Format: int32 * @description The short per-organization handle, shown as `#142`. */ number?: number; /** * Format: int32 * @description How many investigations sighted it. */ occurrenceCount?: number; /** * @description How soon someone should act. * @enum {string} */ priority?: CreateIssueRequestPriority; /** @description Whether it reopened on a new sighting after being fixed; cleared on its next close. */ regressed?: boolean; reporter?: components["schemas"]["IssueActor"]; /** * @description Why it closed; set exactly when `state` is `CLOSED`. * @enum {string} */ resolution?: IssueResolution; /** * Format: date-time * @description When someone should check back, or null. Then a Monitoring issue's watcher is started on it, or, with no watcher, it goes back to `READY`. */ revisitAt?: string; /** * @description Where the issue is in its lifecycle. * @enum {string} */ state?: CreateIssueRequestState; /** * Format: date-time * @description When the state last changed. */ stateChangedAt?: string; /** @description The teams that may see the issue, sorted. */ teamIds?: string[]; /** @description One line naming the problem. */ title?: string; /** * Format: date-time * @description When it last changed. */ updatedAt?: string; /** * Format: int32 * @description Bumped by every change to a field, the state, an assignment, a lock or the teams. */ version?: number; /** @description The agent watching it in `MONITORING`: the one that moved it there, started on it again when a sighting comes in or its revisit time passes. Null outside Monitoring. */ watchedBy?: string; }; /** @description The issues the caller may view and edit. A client shows write controls from `edit`; the server still decides every request. An issue is in a scope when the scope is organization-wide, or when the issue names one of the scope's teams. An issue with no teams is only in organization-wide scopes. A person may give an issue the teams of their edit scope, or any team when it is organization-wide. */ IssueAccessScopes: { edit?: components["schemas"]["IssueScopeView"]; view?: components["schemas"]["IssueScopeView"]; }; /** @description Who made a change to an issue. An agent is named by its own id and the investigation it acted in, never by the service account it authenticated as, since several agents may share one. */ IssueActor: { /** @description The agent, for an agent actor; null otherwise. */ agentId?: string; /** @description The person's user id, the agent's execution principal (its service account's token subject), or `system` for the server. */ id?: string; /** @description The investigation the agent acted in, for an agent actor; null otherwise. */ investigationId?: string; /** * @description A person, an agent, or the server. * @enum {string} */ kind?: IssueActorKind; }; /** @description Whose active assignments a search matches. A deleted agent's assignment never counts, as it does not block a close. */ IssueAssigneeFilter: { /** @description The agent's or person's id, for `AGENT` and `PERSON` only. */ id?: string; /** * @description `ME` for the caller, `UNASSIGNED` for issues nobody is working on, or `AGENT`/`PERSON` for one assignee. * @enum {string} */ kind: IssueAssigneeFilterKind; }; /** @description Someone working on an issue, as a search result names them. */ IssueAssigneeRef: { /** @description The person's id, or the agent's. */ id?: string; /** * @description A person or an agent. * @enum {string} */ kind?: PathsV1IssuesIdOrNumberAssigneesAssigneeKindAssigneeIdDeleteParametersPathAssigneeKind; }; /** @description An issue after a change to its assignees, with all of them. */ IssueAssignees: { /** @description Its assignees, oldest first. */ assignments?: components["schemas"]["IssueAssignment"][]; issue?: components["schemas"]["Issue"]; }; /** @description One assignee of an issue. */ IssueAssignment: { assignedBy?: components["schemas"]["IssueActor"]; /** @description Whether the assignee is an agent that has since been deleted; its assignment no longer keeps the issue out of Monitoring or Closed. */ assigneeDeleted?: boolean; /** @description The person's user id or the agent's id. */ assigneeId?: string; /** * @description A person or an agent. * @enum {string} */ assigneeKind?: PathsV1IssuesIdOrNumberAssigneesAssigneeKindAssigneeIdDeleteParametersPathAssigneeKind; /** * Format: date-time * @description When it was made. */ createdAt?: string; /** @description For an agent's assignment, the run that made it active, which it ends with; null for a person's. */ investigationId?: string; /** @description A short note on its part, or null. */ note?: string; /** * @description Whether the assignee is still working on its part. * @enum {string} */ status?: IssueAssignmentStatus; /** * Format: date-time * @description When it last changed. */ updatedAt?: string; }; /** * @description How a change reached the server. * @enum {string} */ IssueChannel: IssueChannel; /** @description A comment on an issue. A guidance comment, which only people write, is advice every later investigation on the issue's entities weighs; any other comment is a plain note. */ IssueComment: { author?: components["schemas"]["IssueActor"]; /** @description The markdown body. */ body?: string; channel?: components["schemas"]["IssueChannel"]; /** * Format: date-time * @description When it was written. */ createdAt?: string; /** * Format: date-time * @description When its author last changed the body, or null. */ editedAt?: string; /** @description Whether it is guidance, which agents weigh as advice. */ guidance?: boolean; /** * Format: date-time * @description When it was marked guidance, or null. */ guidanceSetAt?: string; /** @description The user id of the person who marked it guidance, or null. */ guidanceSetBy?: string; /** @description The comment id. */ id?: string; /** @description The issue it is on. */ issueId?: string; /** @description The locked field the comment proposes changing, as named in a `FIELD_LOCKED` error (`priority`, `label:cost`), or null. */ lockedFieldProposal?: string; }; /** @description A page of an issue's comments, newest first. */ IssueCommentsPage: { /** @description The comments on this page. */ items?: components["schemas"]["IssueComment"][]; /** @description Pass back as `cursor` for the next, older page; null on the last page. */ nextCursor?: string; }; /** @description An issue with what a person or agent needs to act on it. */ IssueDetail: { /** @description Its assignees. */ assignments?: components["schemas"]["IssueAssignment"][]; /** @description Its newest guidance comments, oldest first: at most 20, and 32768 bytes of their bodies, though the newest is always there. */ guidance?: components["schemas"]["IssueComment"][]; /** * Format: int32 * @description How many older guidance comments that bound left out; `GET /v1/issues/{id}/comments` pages every comment. */ guidanceOmitted?: number; /** @description For each current guidance comment that agents were given, the investigations it was delivered to; a comment no longer guidance is not listed. */ guidanceReads?: components["schemas"]["IssueGuidanceReads"][]; issue?: components["schemas"]["Issue"]; /** @description Its latest comments, newest first, at most 20. */ recentComments?: components["schemas"]["IssueComment"][]; /** @description Its latest history entries, newest first, at most 20; `GET /v1/issues/{id}/events` pages older ones. */ recentEvents?: components["schemas"]["IssueEvent"][]; /** @description Its runs that haven't ended, oldest first: queued or working on it, handed, picked up or watching. */ runs?: components["schemas"]["IssueRun"][]; }; /** @description The body of an issue API error. `code` is the HTTP status, as in every Grepr error body; `error` says why, so a client or agent can react without parsing the message. */ IssueErrorResponse: { /** * Format: int32 * @description The HTTP status. */ code?: number; current?: components["schemas"]["Issue"]; /** @description The machine-readable reason, such as VERSION_CONFLICT. */ error?: string; /** @description The locked fields, or the teams the caller cannot see or grant, when the error is about them. */ fields?: string[]; /** @description What went wrong, for a person. */ message?: string; }; /** @description One entry in an issue's history. Every change to an issue writes exactly one, in the same transaction, so the history cannot disagree with the issue. */ IssueEvent: { actor?: components["schemas"]["IssueActor"]; channel?: components["schemas"]["IssueChannel"]; /** * Format: date-time * @description When it happened. */ createdAt?: string; /** @description Each changed field's value before and after, keyed by field name. The description carries only its new text; its previous text is the `to` of the issue's previous entry that changed it. A `COMMENTED` entry carries the comment's id as `comment.to`. A `CREATED` entry by an agent carries, as `entitiesFilled.to`, the entities the server filled from the agent's investigation, beside the complete `entities`; it is absent when nothing was filled. */ diff?: { [key: string]: components["schemas"]["IssueFieldChange"]; }; /** @description The event id. */ id?: string; /** @description The issue that changed. */ issueId?: string; /** * @description What kind of change it was. * @enum {string} */ kind?: PathsV1IssuesIdOrNumberEventsGetParametersQueryKind; }; /** @description A page of an issue's history, newest first. */ IssueEventsPage: { /** @description The entries on this page. */ items?: components["schemas"]["IssueEvent"][]; /** @description Pass back as `cursor` for the next, older page; null on the last page. */ nextCursor?: string; }; /** @description Something a person can open to check an issue's claim. */ IssueEvidence: { /** * Format: date-time * @description Start of a log query's time range, or null. */ from?: string; /** * @description What the evidence points at. * @enum {string} */ kind: IssueEvidenceKind; /** @description A short description of what it shows, or null. */ label?: string; /** @description The Grepr log query for LOG_QUERY, the event id for EVENT, or an http(s) URL for URL. */ target: string; /** * Format: date-time * @description End of a log query's time range, or null. */ to?: string; }; /** @description One field's value before and after a change, as JSON. */ IssueFieldChange: { from?: components["schemas"]["JsonNode"]; to?: components["schemas"]["JsonNode"]; }; /** @description Who locked a field and when, so the UI can say "set by Jad on Oct 3; agents can't change this". */ IssueFieldLock: { /** * Format: date-time * @description When it was locked. */ setAt?: string; /** @description The user id of the person whose write locked it. */ setBy?: string; }; /** @description One investigation whose agent was given a guidance comment in its known-issues context. */ IssueGuidanceRead: { /** @description The investigation's agent, or null when the investigation no longer exists. */ agentId?: string; /** @description The investigation. */ investigationId?: string; /** * Format: date-time * @description When the guidance was delivered. */ readAt?: string; }; /** @description The investigations a guidance comment was delivered to. */ IssueGuidanceReads: { /** @description The guidance comment. */ commentId?: string; /** @description The latest deliveries, newest first, at most 3. */ latest?: components["schemas"]["IssueGuidanceRead"][]; /** * Format: int32 * @description How many investigations it was delivered to. */ readCount?: number; }; /** @description A person's lock on one label: agents may not remove a label a person added, or add back one a person removed. */ IssueLabelLock: { /** * Format: date-time * @description When it was locked. */ setAt?: string; /** @description The user id of the person whose write locked it. */ setBy?: string; /** * @description Whether the person added or removed the label. * @enum {string} */ state?: IssueLabelLockState; }; /** @description A typed reference from an issue to something related. A link grants nothing: the linked page applies its own access checks. A link to an issue the reader can't see comes back with only its kind and `hidden`, so an issue reveals nothing about another team's. */ IssueLink: { /** @description True for a link to an issue the reader can't see. Set only in responses. */ hidden?: boolean | null; /** * @description What the link points at. * @enum {string} */ kind: IssueLinkKind; /** @description A short description, or null. */ label?: string; /** @description Null only for a hidden issue link in a response. */ target?: string | null; }; /** @description A linked object to find issues by, such as a pipeline or an investigation. */ IssueLinkRef: { /** * @description What the object is. * @enum {string} */ kind: IssueLinkKind; /** @description Its id, or the URL for an external link. */ target: string; }; /** @description The fields and labels people have locked against agent changes. `state` never locks. */ IssueLocks: { /** @description The locked fields, each with who locked it and when. */ fields?: { [key: string]: components["schemas"]["IssueFieldLock"]; }; /** @description The locked labels, keyed by label. */ labels?: { [key: string]: components["schemas"]["IssueLabelLock"]; }; }; /** @description A run started on the issue that hasn't ended: handed to its agent by a person, or picked up from Ready. It holds the issue until it ends. */ IssueRun: { /** @description The run's agent. */ agentId?: string; /** @description The run's investigation id. */ investigationId?: string; /** * @description Where the run is: QUEUED, RUNNING, STOPPING, CANCELLING, or STOPPED and resumable. * @enum {string} */ status?: InvestigationSummaryStatus; }; /** @description Which issues a principal may act on for one action: every issue in the organization, or those naming one of these teams. */ IssueScopeView: { /** @description Whether the principal may act on every issue in the organization. */ orgWide?: boolean; /** @description The teams whose issues the principal may act on, sorted; empty when `orgWide`. */ teamIds?: string[]; }; /** @description A compact issue row for the board and search results: everything a card or a list shows, without the description, evidence, links and locks that `GET /v1/issues/{idOrNumber}` returns. */ IssueSummary: { /** @description Who is working on it, oldest first: active assignments, without a deleted agent's. */ assignees?: components["schemas"]["IssueAssigneeRef"][]; /** * Format: int32 * @description How many comments it has, guidance included. */ commentCount?: number; /** * @description How sure the reporter is that the problem is real. * @enum {string} */ confidence?: CreateIssueRequestConfidence; /** @description The surviving issue, for a duplicate; null when the reader can't see it. */ duplicateOf?: string; /** @description True when the reader can't see the surviving issue. */ duplicateOfHidden?: boolean; /** @description The `entity:*` tags it concerns. */ entities?: { [key: string]: string; }; /** * Format: date-time * @description When it stops applying and closes, or null. */ expiresAt?: string; /** * Format: int32 * @description How many of its comments are guidance from people. */ guidanceCount?: number; /** @description The issue id. */ id?: string; /** @description Its categories. */ labels?: string[]; /** * Format: date-time * @description The latest sighting, or when it was filed. */ lastSeenAt?: string; /** @description Whether people have locked any field or label against agent changes. */ locked?: boolean; /** @description The concrete next action, or null. */ nextStep?: string; /** * Format: int32 * @description The short per-organization handle. */ number?: number; /** * Format: int32 * @description How many investigations sighted it. */ occurrenceCount?: number; /** @description The pipelines it concerns: its pipeline links' targets, then its `entity:pipeline`, without repeats. */ pipelineIds?: string[]; /** * @description How soon someone should act. * @enum {string} */ priority?: CreateIssueRequestPriority; /** @description Whether it reopened after being fixed. */ regressed?: boolean; /** * @description Why it closed, or null while open. * @enum {string} */ resolution?: IssueResolution; /** * Format: date-time * @description When someone should check back, or null. */ revisitAt?: string; /** @description Its runs that haven't ended, oldest first: queued or working on it, handed, picked up or watching. */ runs?: components["schemas"]["IssueRun"][]; /** * @description Where the issue is in its lifecycle. * @enum {string} */ state?: CreateIssueRequestState; /** @description The teams that may see it. */ teamIds?: string[]; /** @description One line naming the problem. */ title?: string; /** * Format: date-time * @description When it last changed. */ updatedAt?: string; /** * Format: int32 * @description Its current version, for a follow-up update. */ version?: number; /** @description The agent watching it in Monitoring, or null. */ watchedBy?: string; }; /** @description One issue's number and title, as a titles read answers each id it was sent. An issue the reader can't see, or one that doesn't exist, comes back as `{hidden: true}` alone, so the answer names nothing about it. */ IssueTitle: { /** @description True when you can't see the issue, or it doesn't exist. */ hidden?: boolean | null; /** @description Null when hidden. */ id?: string | null; /** * Format: int32 * @description Null when hidden. */ number?: number | null; /** @description Null when hidden. */ title?: string | null; }; /** @description The answer to a titles read. */ IssueTitles: { /** @description One entry per id sent, in the order sent. */ issues?: components["schemas"]["IssueTitle"][]; }; ItemsCollectionAgentSuggestion: { /** @default [] */ items?: components["schemas"]["AgentSuggestion"][]; }; ItemsCollectionInvestigationSummary: { /** @default [] */ items?: components["schemas"]["InvestigationSummary"][]; }; ItemsCollectionLogEvent: { /** @default [] */ items?: components["schemas"]["LogEvent"][]; }; ItemsCollectionReadAnthropic: { /** @default [] */ items?: components["schemas"]["ReadAnthropic"][]; }; ItemsCollectionReadDataWarehouse: { /** @default [] */ items?: components["schemas"]["ReadDataWarehouse"][]; }; ItemsCollectionReadDatadog: { /** @default [] */ items?: components["schemas"]["ReadDatadog"][]; }; ItemsCollectionReadDatadogMcp: { /** @default [] */ items?: components["schemas"]["ReadDatadogMcp"][]; }; ItemsCollectionReadGemini: { /** @default [] */ items?: components["schemas"]["ReadGemini"][]; }; ItemsCollectionReadGithubMcp: { /** @default [] */ items?: components["schemas"]["ReadGithubMcp"][]; }; ItemsCollectionReadGreprPipe: { /** @default [] */ items?: components["schemas"]["ReadGreprPipe"][]; }; ItemsCollectionReadInvitation: { /** @default [] */ items?: components["schemas"]["ReadInvitation"][]; }; ItemsCollectionReadJob: { items?: components["schemas"]["ReadJob"][]; }; ItemsCollectionReadLiteLlm: { /** @default [] */ items?: components["schemas"]["ReadLiteLlm"][]; }; ItemsCollectionReadNewRelic: { /** @default [] */ items?: components["schemas"]["ReadNewRelic"][]; }; ItemsCollectionReadOpenAi: { /** @default [] */ items?: components["schemas"]["ReadOpenAi"][]; }; ItemsCollectionReadOtlp: { /** @default [] */ items?: components["schemas"]["ReadOtlp"][]; }; ItemsCollectionReadPagerDutyMcp: { /** @default [] */ items?: components["schemas"]["ReadPagerDutyMcp"][]; }; ItemsCollectionReadS3DataWarehouse: { /** @default [] */ items?: components["schemas"]["ReadS3DataWarehouse"][]; }; ItemsCollectionReadS3VectorIndex: { /** @default [] */ items?: components["schemas"]["ReadS3VectorIndex"][]; }; ItemsCollectionReadSlackMcp: { /** @default [] */ items?: components["schemas"]["ReadSlackMcp"][]; }; ItemsCollectionReadSplunk: { /** @default [] */ items?: components["schemas"]["ReadSplunk"][]; }; ItemsCollectionReadSumo: { /** @default [] */ items?: components["schemas"]["ReadSumo"][]; }; ItemsCollectionReadUser: { /** @default [] */ items?: components["schemas"]["ReadUser"][]; }; ItemsCollectionReadWebhookIntegration: { /** @default [] */ items?: components["schemas"]["ReadWebhookIntegration"][]; }; ItemsCollectionServiceAccountRead: { /** @default [] */ items?: components["schemas"]["ServiceAccountRead"][]; }; ItemsCollectionString: { /** @default [] */ items?: string[]; }; ItemsCollectionTemplate: { /** @default [] */ items?: components["schemas"]["Template"][]; }; /** @description Collection of vendor imported exceptions */ ItemsCollectionVendorImportedException: { /** @default [] */ items?: components["schemas"]["VendorImportedException"][]; }; /** @description Base class of all Job Actions */ JobAction: { name?: string; /** Format: int32 */ order?: number; } & components["schemas"]["BackfillJobAction"]; JobActionRule: { /** @default [] */ actions?: components["schemas"]["JobAction"][]; /** * @description This takes job actions when the rule is triggered. (enum property replaced by openapi-typescript) * @enum {string} */ type: JobActionRuleType; }; JobAnomaly: { /** Format: date-time */ firstTriggeredAt?: string; jobId: string; /** Format: date-time */ lastTriggeredAt: string; ruleEngineName: string; triggerId: string; }; /** @description Joins an issue as an active assignee: an agent as itself, a person as themselves. Joining a Ready issue moves it to In progress; joining again after finishing makes the assignment active again. */ JoinIssueRequest: { /** @description What the caller will do, or null. */ note?: string; /** * Format: int32 * @description The version the join was decided against, or null for whatever is current. */ version?: number; }; /** @description JSON file format. */ JsonFileFormat: { /** * @description Character set name such as UTF-8, UTF-16, etc. * @default UTF-8 */ charset?: string; mapper?: components["schemas"]["JsonLogEventMapper"]; /** * @description Path to the list of log records. * @default [ * "items" * ] */ recordsPath?: string[]; streamFormat?: components["schemas"]["StreamFormatAny"]; }; /** @description JSON-to-LogEvent mapper. */ JsonLogEventMapper: Record; JsonLogProcessor: { /** * @description Object-valued JSON fields whose children are lifted into the containing parsed object. An empty list disables lifting. Lifting repeats recursively when a lifted object contains another configured field. Colliding maps are merged recursively. For leaf values and all other type combinations, the lifted child replaces the existing value; arrays are not combined. If multiple configured fields contain the same child, the later field wins according to these rules. * @default [] */ liftFieldNames?: string[]; /** * Format: int32 * @default 3 */ maxNestedDepthForFields?: number; /** * Format: int32 * @description Maximum number of iterations to perform when resolving nested JSON fields. * @default 5 */ maxNestedJsonIterations?: number; /** @example operation_name */ name: string; /** * @description The processor tries to deserialize the string in the 'message' field as JSON, putting all values into the 'attributes' field. If this is enabled, the processor will keep the JSON string in 'message'. When disabled, the string will be cleared. * @default false */ preserveJsonMessageField?: boolean; /** * @description If you have JSON that is double serialized, e.g. '{"field": "{\"nested\": \"value\"}"}', you might want to deserialize the nested JSON fields as well. This option allows you to specify the paths within the attributes where we should look for nested JSON fields. All the paths are tried in every iteration, and the deserialized fields are added to the root of attributes. Use this for singly serialized JSON attribute fields as well. * @default [ * [ * "message" * ], * [ * "msg" * ], * [ * "log" * ] * ] * @example [ * [ * "http", * "request", * "body" * ], * [ * "message" * ] * ] */ resolveNestedJsonFields?: string[][]; /** * @description Deserializes the 'message' field as JSON merging the result into the 'attributes' map. Can also deserialize attributes that contain JSON strings. (enum property replaced by openapi-typescript) * @enum {string} */ type: JsonLogProcessorType; }; /** @description A partial templateInputs object to deep-merge into the pipeline's current inputs. Objects merge recursively, and an array of named objects (like input.parsers) merges by entry name, so entries you omit are kept. Scalars and arrays of non-objects replace whole. */ JsonNode: Record; /** @description Strategy to read files created after the current job start time */ LatestReadingStrategy: { type: "LatestReadingStrategy"; } & Omit; LegacyDatadogMetricsSink: { /** * @description Additional tags to add to the metrics when writing to Datadog. Gets combined with the integration's additionalTags. * @default [] * @example [ * "env:dev" * ] */ additionalTags?: string[]; /** @description The Datadog integration id. */ integrationId: string; /** @example operation_name */ name: string; /** * @description Writes processed metrics (flat MetricDatapoint model) to Datadog. Transitional; use datadog-metrics-sink for new pipelines. (enum property replaced by openapi-typescript) * @enum {string} */ type: LegacyDatadogMetricsSinkType; }; LinkMemoryRequest: { resolution?: string; rootCause?: string; /** @enum {string} */ rootCauseConfidence?: HumanMemoryEditRootCauseConfidence; ruledOut?: string; symptoms?: string; }; LinkMemoryResponse: { textMerged?: boolean; }; /** @description The payload containing integration data. */ LiteLlm: { /** * @description Masked API key for LiteLLM * @example **************ey */ readonly apiKey?: string; /** * @description Base URL of the LiteLLM proxy. * @example https://litellm.example.com/team-a */ baseUrl: string; /** * Format: int64 * @description Total tokens all agents using this integration may consume per max-tokens window. Null uses the default of 200,000,000. * @example 200000000 */ integrationMaxTokens?: number; /** * Format: int32 * @description Length in hours of the UTC-aligned max tokens window; must be a divisor of 24. Null uses the default of 1. * @example 24 */ maxTokensWindowHours?: number; /** * @description Indicates whether to validate the API key when saving. * @default true * @example true */ validateKeysOnSave?: boolean; }; LlmUsageWindow: { /** Format: date-time */ end?: string; /** Format: int64 */ investigationsQueued?: number; /** Format: int64 */ investigationsRunning?: number; /** Format: date-time */ start?: string; /** Format: int64 */ tokensLimit?: number; /** Format: int64 */ tokensReserved?: number; /** Format: int64 */ tokensUsed?: number; }; LogAttributesRemapper: { /** * @description List of attribute-to-attribute remapping rules. Each rule moves the value from a source attribute path to a target attribute path, removing the source unless the rule's preserveSource flag is set. An optional predicate filter controls when each rule is applied. * @default [] */ attributeRemappingRules?: components["schemas"]["AttributeRemappingRule"][]; /** * @description When true, preserves the source host attribute after remapping instead of removing it. Defaults to true (source is preserved). * @default true */ hostPreserveSource?: boolean; /** * @description Paths to search for host values * @default [ * [ * "_resource", * "host.name" * ] * ] * @example [ * [ * "host", * "app.name" * ] * ] */ hostReservedAttributePaths?: string[][]; /** * @description Attributes to search for host values * @default [ * "host", * "hostname", * "syslog.hostname", * "kubernetes.host", * "sourceIPAddress" * ] */ hostReservedAttributes?: string[]; /** * @description When true, preserves the source message attribute after remapping instead of removing it. Defaults to false (source is removed after remapping). * @default false */ messagePreserveSource?: boolean; /** * @description Paths to search for message values * @default [] * @example [ * [ * "body", * "message.content" * ] * ] */ messageReservedAttributePaths?: string[][]; /** * @description Attributes to search for message values. The used attribute will be removed once remapped. * @default [ * "message", * "msg", * "log", * "M", * "Message" * ] */ messageReservedAttributes?: string[]; /** @example operation_name */ name: string; /** * @description When true, preserves the source service attribute after remapping instead of removing it. Defaults to true (source is preserved). * @default true */ servicePreserveSource?: boolean; /** * @description Paths to search for service values * @default [ * [ * "_resource", * "service.name" * ], * [ * "kubernetes", * "labels", * "app.kubernetes.io/name" * ], * [ * "labels", * "app.kubernetes.io/name" * ] * ] * @example [ * [ * "labels", * "app.kubernetes.io/name" * ] * ] */ serviceReservedAttributePaths?: string[][]; /** * @description Attributes to search for service values * @default [ * "service", * "syslog.appname", * "dd.service", * "kubernetes.labels.app", * "labels.app", * "kubernetes.labels.k8s-app", * "labels.k8s-app", * "eventSource" * ] */ serviceReservedAttributes?: string[]; statusMapping?: components["schemas"]["StatusMapping"]; /** * @description When true, preserves the source status attribute after remapping instead of removing it. Defaults to true (source is preserved). * @default true */ statusPreserveSource?: boolean; /** * @description Attributes to search for status values * @default [] * @example [ * [ * "log", * "level" * ] * ] */ statusReservedAttributePaths?: string[][]; /** * @description Attributes to search for status values * @default [ * "log.level", * "level", * "status", * "severity", * "syslog.severity", * "L" * ] */ statusReservedAttributes?: string[]; /** * @description Map from tag key to an ordered list of attribute paths to search for values. All paths will be tried, and all found values will be added. If no value is found, the tag will not be changed. The attribute paths are a list of paths. This does not remove existing tag values. * @default {} */ tagMappingPaths?: { [key: string]: string[][]; }; /** * @description Map from tag key to an ordered list of attribute paths to search for values. All paths will be tried, and all found values will be added. If no value is found, the tag will not be changed. The attribute paths are dot-separated. This does not remove existing tag values. * @default {} */ tagMappings?: { [key: string]: string[]; }; /** * @description Possible locations of a map of string to string or to collection of strings that has tags. Added to tags, without replacement. * @default [] */ tagMappingsLocationPaths?: string[][]; /** * @description When true, preserves the source tag map location attributes after remapping instead of removing them. Defaults to false (source is removed after remapping). * @default false */ tagMappingsLocationPreserveSource?: boolean; /** * @description Possible locations of a map of string to string or to collection of strings that has tags. Added to tags, without replacement. * @default [] */ tagMappingsLocations?: string[]; /** * @description When true, preserves the source tag mappings attributes after remapping instead of removing them. Defaults to false (source is removed). * @default false */ tagMappingsPreserveSource?: boolean; /** * @description When true, preserves the source timestamp attribute after remapping instead of removing it. Defaults to true (source is preserved). * @default true */ timestampPreserveSource?: boolean; /** * @description Paths to search for timestamp values * @default [] * @example [ * [ * "event", * "local.timestamp" * ] * ] */ timestampReservedAttributePaths?: string[][]; /** * @description Attributes to search for timestamp values * @default [ * "@timestamp", * "timestamp", * "_timestamp", * "Timestamp", * "eventTime", * "date", * "published_date", * "syslog.timestamp", * "T" * ] */ timestampReservedAttributes?: string[]; /** * @description When true, preserves the source traceId attribute after remapping instead of removing it. Defaults to true (source is preserved). * @default true */ traceIdPreserveSource?: boolean; /** * @description Paths to search for traceId values * @default [] * @example [ * [ * "trace", * "id" * ] * ] */ traceIdReservedAttributePaths?: string[][]; /** * @description Attributes to search for traceId values * @default [ * "dd.trace_id", * "contextMap.dd.trace_id", * "otelTraceID" * ] */ traceIdReservedAttributes?: string[]; /** * @description Maps attributes to top-level fields and tags. (enum property replaced by openapi-typescript) * @enum {string} */ type: LogAttributesRemapperType; }; /** @description A log event. */ LogEvent: { /** @description Attributes associated with the event, a map from attribute name to attribute value, which may be a nested map or list. */ attributes?: { [key: string]: components["schemas"]["Any"]; }; /** * Format: int64 * @description Event timestamp that is in the record. Milliseconds from epoch. */ eventTimestamp: number; /** * @description Id of the event. * @example 034JA9FJ */ id: string; /** * @description The log message. * @example This is a log message. */ message?: string; /** * Format: int64 * @description Timestamp when the event was received by Grepr. Milliseconds from epoch. */ receivedTimestamp: number; /** * Format: int32 * @description The log severity. Higher numbers mean higher severity, following the OTel format 1-24. */ severity?: number; /** @description Tags associated with the event, a map from tag name to set of tag values. */ tags?: { [key: string]: string[]; }; /** * @description discriminator enum property added by openapi-typescript * @enum {string} */ type: LogEventType; }; /** @description Selects the mapper used to decode raw file records into LogEvents. */ LogEventMapper: { type: string; }; LogReducer: { /** * Attributes merge strategy entries * @description List of attribute paths and their corresponding merge strategies. If no strategy is defined for a path, the terminal merge strategy will be used. * @default [] */ attributeMergeStrategyEntries?: components["schemas"]["AttributesMergeStrategyEntry"][]; /** * @description Use attribute shape only, or shape and whole-value similarity tokens. * @default KEYS_AND_VALUES * @enum {string} */ attributeTokenization?: LogReducerAttributeTokenization; /** * Deduplication threshold * Format: int32 * @description Number of duplicates we send for a pattern before we start deduplication. * @default 4 * @example 4 */ dedupThreshold?: number; defaultAttributesMergeStrategy?: components["schemas"]["AttributesMergeStrategy"]; /** * Token delimiters * @description Characters to use for splitting tokens. Default is missing '@' to avoid splitting email addresses. Also missing '.' to avoid splitting identifiers using it. * @default [ * ":", * "#", * "[", * "]", * "(", * ")", * "{", * "}", * "|", * ",", * ";", * "\"", * "'", * " ", * "\t", * "\n", * "\r", * "&", * "=", * "?", * "!", * "+", * "*", * "/", * "<", * ">", * "%", * "^", * "~", * "`" * ] * @example [":", "#", "[", "]", "(", ")", "{", "}", "|", ",", ";", """, "'", " ", "\t", "\n", "\r"] */ delimiters: string[]; /** * Emit new-pattern signals * @description Whether this operation may emit LogPatternSignal events to the agent-service when new patterns are detected or replayed. Must be enabled before an agent can subscribe to this pipeline. * @default false */ emitNewPatternSignals?: boolean; /** * Enabled masks * @description Masks that are enabled for tokenizing messages. These are specified as the names of the masks to use. The default enabled masks are: ipport, timestamp, uuid, number. * @default [ * "ipport", * "timestamp", * "uuid", * "number" * ] * @example [ * "ipport", * "timestamp", * "uuid", * "number" * ] */ enabledMasks: string[]; /** * @description Excluded attribute prefixes as arrays of literal key segments. Does not affect partition-by values or output attributes. * @default [] */ excludedAttributePrefixes?: string[][]; /** * @description Included attribute prefixes as arrays of literal key segments. Empty selects all. Array elements are traversed without indices. * @default [] */ includedAttributePrefixes?: string[][]; /** * Vendor imported exceptions * @description Exception configs that define which exceptions to use from the ones imported from the observability vendor integrations. * @default [] * @example { * "autoSync": true, * "ids": [ * "id1", * "id2" * ], * "integrationId": "0kk67gfs56a" * } */ integrationExceptionConfigs?: components["schemas"]["IntegrationExceptionConfig"][]; /** * Event predicate * @description Predicate for skipping events. Logs matching these predicates won't be aggregated. * @default [] * @example { * "query": "status:error", * "type": "datadog-query" * } */ logReducerExceptions?: components["schemas"]["EventPredicate"][]; /** * Masks * @description Set of masks that can be applied to messages before tokenizing them. These masks are specified as pairs of (name, regex). The default masks are: ipport, timestamp, uuid, number, awsarn, awstoken. * @default [ * [ * "ipport", * "(?:\\d{1,3}\\.){3}\\d{1,3}(?::\\d{1,5})?" * ], * [ * "timestamp", * "(?:(?:\\d{4}-\\d{2}-\\d{2}(?:T|\\s)\\d{2}:\\d{2}:\\d{2}(?:[.,]\\d{1,12})?(?:Z|(?:[\\+\\-]\\d{2}:?\\d{2})|\\sUTC)?)|(?:\\d{1,4}/\\d{1,2}/\\d{1,4}(,?\\s\\d{1,2}:\\d{2}:\\d{1,2}(?:[.,]\\d{1,12})?(?:\\s?(?:[AP]M))?)?)|(?:\\d{1,2}:\\d{2}:\\d{1,2}(?:[.,]\\d{1,12})?(?:\\s?(?:[AP]M))?)|(?:\\d{2}/[A-Za-z]{3}/\\d{4}(?:[:\\s]\\d{2}:\\d{2}:\\d{2}(?:\\s\\+[0-9]{4})?)?))" * ], * [ * "uuid", * "(?:^|(?(?:(?:\\d{1,100})?(?:\\.\\d{1,100})(?:[eE][\\-\\+]?\\d{1,100}))|(?:(?:\\d{1,100})?(?:\\.\\d{1,100}))|(?:\\d{1,100}))))(?:(?!\\w)|$)" * ], * [ * "awsarn", * "arn:aws(?:-[a-z]+-[a-z]+)?:[a-zA-Z0-9-]+:(?:[a-z0-9-]+:)?(?:[0-9]{12})?:[a-zA-Z0-9-_./]+(?::[a-zA-Z0-9-_./]+)*" * ], * [ * "awstoken", * "(?:IQoJb3JpZ2luX[A-Za-z0-9+/]{10,20})[A-Za-z0-9+/]{800,1100}" * ] * ] * @example [["ipport", "(?:\d{1,3}\.){3}\d{1,3}(?::\d{1,5})?"],["timestamp", "(?:(?:\d{4}-\d{2}-\d{2}(?:T|\s)\d{2}:\d{2}:\d{2}(?:[.,]\d{1,12})?(?:Z|(?:[\+\-]\d{2}:?\d{2})|\sUTC)?)|(?:\d{1,4}/\d{1,2}/\d{1,4}(,?\s\d{1,2}:\d{2}:\d{1,2}(?:[.,]\d{1,12})?(?:\s?(?:[AP]M))?)?)|(?:\d{1,2}:\d{2}:\d{1,2}(?:[.,]\d{1,12})?(?:\s?(?:[AP]M))?)|(?:\d{2}/[A-Za-z]{3}/\d{4}(?:[:\s]\d{2}:\d{2}:\d{2}(?:\s\+[0-9]{4})?)?))"],["uuid", "(?:^|(?(?:(?:\d{1,100})?(?:\.\d{1,100})(?:[eE][\-\+]?\d{1,100}))|(?:(?:\d{1,100})?(?:\.\d{1,100}))|(?:\d{1,100}))))(?:(?!\w)|$)"],["awsarn", "arn:aws(?:-[a-z]+-[a-z]+)?:[a-zA-Z0-9-]+:(?:[a-z0-9-]+:)?(?:[0-9]{12})?:[a-zA-Z0-9-_./]+(?::[a-zA-Z0-9-_./]+)*"],["awstoken", "(?:IQoJb3JpZ2luX[A-Za-z0-9+/]{10,20})[A-Za-z0-9+/]{800,1100}"]] */ masks: string[][]; /** @example operation_name */ name: string; /** * Grouping by attribute paths (array format) * @description Attribute paths as arrays of keys. Use for unambiguous nested vs flat attributes. Example: [["user", "id"]] for nested user.id, [["user.id"]] for flat attribute named 'user.id' * @default [] * @example [ * [ * "user", * "id" * ], * [ * "request.url" * ] * ] */ partitionByAttributePaths?: string[][]; /** @default [] */ partitionByAttributes?: string[]; /** @default [] */ partitionByTags?: string[]; /** * Format: ISO-8601 * @description Time window in which logs are considered for deduplication. Should not be modified without explicit guidance. * @default PT2M * @example PT20.345S */ reductionTimeWindow?: string; /** * Include repeat count in summary message * @description Whether to include the repeat count prefix in the summary message. Grepr will add a prefix to the summary message with the number messages aggregated. However, this might break downstream parsing if the message is expected to be in a specific format. If you want to include the repeat count, set this to true. * @default true * @example true */ repeatCountInSummaryMessageEnabled?: boolean; samplingConfig?: components["schemas"]["SamplingConfig"]; /** * Similarity threshold * Format: double * @description Controls how close a set of tokens are to a pattern before it is considered a match. Calculated as the percent of matching tokens between a pattern and a message. * @default 70 * @example 70 */ similarityThreshold?: number; /** * @description Selects message text, attributes, both, or message text with an attributes fallback. * @default MESSAGE_ONLY * @enum {string} */ tokenizationInput?: LogReducerTokenizationInput; /** * @description Reduces logs by combining messages with similar patterns. (enum property replaced by openapi-typescript) * @enum {string} */ type: LogReducerType; }; /** * Inputs Schema * @description Schema for the log reducer job graph. */ LogReducerTemplateInput: { agentSignalSink?: components["schemas"]["AgentSignalSink"]; /** @description Conditional routing of raw logs to datasets. Logs will match the filters in order, and once a log matches a filter, it will not attempt to match other filters in the list. If a log matches none of the filters, it is written to the default dataset. A default dataset must be set when conditional routing is configured. */ conditionalDatasets?: components["schemas"]["ConditionalDataLakeConfig"][]; /** * @description When true (ENGT-3898), vendor log sinks are non-terminal: delivered records are written to a confirmed-delivery dedup sink so only logs actually accepted by the vendor are marked sent. Defaults to false during gradual rollout. * @default false */ confirmedDeliveryEnabled?: boolean; /** @description The unique identifier for the dataset. When absent, no raw logs will be stored. At least one of `datasetId` or `sinks` must be provided for non-draft pipelines. */ datasetId?: string; draftSource?: components["schemas"]["Operation"]; /** @description A list of template-specific exceptions to apply in log reducer. */ exceptions: components["schemas"]["TemplateException"][]; masking?: components["schemas"]["MaskingOperator"]; /** @description A list of parsers to be applied to the data. */ parsers: components["schemas"]["Operation"][]; processedLogsSink?: components["schemas"]["LogsIcebergTableSink"]; processedLogsSinkFilter?: components["schemas"]["LogsFilter"]; rawSinkConfig?: components["schemas"]["RawLogsSinkConfig"]; reducer: components["schemas"]["LogReducer"]; sampler?: components["schemas"]["LogsEventSampler"]; /** @description A list of template log sinks, each specific to a vendor with optional filter configuration. When absent, reduced logs will not be forwarded. At least one of `sinks` or `datasetId` must be provided for non-draft pipelines. */ sinks?: components["schemas"]["TemplateLogSink"][]; /** @description A list of data sources, each conforming to one of the defined source types. */ sources: components["schemas"]["Operation"][]; transforms?: components["schemas"]["Transforms"]; }; LogRulesApplication: { /** * @description Global rules applied to all log events regardless of pattern (e.g., log-based alert rules). * @default [] */ globalRules?: components["schemas"]["PatternRuleConfig"][]; /** @example operation_name */ name: string; /** * @description Per-pattern rules keyed by pattern ID (TSID string). * @default {} */ rules?: { [key: string]: components["schemas"]["PatternRuleConfig"][]; }; /** * @description Applies per-pattern rules (masking, time-series spike detection) to log events. (enum property replaced by openapi-typescript) * @enum {string} */ type: LogRulesApplicationType; }; LogTransformAction: { /** @example operation_name */ name: string; /** @default [] */ transforms?: components["schemas"]["EventAction"][]; /** * @description Applies transformations to log events. (enum property replaced by openapi-typescript) * @enum {string} */ type: LogTransformActionType; }; LogsBackfillFlinkSource: { /** @description The ID of the dataset to read data from. */ datasetId: string; /** * Format: date-time * @description End of time interval to query data for. * @example 2023-01-01T01:00:00Z */ end: string; /** * Format: int32 * @description The maximum number of rows to process * @default 2500 */ limit?: number; /** @example operation_name */ name: string; /** * Format: int32 * @description Offset on the number of rows to process * @default 0 */ offset?: number; query: components["schemas"]["query"]; /** * @description The order in which the rows should be sorted by * @default ASCENDING * @enum {string} */ sortOrder?: AgentSessionEventsIcebergTableSourceSortOrder; /** * Format: date-time * @description Start of time interval to query data for. * @example 2023-01-01T00:00:00Z */ start: string; /** * @description Backfills events out of an Iceberg Table, returning events with the sinks they have already been sent to. (enum property replaced by openapi-typescript) * @enum {string} */ type: LogsBackfillFlinkSourceType; /** * @description Variables that can be used to modify the query while parsed * @default {} * @example { * "__application": "app1", * "__service": "service1" * } */ variables?: { [key: string]: components["schemas"]["Any"]; }; /** @default [] */ vendorSinkIntegrationIds?: string[]; }; /** * Inputs Schema * @description Schema for the logs backfill job graph. */ LogsBackfillTemplateInput: { /** * @description ISO-8601 value stamped onto backfilled records as the grepr.backfilled.timestamp tag. Computed by the builder so the template stays free of time logic. * @example 2023-01-01t01:00:00z */ backfillTimestampTag: string; /** @description Dataset containing the raw records and delivery dedup state. */ datasetId: string; /** * Format: date-time * @description End of the backfill interval. */ end: string; /** * Format: int32 * @description Maximum rows selected independently by each generated source. */ limit: number; query: components["schemas"]["EventPredicate"]; /** @description The vendor sink operations that deliver the backfilled records. */ sinks: components["schemas"]["Operation"][]; /** * Format: date-time * @description Start of the backfill interval. */ start: string; /** * @description Variables retained on the generated backfill source. * @default {} */ variables?: { [key: string]: components["schemas"]["Any"]; }; /** * @description Vendor integration IDs, if any, whose prior delivery the backfill source skips. Empty when the source does no per-vendor dedup join. * @default [] */ vendorSinkIntegrationIds?: string[]; }; LogsBranch: { /** @example operation_name */ name: string; predicate: components["schemas"]["EventPredicate"]; /** * @description Splits events based on a predicate. Positive matches go to the main output. Negative matches go to the 'else' output. * (enum property replaced by openapi-typescript) * @enum {string} */ type: LogsBranchType; }; LogsEventSampler: { filter?: components["schemas"]["EventPredicate"]; /** * Max allowed rate in messages per second * Format: double * @description Max allowed rate in messages per second. The max rate used by the token rate limiter to control the sampling rate of events. The rate is distributed across parallel subtasks. * @default 10 * @example 10 */ maxAllowedRate?: number; /** * Max burst limit * Format: int32 * @description Maximum size of acceptable burst used by the token bucket rate limiter to handle bursty traffic. * @default 2000 * @example 2000 */ maxBurstLimit?: number; /** @example operation_name */ name: string; /** * @description Samples log events using a token based rate limiter. Throttles log events based on max rate accepting up to max burst limit for bursty traffic. Can selectively sample events matching a filter predicate. Rate limiting is distributed across parallel subtasks. * (enum property replaced by openapi-typescript) * @enum {string} */ type: LogsEventSamplerType; }; LogsFilter: { /** * @description Whether to invert the predicate logic * @default false * @example false */ inverted?: boolean; /** * Format: ISO-8601 * @description Maximum allowed time delta between received and event timestamps. Events with a delta exceeding this threshold will be filtered out. ISO-8601 duration format. * @example PT20.345S */ maxLateEventTimestampDelta?: string; /** @example operation_name */ name: string; predicate: components["schemas"]["EventPredicate"]; /** * @description Filters events based on a predicate. * (enum property replaced by openapi-typescript) * @enum {string} */ type: LogsFilterType; }; LogsIcebergTableSink: { /** @description The id of the dataset to write to */ datasetId: string; /** @example operation_name */ name: string; /** * @description Writes logs to an Iceberg Table. (enum property replaced by openapi-typescript) * @enum {string} */ type: LogsIcebergTableSinkType; }; LogsIcebergTableSource: { /** @description The ID of the dataset to read data from. */ datasetId: string; /** * Format: date-time * @description End of time interval to query data for. * @example 2023-01-01T01:00:00Z */ end: string; /** * Format: int32 * @description The maximum number of rows to process * @default 2500 */ limit?: number; /** @example operation_name */ name: string; /** * Format: int32 * @description Offset on the number of rows to process * @default 0 */ offset?: number; query: components["schemas"]["query"]; /** * @description The order in which the rows should be sorted by * @default ASCENDING * @enum {string} */ sortOrder?: AgentSessionEventsIcebergTableSourceSortOrder; /** * Format: date-time * @description Start of time interval to query data for. * @example 2023-01-01T00:00:00Z */ start: string; /** * @description Reads events from an Iceberg table for processing. (enum property replaced by openapi-typescript) * @enum {string} */ type: LogsIcebergTableSourceType; /** * @description Variables that can be used to modify the query while parsed * @default {} * @example { * "__application": "app1", * "__service": "service1" * } */ variables?: { [key: string]: components["schemas"]["Any"]; }; }; LogsRuleEngine: { /** * @description Map of condition Id to condition objects. The ids are a unique name for the conditions. * @default {} * @example { * "condition-1": { * "actionRules": [ * { * "actionPredicate": { * "query": "service:__service", * "type": "datadog-query" * }, * "actions": [ * { * "modification": "ADD", * "order": 1, * "tagKey": "hosts", * "type": "tag-action", * "values": [ * "host1", * "host2" * ] * } * ], * "type": "event-rule" * } * ] * } * } */ conditions: { [key: string]: components["schemas"]["Condition"]; }; /** @example operation_name */ name: string; /** * @description Map of trigger Id to trigger objects. The ids are a unique name for the trigger. * @default {} * @example { * "trigger-1": { * "type": "event-predicate", * "predicate": { * "type": "datadog-query", * "query": "service:grepr-service-1" * }, * "conditionIds": ["condition-1"], * "duration": "PT1H" * }, * } */ triggers: { [key: string]: components["schemas"]["Trigger"]; }; /** * @description Describes rules to execute on log events. See the guide for the Rule Engine for more details. (enum property replaced by openapi-typescript) * @enum {string} */ type: LogsRuleEngineType; }; LogsSynchronousSink: { /** @example operation_name */ name: string; /** * @description Sink for returning log results to the caller. (enum property replaced by openapi-typescript) * @enum {string} */ type: LogsSynchronousSinkType; }; LogsValuesSource: { /** * @description If true, the source will loop over the values indefinitely when processing is STREAMING. In BATCH mode, this flag is ignored. * @default false */ loop?: boolean; /** @example operation_name */ name: string; /** * @description Generates log events with constant values. (enum property replaced by openapi-typescript) * @enum {string} */ type: LogsValuesSourceType; /** * @description List of log events to be generated by the source. * @default [] */ values?: components["schemas"]["LogEvent"][]; }; Manifest: { auth: components["schemas"]["AuthConfig"]; frontend?: components["schemas"]["FrontendConfig"]; }; /** * @description A mask: the regular expression to match, and how to rewrite the match. May also be written as a bare regex string when no replacement or preserved prefix is needed. * @example { * "email": "\\S+@\\S+" * } */ Mask: { /** * @description Delimiter ending a prefix of the match that is kept verbatim instead of being replaced. The match is split at the first occurrence of this text, so a regex matching "?token=abc123" with a delimiter of "=" keeps "?token=" and rewrites only the value. When the delimiter does not occur in the match, the whole match is replaced. * @example = */ preserveThrough?: string; /** * @description Regular expression whose matches are rewritten. Must be compatible with Hyperscan syntax: no lookbehind and no backreferences. Prefer unbounded repeats (`+`, `*`) over bounded ones (`{1,50}`) — a bounded repeat is expanded into that many copies of the pattern and can exceed the compiler's size limit. * @example [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,} */ regex: string; /** * @description Text substituted for the match. Defaults to the mask's label in square brackets, e.g. a mask labeled "email" becomes "[email]". * @example */ replacement?: string; }; MaskEntry: { name: string; pattern: string; replacement: string; }; MaskingOperator: { /** * @description Masks to apply to attribute values. Each entry names an attribute path (as a list of segments) and the masks to apply to the value at that path. Only string values at the exact path are masked; missing or non-string attributes are skipped. Paths must be unique. The same matching rules as messageMasks apply. * @default [] * @example [ * { * "masks": { * "email": "\\S+@\\S+" * }, * "path": [ * "user", * "contact" * ] * } * ] */ attributeMasks: components["schemas"]["AttributeMask"][]; /** * @description Masks to apply to the log message, as a map of label to mask. A mask may be written as a bare regex string, in which case each match is replaced with the label in square brackets — a match of the regex labeled "email" becomes "[email]". Labels may be up to 64 characters. Overlapping matches resolve to the leftmost match first, then the longest; declaration order breaks remaining ties, so declare more specific patterns first. * @default {} * @example { * "email": "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}" * } */ messageMasks: { [key: string]: components["schemas"]["Mask"]; }; /** @example operation_name */ name: string; predicate?: components["schemas"]["EventPredicate"]; /** * @description Masks sensitive substrings in log events by replacing regex matches with decorated labels. (enum property replaced by openapi-typescript) * @enum {string} */ type: MaskingOperatorType; }; MaskingRequest: { masking: components["schemas"]["MaskingOperator"]; /** * @description The sample log events to apply the masks to. * @default [] */ samples: components["schemas"]["MaskingSample"][]; }; MaskingResponse: { /** @description The masked results, aligned by position with the request's samples. */ results: components["schemas"]["MaskingResult"][]; }; /** @description The masked results, aligned by position with the request's samples. */ MaskingResult: { /** @description The sample attributes after masking, unchanged when no mask matched. */ maskedAttributes: { [key: string]: components["schemas"]["Any"]; }; /** * Format: int32 * @description The number of substrings replaced across the message and attributes; zero when nothing matched. * @example 3 */ maskedCount?: number; /** * @description The sample message after masking, unchanged when no mask matched. * @example user [email] signed in from [ip] */ maskedMessage?: string; }; /** @description Masking rule that scrubs PII from log messages using regex patterns. */ MaskingRuleConfig: Omit & { /** @default true */ enabled?: boolean; /** @default [] */ masks: components["schemas"]["MaskEntry"][]; } & { /** * @description discriminator enum property added by openapi-typescript * @enum {string} */ type: MaskingRuleConfigType; }; /** @description The sample log events to apply the masks to. */ MaskingSample: { /** * @description Sample attributes the attribute masks are applied to. * @default {} * @example { * "user": { * "email": "alice@example.com" * } * } */ attributes: { [key: string]: Record; }; /** * @description Sample log message the masks are applied to. May be omitted to test attribute masks alone. * @example user alice@example.com signed in from 10.1.2.3 */ message?: string; }; MatrixCell: { intent?: string; operation?: string; /** Format: int64 */ sessionsUsing?: number; }; MatrixData: { resultType: "MatrixData"; } & (Omit & { result?: components["schemas"]["MatrixResult"][]; }); MatrixResult: { metric?: { [key: string]: string; }; values?: Record[][]; }; MaxAttributesMergeStrategy: { /** * @description MaxAttributesMergeStrategy: Keeps the maximum numeric attribute value. (enum property replaced by openapi-typescript) * @enum {string} */ type: MaxAttributesMergeStrategyType; }; McpToolDescriptor: { description?: string; name?: string; parameters?: components["schemas"]["McpToolParameter"][]; readOnly?: boolean; title?: string; }; McpToolParameter: { description?: string; name?: string; required?: boolean; type?: string; }; MemoryDetail: { /** Format: int32 */ contentRevision?: number; /** Format: int64 */ linkCount?: number; lockedTagKeys?: string[]; memory?: components["schemas"]["MemorySearchResult"]; recurrences?: components["schemas"]["RecurrenceLink"][]; }; MemoryListResponse: { items?: components["schemas"]["MemorySearchResult"][]; nextCursor?: string; }; MemoryReview: { /** Format: date-time */ editedAt?: string; /** Format: date-time */ verdictAt?: string; verdictNote?: string; }; MemorySearchRequest: { agentId?: string; /** @default {} */ entityTags?: { [key: string]: string; }; /** @default false */ includeVocabulary?: boolean; /** * Format: int32 * @default 3 */ limit?: number; /** * @description The retrieval strategy. Leave it out for the server to pick: SEMANTIC when the agent searched has a semantic-search store and TEXT when it has none. * @enum {string} */ mode?: MemorySearchRequestMode; query?: string; /** Format: date-time */ recordedAfter?: string; /** @default [] */ significances: PathsV1AgentMemoryGetParametersQuerySignificance[]; /** @enum {string} */ verbosity?: MemorySearchRequestVerbosity; }; MemorySearchResponse: { entityTagVocabulary?: { [key: string]: string[]; }; hasMore?: boolean; note?: string; preamble?: string; results?: components["schemas"]["MemorySearchResult"][]; semanticSearchUnavailable?: boolean; /** @enum {string} */ verbosity?: MemorySearchRequestVerbosity; }; MemorySearchResult: { /** Format: int64 */ ageDays?: number; agentId?: string; investigationId?: string; /** Format: date-time */ lastSeenAt?: string; /** Format: int64 */ lastSeenDays?: number; /** @enum {string} */ matchedOn?: MemorySearchResultMatchedOn; /** @enum {string} */ recencyLabel?: MemorySearchResultRecencyLabel; /** Format: date-time */ recordedAt?: string; /** Format: int32 */ recurrenceCount?: number; resolution?: string; review?: components["schemas"]["MemoryReview"]; rootCause?: string; /** @enum {string} */ rootCauseConfidence?: HumanMemoryEditRootCauseConfidence; ruledOut?: string; /** Format: double */ score?: number; /** @enum {string} */ significance?: PathsV1AgentMemoryGetParametersQuerySignificance; symptoms?: string; tags?: { [key: string]: string; }; title?: string; }; MemoryTagCounts: { items?: components["schemas"]["TagCountItem"][]; }; MemoryVerdictRequest: { note: string; }; MergeMapAttributeAction: { /** * Format: int32 * @description Action order. Lower is applied first. * @default 0 */ order?: number; /** * @description The path to the attribute to merge into. * @example services */ targetPath: string; /** * @description Merge value into a map in a event attributes. If the target map is not present or the target is not a map, it is a no-op. If values for the keys already exist, they are overwritten. (enum property replaced by openapi-typescript) * @enum {string} */ type: MergeMapAttributeActionType; /** * @description The value to merge. * @example { * "type": "internal" * } */ value: { [key: string]: components["schemas"]["Any"]; }; }; MessageExactMatchNode: { /** * @description The exact message value to match. * @default * @example "this is an exact message" */ exactValue: string; /** * @description A node that represents an exact message match in a parsed query. (enum property replaced by openapi-typescript) * @enum {string} */ type: MessageExactMatchNodeType; }; MessageLengthNode: { /** * Format: int64 * @description Inclusive maximum message length in characters. Null means no upper bound. * @example 32768 */ maxLength?: number; /** * Format: int64 * @description Inclusive minimum message length in characters. Null means no lower bound. * @example 0 */ minLength?: number; /** * @description A node representing a message-length filter in a parsed query. (enum property replaced by openapi-typescript) * @enum {string} */ type: MessageLengthNodeType; }; MessageNode: { /** * @description The message term to match. * @default * @example word */ term: string; /** * @description A node that represents a message term match in a parsed query. (enum property replaced by openapi-typescript) * @enum {string} */ type: MessageNodeType; }; MessagePrefixNode: { /** * @description The prefix to match a message. * @default * @example "sample message prefix" */ prefix: string; /** * @description A node that represents a message prefix in a parsed query. (enum property replaced by openapi-typescript) * @enum {string} */ type: MessagePrefixNodeType; }; MessageRe2Node: { /** * @description The regex to match. This is a regex string that is matched against the message. * @default * @example "grepr-service-1.*" */ regex: string; /** * @description A node that represents a message regex in a parsed query. (enum property replaced by openapi-typescript) * @enum {string} */ type: MessageRe2NodeType; }; MessageWildcardNode: { /** * @description A node that represents a message wildcard in a parsed query. (enum property replaced by openapi-typescript) * @enum {string} */ type: MessageWildcardNodeType; /** * @description The message with wildcard to match. This is a string that is matched against the message. * @default * @example "grepr-service-1*" */ wildcard: string; }; /** @description One metric row in a per-metric pre-commitment summary table. */ MeteredDimensionCommitment: { /** @description Annually committed quantity for this metric. */ annualCommitment: number; /** @description Metric name (e.g. "Data Processing GB", "Compute Units"). */ metric: string; /** @description Quantity consumed cumulatively since the contract started. */ usedCumulative: number; /** @description Quantity consumed during the reporting period. */ usedThisPeriod: number; }; /** @description One metered dimension's daily usage and period totals. */ MeteredDimensionUsage: { /** * @description Per-day usage counts. * @default [] */ dailyValues: number[]; /** @description Display label for the metered dimension. */ label: string; /** @description This column's total for the prior calendar month; null when no prior-month comparison applies (a partial billing cycle, or no prior month before the contract start). Consumers derive the delta and percent change from this value and {@link #getTotal()}. */ previousMonthTotal?: number; /** @description Sum of the daily values over the reporting period. */ total: number; /** @description Billed dollar amount for the period; null when this column has no unit price. */ totalDollars?: number; }; /** @description The metrics aggregation to apply to the source data. */ MetricAggSpec: { /** * @description The tags to group the results by. If unspecified, all series are grouped together. Only applicable when spaceAggregation is set. * @default [] * @example [ * "service", * "env" * ] */ groupByTags?: string[]; /** * @description The space aggregation to use for the query. If null, no grouping is done and the timeseries are returned with full tags. * @example AVG * @enum {string} */ spaceAggregation?: MetricAggSpecSpaceAggregation; /** * @description The time aggregation to use for the query. If this is set, timeGranularity must also be provided. If null, no time aggregation is done and the raw datapoints are returned. * @example AVG * @enum {string} */ timeAggregation?: MetricAggSpecSpaceAggregation; /** * Format: ISO-8601 * @description The time granularity to use for the query. Only applicable when timeAggregation is set. * @example PT20.345S */ timeGranularity?: string; }; /** @description One aggregation declaration inside an anomaly rule. */ MetricAggregation: { /** * @description Aggregations to emit. Null = dimension view. * @default [] */ aggregations?: components["schemas"]["AggregationDecl"][]; filters?: components["schemas"]["FilterPrimitive"]; /** * @description Group-by tokens: 'object', 'cohort', 'series', or a level-prefixed attribute path. Empty list = global aggregation. * @default [] * @example [ * "object", * "cohort" * ] */ groupBy: string[]; /** @description Exact metric name or nested-aggregation alias. Mutually exclusive with filters.metricName. Null for dimension views (when filters is also unset). */ source?: string; /** * Format: ISO-8601 * @description Aggregation window. Defaults to timeGranularity.duration. * @example PT20.345S */ window?: string; }; /** @description OTLP-aligned metric data with nested resource, scope, and datapoint hierarchy. */ MetricData: { /** Format: int64 */ eventTimestamp?: number; /** Format: int64 */ receivedTimestamp?: number; resourceMetrics?: components["schemas"]["ArrayData"]; /** * @description discriminator enum property added by openapi-typescript * @enum {string} */ type: MetricDataType; }; MetricDataRawIcebergTableSink: { /** @description The id of the dataset to write to */ datasetId: string; /** @example operation_name */ name: string; /** * @description Writes MetricData (one row per datapoint, attributes auto-flattened to columns) to an Iceberg table. (enum property replaced by openapi-typescript) * @enum {string} */ type: MetricDataRawIcebergTableSinkType; }; MetricEventPredicate: { /** * @description The set of tags to query for. If unspecified, all tags are queried. * @default {} * @example { * "env": [ * "prod" * ], * "service": [ * "my-app" * ] * } */ filterTags?: { [key: string]: string[]; }; /** * @description The names of the metrics to query. Must not be empty. * @default [] * @example [ * "cpu.load", * "cpu.utilization" * ] */ metricNames: string[]; query: string; /** * @description A predicate that checks if an event matches a metrics query. (enum property replaced by openapi-typescript) * @enum {string} */ type: MetricEventPredicateType; }; /** @description Glob-pattern filter on metric names. */ MetricNameFilter: { empty?: boolean; /** * @description Glob patterns to exclude. Precedence over includes. * @default [] */ excludes?: string[]; /** * @description Glob patterns to include. Empty list matches all. * @default [] */ includes?: string[]; }; /** @description Reduces metric volume by aggregating per-object time series into per-cohort summaries while preserving the original signal when anomaly rules fire. Series that don't belong to a monitored object flow through unchanged; series matching a drop rule are discarded. */ MetricReducer: { /** * @description Anomaly rules. * @default [] */ anomalies?: components["schemas"]["AnomalyConfig"][]; anomalyActions?: components["schemas"]["AnomalyActions"]; cohorts?: components["schemas"]["CohortsConfig"]; /** * @description Drop rules — matching series are discarded outright. * @default [] */ dropRules?: components["schemas"]["DropRule"][]; /** * Format: ISO-8601 * @description How often the reducer flushes cohort-level output. * @default PT20S * @example PT20.345S */ emitInterval: string; hostMetadata?: components["schemas"]["HostMetadataReporting"]; /** * Format: ISO-8601 * @description Watermark delay applied to give late-arriving data a chance to be aggregated. * @default PT10S * @example PT20.345S */ lateArrivalWaitDuration: string; /** @example operation_name */ name: string; objects: components["schemas"]["ObjectsConfig"]; /** * @description Per-metric-name overrides for space (cross-object) aggregation. * @default {} * @example { * "system.cpu.utilization": "AVG" * } */ spaceAggOverrides?: { [key: string]: components["schemas"]["AggType"]; }; timeGranularity: components["schemas"]["TimeGranularity"]; /** * @description Metric reducer. (enum property replaced by openapi-typescript) * @enum {string} */ type: MetricReducerType; }; MetricsIcebergTableSink: { /** @description The id of the dataset to write to */ datasetId: string; /** @example operation_name */ name: string; /** * @description Writes metrics to an Iceberg table. (enum property replaced by openapi-typescript) * @enum {string} */ type: MetricsIcebergTableSinkType; }; MetricsIcebergTableSource: { aggSpec: components["schemas"]["MetricAggSpec"]; /** @description The ID of the dataset to read data from. */ datasetId: string; /** * Format: date-time * @description End of time interval to query data for. * @example 2023-01-01T01:00:00Z */ end: string; /** * Format: int32 * @description The maximum number of rows to process * @default 2500 */ limit?: number; /** @example operation_name */ name: string; /** * Format: int32 * @description Offset on the number of rows to process * @default 0 */ offset?: number; query: components["schemas"]["query"]; /** * @description The order in which the rows should be sorted by * @default ASCENDING * @enum {string} */ sortOrder?: AgentSessionEventsIcebergTableSourceSortOrder; /** * Format: date-time * @description Start of time interval to query data for. * @example 2023-01-01T00:00:00Z */ start: string; /** * @description Reads metrics out of an Iceberg Table for processing. (enum property replaced by openapi-typescript) * @enum {string} */ type: MetricsIcebergTableSourceType; /** * @description Variables that can be used to modify the query while parsed * @default {} * @example { * "__application": "app1", * "__service": "service1" * } */ variables?: { [key: string]: components["schemas"]["Any"]; }; }; MetricsSynchronousSink: { /** @example operation_name */ name: string; /** * @description Sink for returning metric results to the caller. (enum property replaced by openapi-typescript) * @enum {string} */ type: MetricsSynchronousSinkType; }; MinAttributesMergeStrategy: { /** * @description MinAttributesMergeStrategy: Keeps the minimum numeric attribute value. (enum property replaced by openapi-typescript) * @enum {string} */ type: MinAttributesMergeStrategyType; }; ModelConfiguration: { integrationId?: string; /** Format: int32 */ maxOutputTokens?: number; modelName?: string; /** @enum {string} */ provider?: ModelConfigurationProvider; }; /** @description Commitment summary for Monthly + Credit Pool plans. */ MonthlyCreditPoolSummary: { /** @description Monthly recurring committed dollar amount. */ credits: number; /** @description Gross consumption in dollars for this reporting period. */ total: number; /** * @description discriminator enum property added by openapi-typescript * @enum {string} */ type: MonthlyCreditPoolSummaryType; }; MultiGrokParser: { /** @example operation_name */ name: string; /** * @description Ordered list of grok rule sets. Each rule set has its own predicate, optional extract attribute, parsing rules, and helper rules. Rule sets extracting from enriched attributes should be ordered after rule sets that populate those attributes. * @default [] */ ruleSets?: components["schemas"]["MultiGrokRuleSet"][]; /** * @description Processes unstructured logs and extracts fields from them using Grok patterns. (enum property replaced by openapi-typescript) * @enum {string} */ type: MultiGrokParserType; }; /** @description Ordered list of grok rule sets. Each rule set has its own predicate, optional extract attribute, parsing rules, and helper rules. Rule sets extracting from enriched attributes should be ordered after rule sets that populate those attributes. */ MultiGrokRuleSet: { /** @description Optional attribute to extract from. If null, extracts from the log message. Rules that extract from enriched attributes should be ordered after rules that populate those attributes. A dotted string, or an array of literal keys. */ extractAttribute?: string | string[]; /** * @description Helper rules scoped to this rule set * @default [] */ grokHelperRules?: string[]; /** * @description Grok parsing rules for this rule set * @default [] */ grokParsingRules?: string[]; predicate?: components["schemas"]["EventPredicate"]; }; /** @description The payload containing integration data. */ NewRelic: { /** * @description Account Id for New Relic. * @example 123456789 */ accountId?: string; /** * @description Masked API key for New Relic. * @example **************ey */ readonly apiKey?: string; /** * Format: ISO-8601 * @description The time window in which a dashboard must have been accessed to be considered active. * @default PT672H * @example PT20.345S */ dashboardFreshnessWindow?: string; /** @description The imported exceptions from NewRelic. This is a map from the vendor resource ID to the exception. */ readonly exceptions?: { [key: string]: components["schemas"]["VendorImportedException"]; }; /** * @description Masked license key for New Relic. * @example **************ey */ readonly licenseKey?: string; /** * @description Route logs to New Relic over AWS PrivateLink using the private log endpoint. * @default false */ privateLink?: boolean; /** * @description New Relic API endpoint url base * @example newrelic.com */ site: string; }; NewRelicLogAgentSource: { /** @description The integration id for the observability vendor. */ integrationId: string; /** @example operation_name */ name: string; /** * @description Strategy for resetting Kafka consumer offset when no committed offset exists or has expired. EARLIEST reads from oldest available offset (prevents data loss on restart after retention period). LATEST skips to newest offset (current behavior). * @default LATEST * @enum {string} */ offsetResetStrategy?: DatadogLogAgentSourceOffsetResetStrategy; /** * @description Reads log events from Grepr's New Relic collection agent. This is used to pre-process logs before being sent to New Relic. (enum property replaced by openapi-typescript) * @enum {string} */ type: NewRelicLogAgentSourceType; }; NewRelicLogSink: { /** * @description Additional attributes to add to the logs when writing to New Relic. Gets combined with the integration's additionalAttributes. * @default {} * @example { * "processor": "grepr" * } */ additionalAttributes?: { [key: string]: string; }; /** @description The New Relic integration id. */ integrationId: string; /** @example operation_name */ name: string; /** * @description Writes logs to NewRelic. (enum property replaced by openapi-typescript) * @enum {string} */ type: NewRelicLogSinkType; }; NewRelicQueryPredicate: { /** * @description The New Relic query used by the predicate. See https://docs.newrelic.com/docs/logs/ui-data/query-syntax-logs/ * @default * @example service:grepr-service-1 */ query: string; /** * @description A predicate that checks if an event matches a New Relic query. (enum property replaced by openapi-typescript) * @enum {string} */ type: NewRelicQueryPredicateType; }; NotQueryNode: { expression: components["schemas"]["ParsedQueryNode"]; /** * @description A node that represents a negation in a parsed query. (enum property replaced by openapi-typescript) * @enum {string} */ type: NotQueryNodeType; }; NrqlQueryPredicate: { /** * @description The Nrql query used by the predicate. See https://docs.newrelic.com/docs/nrql * @default * @example SELECT * FROM Log WHERE service = 'grepr-service-1' */ query: string; /** * @description Whether the query should be parsed in strict mode. * @default true */ strict?: boolean; /** * @description A predicate that checks if an event matches an NRQL query. (enum property replaced by openapi-typescript) * @enum {string} */ type: NrqlQueryPredicateType; }; /** @description When an object is anomalous, de-aggregate its raw datapoints alongside the per-cohort aggregate output, under a suffixed metric name. */ ObjectMetricsPassthrough: { /** * @description Whether anomalous objects are de-aggregated (passed through). * @default true */ enabled?: boolean; /** * @description Suffix appended to passthrough emits' metric names (e.g. 'cpu.usage' becomes 'cpu.usage.detail'). May be empty to keep the original metric name. Must not collide with any aggregation 'as' suffix on the same cohort calc. * @default .detail * @example .detail */ metricSuffix: string; }; /** @description Object-identity configuration. */ ObjectsConfig: { /** * @description Level-prefixed attribute keys that identify an object. Each key must have a 'resource.', 'scope.', or 'series.' prefix. * @default [] * @example [ * "resource.host.id" * ] */ identifyingAttributes: string[]; /** * @description Level-prefixed attribute keys that describe an object but may change. * @default [] * @example [ * "resource.os.version" * ] */ metadataAttributes?: string[]; metricsFilter?: components["schemas"]["FilterPrimitive"]; }; /** @description The payload containing integration data. */ OpenAi: { /** * @description Masked API key for OpenAI * @example **************ey */ readonly apiKey?: string; /** @description Whether this provider offers an embeddings API and can back agent investigation memory. */ readonly supportsEmbedding?: boolean; /** * @description Indicates whether to validate the API key when saving. * @default true * @example true */ validateKeysOnSave?: boolean; }; /** * @description Base class of all Operations * @example [ * { * "end": "2024-08-07T22:05:07Z", * "integrationId": "0jn5rdc93r10t", * "name": "source", * "processing": "BATCH", * "query": { * "query": "service:grepr-query", * "type": "datadog-query" * }, * "start": "2024-08-07T22:00:07Z", * "table": "logevent_raw_devpipeline", * "type": "logs-iceberg-table-source" * }, * { * "name": "sink", * "type": "logs-sync-sink" * } * ] */ Operation: { /** @example operation_name */ name: string; type: string; } & (components["schemas"]["LogsEventSampler"] | components["schemas"]["LogsBranch"] | components["schemas"]["LogsFilter"] | components["schemas"]["GrokParser"] | components["schemas"]["JsonLogProcessor"] | components["schemas"]["LogAttributesRemapper"] | components["schemas"]["LogReducer"] | components["schemas"]["LogTransformAction"] | components["schemas"]["MaskingOperator"] | components["schemas"]["PatternMatcher"] | components["schemas"]["LogsIcebergTableSink"] | components["schemas"]["PatternLookupIcebergTableSink"] | components["schemas"]["EventDedupIcebergTableSink"] | components["schemas"]["VendorLogEventDedupIcebergTableSink"] | components["schemas"]["SpanDedupIcebergTableSink"] | components["schemas"]["SpansIcebergTableSink"] | components["schemas"]["LogsIcebergTableSource"] | components["schemas"]["AgentSessionsIcebergTableSource"] | components["schemas"]["AgentSessionEventsIcebergTableSource"] | components["schemas"]["MetricsIcebergTableSource"] | components["schemas"]["TracesIcebergTableSource"] | components["schemas"]["SpansBackfillIcebergTableSource"] | components["schemas"]["MetricsIcebergTableSink"] | components["schemas"]["MetricDataRawIcebergTableSink"] | components["schemas"]["DatadogLogCloudSource"] | components["schemas"]["DatadogLogAgentSource"] | components["schemas"]["DatadogTraceAgentSource"] | components["schemas"]["GreprVendorSource"] | components["schemas"]["GreprMetricsSource"] | components["schemas"]["DatadogLogSink"] | components["schemas"]["DatadogTraceSink"] | components["schemas"]["NewRelicLogSink"] | components["schemas"]["SplunkLogSink"] | components["schemas"]["SumoLogSource"] | components["schemas"]["SumoLogSink"] | components["schemas"]["OtlpLogSink"] | components["schemas"]["OtlpTraceSink"] | components["schemas"]["IcebergLogsReplaySource"] | components["schemas"]["LogsBackfillFlinkSource"] | components["schemas"]["LogsRuleEngine"] | components["schemas"]["ReducerLogsQuerySource"] | components["schemas"]["LogsSynchronousSink"] | components["schemas"]["AgentSessionsSynchronousSink"] | components["schemas"]["MetricsSynchronousSink"] | components["schemas"]["VariantSynchronousSink"] | components["schemas"]["SpansSynchronousSink"] | components["schemas"]["QuerySink"] | components["schemas"]["AgentSignalSink"] | components["schemas"]["DiscardingSink"] | components["schemas"]["GreprPipeLogSource"] | components["schemas"]["GreprPipeLogSink"] | components["schemas"]["DatadogMetricsSink"] | components["schemas"]["LegacyDatadogMetricsSink"] | components["schemas"]["AthenaAnalyticsSource"] | components["schemas"]["GreprReducerLogSource"] | components["schemas"]["AthenaAgentSessionsSource"] | components["schemas"]["GreprRawLogsSource"] | components["schemas"]["GreprRawSpanSource"] | components["schemas"]["TrinoAnalyticsSource"] | components["schemas"]["TrinoReducerLogSource"] | components["schemas"]["TrinoRawLogsSource"] | components["schemas"]["TrinoRawSpanSource"] | components["schemas"]["SplunkLogAgentSource"] | components["schemas"]["SplunkLogHttpSource"] | components["schemas"]["NewRelicLogAgentSource"] | components["schemas"]["OtlpLogAgentSource"] | components["schemas"]["OtlpTraceAgentSource"] | components["schemas"]["TraceSampler"] | components["schemas"]["SpanTagger"] | components["schemas"]["S3LogsFileSource"] | components["schemas"]["CloudTrailLogsFileSource"] | components["schemas"]["GreprUploadedLogFileSource"] | components["schemas"]["TemplateOperation"] | components["schemas"]["SqlOperation"] | components["schemas"]["TraceReducer"] | components["schemas"]["MetricReducer"] | components["schemas"]["DatadogStatsSink"] | components["schemas"]["LogsValuesSource"] | components["schemas"]["LogRulesApplication"] | components["schemas"]["TriggerActionOp"] | components["schemas"]["MultiGrokParser"] | components["schemas"]["AgentSessionAnalytics"] | components["schemas"]["AgentLogProcessor"] | components["schemas"]["AgentSpanProcessor"]); OrQueryNode: { /** * @description This is a list of expressions that are combined with an OR operator. * @default [] * @example [ * "message1", * "message2" * ] */ expressions: components["schemas"]["ParsedQueryNode"][]; /** * @description A node that represents a logical OR in a parsed query. (enum property replaced by openapi-typescript) * @enum {string} */ type: OrQueryNodeType; }; /** @description The payload containing integration data. */ Otlp: { /** * @description Headers whose values are dynamically extracted from log event attributes. Each mapping specifies a header name and the attribute path to read the value from. * @default [] * @example [ * { * "attributePath": [ * "kubernetes", * "namespace", * "name" * ], * "headerName": "X-Tenant" * } * ] */ attributeHeaders?: components["schemas"]["AttributeHeaderMapping"][]; /** * @description The base OTLP endpoint. Signal-specific paths will be appended automatically (e.g., /v1/logs for logs, /v1/traces for traces) unless overridden by signal-specific endpoint fields. * @example https://otlp.example.com:4318 */ endpoint: string; /** * @description Non-secret HTTP headers for writing to an OTLP sink. Headers can contain multiple values. * @example [ * [ * "Host", * "my_server" * ], * [ * "Accept-Language", * "en-US" * ], * [ * "Accept-Language", * "en;q=0.9" * ] * ] */ headers?: components["schemas"]["Header"][]; /** * @description Optional override for the logs endpoint. If specified, this will be used instead of appending /v1/logs to the base endpoint. * @example https://logs.example.com:4318/v1/logs */ logsEndpoint?: string; /** * @description Wire encoding for outbound OTLP HTTP requests. * @default proto * @example proto * @enum {string} */ outputEncoding?: OtlpOutputEncoding; /** * @description A unique token generated by Grepr in plain-text * @example plain-text-secret */ readonly plainTextToken?: string; /** * @description Secret HTTP headers for writing to an OTLP sink. Headers are single-valued. * @example { * "DD-API-KEY": "******ey" * } */ secretHeaders?: { [key: string]: components["schemas"]["SecretApi"]; }; /** * @description A unique token generated by Grepr to authenticate for an OTLP integration at ingestion * @example *****ssHA */ readonly token?: string; /** * @description Optional override for the traces endpoint. If specified, this will be used instead of appending /v1/traces to the base endpoint. * @example https://traces.example.com:4318/v1/traces */ tracesEndpoint?: string; }; OtlpLogAgentSource: { /** @description The integration id for the observability vendor. */ integrationId: string; /** @example operation_name */ name: string; /** * @description Strategy for resetting Kafka consumer offset when no committed offset exists or has expired. EARLIEST reads from oldest available offset (prevents data loss on restart after retention period). LATEST skips to newest offset (current behavior). * @default LATEST * @enum {string} */ offsetResetStrategy?: DatadogLogAgentSourceOffsetResetStrategy; /** * @description Reads log events from Open Telemetry collector. This is used to pre-process logs before being sent to an Otel sink. (enum property replaced by openapi-typescript) * @enum {string} */ type: OtlpLogAgentSourceType; }; OtlpLogSink: { /** * @description Additional attributes to add to the logs when writing to OTLP destination. Gets combined with the integration's additionalAttributes. * @default {} * @example { * "processor": "grepr" * } */ additionalAttributes?: { [key: string]: string; }; /** @description The OTLP integration id. */ integrationId: string; /** @example operation_name */ name: string; /** * @description Writes processed logs to any OTLP-compatible destination. (enum property replaced by openapi-typescript) * @enum {string} */ type: OtlpLogSinkType; }; OtlpTraceAgentSource: { /** @description The integration id for the observability vendor. */ integrationId: string; /** @example operation_name */ name: string; /** * @description Strategy for resetting Kafka consumer offset when no committed offset exists or has expired. EARLIEST reads from oldest available offset (prevents data loss on restart after retention period). LATEST skips to newest offset (current behavior). * @default LATEST * @enum {string} */ offsetResetStrategy?: DatadogLogAgentSourceOffsetResetStrategy; /** * @description Reads trace events from an OpenTelemetry collector. This is used to process traces from OTLP trace ingestion. (enum property replaced by openapi-typescript) * @enum {string} */ type: OtlpTraceAgentSourceType; }; OtlpTraceSink: { /** * @description Additional attributes to add to the logs when writing to OTLP destination. Gets combined with the integration's additionalAttributes. * @default {} * @example { * "processor": "grepr" * } */ additionalAttributes?: { [key: string]: string; }; /** @description The OTLP integration id. */ integrationId: string; /** @example operation_name */ name: string; /** * @description Writes processed logs to any OTLP-compatible destination. (enum property replaced by openapi-typescript) * @enum {string} */ type: OtlpTraceSinkType; }; /** @description The payload containing integration data. */ PagerDutyMcp: { /** * @description Base web URL of the PagerDuty account, used to link to created incidents (e.g. https://acme.pagerduty.com). Optional. * @example https://acme.pagerduty.com */ accountUrl?: string; /** @description Masked API key for the MCP server. */ readonly apiKey?: string; /** * @description MCP server endpoint URL. * @example https://mcp.notion.so/v1 */ serverUrl: string; /** * @description Indicates whether to validate the API key when saving. * @default true * @example true */ validateKeysOnSave?: boolean; }; ParseQueryRequest: { query?: components["schemas"]["EventPredicate"]; /** * @description Which runtime representation to validate the query against. Defaults to PARSED_QUERY_NODE (returns the parsed tree for the in-browser matcher). Use EVENT_PREDICATE to validate against the Java predicate the Flink pipeline runs; no parsed tree is returned in that case. * @default PARSED_QUERY_NODE * @enum {string} */ validationTarget?: ParseQueryRequestValidationTarget; }; ParseQueryResponse: { /** @description The error message if there is an error */ errorMessage?: string; parsedQuery?: components["schemas"]["ParsedQueryTree"]; /** @description Whether a query is valid. */ valid?: boolean; }; ParseResult: { errorMessage?: string; parseable?: boolean; }; ParsedQueryImportStatus: { /** * @description Every integration an import updates. Integrations that share a vendor account share one fetch, so importing for one imports for all of them. * @default [] */ coveredIntegrationIds: string[]; /** * @description Whether the credential the import needs is saved. For Datadog this is the application key. * @example true */ hasCredential: boolean; /** * @description Whether an import covering this integration is already under way. * @example false */ importing: boolean; /** * @description Whether this vendor's parsed queries can be imported at all. False for vendors Grepr cannot read alert queries from. * @example true */ supported: boolean; }; ParsedQueryNode: components["schemas"]["AttributeNode"] | components["schemas"]["AttributeKeyTermNode"] | components["schemas"]["AttributeRe2Node"] | components["schemas"]["AttributeWildcardNode"] | components["schemas"]["AttributePrefixNode"] | components["schemas"]["AttributeWithComparatorNode"] | components["schemas"]["MessageExactMatchNode"] | components["schemas"]["MessageLengthNode"] | components["schemas"]["MessageNode"] | components["schemas"]["MessageRe2Node"] | components["schemas"]["MessageWildcardNode"] | components["schemas"]["MessagePrefixNode"] | components["schemas"]["PhraseNode"] | components["schemas"]["TagKeyNode"] | components["schemas"]["TagKeyWildcardNode"] | components["schemas"]["TagKeyPrefixNode"] | components["schemas"]["TagNode"] | components["schemas"]["TagWildcardNode"] | components["schemas"]["TagPrefixNode"] | components["schemas"]["TagRe2Node"] | components["schemas"]["TagWithComparatorNode"] | components["schemas"]["SeverityNode"] | components["schemas"]["NotQueryNode"] | components["schemas"]["AndQueryNode"] | components["schemas"]["OrQueryNode"] | components["schemas"]["AllQueryNode"]; /** @description The parsed query tree */ ParsedQueryTree: { root?: components["schemas"]["ParsedQueryNode"]; }; /** @description User-chosen partition layout. */ PartitionConfig: { /** * @description User-chosen partition fields applied in order. * @default [] */ fields: components["schemas"]["PartitionFieldConfig"][]; }; /** @description User-chosen partition fields applied in order. */ PartitionFieldConfig: { /** * Format: int32 * @description Number of buckets to hash this column into. */ buckets: number; /** @description Built-in column (service/host) or a promoted tag key to partition by. */ column: string; }; /** @description An Iceberg partition transform applied to a column: a time transform (hour/day/month/year) or a hash bucket transform with a fixed bucket count. Discriminated by the 'type' property (time/bucket). */ PartitionTransform: { type: string; }; /** @description Terminal — forwards every event to the chain's downstream pipeline step. UI label is stage-derived (e.g. "Send to Reducer"). */ PassthroughNode: { /** * @description discriminator enum property added by openapi-typescript * @enum {string} */ kind: PassthroughNodeKind; }; PatternLookupIcebergTableSink: { /** @description The id of the dataset to write to */ datasetId: string; /** @example operation_name */ name: string; /** * @description Writes event id to pattern id mappings to an Iceberg Table. (enum property replaced by openapi-typescript) * @enum {string} */ type: PatternLookupIcebergTableSinkType; }; PatternMatcher: { /** * @description Use attribute shape only, or shape and whole-value similarity tokens. * @default KEYS_AND_VALUES * @enum {string} */ attributeTokenization?: LogReducerAttributeTokenization; /** * Token delimiters * @description Characters to use for splitting tokens. * @default [ * ":", * "#", * "[", * "]", * "(", * ")", * "{", * "}", * "|", * ",", * ";", * "\"", * "'", * " ", * "\t", * "\n", * "\r", * "&", * "=", * "?", * "!", * "+", * "*", * "/", * "<", * ">", * "%", * "^", * "~", * "`" * ] */ delimiters: string[]; /** * Emit new-pattern signals * @description Whether this operation may emit LogPatternSignal events to the agent-service when new patterns are detected or replayed. Must be enabled before an agent can subscribe to this pipeline. * @default false */ emitNewPatternSignals?: boolean; /** * Enabled masks * @description Masks that are enabled for tokenizing messages. * @default [ * "ipport", * "timestamp", * "uuid", * "number" * ] * @example [ * "ipport", * "timestamp", * "uuid", * "number" * ] */ enabledMasks: string[]; /** * @description Excluded attribute prefixes as arrays of literal key segments. Does not affect partition-by values or output attributes. * @default [] */ excludedAttributePrefixes?: string[][]; /** * @description Included attribute prefixes as arrays of literal key segments. Empty selects all. Array elements are traversed without indices. * @default [] */ includedAttributePrefixes?: string[][]; /** * Masks * @description Set of masks that can be applied to messages before tokenizing them. These masks are specified as pairs of (name, regex). * @default [ * [ * "ipport", * "(?:\\d{1,3}\\.){3}\\d{1,3}(?::\\d{1,5})?" * ], * [ * "timestamp", * "(?:(?:\\d{4}-\\d{2}-\\d{2}(?:T|\\s)\\d{2}:\\d{2}:\\d{2}(?:[.,]\\d{1,12})?(?:Z|(?:[\\+\\-]\\d{2}:?\\d{2})|\\sUTC)?)|(?:\\d{1,4}/\\d{1,2}/\\d{1,4}(,?\\s\\d{1,2}:\\d{2}:\\d{1,2}(?:[.,]\\d{1,12})?(?:\\s?(?:[AP]M))?)?)|(?:\\d{1,2}:\\d{2}:\\d{1,2}(?:[.,]\\d{1,12})?(?:\\s?(?:[AP]M))?)|(?:\\d{2}/[A-Za-z]{3}/\\d{4}(?:[:\\s]\\d{2}:\\d{2}:\\d{2}(?:\\s\\+[0-9]{4})?)?))" * ], * [ * "uuid", * "(?:^|(?(?:(?:\\d{1,100})?(?:\\.\\d{1,100})(?:[eE][\\-\\+]?\\d{1,100}))|(?:(?:\\d{1,100})?(?:\\.\\d{1,100}))|(?:\\d{1,100}))))(?:(?!\\w)|$)" * ], * [ * "awsarn", * "arn:aws(?:-[a-z]+-[a-z]+)?:[a-zA-Z0-9-]+:(?:[a-z0-9-]+:)?(?:[0-9]{12})?:[a-zA-Z0-9-_./]+(?::[a-zA-Z0-9-_./]+)*" * ], * [ * "awstoken", * "(?:IQoJb3JpZ2luX[A-Za-z0-9+/]{10,20})[A-Za-z0-9+/]{800,1100}" * ] * ] * @example [["ipport", "(?:\d{1,3}\.){3}\d{1,3}(?::\d{1,5})?"],["timestamp", "(?:(?:\d{4}-\d{2}-\d{2}(?:T|\s)\d{2}:\d{2}:\d{2}(?:[.,]\d{1,12})?(?:Z|(?:[\+\-]\d{2}:?\d{2})|\sUTC)?)|(?:\d{1,4}/\d{1,2}/\d{1,4}(,?\s\d{1,2}:\d{2}:\d{1,2}(?:[.,]\d{1,12})?(?:\s?(?:[AP]M))?)?)|(?:\d{1,2}:\d{2}:\d{1,2}(?:[.,]\d{1,12})?(?:\s?(?:[AP]M))?)|(?:\d{2}/[A-Za-z]{3}/\d{4}(?:[:\s]\d{2}:\d{2}:\d{2}(?:\s\+[0-9]{4})?)?))"],["uuid", "(?:^|(?(?:(?:\d{1,100})?(?:\.\d{1,100})(?:[eE][\-\+]?\d{1,100}))|(?:(?:\d{1,100})?(?:\.\d{1,100}))|(?:\d{1,100}))))(?:(?!\w)|$)"],["awsarn", "arn:aws(?:-[a-z]+-[a-z]+)?:[a-zA-Z0-9-]+:(?:[a-z0-9-]+:)?(?:[0-9]{12})?:[a-zA-Z0-9-_./]+(?::[a-zA-Z0-9-_./]+)*"],["awstoken", "(?:IQoJb3JpZ2luX[A-Za-z0-9+/]{10,20})[A-Za-z0-9+/]{800,1100}"]] */ masks: string[][]; /** @example operation_name */ name: string; /** * Partition by attribute paths (array format) * @description Attribute paths as arrays of keys. Use for unambiguous nested vs flat attributes. Example: [["user", "id"]] for nested user.id, [["user.id"]] for flat attribute named 'user.id' * @default [] * @example [ * [ * "user", * "id" * ], * [ * "request.url" * ] * ] */ partitionByAttributePaths?: string[][]; /** @default [] */ partitionByAttributes?: string[]; /** @default [] */ partitionByTags?: string[]; /** * Similarity threshold * Format: double * @description Controls how close a set of tokens are to a pattern before it is considered a match. Calculated as the percent of matching tokens between a pattern and a message. * @default 70 * @example 70 */ similarityThreshold?: number; /** * @description Selects message text, attributes, both, or message text with an attributes fallback. * @default MESSAGE_ONLY * @enum {string} */ tokenizationInput?: LogReducerTokenizationInput; /** * @description Matches log patterns using an iterative feedback loop. Events with known patterns skip the global reducer for improved efficiency. (enum property replaced by openapi-typescript) * @enum {string} */ type: PatternMatcherType; }; /** @description Configuration for a pattern rule. */ PatternRuleConfig: { enabled?: boolean; /** Format: int32 */ order?: number; }; /** @description Commitment summary for Monthly + PAYG plans. */ PaygSummary: { /** @description Invoice total for this reporting period. */ chargedThisPeriod?: number; /** * @description discriminator enum property added by openapi-typescript * @enum {string} */ type: PaygSummaryType; }; PendingApproval: { command?: string; permissionId?: string; }; /** @description One reporting period — dropdown entry plus bounds for display. */ PeriodEntry: { /** @description True if this entry's period contains today. */ current?: boolean; /** * Format: date * @description Inclusive period end date — the last day in the period. */ endDate: string; /** @description Canonical period identifier used in the URL — "YYYY-MM-DD" (the period's start date) for both monthly and annual plans. */ id: string; /** * Format: date * @description Inclusive period start date. */ startDate: string; }; PermissionReplyRequest: { reply: string; }; PhraseNode: { /** * @description The terms in a phrase to match * @default [] * @example [ * "grepr-service-1", * "grepr-service-2" * ] */ terms: string[]; /** * @description A node that represents a phrase match in a parsed query. (enum property replaced by openapi-typescript) * @enum {string} */ type: PhraseNodeType; }; /** @description The filters an agent picks up Ready issues by; null means any. */ PickupFilters: { /** @description Any of these values for each entity key. */ entities?: { [key: string]: string[]; }; /** @description Every one of these labels. */ labels?: string[]; /** @description This priority or more urgent. */ priority?: string; /** @description Any of these teams. */ teamIds?: string[]; }; PipelineChangeRequest: { /** @description Whether to apply the change directly (true) or record it as a suggestion for a human to review (false). This expresses intent only: the server enforces the proposing agent's approval mode, so a suggest-only agent's change is always recorded as a suggestion no matter what is passed here. */ autoApply?: boolean; /** @description One or two sentences a human reviewer reads first: what the change does and why. Required when the change is recorded as a suggestion. */ changeDescription?: string; /** @description A caller-chosen idempotency key for this change, unique within the investigation. Resending the same changeId records one suggestion rather than a duplicate, so a retried call is safe. Required when the change is recorded as a suggestion. */ changeId?: string; /** @description The investigation proposing the change, identifying the agent whose approval mode governs the request. Server-supplied on the MCP transport, where an agent sandbox's provenance is bound to the connection: anything sent here is ignored and replaced. Without provenance the change is applied under the caller's own permission. */ investigationId?: string; /** * @description Sample log events the changed operations are verified against before anything is applied. Required when the change adds or edits a Grok rule, so the new rule can be run against a real log. * @default [] */ samples?: components["schemas"]["LogEvent"][]; templateInputsPatch: components["schemas"]["JsonNode"]; }; PipelineChangeResult: { /** * Format: int64 * @description The new job version the change was applied as. Applying restarts the pipeline from a savepoint, so the new version reaches its desired state asynchronously. */ appliedVersion?: number; /** * @description Verification findings that blocked the change. When present the pipeline is untouched: fix the findings and submit again. * @default [] */ findings?: components["schemas"]["ChangeFinding"][]; /** @description The agent suggestion the change was recorded as. The pipeline is NOT updated and will not restart, so there is nothing to wait for and the change must not be resubmitted; a human reviews and applies it from the pipeline page. */ suggestionId?: string; }; PipelineRef: { /** * @description Pipeline id * @example pipe-prod-1 */ id: string; /** * @description Pipeline display name * @example prod */ name: string; }; /** @description Current operational status and health of the pipeline */ PipelineStatus: { error?: components["schemas"]["ErrorDetails"]; /** @enum {string} */ health?: PipelineStatusHealth; isRolledBack?: boolean; message?: string; }; Plan: { /** Format: date-time */ endDate: string; planChangeRequest: components["schemas"]["PlanChangeRequest"]; /** Format: date-time */ startDate: string; /** @enum {string} */ type: PlanType; }; PlanChangeRequest: { /** Format: date-time */ date: string; /** @enum {string} */ type: PlanType; }; /** @description Posts a comment on an issue. Comments are allowed on closed issues too, so a person can leave guidance on an issue they closed as `IGNORED`. */ PostIssueCommentRequest: { /** @description The markdown body. */ body: string; /** @description Makes it guidance, advice every later investigation on the issue's entities weighs; people only. */ guidance?: boolean; /** @description The locked field the comment proposes changing, named as in a `FIELD_LOCKED` error: a field such as `priority`, or `label: