diff --git a/oas_docs/bundle.json b/oas_docs/bundle.json deleted file mode 100644 index 5011aa26bc04a..0000000000000 --- a/oas_docs/bundle.json +++ /dev/null @@ -1,104994 +0,0 @@ -{ - "components": { - "schemas": { - "core_status_redactedResponse": { - "additionalProperties": false, - "description": "A minimal representation of Kibana's operational status.", - "properties": { - "status": { - "additionalProperties": false, - "properties": { - "overall": { - "additionalProperties": false, - "properties": { - "level": { - "description": "Service status levels as human and machine readable values.", - "enum": [ - "available", - "degraded", - "unavailable", - "critical" - ], - "type": "string" - } - }, - "required": [ - "level" - ], - "type": "object" - } - }, - "required": [ - "overall" - ], - "type": "object" - } - }, - "required": [ - "status" - ], - "type": "object" - }, - "core_status_response": { - "additionalProperties": false, - "description": "Kibana's operational status as well as a detailed breakdown of plugin statuses indication of various loads (like event loop utilization and network traffic) at time of request.", - "properties": { - "metrics": { - "additionalProperties": false, - "description": "Metric groups collected by Kibana.", - "properties": { - "collection_interval_in_millis": { - "description": "The interval at which metrics should be collected.", - "type": "number" - }, - "elasticsearch_client": { - "additionalProperties": false, - "description": "Current network metrics of Kibana's Elasticsearch client.", - "properties": { - "totalActiveSockets": { - "description": "Count of network sockets currently in use.", - "type": "number" - }, - "totalIdleSockets": { - "description": "Count of network sockets currently idle.", - "type": "number" - }, - "totalQueuedRequests": { - "description": "Count of requests not yet assigned to sockets.", - "type": "number" - } - }, - "required": [ - "totalActiveSockets", - "totalIdleSockets", - "totalQueuedRequests" - ], - "type": "object" - }, - "last_updated": { - "description": "The time metrics were collected.", - "type": "string" - } - }, - "required": [ - "elasticsearch_client", - "last_updated", - "collection_interval_in_millis" - ], - "type": "object" - }, - "name": { - "description": "Kibana instance name.", - "type": "string" - }, - "status": { - "additionalProperties": false, - "properties": { - "core": { - "additionalProperties": false, - "description": "Statuses of core Kibana services.", - "properties": { - "elasticsearch": { - "additionalProperties": false, - "properties": { - "detail": { - "description": "Human readable detail of the service status.", - "type": "string" - }, - "documentationUrl": { - "description": "A URL to further documentation regarding this service.", - "type": "string" - }, - "level": { - "description": "Service status levels as human and machine readable values.", - "enum": [ - "available", - "degraded", - "unavailable", - "critical" - ], - "type": "string" - }, - "meta": { - "additionalProperties": {}, - "description": "An unstructured set of extra metadata about this service.", - "type": "object" - }, - "summary": { - "description": "A human readable summary of the service status.", - "type": "string" - } - }, - "required": [ - "level", - "summary", - "meta" - ], - "type": "object" - }, - "http": { - "additionalProperties": false, - "properties": { - "detail": { - "description": "Human readable detail of the service status.", - "type": "string" - }, - "documentationUrl": { - "description": "A URL to further documentation regarding this service.", - "type": "string" - }, - "level": { - "description": "Service status levels as human and machine readable values.", - "enum": [ - "available", - "degraded", - "unavailable", - "critical" - ], - "type": "string" - }, - "meta": { - "additionalProperties": {}, - "description": "An unstructured set of extra metadata about this service.", - "type": "object" - }, - "summary": { - "description": "A human readable summary of the service status.", - "type": "string" - } - }, - "required": [ - "level", - "summary", - "meta" - ], - "type": "object" - }, - "savedObjects": { - "additionalProperties": false, - "properties": { - "detail": { - "description": "Human readable detail of the service status.", - "type": "string" - }, - "documentationUrl": { - "description": "A URL to further documentation regarding this service.", - "type": "string" - }, - "level": { - "description": "Service status levels as human and machine readable values.", - "enum": [ - "available", - "degraded", - "unavailable", - "critical" - ], - "type": "string" - }, - "meta": { - "additionalProperties": {}, - "description": "An unstructured set of extra metadata about this service.", - "type": "object" - }, - "summary": { - "description": "A human readable summary of the service status.", - "type": "string" - } - }, - "required": [ - "level", - "summary", - "meta" - ], - "type": "object" - } - }, - "required": [ - "elasticsearch", - "savedObjects" - ], - "type": "object" - }, - "overall": { - "additionalProperties": false, - "properties": { - "detail": { - "description": "Human readable detail of the service status.", - "type": "string" - }, - "documentationUrl": { - "description": "A URL to further documentation regarding this service.", - "type": "string" - }, - "level": { - "description": "Service status levels as human and machine readable values.", - "enum": [ - "available", - "degraded", - "unavailable", - "critical" - ], - "type": "string" - }, - "meta": { - "additionalProperties": {}, - "description": "An unstructured set of extra metadata about this service.", - "type": "object" - }, - "summary": { - "description": "A human readable summary of the service status.", - "type": "string" - } - }, - "required": [ - "level", - "summary", - "meta" - ], - "type": "object" - }, - "plugins": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "detail": { - "description": "Human readable detail of the service status.", - "type": "string" - }, - "documentationUrl": { - "description": "A URL to further documentation regarding this service.", - "type": "string" - }, - "level": { - "description": "Service status levels as human and machine readable values.", - "enum": [ - "available", - "degraded", - "unavailable", - "critical" - ], - "type": "string" - }, - "meta": { - "additionalProperties": {}, - "description": "An unstructured set of extra metadata about this service.", - "type": "object" - }, - "summary": { - "description": "A human readable summary of the service status.", - "type": "string" - } - }, - "required": [ - "level", - "summary", - "meta" - ], - "type": "object" - }, - "description": "A dynamic mapping of plugin ID to plugin status.", - "type": "object" - } - }, - "required": [ - "overall", - "core", - "plugins" - ], - "type": "object" - }, - "uuid": { - "description": "Unique, generated Kibana instance UUID. This UUID should persist even if the Kibana process restarts.", - "type": "string" - }, - "version": { - "additionalProperties": false, - "properties": { - "build_date": { - "description": "The date and time of this build.", - "type": "string" - }, - "build_flavor": { - "description": "The build flavour determines configuration and behavior of Kibana. On premise users will almost always run the \"traditional\" flavour, while other flavours are reserved for Elastic-specific use cases.", - "enum": [ - "serverless", - "traditional" - ], - "type": "string" - }, - "build_hash": { - "description": "A unique hash value representing the git commit of this Kibana build.", - "type": "string" - }, - "build_number": { - "description": "A monotonically increasing number, each subsequent build will have a higher number.", - "type": "number" - }, - "build_snapshot": { - "description": "Whether this build is a snapshot build.", - "type": "boolean" - }, - "number": { - "description": "A semantic version number.", - "type": "string" - } - }, - "required": [ - "number", - "build_hash", - "build_number", - "build_snapshot", - "build_flavor", - "build_date" - ], - "type": "object" - } - }, - "required": [ - "name", - "uuid", - "version", - "status", - "metrics" - ], - "type": "object" - } - }, - "securitySchemes": { - "apiKeyAuth": { - "in": "header", - "name": "Authorization", - "type": "apiKey" - }, - "basicAuth": { - "scheme": "basic", - "type": "http" - } - } - }, - "info": { - "title": "Kibana HTTP APIs", - "version": "0.0.0" - }, - "openapi": "3.0.0", - "paths": { - "/api/actions/connector/{id}": { - "delete": { - "description": "WARNING: When you delete a connector, it cannot be recovered.", - "operationId": "delete-actions-connector-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "An identifier for the connector.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "Indicates a successful call." - }, - "403": { - "description": "Indicates that this call is forbidden." - } - }, - "summary": "Delete a connector", - "tags": [ - "connectors" - ] - }, - "get": { - "operationId": "get-actions-connector-id", - "parameters": [ - { - "description": "An identifier for the connector.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "config": { - "additionalProperties": {}, - "type": "object" - }, - "connector_type_id": { - "description": "The connector type identifier.", - "type": "string" - }, - "id": { - "description": "The identifier for the connector.", - "type": "string" - }, - "is_connector_type_deprecated": { - "description": "Indicates whether the connector type is deprecated.", - "type": "boolean" - }, - "is_deprecated": { - "description": "Indicates whether the connector is deprecated.", - "type": "boolean" - }, - "is_missing_secrets": { - "description": "Indicates whether the connector is missing secrets.", - "type": "boolean" - }, - "is_preconfigured": { - "description": "Indicates whether the connector is preconfigured. If true, the `config` and `is_missing_secrets` properties are omitted from the response. ", - "type": "boolean" - }, - "is_system_action": { - "description": "Indicates whether the connector is used for system actions.", - "type": "boolean" - }, - "name": { - "description": " The name of the connector.", - "type": "string" - } - }, - "required": [ - "id", - "name", - "connector_type_id", - "is_preconfigured", - "is_deprecated", - "is_system_action", - "is_connector_type_deprecated" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "403": { - "description": "Indicates that this call is forbidden." - } - }, - "summary": "Get connector information", - "tags": [ - "connectors" - ] - }, - "post": { - "operationId": "post-actions-connector-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "An identifier for the connector.", - "in": "path", - "name": "id", - "required": false, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "config": { - "additionalProperties": {}, - "default": {}, - "type": "object" - }, - "connector_type_id": { - "description": "The type of connector.", - "type": "string" - }, - "name": { - "description": "The display name for the connector.", - "type": "string" - }, - "secrets": { - "additionalProperties": {}, - "default": {}, - "type": "object" - } - }, - "required": [ - "name", - "connector_type_id" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "config": { - "additionalProperties": {}, - "type": "object" - }, - "connector_type_id": { - "description": "The connector type identifier.", - "type": "string" - }, - "id": { - "description": "The identifier for the connector.", - "type": "string" - }, - "is_connector_type_deprecated": { - "description": "Indicates whether the connector type is deprecated.", - "type": "boolean" - }, - "is_deprecated": { - "description": "Indicates whether the connector is deprecated.", - "type": "boolean" - }, - "is_missing_secrets": { - "description": "Indicates whether the connector is missing secrets.", - "type": "boolean" - }, - "is_preconfigured": { - "description": "Indicates whether the connector is preconfigured. If true, the `config` and `is_missing_secrets` properties are omitted from the response. ", - "type": "boolean" - }, - "is_system_action": { - "description": "Indicates whether the connector is used for system actions.", - "type": "boolean" - }, - "name": { - "description": " The name of the connector.", - "type": "string" - } - }, - "required": [ - "id", - "name", - "connector_type_id", - "is_preconfigured", - "is_deprecated", - "is_system_action", - "is_connector_type_deprecated" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "403": { - "description": "Indicates that this call is forbidden." - } - }, - "summary": "Create a connector", - "tags": [ - "connectors" - ] - }, - "put": { - "operationId": "put-actions-connector-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "An identifier for the connector.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "config": { - "additionalProperties": {}, - "default": {}, - "type": "object" - }, - "name": { - "description": "The display name for the connector.", - "type": "string" - }, - "secrets": { - "additionalProperties": {}, - "default": {}, - "type": "object" - } - }, - "required": [ - "name" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "config": { - "additionalProperties": {}, - "type": "object" - }, - "connector_type_id": { - "description": "The connector type identifier.", - "type": "string" - }, - "id": { - "description": "The identifier for the connector.", - "type": "string" - }, - "is_connector_type_deprecated": { - "description": "Indicates whether the connector type is deprecated.", - "type": "boolean" - }, - "is_deprecated": { - "description": "Indicates whether the connector is deprecated.", - "type": "boolean" - }, - "is_missing_secrets": { - "description": "Indicates whether the connector is missing secrets.", - "type": "boolean" - }, - "is_preconfigured": { - "description": "Indicates whether the connector is preconfigured. If true, the `config` and `is_missing_secrets` properties are omitted from the response. ", - "type": "boolean" - }, - "is_system_action": { - "description": "Indicates whether the connector is used for system actions.", - "type": "boolean" - }, - "name": { - "description": " The name of the connector.", - "type": "string" - } - }, - "required": [ - "id", - "name", - "connector_type_id", - "is_preconfigured", - "is_deprecated", - "is_system_action", - "is_connector_type_deprecated" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "403": { - "description": "Indicates that this call is forbidden." - } - }, - "summary": "Update a connector", - "tags": [ - "connectors" - ] - } - }, - "/api/actions/connector/{id}/_execute": { - "post": { - "description": "You can use this API to test an action that involves interaction with Kibana services or integrations with third-party systems.", - "operationId": "post-actions-connector-id-execute", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "An identifier for the connector.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "params": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "params" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "config": { - "additionalProperties": {}, - "type": "object" - }, - "connector_type_id": { - "description": "The connector type identifier.", - "type": "string" - }, - "id": { - "description": "The identifier for the connector.", - "type": "string" - }, - "is_connector_type_deprecated": { - "description": "Indicates whether the connector type is deprecated.", - "type": "boolean" - }, - "is_deprecated": { - "description": "Indicates whether the connector is deprecated.", - "type": "boolean" - }, - "is_missing_secrets": { - "description": "Indicates whether the connector is missing secrets.", - "type": "boolean" - }, - "is_preconfigured": { - "description": "Indicates whether the connector is preconfigured. If true, the `config` and `is_missing_secrets` properties are omitted from the response. ", - "type": "boolean" - }, - "is_system_action": { - "description": "Indicates whether the connector is used for system actions.", - "type": "boolean" - }, - "name": { - "description": " The name of the connector.", - "type": "string" - } - }, - "required": [ - "id", - "name", - "connector_type_id", - "is_preconfigured", - "is_deprecated", - "is_system_action", - "is_connector_type_deprecated" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "403": { - "description": "Indicates that this call is forbidden." - } - }, - "summary": "Run a connector", - "tags": [ - "connectors" - ] - } - }, - "/api/actions/connector_types": { - "get": { - "description": "You do not need any Kibana feature privileges to run this API.", - "operationId": "get-actions-connector-types", - "parameters": [ - { - "description": "A filter to limit the retrieved connector types to those that support a specific feature (such as alerting or cases).", - "in": "query", - "name": "feature_id", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "items": { - "additionalProperties": false, - "properties": { - "allow_multiple_system_actions": { - "description": "Indicates whether multiple instances of the same system action connector can be used in a single rule.", - "type": "boolean" - }, - "enabled": { - "description": "Indicates whether the connector is enabled.", - "type": "boolean" - }, - "enabled_in_config": { - "description": "Indicates whether the connector is enabled in the Kibana configuration.", - "type": "boolean" - }, - "enabled_in_license": { - "description": "Indicates whether the connector is enabled through the license.", - "type": "boolean" - }, - "id": { - "description": "The identifier for the connector.", - "type": "string" - }, - "is_deprecated": { - "description": "Indicates whether the connector type is deprecated.", - "type": "boolean" - }, - "is_system_action_type": { - "description": "Indicates whether the action is a system action.", - "type": "boolean" - }, - "minimum_license_required": { - "description": "The minimum license required to enable the connector.", - "enum": [ - "basic", - "standard", - "gold", - "platinum", - "enterprise", - "trial" - ], - "type": "string" - }, - "name": { - "description": "The name of the connector type.", - "type": "string" - }, - "source": { - "description": "The source of the connector type definition.", - "enum": [ - "yml", - "spec", - "stack" - ], - "type": "string" - }, - "sub_feature": { - "description": "Indicates the sub-feature type the connector is grouped under.", - "enum": [ - "endpointSecurity" - ], - "type": "string" - }, - "supported_feature_ids": { - "description": "The list of supported features", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "id", - "name", - "enabled", - "enabled_in_config", - "enabled_in_license", - "minimum_license_required", - "supported_feature_ids", - "is_system_action_type", - "is_deprecated", - "source" - ], - "type": "object" - }, - "type": "array" - } - } - }, - "description": "Indicates a successful call." - }, - "403": { - "description": "Indicates that this call is forbidden." - } - }, - "summary": "Get connector types", - "tags": [ - "connectors" - ] - } - }, - "/api/actions/connectors": { - "get": { - "operationId": "get-actions-connectors", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "items": { - "additionalProperties": false, - "properties": { - "config": { - "additionalProperties": {}, - "type": "object" - }, - "connector_type_id": { - "description": "The connector type identifier.", - "type": "string" - }, - "id": { - "description": "The identifier for the connector.", - "type": "string" - }, - "is_connector_type_deprecated": { - "description": "Indicates whether the connector type is deprecated.", - "type": "boolean" - }, - "is_deprecated": { - "description": "Indicates whether the connector is deprecated.", - "type": "boolean" - }, - "is_missing_secrets": { - "description": "Indicates whether the connector is missing secrets.", - "type": "boolean" - }, - "is_preconfigured": { - "description": "Indicates whether the connector is preconfigured. If true, the `config` and `is_missing_secrets` properties are omitted from the response. ", - "type": "boolean" - }, - "is_system_action": { - "description": "Indicates whether the connector is used for system actions.", - "type": "boolean" - }, - "name": { - "description": " The name of the connector.", - "type": "string" - }, - "referenced_by_count": { - "description": "The number of saved objects that reference the connector. If is_preconfigured is true, this value is not calculated.", - "type": "number" - } - }, - "required": [ - "id", - "name", - "connector_type_id", - "is_preconfigured", - "is_deprecated", - "is_system_action", - "is_connector_type_deprecated", - "referenced_by_count" - ], - "type": "object" - }, - "type": "array" - } - } - }, - "description": "Indicates a successful call." - }, - "403": { - "description": "Indicates that this call is forbidden." - } - }, - "summary": "Get all connectors", - "tags": [ - "connectors" - ] - } - }, - "/api/agent_builder/a2a/{agentId}": { - "post": { - "description": "> warn\n> This endpoint is designed for A2A protocol clients and should not be used directly via REST APIs. Use an A2A SDK or A2A Inspector instead.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "post-agent-builder-a2a-agentid", - "parameters": [ - { - "description": "The unique identifier of the agent to send the A2A task to.", - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "a2aTaskRequestExample": { - "description": "WARNING: DO NOT USE THIS ENDPOINT VIA REST API. These examples are auto-generated and should not be run. Integrate with A2A using an A2A SDK or A2A Inspector instead.", - "value": { - "id": "task-123", - "jsonrpc": "2.0", - "method": "complete", - "params": { - "messages": [ - { - "content": "Hello from A2A protocol", - "role": "user" - } - ] - } - } - } - }, - "schema": {} - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "a2aTaskResponseExample": { - "description": "Example response from A2A Task Endpoint with results of task execution", - "value": { - "id": "task-123", - "jsonrpc": "2.0", - "result": { - "conversation_id": "conv-456", - "response": { - "message": "Hello! How can I help you today?" - }, - "type": "response" - } - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Send A2A task", - "tags": [ - "agent builder" - ], - "x-state": "Technical Preview; added in 9.2.0" - } - }, - "/api/agent_builder/a2a/{agentId}.json": { - "get": { - "description": "Get agent discovery metadata in JSON format. Use this endpoint to provide agent information for A2A protocol integration and discovery.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "get-agent-builder-a2a-agentid.json", - "parameters": [ - { - "description": "The unique identifier of the agent to get A2A metadata for.", - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "a2aAgentCardResponseExample": { - "description": "Example response card of Elastic AI Agent", - "value": { - "capabilities": { - "pushNotifications": false, - "stateTransitionHistory": false, - "streaming": false - }, - "defaultInputModes": [ - "text/plain" - ], - "defaultOutputModes": [ - "text/plain" - ], - "description": "Elastic AI Agent", - "name": "Elastic AI Agent", - "protocolVersion": "0.3.0", - "provider": { - "organization": "Elastic", - "url": "https://elastic.co" - }, - "securitySchemes": { - "authorization": { - "description": "Authentication token", - "in": "header", - "name": "Authorization", - "type": "apiKey" - } - }, - "skills": [ - { - "description": "A powerful tool for searching and analyzing data within your Elasticsearch cluster.", - "examples": [], - "id": "platform.core.search", - "inputModes": [ - "text/plain", - "application/json" - ], - "name": "platform.core.search", - "outputModes": [ - "text/plain", - "application/json" - ], - "tags": [ - "tool" - ] - } - ], - "supportsAuthenticatedExtendedCard": false, - "url": "http://localhost:5601/api/agent_builder/a2a/elastic-ai-agent", - "version": "0.1.0" - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Get A2A agent card", - "tags": [ - "agent builder" - ], - "x-state": "Technical Preview; added in 9.2.0" - } - }, - "/api/agent_builder/agents": { - "get": { - "description": "List all available agents. Use this endpoint to retrieve complete agent information including their current configuration and assigned tools.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "get-agent-builder-agents", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "listAgentsResponseExample": { - "description": "Example response that returns one built-in Elastic agent and one created by the user", - "value": { - "results": [ - { - "configuration": { - "tools": [ - { - "tool_ids": [ - "platform.core.search", - "platform.core.list_indices", - "platform.core.get_index_mapping", - "platform.core.get_document_by_id" - ] - } - ] - }, - "description": "Elastic AI Agent", - "id": "elastic-ai-agent", - "name": "Elastic AI Agent", - "type": "chat" - }, - { - "avatar_color": "#BFDBFF", - "avatar_symbol": "SI", - "configuration": { - "instructions": "You are a custom agent that wants to help searching data using all indices starting with prefix \"content-\".", - "tools": [ - { - "tool_ids": [ - "platform.core.search", - "platform.core.list_indices", - "platform.core.get_index_mapping", - "platform.core.get_document_by_id" - ] - } - ] - }, - "description": "Hi! I can help you search the data within the indices starting with \"content-\" prefix.", - "id": "created-agent-id", - "labels": [ - "custom-indices", - "department-search" - ], - "name": "Search Index Helper", - "type": "chat" - } - ] - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "List agents", - "tags": [ - "agent builder" - ], - "x-state": "Added in 9.2.0" - }, - "post": { - "description": "Create a new agent. Use this endpoint to define the agent's behavior, appearance, and capabilities through comprehensive configuration options.

[Required authorization] Route required privileges: manage_agent_builder.", - "operationId": "post-agent-builder-agents", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "createAgentRequestExample": { - "description": "Example request for creating a custom agent with special prompt and tools", - "value": { - "avatar_color": "#BFDBFF", - "avatar_symbol": "SI", - "configuration": { - "instructions": "You are a custom agent that wants to help searching data using all indices starting with prefix \"content-\".", - "tools": [ - { - "tool_ids": [ - "platform.core.search", - "platform.core.list_indices", - "platform.core.get_index_mapping", - "platform.core.get_document_by_id" - ] - } - ] - }, - "description": "Hi! I can help you search the data within the indices starting with \"content-\" prefix.", - "id": "created-agent-id", - "labels": [ - "custom-indices", - "department-search" - ], - "name": "Search Index Helper" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "avatar_color": { - "description": "Optional hex color code for the agent avatar.", - "type": "string" - }, - "avatar_symbol": { - "description": "Optional symbol/initials for the agent avatar.", - "type": "string" - }, - "configuration": { - "additionalProperties": false, - "description": "Configuration settings for the agent.", - "properties": { - "instructions": { - "description": "Optional system instructions that define the agent behavior.", - "type": "string" - }, - "tools": { - "items": { - "additionalProperties": false, - "description": "Tool selection configuration for the agent.", - "properties": { - "tool_ids": { - "description": "Array of tool IDs that the agent can use.", - "items": { - "description": "Tool ID to be available to the agent.", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "tool_ids" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "tools" - ], - "type": "object" - }, - "description": { - "description": "Description of what the agent does.", - "type": "string" - }, - "id": { - "description": "Unique identifier for the agent.", - "type": "string" - }, - "labels": { - "description": "Optional labels for categorizing and organizing agents.", - "items": { - "description": "Label for categorizing the agent.", - "type": "string" - }, - "type": "array" - }, - "name": { - "description": "Display name for the agent.", - "type": "string" - } - }, - "required": [ - "id", - "name", - "description", - "configuration" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "createAgentResponseExample": { - "description": "Example response returning the definition of an agent created as a result of the request", - "value": { - "avatar_color": "#BFDBFF", - "avatar_symbol": "SI", - "configuration": { - "instructions": "You are a custom agent that wants to help searching data using all indices starting with prefix \"content-\".", - "tools": [ - { - "tool_ids": [ - "platform.core.search", - "platform.core.list_indices", - "platform.core.get_index_mapping", - "platform.core.get_document_by_id" - ] - } - ] - }, - "description": "Hi! I can help you search the data within the indices starting with \"content-\" prefix.", - "id": "created-agent-id", - "labels": [ - "custom-indices", - "department-search" - ], - "name": "Search Index Helper", - "type": "chat" - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Create an agent", - "tags": [ - "agent builder" - ], - "x-state": "Added in 9.2.0" - } - }, - "/api/agent_builder/agents/{id}": { - "delete": { - "description": "Delete an agent by ID. This action cannot be undone.

[Required authorization] Route required privileges: manage_agent_builder.", - "operationId": "delete-agent-builder-agents-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The unique identifier of the agent to delete.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "deleteAgentResponseExample": { - "description": "Example response showing that deletion of the agent has been successful", - "value": { - "success": true - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Delete an agent", - "tags": [ - "agent builder" - ], - "x-state": "Added in 9.2.0" - }, - "get": { - "description": "Get a specific agent by ID. Use this endpoint to retrieve the complete agent definition including all configuration details and tool assignments.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "get-agent-builder-agents-id", - "parameters": [ - { - "description": "The unique identifier of the agent to retrieve.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "getAgentByIdResponseExample": { - "description": "Example response that an agent created by the user that will query elasticsearch indices starting with 'content-' prefix to answer the questions.", - "value": { - "avatar_color": "#BFDBFF", - "avatar_symbol": "SI", - "configuration": { - "instructions": "You are a custom agent that wants to help searching data using all indices starting with prefix \"content-\".", - "tools": [ - { - "tool_ids": [ - "platform.core.search", - "platform.core.list_indices", - "platform.core.get_index_mapping", - "platform.core.get_document_by_id" - ] - } - ] - }, - "description": "Hi! I can help you search the data within the indices starting with \"content-\" prefix.", - "id": "created-agent-id", - "labels": [ - "custom-indices", - "department-search" - ], - "name": "Search Index Helper", - "type": "chat" - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Get an agent by ID", - "tags": [ - "agent builder" - ], - "x-state": "Added in 9.2.0" - }, - "put": { - "description": "Update an existing agent configuration. Use this endpoint to modify any aspect of the agent's behavior, appearance, or capabilities.

[Required authorization] Route required privileges: manage_agent_builder.", - "operationId": "put-agent-builder-agents-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The unique identifier of the agent to update.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "createAgentRequestExample": { - "description": "Example request for updating custom agent", - "value": { - "avatar_color": "#BFDBFF", - "avatar_symbol": "SI", - "configuration": { - "instructions": "You are a custom agent that wants to help searching data using all indices starting with prefix \"content-\".", - "tools": [ - { - "tool_ids": [ - "platform.core.search", - "platform.core.list_indices", - "platform.core.get_index_mapping", - "platform.core.get_document_by_id" - ] - } - ] - }, - "description": "Updated description - Search for anything in \"content-*\" indices!", - "id": "created-agent-id", - "labels": [ - "custom-indices", - "department-search", - "elastic-employees" - ], - "name": "Search Index Helper" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "avatar_color": { - "description": "Updated hex color code for the agent avatar.", - "type": "string" - }, - "avatar_symbol": { - "description": "Updated symbol/initials for the agent avatar.", - "type": "string" - }, - "configuration": { - "additionalProperties": false, - "description": "Updated configuration settings for the agent.", - "properties": { - "instructions": { - "description": "Updated system instructions that define the agent behavior.", - "type": "string" - }, - "tools": { - "items": { - "additionalProperties": false, - "description": "Tool selection configuration for the agent.", - "properties": { - "tool_ids": { - "description": "Array of tool IDs that the agent can use.", - "items": { - "description": "Tool ID to be available to the agent.", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "tool_ids" - ], - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "description": { - "description": "Updated description of what the agent does.", - "type": "string" - }, - "labels": { - "description": "Updated labels for categorizing and organizing agents.", - "items": { - "description": "Updated label for categorizing the agent.", - "type": "string" - }, - "type": "array" - }, - "name": { - "description": "Updated display name for the agent.", - "type": "string" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "updateAgentResponseExample": { - "description": "Example response returning the agent definition with the changes applied from the request", - "value": { - "avatar_color": "#BFDBFF", - "avatar_symbol": "SI", - "configuration": { - "instructions": "You are a custom agent that wants to help searching data using all indices starting with prefix \"content-\".", - "tools": [ - { - "tool_ids": [ - "platform.core.search", - "platform.core.list_indices", - "platform.core.get_index_mapping", - "platform.core.get_document_by_id" - ] - } - ] - }, - "description": "Updated description - Search for anything in \"content-*\" indices!", - "id": "created-agent-id", - "labels": [ - "custom-indices", - "department-search", - "elastic-employees" - ], - "name": "Search Index Helper", - "type": "chat" - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Update an agent", - "tags": [ - "agent builder" - ], - "x-state": "Added in 9.2.0" - } - }, - "/api/agent_builder/conversations": { - "get": { - "description": "List all conversations for a user. Use the optional agent ID to filter conversations by a specific agent.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "get-agent-builder-conversations", - "parameters": [ - { - "description": "Optional agent ID to filter conversations by a specific agent.", - "in": "query", - "name": "agent_id", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "listConversationsResponseExample": { - "description": "Example response containing the list of conversations with all agents", - "value": { - "results": [ - { - "agent_id": "elastic-ai-agent", - "created_at": "2025-09-19T17:45:39.554Z", - "id": "bcc176c5-38f6-40be-be0c-898e34fa1480", - "title": "General Greeting", - "updated_at": "2025-09-19T17:45:39.554Z", - "user": { - "username": "elastic" - } - } - ] - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "List conversations", - "tags": [ - "agent builder" - ], - "x-state": "Added in 9.2.0" - } - }, - "/api/agent_builder/conversations/{conversation_id}": { - "delete": { - "description": "Delete a conversation by ID. This action cannot be undone.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "delete-agent-builder-conversations-conversation-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The unique identifier of the conversation to delete.", - "in": "path", - "name": "conversation_id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "deleteConversationResponseExample": { - "description": "Example response showing that deletion of conversation has been successful", - "value": { - "success": true - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Delete conversation by ID", - "tags": [ - "agent builder" - ], - "x-state": "Added in 9.2.0" - }, - "get": { - "description": "Get a specific conversation by ID. Use this endpoint to retrieve the complete conversation history including all messages and metadata.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "get-agent-builder-conversations-conversation-id", - "parameters": [ - { - "description": "The unique identifier of the conversation to retrieve.", - "in": "path", - "name": "conversation_id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "getConversationByIdResponseExample": { - "description": "Example response containing the contents of a convesation with the chat agent", - "value": { - "agent_id": "elastic-ai-agent", - "created_at": "2025-09-19T17:45:39.554Z", - "id": "bcc176c5-38f6-40be-be0c-898e34fa1480", - "rounds": [ - { - "id": "170ec3b2-0f5a-4538-8b60-549572386d2a", - "input": { - "message": "Hello, how are you?" - }, - "response": { - "message": "Since this is a general greeting that doesn't require any organizational or product-specific information, I can respond without using tools.\n\nHello! I'm doing well, thank you for asking. I'm here to help you with any questions you may have. How can I assist you today?" - }, - "steps": [] - } - ], - "title": "General Greeting", - "updated_at": "2025-09-19T17:45:39.554Z", - "user": { - "username": "elastic" - } - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Get conversation by ID", - "tags": [ - "agent builder" - ], - "x-state": "Added in 9.2.0" - } - }, - "/api/agent_builder/conversations/{conversation_id}/attachments": { - "get": { - "description": "List all attachments for a conversation. Use the optional include_deleted query parameter to include soft-deleted attachments.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "get-agent-builder-conversations-conversation-id-attachments", - "parameters": [ - { - "description": "The unique identifier of the conversation.", - "in": "path", - "name": "conversation_id", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "Whether to include deleted attachments in the list.", - "in": "query", - "name": "include_deleted", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "listAttachmentsResponseExample": { - "description": "Example response containing active attachments for a conversation", - "value": { - "results": [ - { - "active": true, - "current_version": 2, - "description": "My text file", - "id": "attachment-1", - "type": "text", - "versions": [ - { - "content_hash": "abc123", - "created_at": "2025-01-01T10:00:00.000Z", - "data": "Initial content", - "estimated_tokens": 3, - "version": 1 - }, - { - "content_hash": "def456", - "created_at": "2025-01-01T11:00:00.000Z", - "data": "Updated content", - "estimated_tokens": 3, - "version": 2 - } - ] - }, - { - "active": true, - "current_version": 1, - "description": "Configuration data", - "id": "attachment-2", - "type": "json", - "versions": [ - { - "content_hash": "ghi789", - "created_at": "2025-01-01T12:00:00.000Z", - "data": { - "key": "value", - "nested": { - "field": 123 - } - }, - "estimated_tokens": 15, - "version": 1 - } - ] - } - ], - "total_token_estimate": 21 - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "List conversation attachments", - "tags": [ - "agent builder" - ], - "x-state": "Technical Preview; added in 9.2.0" - }, - "post": { - "description": "Create a new attachment for a conversation with version tracking.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "post-agent-builder-conversations-conversation-id-attachments", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The unique identifier of the conversation.", - "in": "path", - "name": "conversation_id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "createHiddenAttachmentExample": { - "description": "Example request for creating a hidden attachment", - "value": { - "data": "Internal system data", - "description": "System context", - "hidden": true, - "type": "text" - } - }, - "createJsonAttachmentExample": { - "description": "Example request for creating a JSON attachment with custom ID", - "value": { - "data": { - "configuration": { - "enabled": true, - "threshold": 50 - }, - "metadata": { - "source": "user_input" - } - }, - "description": "Application settings", - "id": "custom-attachment-id", - "type": "json" - } - }, - "createTextAttachmentExample": { - "description": "Example request for creating a text attachment", - "value": { - "data": "This is the content of my text attachment", - "description": "Meeting notes", - "type": "text" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "data": {}, - "description": { - "description": "Human-readable description of the attachment.", - "type": "string" - }, - "hidden": { - "description": "Whether the attachment should be hidden from the user.", - "type": "boolean" - }, - "id": { - "description": "Optional custom ID for the attachment.", - "type": "string" - }, - "type": { - "description": "The type of the attachment (e.g., text, json, visualization_ref).", - "type": "string" - } - }, - "required": [ - "type", - "data" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "createAttachmentResponseExample": { - "description": "Example response returning the created attachment", - "value": { - "attachment": { - "active": true, - "current_version": 1, - "description": "Meeting notes", - "id": "att-abc123", - "type": "text", - "versions": [ - { - "content_hash": "sha256-xyz", - "created_at": "2025-01-06T10:00:00.000Z", - "data": "This is the content of my text attachment", - "estimated_tokens": 12, - "version": 1 - } - ] - } - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Create conversation attachment", - "tags": [ - "agent builder" - ], - "x-state": "Technical Preview; added in 9.2.0" - } - }, - "/api/agent_builder/conversations/{conversation_id}/attachments/{attachment_id}": { - "delete": { - "description": "Delete an attachment. By default performs a soft delete (can be restored). Use permanent=true to permanently remove unreferenced attachments.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "delete-agent-builder-conversations-conversation-id-attachments-attachment-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The unique identifier of the conversation.", - "in": "path", - "name": "conversation_id", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "The unique identifier of the attachment to delete.", - "in": "path", - "name": "attachment_id", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "If true, permanently removes the attachment (only for unreferenced attachments).", - "in": "query", - "name": "permanent", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "permanentDeleteAttachmentResponseExample": { - "description": "Example response for permanent delete (cannot be restored)", - "value": { - "permanent": true, - "success": true - } - }, - "softDeleteAttachmentResponseExample": { - "description": "Example response for soft delete (can be restored)", - "value": { - "permanent": false, - "success": true - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Delete conversation attachment", - "tags": [ - "agent builder" - ], - "x-state": "Technical Preview; added in 9.2.0" - }, - "patch": { - "description": "Rename an attachment without creating a new version.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "patch-agent-builder-conversations-conversation-id-attachments-attachment-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The unique identifier of the conversation.", - "in": "path", - "name": "conversation_id", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "The unique identifier of the attachment to rename.", - "in": "path", - "name": "attachment_id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "renameAttachmentExample": { - "description": "Example request for renaming an attachment", - "value": { - "description": "Updated attachment name" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "description": { - "description": "The new description/name for the attachment.", - "type": "string" - } - }, - "required": [ - "description" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "renameAttachmentResponseExample": { - "description": "Example response returning the renamed attachment (version unchanged)", - "value": { - "attachment": { - "active": true, - "current_version": 1, - "description": "Updated attachment name", - "id": "att-abc123", - "type": "text", - "versions": [ - { - "content_hash": "sha256-xyz", - "created_at": "2025-01-06T10:00:00.000Z", - "data": "Content remains the same", - "estimated_tokens": 10, - "version": 1 - } - ] - }, - "success": true - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Rename attachment", - "tags": [ - "agent builder" - ], - "x-state": "Technical Preview; added in 9.2.0" - }, - "put": { - "description": "Update an attachment content. Creates a new version if content changed.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "put-agent-builder-conversations-conversation-id-attachments-attachment-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The unique identifier of the conversation.", - "in": "path", - "name": "conversation_id", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "The unique identifier of the attachment to update.", - "in": "path", - "name": "attachment_id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "updateAttachmentContentExample": { - "description": "Example request for updating attachment content", - "value": { - "data": "This is the updated content" - } - }, - "updateAttachmentWithDescriptionExample": { - "description": "Example request for updating both content and description", - "value": { - "data": "New content version", - "description": "Updated meeting notes - v2" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "data": {}, - "description": { - "description": "Optional new description for the attachment.", - "type": "string" - } - }, - "required": [ - "data" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "updateAttachmentResponseExample": { - "description": "Example response returning the updated attachment with new version", - "value": { - "attachment": { - "active": true, - "current_version": 2, - "description": "Meeting notes", - "id": "att-abc123", - "type": "text", - "versions": [ - { - "content_hash": "sha256-abc", - "created_at": "2025-01-06T10:00:00.000Z", - "data": "Original content", - "estimated_tokens": 10, - "version": 1 - }, - { - "content_hash": "sha256-def", - "created_at": "2025-01-06T11:00:00.000Z", - "data": "This is the updated content", - "estimated_tokens": 12, - "version": 2 - } - ] - }, - "new_version": 2 - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Update conversation attachment", - "tags": [ - "agent builder" - ], - "x-state": "Technical Preview; added in 9.2.0" - } - }, - "/api/agent_builder/conversations/{conversation_id}/attachments/{attachment_id}/_restore": { - "post": { - "description": "Restore a soft-deleted attachment.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "post-agent-builder-conversations-conversation-id-attachments-attachment-id-restore", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The unique identifier of the conversation.", - "in": "path", - "name": "conversation_id", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "The unique identifier of the attachment to restore.", - "in": "path", - "name": "attachment_id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "restoreAttachmentResponseExample": { - "description": "Example response returning the restored attachment", - "value": { - "attachment": { - "active": true, - "current_version": 1, - "description": "Restored attachment", - "id": "att-abc123", - "type": "text", - "versions": [ - { - "content_hash": "sha256-xyz", - "created_at": "2025-01-06T10:00:00.000Z", - "data": "Restored content", - "estimated_tokens": 10, - "version": 1 - } - ] - }, - "success": true - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Restore deleted attachment", - "tags": [ - "agent builder" - ], - "x-state": "Technical Preview; added in 9.2.0" - } - }, - "/api/agent_builder/converse": { - "post": { - "description": "Send a message to an agent and receive a complete response. This synchronous endpoint waits for the agent to fully process your request before returning the final result. Use this for simple chat interactions where you need the complete response.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "post-agent-builder-converse", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "converseRequestExample": { - "description": "Example request to send a message to the agent as a part of the conversation", - "value": { - "agent_id": "elastic-ai-agent", - "connector_id": "my-connector-id", - "input": "What is Elasticsearch?" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "agent_id": { - "default": "elastic-ai-agent", - "description": "The ID of the agent to chat with. Defaults to the default Elastic AI agent.", - "type": "string" - }, - "attachments": { - "description": "**Technical Preview; added in 9.3.0.** Optional attachments to send with the message.", - "items": { - "additionalProperties": false, - "properties": { - "data": { - "additionalProperties": {}, - "description": "Payload of the attachment.", - "type": "object" - }, - "hidden": { - "description": "When true, the attachment will not be displayed in the UI.", - "type": "boolean" - }, - "id": { - "description": "Optional id for the attachment.", - "type": "string" - }, - "type": { - "description": "Type of the attachment.", - "type": "string" - } - }, - "required": [ - "type", - "data" - ], - "type": "object" - }, - "type": "array" - }, - "browser_api_tools": { - "description": "Optional browser API tools to be registered as LLM tools with browser.* namespace. These tools execute on the client side.", - "items": { - "additionalProperties": false, - "properties": { - "description": { - "description": "Description of what the browser API tool does.", - "type": "string" - }, - "id": { - "description": "Unique identifier for the browser API tool.", - "type": "string" - }, - "schema": {} - }, - "required": [ - "id", - "description", - "schema" - ], - "type": "object" - }, - "type": "array" - }, - "capabilities": { - "additionalProperties": false, - "description": "Controls agent capabilities during conversation. Currently supports visualization rendering for tabular tool results.", - "properties": { - "visualizations": { - "description": "When true, allows the agent to render tabular data from tool results as interactive visualizations using custom XML elements in responses.", - "type": "boolean" - } - }, - "type": "object" - }, - "configuration_overrides": { - "additionalProperties": false, - "description": "Runtime configuration overrides. These override the stored agent configuration for this execution only.", - "properties": { - "instructions": { - "description": "Custom instructions for the agent.", - "type": "string" - }, - "tools": { - "description": "Tool selection to enable for this execution.", - "items": { - "additionalProperties": false, - "properties": { - "tool_ids": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "tool_ids" - ], - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "connector_id": { - "description": "Optional connector ID for the agent to use for external integrations.", - "type": "string" - }, - "conversation_id": { - "description": "Optional existing conversation ID to continue a previous conversation.", - "type": "string" - }, - "input": { - "description": "The user input message to send to the agent.", - "type": "string" - }, - "prompts": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "allow": { - "type": "boolean" - } - }, - "required": [ - "allow" - ], - "type": "object" - }, - "description": "Can be used to respond to a confirmation prompt.", - "type": "object" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "converseResponseExample": { - "description": "Example response containing the chain of events representing a conversation with the agent", - "value": { - "conversation_id": "696ccd6d-4bff-4b26-a62e-522ccf2dcd16", - "response": { - "message": "Elasticsearch is a distributed, RESTful search and analytics engine capable of addressing a growing number of use cases. As the heart of the Elastic Stack, it centrally stores your data for lightning fast search, fine‑tuned relevancy, and powerful analytics that scale with ease." - }, - "steps": [ - { - "reasoning": "Searching for official documentation or content that explains what Elasticsearch is", - "type": "reasoning" - }, - { - "params": { - "query": "what is elasticsearch definition overview introduction" - }, - "progression": [ - { - "message": "Selecting the best target for this query" - } - ], - "results": [ - { - "data": { - "message": "Could not figure out which index to use" - }, - "type": "error" - } - ], - "tool_call_id": "tooluse_shOdUwKIRwC9YhqGzeg0cQ", - "tool_id": "platform.core.search", - "type": "tool_call" - } - ] - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Send chat message", - "tags": [ - "agent builder" - ], - "x-state": "Added in 9.2.0" - } - }, - "/api/agent_builder/converse/async": { - "post": { - "description": "Send a message to an agent and receive real-time streaming events. This asynchronous endpoint provides live updates as the agent processes your request, allowing you to see intermediate steps and progress. Use this for interactive experiences where you want to monitor the agent's thinking process.\n\n## Event types\n\nThe endpoint emits Server-Sent Events (SSE) with the following custom event types:\n\n`conversation_id_set`\n\nSets the conversation ID.\n\nSchema:\n```json\n{\n \"conversation_id\": \"uuid\"\n}\n```\n\n---\n\n`conversation_created`\n\nFires when a new conversation is persisted and assigned an ID.\n\nSchema:\n```json\n{\n \"conversation_id\": \"uuid\",\n \"title\": \"conversation title\"\n}\n```\n\n---\n\n`conversation_updated`\n\nFires when a conversation is updated.\n\nSchema:\n```json\n{\n \"conversation_id\": \"uuid\",\n \"title\": \"updated conversation title\"\n}\n```\n\n---\n\n`reasoning`\n\nHandles reasoning-related data.\n\nSchema:\n```json\n{\n \"reasoning\": \"plain text reasoning content\",\n \"transient\": false\n}\n```\n\n---\n\n`tool_call`\n\nTriggers when a tool is invoked.\n\nSchema:\n```json\n{\n \"tool_call_id\": \"uuid\",\n \"tool_id\": \"tool_name\",\n \"params\": {}\n}\n```\n\n---\n\n`tool_progress`\n\nReports progress of a running tool.\n\nSchema:\n```json\n{\n \"tool_call_id\": \"uuid\",\n \"message\": \"progress message\"\n}\n```\n\n---\n\n`tool_result`\n\nReturns results from a completed tool call.\n\nSchema:\n```json\n{\n \"tool_call_id\": \"uuid\",\n \"tool_id\": \"tool_name\",\n \"results\": []\n}\n```\n\n**Note:** `results` is an array of `ToolResult` objects.\n\n---\n\n`message_chunk`\n\nStreams partial text chunks.\n\nSchema:\n```json\n{\n \"message_id\": \"uuid\",\n \"text_chunk\": \"partial text\"\n}\n```\n\n---\n\n`message_complete`\n\nIndicates message stream is finished.\n\nSchema:\n```json\n{\n \"message_id\": \"uuid\",\n \"message_content\": \"full text content of the message\"\n}\n```\n\n---\n\n`thinking_complete`\n\nMarks the end of the thinking/reasoning phase.\n\nSchema:\n```json\n{\n \"time_to_first_token\": 0\n}\n```\n\n**Note:** `time_to_first_token` is in milliseconds.\n\n---\n\n`round_complete`\n\nMarks end of one conversation round.\n\nSchema:\n```json\n{\n \"round\": {}\n}\n```\n\n**Note:** `round` contains the full round json object.\n\n---\n\n## Event flow\n\nA typical conversation round emits events in this sequence:\n\n1. `reasoning` (potentially multiple, some transient)\n2. `tool_call` (if tools are used)\n3. `tool_progress` (zero or more progress updates)\n4. `tool_result` (when tool completes)\n5. `thinking_complete`\n6. `message_chunk` (multiple, as text streams)\n7. `message_complete`\n8. `round_complete`\n\n

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "post-agent-builder-converse-async", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "converseAsyncRequestExample": { - "description": "Example request to send a message to the agent as a part of the conversation", - "value": { - "agent_id": "elastic-ai-agent", - "conversation_id": "c250305b-1929-4248-b568-b9e3f065fda5", - "input": "Hello" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "agent_id": { - "default": "elastic-ai-agent", - "description": "The ID of the agent to chat with. Defaults to the default Elastic AI agent.", - "type": "string" - }, - "attachments": { - "description": "**Technical Preview; added in 9.3.0.** Optional attachments to send with the message.", - "items": { - "additionalProperties": false, - "properties": { - "data": { - "additionalProperties": {}, - "description": "Payload of the attachment.", - "type": "object" - }, - "hidden": { - "description": "When true, the attachment will not be displayed in the UI.", - "type": "boolean" - }, - "id": { - "description": "Optional id for the attachment.", - "type": "string" - }, - "type": { - "description": "Type of the attachment.", - "type": "string" - } - }, - "required": [ - "type", - "data" - ], - "type": "object" - }, - "type": "array" - }, - "browser_api_tools": { - "description": "Optional browser API tools to be registered as LLM tools with browser.* namespace. These tools execute on the client side.", - "items": { - "additionalProperties": false, - "properties": { - "description": { - "description": "Description of what the browser API tool does.", - "type": "string" - }, - "id": { - "description": "Unique identifier for the browser API tool.", - "type": "string" - }, - "schema": {} - }, - "required": [ - "id", - "description", - "schema" - ], - "type": "object" - }, - "type": "array" - }, - "capabilities": { - "additionalProperties": false, - "description": "Controls agent capabilities during conversation. Currently supports visualization rendering for tabular tool results.", - "properties": { - "visualizations": { - "description": "When true, allows the agent to render tabular data from tool results as interactive visualizations using custom XML elements in responses.", - "type": "boolean" - } - }, - "type": "object" - }, - "configuration_overrides": { - "additionalProperties": false, - "description": "Runtime configuration overrides. These override the stored agent configuration for this execution only.", - "properties": { - "instructions": { - "description": "Custom instructions for the agent.", - "type": "string" - }, - "tools": { - "description": "Tool selection to enable for this execution.", - "items": { - "additionalProperties": false, - "properties": { - "tool_ids": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "tool_ids" - ], - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "connector_id": { - "description": "Optional connector ID for the agent to use for external integrations.", - "type": "string" - }, - "conversation_id": { - "description": "Optional existing conversation ID to continue a previous conversation.", - "type": "string" - }, - "input": { - "description": "The user input message to send to the agent.", - "type": "string" - }, - "prompts": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "allow": { - "type": "boolean" - } - }, - "required": [ - "allow" - ], - "type": "object" - }, - "description": "Can be used to respond to a confirmation prompt.", - "type": "object" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "text/event-stream": { - "examples": { - "converseAsyncResponseExample": { - "description": "Example stream containing the chain of events representing a conversation with the agent", - "value": [ - { - "data": { - "data": { - "conversation_id": "c250305b-1929-4248-b568-b9e3f065fda5" - } - }, - "event": "conversation_id_set" - }, - { - "data": { - "data": { - "reasoning": "Starting with a general search to understand what content is available." - } - }, - "event": "reasoning" - }, - { - "data": { - "data": { - "params": { - "query": "latest documents" - }, - "tool_call_id": "tooluse__2aJELgyRYqD8SDOKSiwtg", - "tool_id": "platform.core.search" - } - }, - "event": "tool_call" - }, - { - "data": { - "data": { - "results": [ - { - "data": { - "message": "Could not figure out which index to use" - }, - "type": "error" - } - ], - "tool_call_id": "tooluse__2aJELgyRYqD8SDOKSiwtg" - } - }, - "event": "tool_result" - }, - { - "data": { - "data": { - "round": { - "id": "a5692d54-bc06-4a6e-aea1-412779c73f66", - "input": { - "message": "Hello" - }, - "response": { - "message": "Hello! How can I help you today?" - } - } - } - }, - "event": "round_complete" - } - ] - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Send chat message (streaming)", - "tags": [ - "agent builder" - ], - "x-state": "Added in 9.2.0" - } - }, - "/api/agent_builder/mcp": { - "post": { - "description": "> warn\n> This endpoint is designed for MCP clients (Claude Desktop, Cursor, VS Code, etc.) and should not be used directly via REST APIs. Use MCP Inspector or native MCP clients instead.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "post-agent-builder-mcp", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "examples": { - "mcpInitializeRequestExample": { - "description": "WARNING: DO NOT USE THIS ENDPOINT VIA REST API. These examples are auto-generated and should not be run. Integrate with MCP using MCP Inspector or native MCP clients (Claude Desktop, Cursor, VS Code) instead.", - "value": { - "id": 1, - "jsonrpc": "2.0", - "method": "initialize", - "params": { - "capabilities": {}, - "clientInfo": { - "name": "test-client", - "version": "1.0.0" - }, - "protocolVersion": "2024-11-05" - } - } - } - }, - "schema": {} - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "mcpInitializeResponseExample": { - "description": "Example response showing the successful result of communication initialisation over MCP protocol", - "value": { - "id": 1, - "jsonrpc": "2.0", - "result": { - "capabilities": { - "tools": { - "listChanged": true - } - }, - "protocolVersion": "2024-11-05", - "serverInfo": { - "name": "elastic-mcp-server", - "version": "0.0.1" - } - } - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "MCP server", - "tags": [ - "agent builder" - ], - "x-state": "Added in 9.2.0" - } - }, - "/api/agent_builder/tools": { - "get": { - "description": "List all available tools. Use this endpoint to retrieve complete tool definitions including their schemas and configuration requirements.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "get-agent-builder-tools", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "listToolsResponseExample": { - "description": "Example response returning a list of existing tools", - "value": { - "results": [ - { - "configuration": {}, - "description": "A powerful tool for searching and analyzing data within your Elasticsearch cluster.\nIt supports both full-text relevance searches and structured analytical queries.\n\nUse this tool for any query that involves finding documents, counting, aggregating, or summarizing data from a known index.\n\nExamples of queries:\n- \"find articles about serverless architecture\"\n- \"search for support tickets mentioning 'billing issue' or 'refund request'\"\n- \"what is our policy on parental leave?\"\n- \"list all products where the category is 'electronics'\"\n- \"show me the last 5 documents from that index\"\n- \"show me the sales over the last year break down by month\"\n\nNote:\n- The 'index' parameter can be used to specify which index to search against.\n If not provided, the tool will decide itself which is the best index to use.\n- It is perfectly fine not to specify the 'index' parameter. It should only be specified when you already\n know about the index and fields you want to search on, e.g. if the user explicitly specified it.", - "id": "platform.core.search", - "readonly": true, - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "index": { - "description": "(optional) Index to search against. If not provided, will automatically select the best index to use based on the query.", - "type": "string" - }, - "query": { - "description": "A natural language query expressing the search request", - "type": "string" - } - }, - "required": [ - "query" - ], - "type": "object" - }, - "tags": [], - "type": "builtin" - }, - { - "configuration": {}, - "description": "Retrieve the full content (source) of an Elasticsearch document based on its ID and index name.", - "id": "platform.core.get_document_by_id", - "readonly": true, - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "id": { - "description": "ID of the document to retrieve", - "type": "string" - }, - "index": { - "description": "Name of the index to retrieve the document from", - "type": "string" - } - }, - "required": [ - "id", - "index" - ], - "type": "object" - }, - "tags": [], - "type": "builtin" - }, - { - "configuration": {}, - "description": "Execute an ES|QL query and return the results in a tabular format.\n\n**IMPORTANT**: This tool only **runs** queries; it does not write them.\nThink of this as the final step after a query has been prepared.\n\nYou **must** get the query from one of two sources before calling this tool:\n1. The output of the `platform.core.generate_esql` tool (if the tool is available).\n2. A verbatim query provided directly by the user.\n\nUnder no circumstances should you invent, guess, or modify a query yourself for this tool.\nIf you need a query, use the `platform.core.generate_esql` tool first.", - "id": "platform.core.execute_esql", - "readonly": true, - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "query": { - "description": "The ES|QL query to execute", - "type": "string" - } - }, - "required": [ - "query" - ], - "type": "object" - }, - "tags": [], - "type": "builtin" - }, - { - "configuration": { - "params": { - "limit": { - "description": "Maximum number of results to return", - "type": "integer" - }, - "startTime": { - "description": "Start time for the analysis in ISO format", - "type": "date" - } - }, - "query": "FROM financial_trades | WHERE execution_timestamp >= ?startTime | STATS trade_count=COUNT(*), avg_price=AVG(execution_price) BY symbol | SORT trade_count DESC | LIMIT ?limit" - }, - "description": "Example ES|QL query tool for analyzing financial trades with time filtering", - "id": "example-esql-tool", - "readonly": false, - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "description": "Parameters needed to execute the query", - "properties": { - "limit": { - "description": "Maximum number of results to return", - "type": "integer" - }, - "startTime": { - "description": "Start time for the analysis in ISO format", - "format": "date-time", - "type": "string" - } - }, - "required": [ - "startTime", - "limit" - ], - "type": "object" - }, - "tags": [ - "analytics", - "finance" - ], - "type": "esql" - }, - { - "configuration": { - "pattern": "financial_*" - }, - "description": "Search tool specifically for financial data analysis and reporting", - "id": "example-index-search-tool", - "readonly": false, - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "nlQuery": { - "description": "A natural language query expressing the search request", - "type": "string" - } - }, - "required": [ - "nlQuery" - ], - "type": "object" - }, - "tags": [ - "search", - "finance" - ], - "type": "index_search" - } - ] - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "List tools", - "tags": [ - "agent builder" - ], - "x-state": "Added in 9.2.0" - }, - "post": { - "description": "Create a new tool. Use this endpoint to define a custom tool with specific functionality and configuration for use by agents.

[Required authorization] Route required privileges: manage_agent_builder.", - "operationId": "post-agent-builder-tools", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "createEsqlToolRequest": { - "description": "Example request to create an ESQL query tool with a pre-defined query", - "value": { - "configuration": { - "params": { - "limit": { - "description": "Maximum number of results to return", - "type": "integer" - }, - "startTime": { - "description": "Start time for the analysis in ISO format", - "type": "date" - } - }, - "query": "FROM financial_trades | WHERE execution_timestamp >= ?startTime | STATS trade_count=COUNT(*), avg_price=AVG(execution_price) BY symbol | SORT trade_count DESC | LIMIT ?limit" - }, - "description": "Example ES|QL query tool for analyzing financial trades with time filtering", - "id": "example-esql-tool", - "tags": [ - "analytics", - "finance" - ], - "type": "esql" - } - }, - "createIndexSearchToolRequest": { - "description": "Example request to create an index_search tool with a pre-defined index pattern", - "value": { - "configuration": { - "pattern": "financial_*" - }, - "description": "Search tool specifically for financial data analysis and reporting", - "id": "example-index-search-tool", - "tags": [ - "search", - "finance" - ], - "type": "index_search" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "configuration": { - "additionalProperties": {}, - "description": "Tool-specific configuration parameters. See examples for details.", - "type": "object" - }, - "description": { - "default": "", - "description": "Description of what the tool does.", - "type": "string" - }, - "id": { - "description": "Unique identifier for the tool.", - "type": "string" - }, - "tags": { - "default": [], - "description": "Optional tags for categorizing and organizing tools.", - "items": { - "description": "Tag for categorizing the tool.", - "type": "string" - }, - "type": "array" - }, - "type": { - "description": "The type of tool to create (e.g., esql, index_search).", - "enum": [ - "esql", - "index_search", - "workflow", - "mcp" - ], - "type": "string" - } - }, - "required": [ - "id", - "type", - "configuration" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "createEsqlToolExample": { - "description": "Example response returning a definition of ESQL tool created", - "value": { - "configuration": { - "params": { - "limit": { - "description": "Maximum number of results to return", - "type": "integer" - }, - "startTime": { - "description": "Start time for the analysis in ISO format", - "type": "date" - } - }, - "query": "FROM financial_trades | WHERE execution_timestamp >= ?startTime | STATS trade_count=COUNT(*), avg_price=AVG(execution_price) BY symbol | SORT trade_count DESC | LIMIT ?limit" - }, - "description": "Example ES|QL query tool for analyzing financial trades with time filtering", - "id": "example-esql-tool", - "readonly": false, - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "description": "Parameters needed to execute the query", - "properties": { - "limit": { - "description": "Maximum number of results to return", - "type": "integer" - }, - "startTime": { - "description": "Start time for the analysis in ISO format", - "format": "date-time", - "type": "string" - } - }, - "required": [ - "startTime", - "limit" - ], - "type": "object" - }, - "tags": [ - "analytics", - "finance" - ], - "type": "esql" - } - }, - "createIndexSearchToolExample": { - "description": "Example response returning a definition of search tool tool created", - "value": { - "configuration": { - "pattern": "financial_*" - }, - "description": "Search tool specifically for financial data analysis and reporting", - "id": "example-index-search-tool", - "readonly": false, - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "nlQuery": { - "description": "A natural language query expressing the search request", - "type": "string" - } - }, - "required": [ - "nlQuery" - ], - "type": "object" - }, - "tags": [ - "search", - "finance" - ], - "type": "index_search" - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Create a tool", - "tags": [ - "agent builder" - ], - "x-state": "Added in 9.2.0" - } - }, - "/api/agent_builder/tools/_execute": { - "post": { - "description": "Execute a tool with parameters. Use this endpoint to run a tool directly with specified inputs and optional external connector integration.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "post-agent-builder-tools-execute", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "executeBuiltinEsqlToolRequest": { - "description": "Example request executing platform.core.execute_esql tool", - "value": { - "tool_id": "platform.core.execute_esql", - "tool_params": { - "query": "FROM financial_trades | LIMIT 3" - } - } - }, - "executeBuiltinToolRequest": { - "description": "Example request executing platform.core.get_document_by_id tool", - "value": { - "tool_id": "platform.core.get_document_by_id", - "tool_params": { - "id": "TRD-20250805-0820a89f", - "index": "financial_trades" - } - } - }, - "executeCustomEsqlToolRequest": { - "description": "Example request executing custom example-esql-tool tool", - "value": { - "tool_id": "example-esql-tool", - "tool_params": { - "limit": 3, - "startTime": "2024-01-01T00:00:00Z" - } - } - }, - "executeIndexSearchToolRequest": { - "description": "Example request executing custom example-index-search-tool tool", - "value": { - "tool_id": "example-index-search-tool", - "tool_params": { - "nlQuery": "find trades with high execution prices above 100" - } - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "connector_id": { - "description": "Optional connector ID for tools that require external integrations.", - "type": "string" - }, - "tool_id": { - "description": "The ID of the tool to execute.", - "type": "string" - }, - "tool_params": { - "additionalProperties": {}, - "description": "Parameters to pass to the tool execution. See examples for details", - "type": "object" - } - }, - "required": [ - "tool_id", - "tool_params" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "executeBuiltinEsqlToolExample": { - "description": "Example response calling built-in platform.core.execute_esql tool", - "value": { - "results": [ - { - "data": { - "esql": "FROM financial_trades | LIMIT 3" - }, - "type": "query" - }, - { - "data": { - "columns": [ - { - "name": "account_id", - "type": "keyword" - }, - { - "name": "execution_price", - "type": "double" - }, - { - "name": "symbol", - "type": "keyword" - }, - { - "name": "trade_type", - "type": "keyword" - } - ], - "query": "FROM financial_trades | LIMIT 3", - "source": "esql", - "values": [ - [ - "ACC00179-1f91", - 43.77000045776367, - "CVX", - "sell" - ], - [ - "ACC00407-0bbb", - 660.4199829101562, - "V", - "buy" - ], - [ - "ACC00179-1f91", - 440.3599853515625, - "KO", - "buy" - ] - ] - }, - "tool_result_id": "xTpT", - "type": "tabular_data" - } - ] - } - }, - "executeBuiltinToolExample": { - "description": "Example response calling built-in platform.core.get_document_by_id tool", - "value": { - "results": [ - { - "data": { - "content": { - "account_id": "ACC00271-fb5c", - "execution_price": 488.54, - "execution_timestamp": "2025-08-05T08:04:11.649855", - "last_updated": "2025-09-15T13:23:36", - "order_status": "executed", - "order_type": "market", - "quantity": 131, - "status_reason": "fully_filled", - "symbol": "EWL", - "trade_cost": 63998.74, - "trade_id": "TRD-20250805-0820a89f", - "trade_type": "sell" - }, - "partial": false, - "reference": { - "id": "TRD-20250805-0820a89f", - "index": "financial_trades" - } - }, - "type": "resource" - } - ] - } - }, - "executeCustomEsqlToolExample": { - "description": "Example response calling custom example-esql-tool tool", - "value": { - "results": [ - { - "data": { - "columns": [ - { - "name": "trade_count", - "type": "long" - }, - { - "name": "avg_price", - "type": "double" - }, - { - "name": "symbol", - "type": "keyword" - } - ], - "query": "FROM financial_trades | WHERE execution_timestamp >= ?startTime | STATS trade_count=COUNT(*), avg_price=AVG(execution_price) BY symbol | SORT trade_count DESC | LIMIT ?limit", - "source": "esql", - "values": [ - [ - 2115, - 89.33911587329621, - "US_T_BOND_20YR" - ], - [ - 2112, - 104.20854155945055, - "INTL_CORP_ASIA_D" - ], - [ - 2105, - 89.93244177666526, - "INTL_CORP_EU_B" - ] - ] - }, - "tool_result_id": "Voy8", - "type": "tabular_data" - } - ] - } - }, - "executeIndexSearchToolExample": { - "description": "Example response calling custom example-index-search-tool tool", - "value": { - "results": [ - { - "data": { - "esql": "FROM financial_trades\n| WHERE execution_price > 100\n| LIMIT 100" - }, - "type": "query" - }, - { - "data": { - "columns": [ - { - "name": "account_id", - "type": "keyword" - }, - { - "name": "execution_price", - "type": "double" - }, - { - "name": "execution_timestamp", - "type": "date" - }, - { - "name": "symbol", - "type": "keyword" - }, - { - "name": "trade_type", - "type": "keyword" - } - ], - "query": "FROM financial_trades\n| WHERE execution_price > 100\n| LIMIT 100", - "source": "esql", - "values": [ - [ - "ACC00407-0bbb", - 660.4199829101562, - "2020-09-25T11:06:08.687Z", - "V", - "buy" - ], - [ - "ACC00179-1f91", - 440.3599853515625, - "2025-08-07T21:56:45.377Z", - "KO", - "buy" - ], - [ - "ACC00407-0bbb", - 132.8800048828125, - "2020-11-19T04:39:13.655Z", - "JAP_JGB_10YR", - "sell" - ] - ] - }, - "tool_result_id": "uE8y", - "type": "tabular_data" - } - ] - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Execute a Tool", - "tags": [ - "agent builder" - ], - "x-state": "Added in 9.2.0" - } - }, - "/api/agent_builder/tools/{toolId}": { - "delete": { - "description": "Delete a tool by ID. This action cannot be undone.

[Required authorization] Route required privileges: manage_agent_builder.", - "operationId": "delete-agent-builder-tools-toolid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The unique identifier of the tool to delete.", - "in": "path", - "name": "toolId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "deleteAgentResponseExample": { - "description": "Example response showing that the deletion operation was successful", - "value": { - "success": true - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Delete a tool", - "tags": [ - "agent builder" - ], - "x-state": "Added in 9.2.0" - }, - "get": { - "description": "Get a specific tool by ID. Use this endpoint to retrieve the complete tool definition including its schema and configuration requirements.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "get-agent-builder-tools-toolid", - "parameters": [ - { - "description": "The unique identifier of the tool to retrieve.", - "in": "path", - "name": "toolId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "getBuiltinToolExample": { - "description": "Example response returning built-in platform.core.search tool", - "value": { - "configuration": {}, - "description": "A powerful tool for searching and analyzing data within your Elasticsearch cluster.\nIt supports both full-text relevance searches and structured analytical queries.\n\nUse this tool for any query that involves finding documents, counting, aggregating, or summarizing data from a known index.\n\nExamples of queries:\n- \"find articles about serverless architecture\"\n- \"search for support tickets mentioning 'billing issue' or 'refund request'\"\n- \"what is our policy on parental leave?\"\n- \"list all products where the category is 'electronics'\"\n- \"show me the last 5 documents from that index\"\n- \"show me the sales over the last year break down by month\"\n\nNote:\n- The 'index' parameter can be used to specify which index to search against.\n If not provided, the tool will decide itself which is the best index to use.\n- It is perfectly fine not to specify the 'index' parameter. It should only be specified when you already\n know about the index and fields you want to search on, e.g. if the user explicitly specified it.", - "id": "platform.core.search", - "readonly": true, - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "index": { - "description": "(optional) Index to search against. If not provided, will automatically select the best index to use based on the query.", - "type": "string" - }, - "query": { - "description": "A natural language query expressing the search request", - "type": "string" - } - }, - "required": [ - "query" - ], - "type": "object" - }, - "tags": [], - "type": "builtin" - } - }, - "getEsqlToolExample": { - "description": "Example response returning custom example-esql-tool tool", - "value": { - "configuration": { - "params": { - "limit": { - "description": "Maximum number of results to return", - "type": "integer" - }, - "startTime": { - "description": "Start time for the analysis in ISO format", - "type": "date" - } - }, - "query": "FROM financial_trades | WHERE execution_timestamp >= ?startTime | STATS trade_count=COUNT(*), avg_price=AVG(execution_price) BY symbol | SORT trade_count DESC | LIMIT ?limit" - }, - "description": "Example ES|QL query tool for analyzing financial trades with time filtering", - "id": "example-esql-tool", - "readonly": false, - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "description": "Parameters needed to execute the query", - "properties": { - "limit": { - "description": "Maximum number of results to return", - "type": "integer" - }, - "startTime": { - "description": "Start time for the analysis in ISO format", - "format": "date-time", - "type": "string" - } - }, - "required": [ - "startTime", - "limit" - ], - "type": "object" - }, - "tags": [ - "analytics", - "finance" - ], - "type": "esql" - } - }, - "getIndexSearchToolExample": { - "description": "Example response returning custom example-index-search-tool tool", - "value": { - "configuration": { - "pattern": "financial_*" - }, - "description": "Search tool specifically for financial data analysis and reporting", - "id": "example-index-search-tool", - "readonly": false, - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "nlQuery": { - "description": "A natural language query expressing the search request", - "type": "string" - } - }, - "required": [ - "nlQuery" - ], - "type": "object" - }, - "tags": [ - "search", - "finance" - ], - "type": "index_search" - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Get a tool by id", - "tags": [ - "agent builder" - ], - "x-state": "Added in 9.2.0" - }, - "put": { - "description": "Update an existing tool. Use this endpoint to modify any aspect of the tool's configuration or metadata.

[Required authorization] Route required privileges: manage_agent_builder.", - "operationId": "put-agent-builder-tools-toolid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The unique identifier of the tool to update.", - "in": "path", - "name": "toolId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "updateEsqlToolRequest": { - "description": "Example request to update the custom ESQL tool", - "value": { - "configuration": { - "params": { - "limit": { - "description": "Maximum number of results to return", - "type": "integer" - }, - "startTime": { - "description": "Start time for the analysis in ISO format", - "type": "date" - }, - "symbolPattern": { - "description": "Pattern to filter symbols (e.g., 'US_*' for US instruments)", - "type": "keyword" - } - }, - "query": "FROM financial_trades | WHERE execution_timestamp >= ?startTime AND symbol LIKE ?symbolPattern | STATS trade_count=COUNT(*), avg_price=AVG(execution_price), total_volume=SUM(quantity) BY symbol | SORT trade_count DESC | LIMIT ?limit" - }, - "description": "Updated ES|QL query tool for comprehensive financial analysis with enhanced filtering", - "tags": [ - "analytics", - "finance", - "reporting" - ] - } - }, - "updateIndexSearchToolRequest": { - "description": "Example request to update the custom Search tool", - "value": { - "description": "Updated search tool for comprehensive financial data analysis, reporting, and compliance monitoring", - "tags": [ - "search", - "finance", - "compliance", - "reporting" - ] - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "configuration": { - "additionalProperties": {}, - "description": "Updated tool-specific configuration parameters. See examples for details.", - "type": "object" - }, - "description": { - "description": "Updated description of what the tool does.", - "type": "string" - }, - "tags": { - "description": "Updated tags for categorizing and organizing tools.", - "items": { - "description": "Updated tag for categorizing the tool.", - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "updateEsqlToolExample": { - "description": "Example response showing the updated ESQL tool", - "value": { - "configuration": { - "params": { - "limit": { - "description": "Maximum number of results to return", - "type": "integer" - }, - "startTime": { - "description": "Start time for the analysis in ISO format", - "type": "date" - }, - "symbolPattern": { - "description": "Pattern to filter symbols (e.g., 'US_*' for US instruments)", - "type": "keyword" - } - }, - "query": "FROM financial_trades | WHERE execution_timestamp >= ?startTime AND symbol LIKE ?symbolPattern | STATS trade_count=COUNT(*), avg_price=AVG(execution_price), total_volume=SUM(quantity) BY symbol | SORT trade_count DESC | LIMIT ?limit" - }, - "description": "Updated ES|QL query tool for comprehensive financial analysis with enhanced filtering", - "id": "example-esql-tool", - "readonly": false, - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "description": "Parameters needed to execute the enhanced query", - "properties": { - "limit": { - "description": "Maximum number of results to return", - "type": "integer" - }, - "startTime": { - "description": "Start time for the analysis in ISO format", - "format": "date-time", - "type": "string" - }, - "symbolPattern": { - "description": "Pattern to filter symbols (e.g., 'US_*' for US instruments)", - "type": "string" - } - }, - "required": [ - "startTime", - "symbolPattern", - "limit" - ], - "type": "object" - }, - "tags": [ - "analytics", - "finance", - "reporting" - ], - "type": "esql" - } - }, - "updateIndexSearchToolExample": { - "description": "Example response showing the updated Search tool", - "value": { - "configuration": { - "pattern": "financial_*" - }, - "description": "Updated search tool for comprehensive financial data analysis, reporting, and compliance monitoring", - "id": "example-index-search-tool", - "readonly": false, - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "nlQuery": { - "description": "A natural language query expressing the search request", - "type": "string" - } - }, - "required": [ - "nlQuery" - ], - "type": "object" - }, - "tags": [ - "search", - "finance", - "compliance", - "reporting" - ], - "type": "index_search" - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Update a tool", - "tags": [ - "agent builder" - ], - "x-state": "Added in 9.2.0" - } - }, - "/api/alerting/rule/{id}": { - "delete": { - "operationId": "delete-alerting-rule-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the rule.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a rule with the given ID does not exist." - } - }, - "summary": "Delete a rule", - "tags": [ - "alerting" - ] - }, - "get": { - "operationId": "get-alerting-rule-id", - "parameters": [ - { - "description": "The identifier for the rule.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "actions": { - "items": { - "additionalProperties": false, - "properties": { - "alerts_filter": { - "additionalProperties": false, - "description": "Defines a period that limits whether the action runs.", - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "dsl": { - "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL).", - "type": "string" - }, - "filters": { - "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL) as defined in the `kbn-es-query` package.", - "items": { - "additionalProperties": false, - "properties": { - "$state": { - "additionalProperties": false, - "properties": { - "store": { - "description": "A filter can be either specific to an application context or applied globally.", - "enum": [ - "appState", - "globalState" - ], - "type": "string" - } - }, - "required": [ - "store" - ], - "type": "object" - }, - "meta": { - "additionalProperties": {}, - "type": "object" - }, - "query": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "meta" - ], - "type": "object" - }, - "type": "array" - }, - "kql": { - "description": "A filter written in Kibana Query Language (KQL).", - "type": "string" - } - }, - "required": [ - "kql", - "filters" - ], - "type": "object" - }, - "timeframe": { - "additionalProperties": false, - "properties": { - "days": { - "description": "Defines the days of the week that the action can run, represented as an array of numbers. For example, `1` represents Monday. An empty array is equivalent to specifying all the days of the week.", - "items": { - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "type": "integer" - }, - "type": "array" - }, - "hours": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end of the time frame in 24-hour notation (`hh:mm`).", - "type": "string" - }, - "start": { - "description": "The start of the time frame in 24-hour notation (`hh:mm`).", - "type": "string" - } - }, - "required": [ - "start", - "end" - ], - "type": "object" - }, - "timezone": { - "description": "The ISO time zone for the `hours` values. Values such as `UTC` and `UTC+1` also work but lack built-in daylight savings time support and are not recommended.", - "type": "string" - } - }, - "required": [ - "days", - "hours", - "timezone" - ], - "type": "object" - } - }, - "type": "object" - }, - "connector_type_id": { - "description": "The type of connector. This property appears in responses but cannot be set in requests.", - "type": "string" - }, - "frequency": { - "additionalProperties": false, - "properties": { - "notify_when": { - "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "enum": [ - "onActionGroupChange", - "onActiveAlert", - "onThrottleInterval" - ], - "type": "string" - }, - "summary": { - "description": "Indicates whether the action is a summary.", - "type": "boolean" - }, - "throttle": { - "description": "The throttle interval, which defines how often an alert generates repeated actions. It is specified in seconds, minutes, hours, or days and is applicable only if 'notify_when' is set to 'onThrottleInterval'. NOTE: You cannot specify the throttle interval at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "summary", - "notify_when", - "throttle" - ], - "type": "object" - }, - "group": { - "description": "The group name, which affects when the action runs (for example, when the threshold is met or when the alert is recovered). Each rule type has a list of valid action group names. If you don't need to group actions, set to `default`.", - "type": "string" - }, - "id": { - "description": "The identifier for the connector saved object.", - "type": "string" - }, - "params": { - "additionalProperties": {}, - "description": "The parameters for the action, which are sent to the connector. The `params` are handled as Mustache templates and passed a default set of context.", - "type": "object" - }, - "use_alert_data_for_template": { - "description": "Indicates whether to use alert data as a template.", - "type": "boolean" - }, - "uuid": { - "description": "A universally unique identifier (UUID) for the action.", - "type": "string" - } - }, - "required": [ - "id", - "connector_type_id", - "params" - ], - "type": "object" - }, - "type": "array" - }, - "active_snoozes": { - "items": { - "description": "List of active snoozes for the rule.", - "type": "string" - }, - "type": "array" - }, - "alert_delay": { - "additionalProperties": false, - "description": "Indicates that an alert occurs only when the specified number of consecutive runs met the rule conditions.", - "properties": { - "active": { - "description": "The number of consecutive runs that must meet the rule conditions.", - "type": "number" - } - }, - "required": [ - "active" - ], - "type": "object" - }, - "api_key_created_by_user": { - "description": "Indicates whether the API key that is associated with the rule was created by the user.", - "nullable": true, - "type": "boolean" - }, - "api_key_owner": { - "description": "The owner of the API key that is associated with the rule and used to run background tasks.", - "nullable": true, - "type": "string" - }, - "artifacts": { - "additionalProperties": false, - "properties": { - "dashboards": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "type": "array" - }, - "investigation_guide": { - "additionalProperties": false, - "properties": { - "blob": { - "description": "User-created content that describes alert causes and remdiation.", - "type": "string" - } - }, - "required": [ - "blob" - ], - "type": "object" - } - }, - "type": "object" - }, - "consumer": { - "description": "The name of the application or feature that owns the rule. For example: `alerts`, `apm`, `discover`, `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, `securitySolution`, `siem`, `stackAlerts`, or `uptime`.", - "type": "string" - }, - "created_at": { - "description": "The date and time that the rule was created.", - "type": "string" - }, - "created_by": { - "description": "The identifier for the user that created the rule.", - "nullable": true, - "type": "string" - }, - "enabled": { - "description": "Indicates whether you want to run the rule on an interval basis after it is created.", - "type": "boolean" - }, - "execution_status": { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "message": { - "description": "Error message.", - "type": "string" - }, - "reason": { - "description": "Reason for error.", - "enum": [ - "read", - "decrypt", - "execute", - "unknown", - "license", - "timeout", - "disabled", - "validate" - ], - "type": "string" - } - }, - "required": [ - "reason", - "message" - ], - "type": "object" - }, - "last_duration": { - "description": "Duration of last execution of the rule.", - "type": "number" - }, - "last_execution_date": { - "description": "The date and time when rule was executed last.", - "type": "string" - }, - "status": { - "description": "Status of rule execution.", - "enum": [ - "ok", - "active", - "error", - "warning", - "pending", - "unknown" - ], - "type": "string" - }, - "warning": { - "additionalProperties": false, - "properties": { - "message": { - "description": "Warning message.", - "type": "string" - }, - "reason": { - "description": "Reason for warning.", - "enum": [ - "maxExecutableActions", - "maxAlerts", - "maxQueuedActions", - "ruleExecution" - ], - "type": "string" - } - }, - "required": [ - "reason", - "message" - ], - "type": "object" - } - }, - "required": [ - "status", - "last_execution_date" - ], - "type": "object" - }, - "flapping": { - "additionalProperties": false, - "description": "When flapping detection is turned on, alerts that switch quickly between active and recovered states are identified as “flapping” and notifications are reduced.", - "nullable": true, - "properties": { - "enabled": { - "description": "Determines whether the rule can enter the flapping state. By default, rules can enter the flapping state.", - "type": "boolean" - }, - "look_back_window": { - "description": "The minimum number of runs in which the threshold must be met.", - "maximum": 20, - "minimum": 2, - "type": "number" - }, - "status_change_threshold": { - "description": "The minimum number of times an alert must switch states in the look back window.", - "maximum": 20, - "minimum": 2, - "type": "number" - } - }, - "required": [ - "look_back_window", - "status_change_threshold" - ], - "type": "object" - }, - "id": { - "description": "The identifier for the rule.", - "type": "string" - }, - "is_snoozed_until": { - "description": "The date when the rule will no longer be snoozed.", - "nullable": true, - "type": "string" - }, - "last_run": { - "additionalProperties": false, - "nullable": true, - "properties": { - "alerts_count": { - "additionalProperties": false, - "properties": { - "active": { - "description": "Number of active alerts during last run.", - "nullable": true, - "type": "number" - }, - "ignored": { - "description": "Number of ignored alerts during last run.", - "nullable": true, - "type": "number" - }, - "new": { - "description": "Number of new alerts during last run.", - "nullable": true, - "type": "number" - }, - "recovered": { - "description": "Number of recovered alerts during last run.", - "nullable": true, - "type": "number" - } - }, - "type": "object" - }, - "outcome": { - "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", - "enum": [ - "succeeded", - "warning", - "failed" - ], - "type": "string" - }, - "outcome_msg": { - "items": { - "description": "Outcome message generated during last rule run.", - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "outcome_order": { - "description": "Order of the outcome.", - "type": "number" - }, - "warning": { - "description": "Warning of last rule execution.", - "enum": [ - "read", - "decrypt", - "execute", - "unknown", - "license", - "timeout", - "disabled", - "validate", - "maxExecutableActions", - "maxAlerts", - "maxQueuedActions", - "ruleExecution" - ], - "nullable": true, - "type": "string" - } - }, - "required": [ - "outcome", - "alerts_count" - ], - "type": "object" - }, - "mapped_params": { - "additionalProperties": {}, - "type": "object" - }, - "monitoring": { - "additionalProperties": false, - "description": "Monitoring details of the rule.", - "properties": { - "run": { - "additionalProperties": false, - "description": "Rule run details.", - "properties": { - "calculated_metrics": { - "additionalProperties": false, - "description": "Calculation of different percentiles and success ratio.", - "properties": { - "p50": { - "type": "number" - }, - "p95": { - "type": "number" - }, - "p99": { - "type": "number" - }, - "success_ratio": { - "type": "number" - } - }, - "required": [ - "success_ratio" - ], - "type": "object" - }, - "history": { - "description": "History of the rule run.", - "items": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "Duration of the rule run.", - "type": "number" - }, - "outcome": { - "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", - "enum": [ - "succeeded", - "warning", - "failed" - ], - "type": "string" - }, - "success": { - "description": "Indicates whether the rule run was successful.", - "type": "boolean" - }, - "timestamp": { - "description": "Time of rule run.", - "type": "number" - } - }, - "required": [ - "success", - "timestamp" - ], - "type": "object" - }, - "type": "array" - }, - "last_run": { - "additionalProperties": false, - "properties": { - "metrics": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "Duration of most recent rule run.", - "type": "number" - }, - "gap_duration_s": { - "description": "Duration in seconds of rule run gap.", - "nullable": true, - "type": "number" - }, - "gap_range": { - "additionalProperties": false, - "nullable": true, - "properties": { - "gte": { - "description": "End of the gap range.", - "type": "string" - }, - "lte": { - "description": "Start of the gap range.", - "type": "string" - } - }, - "required": [ - "lte", - "gte" - ], - "type": "object" - }, - "total_alerts_created": { - "description": "Total number of alerts created during last rule run.", - "nullable": true, - "type": "number" - }, - "total_alerts_detected": { - "description": "Total number of alerts detected during last rule run.", - "nullable": true, - "type": "number" - }, - "total_indexing_duration_ms": { - "description": "Total time spent indexing documents during last rule run in milliseconds.", - "nullable": true, - "type": "number" - }, - "total_search_duration_ms": { - "description": "Total time spent performing Elasticsearch searches as measured by Kibana; includes network latency and time spent serializing or deserializing the request and response.", - "nullable": true, - "type": "number" - } - }, - "type": "object" - }, - "timestamp": { - "description": "Time of the most recent rule run.", - "type": "string" - } - }, - "required": [ - "timestamp", - "metrics" - ], - "type": "object" - } - }, - "required": [ - "history", - "calculated_metrics", - "last_run" - ], - "type": "object" - } - }, - "required": [ - "run" - ], - "type": "object" - }, - "mute_all": { - "description": "Indicates whether all alerts are muted.", - "type": "boolean" - }, - "muted_alert_ids": { - "items": { - "description": "List of identifiers of muted alerts. ", - "type": "string" - }, - "type": "array" - }, - "name": { - "description": " The name of the rule.", - "type": "string" - }, - "next_run": { - "description": "Date and time of the next run of the rule.", - "nullable": true, - "type": "string" - }, - "notify_when": { - "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "enum": [ - "onActionGroupChange", - "onActiveAlert", - "onThrottleInterval" - ], - "nullable": true, - "type": "string" - }, - "params": { - "additionalProperties": {}, - "description": "The parameters for the rule.", - "type": "object" - }, - "revision": { - "description": "The rule revision number.", - "type": "number" - }, - "rule_type_id": { - "description": "The rule type identifier.", - "type": "string" - }, - "running": { - "description": "Indicates whether the rule is running.", - "nullable": true, - "type": "boolean" - }, - "schedule": { - "additionalProperties": false, - "properties": { - "interval": { - "description": "The interval is specified in seconds, minutes, hours, or days.", - "type": "string" - } - }, - "required": [ - "interval" - ], - "type": "object" - }, - "scheduled_task_id": { - "description": "Identifier of the scheduled task.", - "type": "string" - }, - "snooze_schedule": { - "items": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "Duration of the rule snooze schedule.", - "type": "number" - }, - "id": { - "description": "Identifier of the rule snooze schedule.", - "type": "string" - }, - "rRule": { - "additionalProperties": false, - "properties": { - "byhour": { - "items": { - "description": "Indicates hours of the day to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "byminute": { - "items": { - "description": "Indicates minutes of the hour to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bymonth": { - "items": { - "description": "Indicates months of the year that this rule should recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bymonthday": { - "items": { - "description": "Indicates the days of the month to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bysecond": { - "items": { - "description": "Indicates seconds of the day to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bysetpos": { - "items": { - "description": "A positive or negative integer affecting the nth day of the month. For example, -2 combined with `byweekday` of FR is 2nd to last Friday of the month. It is recommended to not set this manually and just use `byweekday`.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "byweekday": { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ], - "description": "Indicates the days of the week to recur or else nth-day-of-month strings. For example, \"+2TU\" second Tuesday of month, \"-1FR\" last Friday of the month, which are internally converted to a `byweekday/bysetpos` combination." - }, - "nullable": true, - "type": "array" - }, - "byweekno": { - "items": { - "description": "Indicates number of the week hours to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "byyearday": { - "items": { - "description": "Indicates the days of the year that this rule should recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "count": { - "description": "Number of times the rule should recur until it stops.", - "type": "number" - }, - "dtstart": { - "description": "Rule start date in Coordinated Universal Time (UTC).", - "type": "string" - }, - "freq": { - "description": "Indicates frequency of the rule. Options are YEARLY, MONTHLY, WEEKLY, DAILY.", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ], - "type": "integer" - }, - "interval": { - "description": "Indicates the interval of frequency. For example, 1 and YEARLY is every 1 year, 2 and WEEKLY is every 2 weeks.", - "type": "number" - }, - "tzid": { - "description": "Indicates timezone abbreviation.", - "type": "string" - }, - "until": { - "description": "Recur the rule until this date.", - "type": "string" - }, - "wkst": { - "description": "Indicates the start of week, defaults to Monday.", - "enum": [ - "MO", - "TU", - "WE", - "TH", - "FR", - "SA", - "SU" - ], - "type": "string" - } - }, - "required": [ - "dtstart", - "tzid" - ], - "type": "object" - }, - "skipRecurrences": { - "items": { - "description": "Skips recurrence of rule on this date.", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "duration", - "rRule" - ], - "type": "object" - }, - "type": "array" - }, - "tags": { - "items": { - "description": "The tags for the rule.", - "type": "string" - }, - "type": "array" - }, - "throttle": { - "deprecated": true, - "description": "Deprecated in 8.13.0. Use the `throttle` property in the action `frequency` object instead. The throttle interval, which defines how often an alert generates repeated actions. NOTE: You cannot specify the throttle interval at both the rule and action level. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "nullable": true, - "type": "string" - }, - "updated_at": { - "description": "The date and time that the rule was updated most recently.", - "type": "string" - }, - "updated_by": { - "description": "The identifier for the user that updated this rule most recently.", - "nullable": true, - "type": "string" - }, - "view_in_app_relative_url": { - "description": "Relative URL to view rule in the app.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "id", - "enabled", - "name", - "tags", - "rule_type_id", - "consumer", - "schedule", - "actions", - "params", - "created_by", - "updated_by", - "created_at", - "updated_at", - "api_key_owner", - "mute_all", - "muted_alert_ids", - "execution_status", - "revision" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a rule with the given ID does not exist." - } - }, - "summary": "Get rule details", - "tags": [ - "alerting" - ] - }, - "post": { - "operationId": "post-alerting-rule-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the rule. If it is omitted, an ID is randomly generated.", - "in": "path", - "name": "id", - "required": false, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "createEsQueryEsqlRuleRequest": { - "description": "Create an Elasticsearch query rule that uses Elasticsearch Query Language (ES|QL) to define its query and a server log connector to send notifications.\n", - "summary": "Elasticsearch query rule (ES|QL)", - "value": { - "actions": [ - { - "frequency": { - "notify_when": "onActiveAlert", - "summary": false - }, - "group": "query matched", - "id": "d0db1fe0-78d6-11ee-9177-f7d404c8c945", - "params": { - "level": "info", - "message": "Elasticsearch query rule '{{rule.name}}' is active:\n- Value: {{context.value}} - Conditions Met: {{context.conditions}} over {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}} - Timestamp: {{context.date}} - Link: {{context.link}}" - } - } - ], - "consumer": "stackAlerts", - "name": "my Elasticsearch query ESQL rule", - "params": { - "esqlQuery": { - "esql": "FROM kibana_sample_data_logs | KEEP bytes, clientip, host, geo.dest | where geo.dest != \"GB\" | STATS sumbytes = sum(bytes) by clientip, host | WHERE sumbytes > 5000 | SORT sumbytes desc | LIMIT 10" - }, - "searchType": "esqlQuery", - "size": 0, - "threshold": [ - 0 - ], - "thresholdComparator": ">", - "timeField": "@timestamp", - "timeWindowSize": 1, - "timeWindowUnit": "d" - }, - "rule_type_id": ".es-query", - "schedule": { - "interval": "1d" - } - } - }, - "createEsQueryKqlRuleRequest": { - "description": "Create an Elasticsearch query rule that uses Kibana query language (KQL).", - "summary": "Elasticsearch query rule (KQL)", - "value": { - "consumer": "alerts", - "name": "my Elasticsearch query KQL rule", - "params": { - "aggType": "count", - "excludeHitsFromPreviousRun": true, - "groupBy": "all", - "searchConfiguration": { - "index": "90943e30-9a47-11e8-b64d-95841ca0b247", - "query": { - "language": "kuery", - "query": "\"\"geo.src : \"US\" \"\"" - } - }, - "searchType": "searchSource", - "size": 100, - "threshold": [ - 1000 - ], - "thresholdComparator": ">", - "timeWindowSize": 5, - "timeWindowUnit": "m" - }, - "rule_type_id": ".es-query", - "schedule": { - "interval": "1m" - } - } - }, - "createEsQueryRuleRequest": { - "description": "Create an Elasticsearch query rule that uses Elasticsearch query domain specific language (DSL) to define its query and a server log connector to send notifications.\n", - "summary": "Elasticsearch query rule (DSL)", - "value": { - "actions": [ - { - "frequency": { - "notify_when": "onThrottleInterval", - "summary": true, - "throttle": "1d" - }, - "group": "query matched", - "id": "fdbece50-406c-11ee-850e-c71febc4ca7f", - "params": { - "level": "info", - "message": "The system has detected {{alerts.new.count}} new, {{alerts.ongoing.count}} ongoing, and {{alerts.recovered.count}} recovered alerts." - } - }, - { - "frequency": { - "notify_when": "onActionGroupChange", - "summary": false - }, - "group": "recovered", - "id": "fdbece50-406c-11ee-850e-c71febc4ca7f", - "params": { - "level": "info", - "message": "Recovered" - } - } - ], - "consumer": "alerts", - "name": "my Elasticsearch query rule", - "params": { - "esQuery": "\"\"\"{\"query\":{\"match_all\" : {}}}\"\"\"", - "index": [ - "kibana_sample_data_logs" - ], - "size": 100, - "threshold": [ - 100 - ], - "thresholdComparator": ">", - "timeField": "@timestamp", - "timeWindowSize": 1, - "timeWindowUnit": "d" - }, - "rule_type_id": ".es-query", - "schedule": { - "interval": "1d" - } - } - }, - "createIndexThresholdRuleRequest": { - "description": "Create an index threshold rule that uses a server log connector to send notifications when the threshold is met.\n", - "summary": "Index threshold rule", - "value": { - "actions": [ - { - "frequency": { - "notify_when": "onActionGroupChange", - "summary": false - }, - "group": "threshold met", - "id": "48de3460-f401-11ed-9f8e-399c75a2deeb", - "params": { - "level": "info", - "message": "Rule '{{rule.name}}' is active for group '{{context.group}}':\n\n- Value: {{context.value}}\n- Conditions Met: {{context.conditions}} over {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}}\n- Timestamp: {{context.date}}" - } - } - ], - "alert_delay": { - "active": 3 - }, - "consumer": "alerts", - "name": "my rule", - "params": { - "aggField": "sheet.version", - "aggType": "avg", - "groupBy": "top", - "index": [ - ".test-index" - ], - "termField": "name.keyword", - "termSize": 6, - "threshold": [ - 1000 - ], - "thresholdComparator": ">", - "timeField": "@timestamp", - "timeWindowSize": 5, - "timeWindowUnit": "m" - }, - "rule_type_id": ".index-threshold", - "schedule": { - "interval": "1m" - }, - "tags": [ - "cpu" - ] - } - }, - "createTrackingContainmentRuleRequest": { - "description": "Create a tracking containment rule that checks when an entity is contained or no longer contained within a boundary.\n", - "summary": "Tracking containment rule", - "value": { - "consumer": "alerts", - "name": "my tracking rule", - "params": { - "boundaryGeoField": "location", - "boundaryIndexId": "0cd90abf-abe7-44c7-909a-f621bbbcfefc", - "boundaryIndexTitle": "boundary*", - "boundaryNameField": "name", - "boundaryType": "entireIndex", - "dateField\"": "@timestamp", - "entity": "agent.keyword", - "geoField": "geo.coordinates", - "index": "kibana_sample_data_logs", - "indexId": "90943e30-9a47-11e8-b64d-95841ca0b247" - }, - "rule_type_id": ".geo-containment", - "schedule": { - "interval": "1h" - } - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "actions": { - "default": [], - "items": { - "additionalProperties": false, - "description": "An action that runs under defined conditions.", - "properties": { - "alerts_filter": { - "additionalProperties": false, - "description": "Conditions that affect whether the action runs. If you specify multiple conditions, all conditions must be met for the action to run. For example, if an alert occurs within the specified time frame and matches the query, the action runs.", - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "dsl": { - "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL).", - "type": "string" - }, - "filters": { - "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL) as defined in the `kbn-es-query` package.", - "items": { - "additionalProperties": false, - "properties": { - "$state": { - "additionalProperties": false, - "properties": { - "store": { - "description": "A filter can be either specific to an application context or applied globally.", - "enum": [ - "appState", - "globalState" - ], - "type": "string" - } - }, - "required": [ - "store" - ], - "type": "object" - }, - "meta": { - "additionalProperties": {}, - "type": "object" - }, - "query": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "meta" - ], - "type": "object" - }, - "type": "array" - }, - "kql": { - "description": "A filter written in Kibana Query Language (KQL).", - "type": "string" - } - }, - "required": [ - "kql", - "filters" - ], - "type": "object" - }, - "timeframe": { - "additionalProperties": false, - "description": "Defines a period that limits whether the action runs.", - "properties": { - "days": { - "description": "Defines the days of the week that the action can run, represented as an array of numbers. For example, `1` represents Monday. An empty array is equivalent to specifying all the days of the week.", - "items": { - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "type": "integer" - }, - "type": "array" - }, - "hours": { - "additionalProperties": false, - "description": "Defines the range of time in a day that the action can run. If the `start` value is `00:00` and the `end` value is `24:00`, actions be generated all day.", - "properties": { - "end": { - "description": "The end of the time frame in 24-hour notation (`hh:mm`).", - "type": "string" - }, - "start": { - "description": "The start of the time frame in 24-hour notation (`hh:mm`).", - "type": "string" - } - }, - "required": [ - "start", - "end" - ], - "type": "object" - }, - "timezone": { - "description": "The ISO time zone for the `hours` values. Values such as `UTC` and `UTC+1` also work but lack built-in daylight savings time support and are not recommended.", - "type": "string" - } - }, - "required": [ - "days", - "hours", - "timezone" - ], - "type": "object" - } - }, - "type": "object" - }, - "frequency": { - "additionalProperties": false, - "properties": { - "notify_when": { - "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "enum": [ - "onActionGroupChange", - "onActiveAlert", - "onThrottleInterval" - ], - "type": "string" - }, - "summary": { - "description": "Indicates whether the action is a summary.", - "type": "boolean" - }, - "throttle": { - "description": "The throttle interval, which defines how often an alert generates repeated actions. It is specified in seconds, minutes, hours, or days and is applicable only if `notify_when` is set to `onThrottleInterval`. NOTE: You cannot specify the throttle interval at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "summary", - "notify_when", - "throttle" - ], - "type": "object" - }, - "group": { - "description": "The group name, which affects when the action runs (for example, when the threshold is met or when the alert is recovered). Each rule type has a list of valid action group names. If you don't need to group actions, set to `default`.", - "type": "string" - }, - "id": { - "description": "The identifier for the connector saved object.", - "type": "string" - }, - "params": { - "additionalProperties": {}, - "default": {}, - "description": "The parameters for the action, which are sent to the connector. The `params` are handled as Mustache templates and passed a default set of context.", - "type": "object" - }, - "use_alert_data_for_template": { - "description": "Indicates whether to use alert data as a template.", - "type": "boolean" - }, - "uuid": { - "description": "A universally unique identifier (UUID) for the action.", - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "type": "array" - }, - "alert_delay": { - "additionalProperties": false, - "description": "Indicates that an alert occurs only when the specified number of consecutive runs met the rule conditions.", - "properties": { - "active": { - "description": "The number of consecutive runs that must meet the rule conditions.", - "type": "number" - } - }, - "required": [ - "active" - ], - "type": "object" - }, - "artifacts": { - "additionalProperties": false, - "properties": { - "dashboards": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "investigation_guide": { - "additionalProperties": false, - "properties": { - "blob": { - "maxLength": 10000, - "type": "string" - } - }, - "required": [ - "blob" - ], - "type": "object" - } - }, - "type": "object" - }, - "consumer": { - "description": "The name of the application or feature that owns the rule. For example: `alerts`, `apm`, `discover`, `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, `securitySolution`, `siem`, `stackAlerts`, or `uptime`.", - "type": "string" - }, - "enabled": { - "default": true, - "description": "Indicates whether you want to run the rule on an interval basis after it is created.", - "type": "boolean" - }, - "flapping": { - "additionalProperties": false, - "description": "When flapping detection is turned on, alerts that switch quickly between active and recovered states are identified as “flapping” and notifications are reduced.", - "nullable": true, - "properties": { - "enabled": { - "description": "Determines whether the rule can enter the flapping state. By default, rules can enter the flapping state.", - "type": "boolean" - }, - "look_back_window": { - "description": "The minimum number of runs in which the threshold must be met.", - "maximum": 20, - "minimum": 2, - "type": "number" - }, - "status_change_threshold": { - "description": "The minimum number of times an alert must switch states in the look back window.", - "maximum": 20, - "minimum": 2, - "type": "number" - } - }, - "required": [ - "look_back_window", - "status_change_threshold" - ], - "type": "object" - }, - "name": { - "description": "The name of the rule. While this name does not have to be unique, a distinctive name can help you identify a rule.", - "type": "string" - }, - "notify_when": { - "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "enum": [ - "onActionGroupChange", - "onActiveAlert", - "onThrottleInterval" - ], - "nullable": true, - "type": "string" - }, - "params": { - "additionalProperties": {}, - "default": {}, - "description": "The parameters for the rule.", - "type": "object" - }, - "rule_type_id": { - "description": "The rule type identifier.", - "type": "string" - }, - "schedule": { - "additionalProperties": false, - "description": "The check interval, which specifies how frequently the rule conditions are checked.", - "properties": { - "interval": { - "description": "The interval is specified in seconds, minutes, hours, or days.", - "type": "string" - } - }, - "required": [ - "interval" - ], - "type": "object" - }, - "tags": { - "default": [], - "description": "The tags for the rule.", - "items": { - "type": "string" - }, - "type": "array" - }, - "throttle": { - "description": "Use the `throttle` property in the action `frequency` object instead. The throttle interval, which defines how often an alert generates repeated actions. NOTE: You cannot specify the throttle interval at both the rule and action level. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "name", - "rule_type_id", - "consumer", - "schedule" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "createEsQueryEsqlRuleResponse": { - "description": "The response for successfully creating an Elasticsearch query rule that uses Elasticsearch Query Language (ES|QL).", - "summary": "Elasticsearch query rule (ES|QL)", - "value": { - "actions": [ - { - "connector_type_id": ".server-log", - "frequency": { - "notify_when": "onActiveAlert", - "summary": false, - "throttle": null - }, - "group": "query matched", - "id": "d0db1fe0-78d6-11ee-9177-f7d404c8c945", - "params": { - "level": "info", - "message": "Elasticsearch query rule '{{rule.name}}' is active:\n- Value: {{context.value}} - Conditions Met: {{context.conditions}} over {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}} - Timestamp: {{context.date}} - Link: {{context.link}}" - }, - "uuid": "bfe370a3-531b-4855-bbe6-ad739f578844" - } - ], - "api_key_created_by_user": false, - "api_key_owner": "elastic", - "consumer": "stackAlerts", - "created_at": "2023-11-01T19:00:10.453Z", - "created_by": "elastic", - "enabled": true, - "execution_status": { - "last_execution_date": "2023-11-01T19:00:10.453Z", - "status": "pending" - }, - "id": "e0d62360-78e8-11ee-9177-f7d404c8c945", - "mute_all": false, - "muted_alert_ids": [], - "name": "my Elasticsearch query ESQL rule", - "notify_when": null, - "params": { - "aggType": "count", - "esqlQuery": { - "esql": "FROM kibana_sample_data_logs | keep bytes, clientip, host, geo.dest | WHERE geo.dest != \"GB\" | stats sumbytes = sum(bytes) by clientip, host | WHERE sumbytes > 5000 | sort sumbytes desc | limit 10" - }, - "excludeHitsFromPreviousRun\"": "true,", - "groupBy": "all", - "searchType": "esqlQuery", - "size": 0, - "threshold": [ - 0 - ], - "thresholdComparator": ">", - "timeField": "@timestamp", - "timeWindowSize": 1, - "timeWindowUnit": "d" - }, - "revision": 0, - "rule_type_id": ".es-query", - "running": false, - "schedule": { - "interval": "1d" - }, - "scheduled_task_id": "e0d62360-78e8-11ee-9177-f7d404c8c945", - "tags": [], - "throttle": null, - "updated_at": "2023-11-01T19:00:10.453Z", - "updated_by": "elastic\"," - } - }, - "createEsQueryKqlRuleResponse": { - "description": "The response for successfully creating an Elasticsearch query rule that uses Kibana query language (KQL).", - "summary": "Elasticsearch query rule (KQL)", - "value": { - "actions": [], - "api_key_created_by_user": false, - "api_key_owner": "elastic", - "consumer": "alerts", - "created_at": "2023-07-14T20:24:50.729Z", - "created_by": "elastic", - "enabled": true, - "execution_status": { - "last_execution_date": "2023-07-14T20:24:50.729Z", - "status": "pending" - }, - "id": "7bd506d0-2284-11ee-8fad-6101956ced88", - "mute_all": false, - "muted_alert_ids": [], - "name": "my Elasticsearch query KQL rule\"", - "notify_when": null, - "params": { - "aggType": "count", - "excludeHitsFromPreviousRun": true, - "groupBy": "all", - "searchConfiguration": { - "index": "90943e30-9a47-11e8-b64d-95841ca0b247", - "query": { - "language": "kuery", - "query": "\"\"geo.src : \"US\" \"\"" - } - }, - "searchType": "searchSource", - "size": 100, - "threshold": [ - 1000 - ], - "thresholdComparator": ">", - "timeWindowSize": 5, - "timeWindowUnit": "m" - }, - "revision": 0, - "rule_type_id": ".es-query", - "running": false, - "schedule": { - "interval": "1m" - }, - "scheduled_task_id": "7bd506d0-2284-11ee-8fad-6101956ced88", - "tags": [], - "throttle": null, - "updated_at": "2023-07-14T20:24:50.729Z", - "updated_by": "elastic" - } - }, - "createEsQueryRuleResponse": { - "description": "The response for successfully creating an Elasticsearch query rule that uses Elasticsearch query domain specific language (DSL).", - "summary": "Elasticsearch query rule (DSL)", - "value": { - "actions": [ - { - "connector_type_id": ".server-log", - "frequency": { - "notify_when": "onThrottleInterval", - "summary": true, - "throttle": "1d" - }, - "group": "query matched", - "id": "fdbece50-406c-11ee-850e-c71febc4ca7f", - "params": { - "level": "info", - "message": "The system has detected {{alerts.new.count}} new, {{alerts.ongoing.count}} ongoing, and {{alerts.recovered.count}} recovered alerts." - }, - "uuid": "53f3c2a3-e5d0-4cfa-af3b-6f0881385e78" - }, - { - "connector_type_id": ".server-log", - "frequency": { - "notify_when": "onActionGroupChange", - "summary": false, - "throttle": null - }, - "group": "recovered", - "id": "fdbece50-406c-11ee-850e-c71febc4ca7f", - "params": { - "level": "info", - "message": "Recovered" - }, - "uuid": "2324e45b-c0df-45c7-9d70-4993e30be758" - } - ], - "api_key_created_by_user": false, - "api_key_owner": "elastic", - "consumer": "alerts", - "created_at": "2023-08-22T00:03:38.263Z", - "created_by": "elastic", - "enabled": true, - "execution_status": { - "last_execution_date": "2023-08-22T00:03:38.263Z", - "status": "pending" - }, - "id": "58148c70-407f-11ee-850e-c71febc4ca7f", - "mute_all": false, - "muted_alert_ids": [], - "name": "my Elasticsearch query rule", - "notify_when": null, - "params": { - "aggType": "count", - "esQuery": "\"\"\"{\"query\":{\"match_all\" : {}}}\"\"\"", - "excludeHitsFromPreviousRun": true, - "groupBy": "all", - "index": [ - "kibana_sample_data_logs" - ], - "searchType": "esQuery", - "size": 100, - "threshold": [ - 100 - ], - "thresholdComparator": ">", - "timeField": "@timestamp", - "timeWindowSize": 1, - "timeWindowUnit": "d" - }, - "revision": 0, - "rule_type_id": ".es-query", - "running": false, - "schedule": { - "interval": "1d" - }, - "scheduled_task_id": "58148c70-407f-11ee-850e-c71febc4ca7f", - "tags": [], - "throttle": null, - "updated_at": "2023-08-22T00:03:38.263Z", - "updated_by": "elastic" - } - }, - "createIndexThresholdRuleResponse": { - "description": "The response for successfully creating an index threshold rule.", - "summary": "Index threshold rule", - "value": { - "actions": [ - { - "connector_type_id": ".server-log", - "frequency": { - "notify_when": "onActionGroupChange", - "summary": false, - "throttle": null - }, - "group": "threshold met", - "id": "dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2", - "params": { - "level": "info", - "message": "Rule {{rule.name}} is active for group {{context.group} :\n\n- Value: {{context.value}}\n- Conditions Met: {{context.conditions}} over {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}}\n- Timestamp: {{context.date}}" - }, - "uuid": "07aef2a0-9eed-4ef9-94ec-39ba58eb609d" - } - ], - "alert_delay": { - "active": 3 - }, - "api_key_created_by_user": false, - "api_key_owner": "elastic", - "consumer": "alerts", - "created_at": "2022-06-08T17:20:31.632Z", - "created_by": "elastic", - "enabled": true, - "execution_status": { - "last_execution_date": "2022-06-08T17:20:31.632Z", - "status": "pending" - }, - "id": "41893910-6bca-11eb-9e0d-85d233e3ee35", - "mute_all": false, - "muted_alert_ids": [], - "name": "my rule", - "notify_when": null, - "params": { - "aggField": "sheet.version", - "aggType": "avg", - "groupBy": "top", - "index": [ - ".test-index" - ], - "termField": "name.keyword", - "termSize": 6, - "threshold": [ - 1000 - ], - "thresholdComparator": ">", - "timeField": "@timestamp", - "timeWindowSize": 5, - "timeWindowUnit": "m" - }, - "revision": 0, - "rule_type_id": ".index-threshold", - "running": false, - "schedule": { - "interval": "1m" - }, - "scheduled_task_id": "425b0800-6bca-11eb-9e0d-85d233e3ee35", - "tags": [ - "cpu" - ], - "throttle": null, - "updated_at": "2022-06-08T17:20:31.632Z", - "updated_by": "elastic" - } - }, - "createTrackingContainmentRuleResponse": { - "description": "The response for successfully creating a tracking containment rule.", - "summary": "Tracking containment rule", - "value": { - "actions": [], - "api_key_created_by_user": false, - "api_key_owner": "elastic", - "consumer": "alerts", - "created_at": "2024-02-14T19:52:55.920Z", - "created_by": "elastic", - "enabled": true, - "execution_status": { - "last_duration": 74, - "last_execution_date": "2024-02-15T03:25:38.125Z", - "status": "ok" - }, - "id": "b6883f9d-5f70-4758-a66e-369d7c26012f", - "last_run": { - "alerts_count": { - "active": 0, - "ignored": 0, - "new": 0, - "recovered": 0 - }, - "outcome": "succeeded", - "outcome_msg": null, - "outcome_order": 0, - "warning": null - }, - "mute_all": false, - "muted_alert_ids": [], - "name": "my tracking rule", - "next_run": "2024-02-15T03:26:38.033Z", - "notify_when": null, - "params": { - "boundaryGeoField": "location", - "boundaryIndexId": "0cd90abf-abe7-44c7-909a-f621bbbcfefc", - "boundaryIndexTitle": "boundary*", - "boundaryNameField": "name", - "boundaryType": "entireIndex", - "dateField": "@timestamp", - "entity": "agent.keyword", - "geoField": "geo.coordinates", - "index": "kibana_sample_data_logs", - "indexId": "90943e30-9a47-11e8-b64d-95841ca0b247" - }, - "revision": 1, - "rule_type_id": ".geo-containment", - "running": false, - "schedule": { - "interval": "1h" - }, - "scheduled_task_id": "b6883f9d-5f70-4758-a66e-369d7c26012f", - "tags": [], - "throttle": null, - "updated_at": "2024-02-15T03:24:32.574Z", - "updated_by": "elastic" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "actions": { - "items": { - "additionalProperties": false, - "properties": { - "alerts_filter": { - "additionalProperties": false, - "description": "Defines a period that limits whether the action runs.", - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "dsl": { - "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL).", - "type": "string" - }, - "filters": { - "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL) as defined in the `kbn-es-query` package.", - "items": { - "additionalProperties": false, - "properties": { - "$state": { - "additionalProperties": false, - "properties": { - "store": { - "description": "A filter can be either specific to an application context or applied globally.", - "enum": [ - "appState", - "globalState" - ], - "type": "string" - } - }, - "required": [ - "store" - ], - "type": "object" - }, - "meta": { - "additionalProperties": {}, - "type": "object" - }, - "query": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "meta" - ], - "type": "object" - }, - "type": "array" - }, - "kql": { - "description": "A filter written in Kibana Query Language (KQL).", - "type": "string" - } - }, - "required": [ - "kql", - "filters" - ], - "type": "object" - }, - "timeframe": { - "additionalProperties": false, - "properties": { - "days": { - "description": "Defines the days of the week that the action can run, represented as an array of numbers. For example, `1` represents Monday. An empty array is equivalent to specifying all the days of the week.", - "items": { - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "type": "integer" - }, - "type": "array" - }, - "hours": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end of the time frame in 24-hour notation (`hh:mm`).", - "type": "string" - }, - "start": { - "description": "The start of the time frame in 24-hour notation (`hh:mm`).", - "type": "string" - } - }, - "required": [ - "start", - "end" - ], - "type": "object" - }, - "timezone": { - "description": "The ISO time zone for the `hours` values. Values such as `UTC` and `UTC+1` also work but lack built-in daylight savings time support and are not recommended.", - "type": "string" - } - }, - "required": [ - "days", - "hours", - "timezone" - ], - "type": "object" - } - }, - "type": "object" - }, - "connector_type_id": { - "description": "The type of connector. This property appears in responses but cannot be set in requests.", - "type": "string" - }, - "frequency": { - "additionalProperties": false, - "properties": { - "notify_when": { - "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "enum": [ - "onActionGroupChange", - "onActiveAlert", - "onThrottleInterval" - ], - "type": "string" - }, - "summary": { - "description": "Indicates whether the action is a summary.", - "type": "boolean" - }, - "throttle": { - "description": "The throttle interval, which defines how often an alert generates repeated actions. It is specified in seconds, minutes, hours, or days and is applicable only if 'notify_when' is set to 'onThrottleInterval'. NOTE: You cannot specify the throttle interval at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "summary", - "notify_when", - "throttle" - ], - "type": "object" - }, - "group": { - "description": "The group name, which affects when the action runs (for example, when the threshold is met or when the alert is recovered). Each rule type has a list of valid action group names. If you don't need to group actions, set to `default`.", - "type": "string" - }, - "id": { - "description": "The identifier for the connector saved object.", - "type": "string" - }, - "params": { - "additionalProperties": {}, - "description": "The parameters for the action, which are sent to the connector. The `params` are handled as Mustache templates and passed a default set of context.", - "type": "object" - }, - "use_alert_data_for_template": { - "description": "Indicates whether to use alert data as a template.", - "type": "boolean" - }, - "uuid": { - "description": "A universally unique identifier (UUID) for the action.", - "type": "string" - } - }, - "required": [ - "id", - "connector_type_id", - "params" - ], - "type": "object" - }, - "type": "array" - }, - "active_snoozes": { - "items": { - "description": "List of active snoozes for the rule.", - "type": "string" - }, - "type": "array" - }, - "alert_delay": { - "additionalProperties": false, - "description": "Indicates that an alert occurs only when the specified number of consecutive runs met the rule conditions.", - "properties": { - "active": { - "description": "The number of consecutive runs that must meet the rule conditions.", - "type": "number" - } - }, - "required": [ - "active" - ], - "type": "object" - }, - "api_key_created_by_user": { - "description": "Indicates whether the API key that is associated with the rule was created by the user.", - "nullable": true, - "type": "boolean" - }, - "api_key_owner": { - "description": "The owner of the API key that is associated with the rule and used to run background tasks.", - "nullable": true, - "type": "string" - }, - "artifacts": { - "additionalProperties": false, - "properties": { - "dashboards": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "type": "array" - }, - "investigation_guide": { - "additionalProperties": false, - "properties": { - "blob": { - "description": "User-created content that describes alert causes and remdiation.", - "type": "string" - } - }, - "required": [ - "blob" - ], - "type": "object" - } - }, - "type": "object" - }, - "consumer": { - "description": "The name of the application or feature that owns the rule. For example: `alerts`, `apm`, `discover`, `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, `securitySolution`, `siem`, `stackAlerts`, or `uptime`.", - "type": "string" - }, - "created_at": { - "description": "The date and time that the rule was created.", - "type": "string" - }, - "created_by": { - "description": "The identifier for the user that created the rule.", - "nullable": true, - "type": "string" - }, - "enabled": { - "description": "Indicates whether you want to run the rule on an interval basis after it is created.", - "type": "boolean" - }, - "execution_status": { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "message": { - "description": "Error message.", - "type": "string" - }, - "reason": { - "description": "Reason for error.", - "enum": [ - "read", - "decrypt", - "execute", - "unknown", - "license", - "timeout", - "disabled", - "validate" - ], - "type": "string" - } - }, - "required": [ - "reason", - "message" - ], - "type": "object" - }, - "last_duration": { - "description": "Duration of last execution of the rule.", - "type": "number" - }, - "last_execution_date": { - "description": "The date and time when rule was executed last.", - "type": "string" - }, - "status": { - "description": "Status of rule execution.", - "enum": [ - "ok", - "active", - "error", - "warning", - "pending", - "unknown" - ], - "type": "string" - }, - "warning": { - "additionalProperties": false, - "properties": { - "message": { - "description": "Warning message.", - "type": "string" - }, - "reason": { - "description": "Reason for warning.", - "enum": [ - "maxExecutableActions", - "maxAlerts", - "maxQueuedActions", - "ruleExecution" - ], - "type": "string" - } - }, - "required": [ - "reason", - "message" - ], - "type": "object" - } - }, - "required": [ - "status", - "last_execution_date" - ], - "type": "object" - }, - "flapping": { - "additionalProperties": false, - "description": "When flapping detection is turned on, alerts that switch quickly between active and recovered states are identified as “flapping” and notifications are reduced.", - "nullable": true, - "properties": { - "enabled": { - "description": "Determines whether the rule can enter the flapping state. By default, rules can enter the flapping state.", - "type": "boolean" - }, - "look_back_window": { - "description": "The minimum number of runs in which the threshold must be met.", - "maximum": 20, - "minimum": 2, - "type": "number" - }, - "status_change_threshold": { - "description": "The minimum number of times an alert must switch states in the look back window.", - "maximum": 20, - "minimum": 2, - "type": "number" - } - }, - "required": [ - "look_back_window", - "status_change_threshold" - ], - "type": "object" - }, - "id": { - "description": "The identifier for the rule.", - "type": "string" - }, - "is_snoozed_until": { - "description": "The date when the rule will no longer be snoozed.", - "nullable": true, - "type": "string" - }, - "last_run": { - "additionalProperties": false, - "nullable": true, - "properties": { - "alerts_count": { - "additionalProperties": false, - "properties": { - "active": { - "description": "Number of active alerts during last run.", - "nullable": true, - "type": "number" - }, - "ignored": { - "description": "Number of ignored alerts during last run.", - "nullable": true, - "type": "number" - }, - "new": { - "description": "Number of new alerts during last run.", - "nullable": true, - "type": "number" - }, - "recovered": { - "description": "Number of recovered alerts during last run.", - "nullable": true, - "type": "number" - } - }, - "type": "object" - }, - "outcome": { - "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", - "enum": [ - "succeeded", - "warning", - "failed" - ], - "type": "string" - }, - "outcome_msg": { - "items": { - "description": "Outcome message generated during last rule run.", - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "outcome_order": { - "description": "Order of the outcome.", - "type": "number" - }, - "warning": { - "description": "Warning of last rule execution.", - "enum": [ - "read", - "decrypt", - "execute", - "unknown", - "license", - "timeout", - "disabled", - "validate", - "maxExecutableActions", - "maxAlerts", - "maxQueuedActions", - "ruleExecution" - ], - "nullable": true, - "type": "string" - } - }, - "required": [ - "outcome", - "alerts_count" - ], - "type": "object" - }, - "mapped_params": { - "additionalProperties": {}, - "type": "object" - }, - "monitoring": { - "additionalProperties": false, - "description": "Monitoring details of the rule.", - "properties": { - "run": { - "additionalProperties": false, - "description": "Rule run details.", - "properties": { - "calculated_metrics": { - "additionalProperties": false, - "description": "Calculation of different percentiles and success ratio.", - "properties": { - "p50": { - "type": "number" - }, - "p95": { - "type": "number" - }, - "p99": { - "type": "number" - }, - "success_ratio": { - "type": "number" - } - }, - "required": [ - "success_ratio" - ], - "type": "object" - }, - "history": { - "description": "History of the rule run.", - "items": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "Duration of the rule run.", - "type": "number" - }, - "outcome": { - "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", - "enum": [ - "succeeded", - "warning", - "failed" - ], - "type": "string" - }, - "success": { - "description": "Indicates whether the rule run was successful.", - "type": "boolean" - }, - "timestamp": { - "description": "Time of rule run.", - "type": "number" - } - }, - "required": [ - "success", - "timestamp" - ], - "type": "object" - }, - "type": "array" - }, - "last_run": { - "additionalProperties": false, - "properties": { - "metrics": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "Duration of most recent rule run.", - "type": "number" - }, - "gap_duration_s": { - "description": "Duration in seconds of rule run gap.", - "nullable": true, - "type": "number" - }, - "gap_range": { - "additionalProperties": false, - "nullable": true, - "properties": { - "gte": { - "description": "End of the gap range.", - "type": "string" - }, - "lte": { - "description": "Start of the gap range.", - "type": "string" - } - }, - "required": [ - "lte", - "gte" - ], - "type": "object" - }, - "total_alerts_created": { - "description": "Total number of alerts created during last rule run.", - "nullable": true, - "type": "number" - }, - "total_alerts_detected": { - "description": "Total number of alerts detected during last rule run.", - "nullable": true, - "type": "number" - }, - "total_indexing_duration_ms": { - "description": "Total time spent indexing documents during last rule run in milliseconds.", - "nullable": true, - "type": "number" - }, - "total_search_duration_ms": { - "description": "Total time spent performing Elasticsearch searches as measured by Kibana; includes network latency and time spent serializing or deserializing the request and response.", - "nullable": true, - "type": "number" - } - }, - "type": "object" - }, - "timestamp": { - "description": "Time of the most recent rule run.", - "type": "string" - } - }, - "required": [ - "timestamp", - "metrics" - ], - "type": "object" - } - }, - "required": [ - "history", - "calculated_metrics", - "last_run" - ], - "type": "object" - } - }, - "required": [ - "run" - ], - "type": "object" - }, - "mute_all": { - "description": "Indicates whether all alerts are muted.", - "type": "boolean" - }, - "muted_alert_ids": { - "items": { - "description": "List of identifiers of muted alerts. ", - "type": "string" - }, - "type": "array" - }, - "name": { - "description": " The name of the rule.", - "type": "string" - }, - "next_run": { - "description": "Date and time of the next run of the rule.", - "nullable": true, - "type": "string" - }, - "notify_when": { - "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "enum": [ - "onActionGroupChange", - "onActiveAlert", - "onThrottleInterval" - ], - "nullable": true, - "type": "string" - }, - "params": { - "additionalProperties": {}, - "description": "The parameters for the rule.", - "type": "object" - }, - "revision": { - "description": "The rule revision number.", - "type": "number" - }, - "rule_type_id": { - "description": "The rule type identifier.", - "type": "string" - }, - "running": { - "description": "Indicates whether the rule is running.", - "nullable": true, - "type": "boolean" - }, - "schedule": { - "additionalProperties": false, - "properties": { - "interval": { - "description": "The interval is specified in seconds, minutes, hours, or days.", - "type": "string" - } - }, - "required": [ - "interval" - ], - "type": "object" - }, - "scheduled_task_id": { - "description": "Identifier of the scheduled task.", - "type": "string" - }, - "snooze_schedule": { - "items": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "Duration of the rule snooze schedule.", - "type": "number" - }, - "id": { - "description": "Identifier of the rule snooze schedule.", - "type": "string" - }, - "rRule": { - "additionalProperties": false, - "properties": { - "byhour": { - "items": { - "description": "Indicates hours of the day to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "byminute": { - "items": { - "description": "Indicates minutes of the hour to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bymonth": { - "items": { - "description": "Indicates months of the year that this rule should recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bymonthday": { - "items": { - "description": "Indicates the days of the month to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bysecond": { - "items": { - "description": "Indicates seconds of the day to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bysetpos": { - "items": { - "description": "A positive or negative integer affecting the nth day of the month. For example, -2 combined with `byweekday` of FR is 2nd to last Friday of the month. It is recommended to not set this manually and just use `byweekday`.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "byweekday": { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ], - "description": "Indicates the days of the week to recur or else nth-day-of-month strings. For example, \"+2TU\" second Tuesday of month, \"-1FR\" last Friday of the month, which are internally converted to a `byweekday/bysetpos` combination." - }, - "nullable": true, - "type": "array" - }, - "byweekno": { - "items": { - "description": "Indicates number of the week hours to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "byyearday": { - "items": { - "description": "Indicates the days of the year that this rule should recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "count": { - "description": "Number of times the rule should recur until it stops.", - "type": "number" - }, - "dtstart": { - "description": "Rule start date in Coordinated Universal Time (UTC).", - "type": "string" - }, - "freq": { - "description": "Indicates frequency of the rule. Options are YEARLY, MONTHLY, WEEKLY, DAILY.", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ], - "type": "integer" - }, - "interval": { - "description": "Indicates the interval of frequency. For example, 1 and YEARLY is every 1 year, 2 and WEEKLY is every 2 weeks.", - "type": "number" - }, - "tzid": { - "description": "Indicates timezone abbreviation.", - "type": "string" - }, - "until": { - "description": "Recur the rule until this date.", - "type": "string" - }, - "wkst": { - "description": "Indicates the start of week, defaults to Monday.", - "enum": [ - "MO", - "TU", - "WE", - "TH", - "FR", - "SA", - "SU" - ], - "type": "string" - } - }, - "required": [ - "dtstart", - "tzid" - ], - "type": "object" - }, - "skipRecurrences": { - "items": { - "description": "Skips recurrence of rule on this date.", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "duration", - "rRule" - ], - "type": "object" - }, - "type": "array" - }, - "tags": { - "items": { - "description": "The tags for the rule.", - "type": "string" - }, - "type": "array" - }, - "throttle": { - "deprecated": true, - "description": "Deprecated in 8.13.0. Use the `throttle` property in the action `frequency` object instead. The throttle interval, which defines how often an alert generates repeated actions. NOTE: You cannot specify the throttle interval at both the rule and action level. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "nullable": true, - "type": "string" - }, - "updated_at": { - "description": "The date and time that the rule was updated most recently.", - "type": "string" - }, - "updated_by": { - "description": "The identifier for the user that updated this rule most recently.", - "nullable": true, - "type": "string" - }, - "view_in_app_relative_url": { - "description": "Relative URL to view rule in the app.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "id", - "enabled", - "name", - "tags", - "rule_type_id", - "consumer", - "schedule", - "actions", - "params", - "created_by", - "updated_by", - "created_at", - "updated_at", - "api_key_owner", - "mute_all", - "muted_alert_ids", - "execution_status", - "revision" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "409": { - "description": "Indicates that the rule id is already in use." - } - }, - "summary": "Create a rule", - "tags": [ - "alerting" - ] - }, - "put": { - "operationId": "put-alerting-rule-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the rule.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "updateRuleRequest": { - "description": "Update an index threshold rule that uses a server log connector to send notifications when the threshold is met.", - "summary": "Index threshold rule", - "value": { - "actions": [ - { - "frequency": { - "notify_when": "onActionGroupChange", - "summary": false - }, - "group": "threshold met", - "id": "96b668d0-a1b6-11ed-afdf-d39a49596974", - "params": { - "level": "info", - "message": "Rule {{rule.name}} is active for group {{context.group}}:\n\n- Value: {{context.value}}\n- Conditions Met: {{context.conditions}} over {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}}\n- Timestamp: {{context.date}}" - } - } - ], - "name": "new name", - "params": { - "aggField": "sheet.version", - "aggType": "avg", - "groupBy": "top", - "index": [ - ".updated-index" - ], - "termField": "name.keyword", - "termSize": 6, - "threshold": [ - 1000 - ], - "thresholdComparator": ">", - "timeField": "@timestamp", - "timeWindowSize": 5, - "timeWindowUnit": "m" - }, - "schedule": { - "interval": "1m" - }, - "tags": [] - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "actions": { - "default": [], - "items": { - "additionalProperties": false, - "description": "An action that runs under defined conditions.", - "properties": { - "alerts_filter": { - "additionalProperties": false, - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "dsl": { - "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL).", - "type": "string" - }, - "filters": { - "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL) as defined in the `kbn-es-query` package.", - "items": { - "additionalProperties": false, - "properties": { - "$state": { - "additionalProperties": false, - "properties": { - "store": { - "description": "A filter can be either specific to an application context or applied globally.", - "enum": [ - "appState", - "globalState" - ], - "type": "string" - } - }, - "required": [ - "store" - ], - "type": "object" - }, - "meta": { - "additionalProperties": {}, - "type": "object" - }, - "query": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "meta" - ], - "type": "object" - }, - "type": "array" - }, - "kql": { - "description": "A filter written in Kibana Query Language (KQL).", - "type": "string" - } - }, - "required": [ - "kql", - "filters" - ], - "type": "object" - }, - "timeframe": { - "additionalProperties": false, - "description": "Defines a period that limits whether the action runs.", - "properties": { - "days": { - "description": "Defines the days of the week that the action can run, represented as an array of numbers. For example, `1` represents Monday. An empty array is equivalent to specifying all the days of the week.", - "items": { - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "type": "integer" - }, - "type": "array" - }, - "hours": { - "additionalProperties": false, - "description": "Defines the range of time in a day that the action can run. If the `start` value is `00:00` and the `end` value is `24:00`, actions be generated all day.", - "properties": { - "end": { - "description": "The end of the time frame in 24-hour notation (`hh:mm`).", - "type": "string" - }, - "start": { - "description": "The start of the time frame in 24-hour notation (`hh:mm`).", - "type": "string" - } - }, - "required": [ - "start", - "end" - ], - "type": "object" - }, - "timezone": { - "description": "The ISO time zone for the `hours` values. Values such as `UTC` and `UTC+1` also work but lack built-in daylight savings time support and are not recommended.", - "type": "string" - } - }, - "required": [ - "days", - "hours", - "timezone" - ], - "type": "object" - } - }, - "type": "object" - }, - "frequency": { - "additionalProperties": false, - "properties": { - "notify_when": { - "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "enum": [ - "onActionGroupChange", - "onActiveAlert", - "onThrottleInterval" - ], - "type": "string" - }, - "summary": { - "description": "Indicates whether the action is a summary.", - "type": "boolean" - }, - "throttle": { - "description": "The throttle interval, which defines how often an alert generates repeated actions. It is specified in seconds, minutes, hours, or days and is applicable only if `notify_when` is set to `onThrottleInterval`. NOTE: You cannot specify the throttle interval at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "summary", - "notify_when", - "throttle" - ], - "type": "object" - }, - "group": { - "description": "The group name, which affects when the action runs (for example, when the threshold is met or when the alert is recovered). Each rule type has a list of valid action group names. If you don't need to group actions, set to `default`.", - "type": "string" - }, - "id": { - "description": "The identifier for the connector saved object.", - "type": "string" - }, - "params": { - "additionalProperties": {}, - "default": {}, - "description": "The parameters for the action, which are sent to the connector. The `params` are handled as Mustache templates and passed a default set of context.", - "type": "object" - }, - "use_alert_data_for_template": { - "description": "Indicates whether to use alert data as a template.", - "type": "boolean" - }, - "uuid": { - "description": "A universally unique identifier (UUID) for the action.", - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "type": "array" - }, - "alert_delay": { - "additionalProperties": false, - "description": "Indicates that an alert occurs only when the specified number of consecutive runs met the rule conditions.", - "properties": { - "active": { - "description": "The number of consecutive runs that must meet the rule conditions.", - "type": "number" - } - }, - "required": [ - "active" - ], - "type": "object" - }, - "artifacts": { - "additionalProperties": false, - "properties": { - "dashboards": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "investigation_guide": { - "additionalProperties": false, - "properties": { - "blob": { - "maxLength": 10000, - "type": "string" - } - }, - "required": [ - "blob" - ], - "type": "object" - } - }, - "type": "object" - }, - "flapping": { - "additionalProperties": false, - "description": "When flapping detection is turned on, alerts that switch quickly between active and recovered states are identified as “flapping” and notifications are reduced.", - "nullable": true, - "properties": { - "enabled": { - "description": "Determines whether the rule can enter the flapping state. By default, rules can enter the flapping state.", - "type": "boolean" - }, - "look_back_window": { - "description": "The minimum number of runs in which the threshold must be met.", - "maximum": 20, - "minimum": 2, - "type": "number" - }, - "status_change_threshold": { - "description": "The minimum number of times an alert must switch states in the look back window.", - "maximum": 20, - "minimum": 2, - "type": "number" - } - }, - "required": [ - "look_back_window", - "status_change_threshold" - ], - "type": "object" - }, - "name": { - "description": "The name of the rule. While this name does not have to be unique, a distinctive name can help you identify a rule.", - "type": "string" - }, - "notify_when": { - "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "enum": [ - "onActionGroupChange", - "onActiveAlert", - "onThrottleInterval" - ], - "nullable": true, - "type": "string" - }, - "params": { - "additionalProperties": {}, - "default": {}, - "description": "The parameters for the rule.", - "type": "object" - }, - "schedule": { - "additionalProperties": false, - "properties": { - "interval": { - "description": "The interval is specified in seconds, minutes, hours, or days.", - "type": "string" - } - }, - "required": [ - "interval" - ], - "type": "object" - }, - "tags": { - "default": [], - "items": { - "description": "The tags for the rule.", - "type": "string" - }, - "type": "array" - }, - "throttle": { - "description": "Use the `throttle` property in the action `frequency` object instead. The throttle interval, which defines how often an alert generates repeated actions. NOTE: You cannot specify the throttle interval at both the rule and action level. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "name", - "schedule" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "updateRuleResponse": { - "description": "The response for successfully updating an index threshold rule.", - "summary": "Index threshold rule", - "value": { - "actions": [ - { - "connector_type_id": ".server-log", - "frequency": { - "notify_when": "onActionGroupChange", - "summary": false, - "throttle": null - }, - "group": "threshold met", - "id": "96b668d0-a1b6-11ed-afdf-d39a49596974", - "params": { - "level": "info", - "message": "Rule {{rule.name}} is active for group {{context.group}}:\n\n- Value: {{context.value}}\n- Conditions Met: {{context.conditions}} over {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}}\n- Timestamp: {{context.date}" - }, - "uuid": "07aef2a0-9eed-4ef9-94ec-39ba58eb609d" - } - ], - "api_key_created_by_user": false, - "api_key_owner": "elastic", - "consumer": "alerts", - "created_at": "2024-03-26T23:13:20.985Z", - "created_by": "elastic", - "enabled": true, - "execution_status": { - "last_duration": 52, - "last_execution_date": "2024-03-26T23:22:51.390Z", - "status": "ok" - }, - "id": "ac4e6b90-6be7-11eb-ba0d-9b1c1f912d74", - "last_run": { - "alerts_count": { - "active": 0, - "ignored": 0, - "new": 0, - "recovered": 0 - }, - "outcome": "succeeded", - "outcome_msg": null, - "warning": null - }, - "mute_all": false, - "muted_alert_ids": [], - "name": "new name", - "next_run": "2024-03-26T23:23:51.316Z", - "params": { - "aggField": "sheet.version", - "aggType": "avg", - "groupBy": "top", - "index": [ - ".updated-index" - ], - "termField": "name.keyword", - "termSize": 6, - "threshold": [ - 1000 - ], - "thresholdComparator": ">", - "timeField": "@timestamp", - "timeWindowSize": 5, - "timeWindowUnit": "m" - }, - "revision": 1, - "rule_type_id": ".index-threshold", - "running": false, - "schedule": { - "interval": "1m" - }, - "scheduled_task_id": "4c5eda00-e74f-11ec-b72f-5b18752ff9ea", - "tags": [], - "throttle": null, - "updated_at": "2024-03-26T23:22:59.949Z", - "updated_by": "elastic" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "actions": { - "items": { - "additionalProperties": false, - "properties": { - "alerts_filter": { - "additionalProperties": false, - "description": "Defines a period that limits whether the action runs.", - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "dsl": { - "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL).", - "type": "string" - }, - "filters": { - "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL) as defined in the `kbn-es-query` package.", - "items": { - "additionalProperties": false, - "properties": { - "$state": { - "additionalProperties": false, - "properties": { - "store": { - "description": "A filter can be either specific to an application context or applied globally.", - "enum": [ - "appState", - "globalState" - ], - "type": "string" - } - }, - "required": [ - "store" - ], - "type": "object" - }, - "meta": { - "additionalProperties": {}, - "type": "object" - }, - "query": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "meta" - ], - "type": "object" - }, - "type": "array" - }, - "kql": { - "description": "A filter written in Kibana Query Language (KQL).", - "type": "string" - } - }, - "required": [ - "kql", - "filters" - ], - "type": "object" - }, - "timeframe": { - "additionalProperties": false, - "properties": { - "days": { - "description": "Defines the days of the week that the action can run, represented as an array of numbers. For example, `1` represents Monday. An empty array is equivalent to specifying all the days of the week.", - "items": { - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "type": "integer" - }, - "type": "array" - }, - "hours": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end of the time frame in 24-hour notation (`hh:mm`).", - "type": "string" - }, - "start": { - "description": "The start of the time frame in 24-hour notation (`hh:mm`).", - "type": "string" - } - }, - "required": [ - "start", - "end" - ], - "type": "object" - }, - "timezone": { - "description": "The ISO time zone for the `hours` values. Values such as `UTC` and `UTC+1` also work but lack built-in daylight savings time support and are not recommended.", - "type": "string" - } - }, - "required": [ - "days", - "hours", - "timezone" - ], - "type": "object" - } - }, - "type": "object" - }, - "connector_type_id": { - "description": "The type of connector. This property appears in responses but cannot be set in requests.", - "type": "string" - }, - "frequency": { - "additionalProperties": false, - "properties": { - "notify_when": { - "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "enum": [ - "onActionGroupChange", - "onActiveAlert", - "onThrottleInterval" - ], - "type": "string" - }, - "summary": { - "description": "Indicates whether the action is a summary.", - "type": "boolean" - }, - "throttle": { - "description": "The throttle interval, which defines how often an alert generates repeated actions. It is specified in seconds, minutes, hours, or days and is applicable only if 'notify_when' is set to 'onThrottleInterval'. NOTE: You cannot specify the throttle interval at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "summary", - "notify_when", - "throttle" - ], - "type": "object" - }, - "group": { - "description": "The group name, which affects when the action runs (for example, when the threshold is met or when the alert is recovered). Each rule type has a list of valid action group names. If you don't need to group actions, set to `default`.", - "type": "string" - }, - "id": { - "description": "The identifier for the connector saved object.", - "type": "string" - }, - "params": { - "additionalProperties": {}, - "description": "The parameters for the action, which are sent to the connector. The `params` are handled as Mustache templates and passed a default set of context.", - "type": "object" - }, - "use_alert_data_for_template": { - "description": "Indicates whether to use alert data as a template.", - "type": "boolean" - }, - "uuid": { - "description": "A universally unique identifier (UUID) for the action.", - "type": "string" - } - }, - "required": [ - "id", - "connector_type_id", - "params" - ], - "type": "object" - }, - "type": "array" - }, - "active_snoozes": { - "items": { - "description": "List of active snoozes for the rule.", - "type": "string" - }, - "type": "array" - }, - "alert_delay": { - "additionalProperties": false, - "description": "Indicates that an alert occurs only when the specified number of consecutive runs met the rule conditions.", - "properties": { - "active": { - "description": "The number of consecutive runs that must meet the rule conditions.", - "type": "number" - } - }, - "required": [ - "active" - ], - "type": "object" - }, - "api_key_created_by_user": { - "description": "Indicates whether the API key that is associated with the rule was created by the user.", - "nullable": true, - "type": "boolean" - }, - "api_key_owner": { - "description": "The owner of the API key that is associated with the rule and used to run background tasks.", - "nullable": true, - "type": "string" - }, - "artifacts": { - "additionalProperties": false, - "properties": { - "dashboards": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "type": "array" - }, - "investigation_guide": { - "additionalProperties": false, - "properties": { - "blob": { - "description": "User-created content that describes alert causes and remdiation.", - "type": "string" - } - }, - "required": [ - "blob" - ], - "type": "object" - } - }, - "type": "object" - }, - "consumer": { - "description": "The name of the application or feature that owns the rule. For example: `alerts`, `apm`, `discover`, `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, `securitySolution`, `siem`, `stackAlerts`, or `uptime`.", - "type": "string" - }, - "created_at": { - "description": "The date and time that the rule was created.", - "type": "string" - }, - "created_by": { - "description": "The identifier for the user that created the rule.", - "nullable": true, - "type": "string" - }, - "enabled": { - "description": "Indicates whether you want to run the rule on an interval basis after it is created.", - "type": "boolean" - }, - "execution_status": { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "message": { - "description": "Error message.", - "type": "string" - }, - "reason": { - "description": "Reason for error.", - "enum": [ - "read", - "decrypt", - "execute", - "unknown", - "license", - "timeout", - "disabled", - "validate" - ], - "type": "string" - } - }, - "required": [ - "reason", - "message" - ], - "type": "object" - }, - "last_duration": { - "description": "Duration of last execution of the rule.", - "type": "number" - }, - "last_execution_date": { - "description": "The date and time when rule was executed last.", - "type": "string" - }, - "status": { - "description": "Status of rule execution.", - "enum": [ - "ok", - "active", - "error", - "warning", - "pending", - "unknown" - ], - "type": "string" - }, - "warning": { - "additionalProperties": false, - "properties": { - "message": { - "description": "Warning message.", - "type": "string" - }, - "reason": { - "description": "Reason for warning.", - "enum": [ - "maxExecutableActions", - "maxAlerts", - "maxQueuedActions", - "ruleExecution" - ], - "type": "string" - } - }, - "required": [ - "reason", - "message" - ], - "type": "object" - } - }, - "required": [ - "status", - "last_execution_date" - ], - "type": "object" - }, - "flapping": { - "additionalProperties": false, - "description": "When flapping detection is turned on, alerts that switch quickly between active and recovered states are identified as “flapping” and notifications are reduced.", - "nullable": true, - "properties": { - "enabled": { - "description": "Determines whether the rule can enter the flapping state. By default, rules can enter the flapping state.", - "type": "boolean" - }, - "look_back_window": { - "description": "The minimum number of runs in which the threshold must be met.", - "maximum": 20, - "minimum": 2, - "type": "number" - }, - "status_change_threshold": { - "description": "The minimum number of times an alert must switch states in the look back window.", - "maximum": 20, - "minimum": 2, - "type": "number" - } - }, - "required": [ - "look_back_window", - "status_change_threshold" - ], - "type": "object" - }, - "id": { - "description": "The identifier for the rule.", - "type": "string" - }, - "is_snoozed_until": { - "description": "The date when the rule will no longer be snoozed.", - "nullable": true, - "type": "string" - }, - "last_run": { - "additionalProperties": false, - "nullable": true, - "properties": { - "alerts_count": { - "additionalProperties": false, - "properties": { - "active": { - "description": "Number of active alerts during last run.", - "nullable": true, - "type": "number" - }, - "ignored": { - "description": "Number of ignored alerts during last run.", - "nullable": true, - "type": "number" - }, - "new": { - "description": "Number of new alerts during last run.", - "nullable": true, - "type": "number" - }, - "recovered": { - "description": "Number of recovered alerts during last run.", - "nullable": true, - "type": "number" - } - }, - "type": "object" - }, - "outcome": { - "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", - "enum": [ - "succeeded", - "warning", - "failed" - ], - "type": "string" - }, - "outcome_msg": { - "items": { - "description": "Outcome message generated during last rule run.", - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "outcome_order": { - "description": "Order of the outcome.", - "type": "number" - }, - "warning": { - "description": "Warning of last rule execution.", - "enum": [ - "read", - "decrypt", - "execute", - "unknown", - "license", - "timeout", - "disabled", - "validate", - "maxExecutableActions", - "maxAlerts", - "maxQueuedActions", - "ruleExecution" - ], - "nullable": true, - "type": "string" - } - }, - "required": [ - "outcome", - "alerts_count" - ], - "type": "object" - }, - "mapped_params": { - "additionalProperties": {}, - "type": "object" - }, - "monitoring": { - "additionalProperties": false, - "description": "Monitoring details of the rule.", - "properties": { - "run": { - "additionalProperties": false, - "description": "Rule run details.", - "properties": { - "calculated_metrics": { - "additionalProperties": false, - "description": "Calculation of different percentiles and success ratio.", - "properties": { - "p50": { - "type": "number" - }, - "p95": { - "type": "number" - }, - "p99": { - "type": "number" - }, - "success_ratio": { - "type": "number" - } - }, - "required": [ - "success_ratio" - ], - "type": "object" - }, - "history": { - "description": "History of the rule run.", - "items": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "Duration of the rule run.", - "type": "number" - }, - "outcome": { - "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", - "enum": [ - "succeeded", - "warning", - "failed" - ], - "type": "string" - }, - "success": { - "description": "Indicates whether the rule run was successful.", - "type": "boolean" - }, - "timestamp": { - "description": "Time of rule run.", - "type": "number" - } - }, - "required": [ - "success", - "timestamp" - ], - "type": "object" - }, - "type": "array" - }, - "last_run": { - "additionalProperties": false, - "properties": { - "metrics": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "Duration of most recent rule run.", - "type": "number" - }, - "gap_duration_s": { - "description": "Duration in seconds of rule run gap.", - "nullable": true, - "type": "number" - }, - "gap_range": { - "additionalProperties": false, - "nullable": true, - "properties": { - "gte": { - "description": "End of the gap range.", - "type": "string" - }, - "lte": { - "description": "Start of the gap range.", - "type": "string" - } - }, - "required": [ - "lte", - "gte" - ], - "type": "object" - }, - "total_alerts_created": { - "description": "Total number of alerts created during last rule run.", - "nullable": true, - "type": "number" - }, - "total_alerts_detected": { - "description": "Total number of alerts detected during last rule run.", - "nullable": true, - "type": "number" - }, - "total_indexing_duration_ms": { - "description": "Total time spent indexing documents during last rule run in milliseconds.", - "nullable": true, - "type": "number" - }, - "total_search_duration_ms": { - "description": "Total time spent performing Elasticsearch searches as measured by Kibana; includes network latency and time spent serializing or deserializing the request and response.", - "nullable": true, - "type": "number" - } - }, - "type": "object" - }, - "timestamp": { - "description": "Time of the most recent rule run.", - "type": "string" - } - }, - "required": [ - "timestamp", - "metrics" - ], - "type": "object" - } - }, - "required": [ - "history", - "calculated_metrics", - "last_run" - ], - "type": "object" - } - }, - "required": [ - "run" - ], - "type": "object" - }, - "mute_all": { - "description": "Indicates whether all alerts are muted.", - "type": "boolean" - }, - "muted_alert_ids": { - "items": { - "description": "List of identifiers of muted alerts. ", - "type": "string" - }, - "type": "array" - }, - "name": { - "description": " The name of the rule.", - "type": "string" - }, - "next_run": { - "description": "Date and time of the next run of the rule.", - "nullable": true, - "type": "string" - }, - "notify_when": { - "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "enum": [ - "onActionGroupChange", - "onActiveAlert", - "onThrottleInterval" - ], - "nullable": true, - "type": "string" - }, - "params": { - "additionalProperties": {}, - "description": "The parameters for the rule.", - "type": "object" - }, - "revision": { - "description": "The rule revision number.", - "type": "number" - }, - "rule_type_id": { - "description": "The rule type identifier.", - "type": "string" - }, - "running": { - "description": "Indicates whether the rule is running.", - "nullable": true, - "type": "boolean" - }, - "schedule": { - "additionalProperties": false, - "properties": { - "interval": { - "description": "The interval is specified in seconds, minutes, hours, or days.", - "type": "string" - } - }, - "required": [ - "interval" - ], - "type": "object" - }, - "scheduled_task_id": { - "description": "Identifier of the scheduled task.", - "type": "string" - }, - "snooze_schedule": { - "items": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "Duration of the rule snooze schedule.", - "type": "number" - }, - "id": { - "description": "Identifier of the rule snooze schedule.", - "type": "string" - }, - "rRule": { - "additionalProperties": false, - "properties": { - "byhour": { - "items": { - "description": "Indicates hours of the day to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "byminute": { - "items": { - "description": "Indicates minutes of the hour to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bymonth": { - "items": { - "description": "Indicates months of the year that this rule should recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bymonthday": { - "items": { - "description": "Indicates the days of the month to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bysecond": { - "items": { - "description": "Indicates seconds of the day to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bysetpos": { - "items": { - "description": "A positive or negative integer affecting the nth day of the month. For example, -2 combined with `byweekday` of FR is 2nd to last Friday of the month. It is recommended to not set this manually and just use `byweekday`.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "byweekday": { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ], - "description": "Indicates the days of the week to recur or else nth-day-of-month strings. For example, \"+2TU\" second Tuesday of month, \"-1FR\" last Friday of the month, which are internally converted to a `byweekday/bysetpos` combination." - }, - "nullable": true, - "type": "array" - }, - "byweekno": { - "items": { - "description": "Indicates number of the week hours to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "byyearday": { - "items": { - "description": "Indicates the days of the year that this rule should recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "count": { - "description": "Number of times the rule should recur until it stops.", - "type": "number" - }, - "dtstart": { - "description": "Rule start date in Coordinated Universal Time (UTC).", - "type": "string" - }, - "freq": { - "description": "Indicates frequency of the rule. Options are YEARLY, MONTHLY, WEEKLY, DAILY.", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ], - "type": "integer" - }, - "interval": { - "description": "Indicates the interval of frequency. For example, 1 and YEARLY is every 1 year, 2 and WEEKLY is every 2 weeks.", - "type": "number" - }, - "tzid": { - "description": "Indicates timezone abbreviation.", - "type": "string" - }, - "until": { - "description": "Recur the rule until this date.", - "type": "string" - }, - "wkst": { - "description": "Indicates the start of week, defaults to Monday.", - "enum": [ - "MO", - "TU", - "WE", - "TH", - "FR", - "SA", - "SU" - ], - "type": "string" - } - }, - "required": [ - "dtstart", - "tzid" - ], - "type": "object" - }, - "skipRecurrences": { - "items": { - "description": "Skips recurrence of rule on this date.", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "duration", - "rRule" - ], - "type": "object" - }, - "type": "array" - }, - "tags": { - "items": { - "description": "The tags for the rule.", - "type": "string" - }, - "type": "array" - }, - "throttle": { - "deprecated": true, - "description": "Deprecated in 8.13.0. Use the `throttle` property in the action `frequency` object instead. The throttle interval, which defines how often an alert generates repeated actions. NOTE: You cannot specify the throttle interval at both the rule and action level. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "nullable": true, - "type": "string" - }, - "updated_at": { - "description": "The date and time that the rule was updated most recently.", - "type": "string" - }, - "updated_by": { - "description": "The identifier for the user that updated this rule most recently.", - "nullable": true, - "type": "string" - }, - "view_in_app_relative_url": { - "description": "Relative URL to view rule in the app.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "id", - "enabled", - "name", - "tags", - "rule_type_id", - "consumer", - "schedule", - "actions", - "params", - "created_by", - "updated_by", - "created_at", - "updated_at", - "api_key_owner", - "mute_all", - "muted_alert_ids", - "execution_status", - "revision" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a rule with the given ID does not exist." - }, - "409": { - "description": "Indicates that the rule has already been updated by another user." - } - }, - "summary": "Update a rule", - "tags": [ - "alerting" - ] - } - }, - "/api/alerting/rule/{id}/_disable": { - "post": { - "operationId": "post-alerting-rule-id-disable", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the rule.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "nullable": true, - "properties": { - "untrack": { - "description": "Defines whether this rule's alerts should be untracked.", - "type": "boolean" - } - }, - "type": "object", - "x-oas-optional": true - } - } - } - }, - "responses": { - "204": { - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a rule with the given ID does not exist." - } - }, - "summary": "Disable a rule", - "tags": [ - "alerting" - ] - } - }, - "/api/alerting/rule/{id}/_enable": { - "post": { - "operationId": "post-alerting-rule-id-enable", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the rule.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a rule with the given ID does not exist." - } - }, - "summary": "Enable a rule", - "tags": [ - "alerting" - ] - } - }, - "/api/alerting/rule/{id}/_mute_all": { - "post": { - "operationId": "post-alerting-rule-id-mute-all", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the rule.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a rule with the given ID does not exist." - } - }, - "summary": "Mute all alerts", - "tags": [ - "alerting" - ] - } - }, - "/api/alerting/rule/{id}/_unmute_all": { - "post": { - "operationId": "post-alerting-rule-id-unmute-all", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the rule.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a rule with the given ID does not exist." - } - }, - "summary": "Unmute all alerts", - "tags": [ - "alerting" - ] - } - }, - "/api/alerting/rule/{id}/_update_api_key": { - "post": { - "operationId": "post-alerting-rule-id-update-api-key", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the rule.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a rule with the given ID does not exist." - }, - "409": { - "description": "Indicates that the rule has already been updated by another user." - } - }, - "summary": "Update the API key for a rule", - "tags": [ - "alerting" - ] - } - }, - "/api/alerting/rule/{id}/snooze_schedule": { - "post": { - "description": "When you snooze a rule, the rule checks continue to run but alerts will not generate actions. You can snooze for a specified period of time and schedule single or recurring downtimes.", - "operationId": "post-alerting-rule-id-snooze-schedule", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "Identifier of the rule.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "schedule": { - "additionalProperties": false, - "properties": { - "custom": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "The duration of the schedule. It allows values in `` format. `` is one of `d`, `h`, `m`, or `s` for hours, minutes, seconds. For example: `1d`, `5h`, `30m`, `5000s`.", - "type": "string" - }, - "recurring": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end date of a recurring schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-04-01T00:00:00.000Z`.", - "type": "string" - }, - "every": { - "description": "The interval and frequency of a recurring schedule. It allows values in `` format. `` is one of `d`, `w`, `M`, or `y` for days, weeks, months, years. For example: `15d`, `2w`, `3m`, `1y`.", - "type": "string" - }, - "occurrences": { - "description": "The total number of recurrences of the schedule.", - "minimum": 1, - "type": "number" - }, - "onMonth": { - "description": "The specific months for a recurring schedule. Valid values are 1-12.", - "items": { - "maximum": 12, - "minimum": 1, - "type": "number" - }, - "minItems": 1, - "type": "array" - }, - "onMonthDay": { - "description": "The specific days of the month for a recurring schedule. Valid values are 1-31.", - "items": { - "maximum": 31, - "minimum": 1, - "type": "number" - }, - "minItems": 1, - "type": "array" - }, - "onWeekDay": { - "description": "The specific days of the week (`[MO,TU,WE,TH,FR,SA,SU]`) or nth day of month (`[+1MO, -3FR, +2WE, -4SA, -5SU]`) for a recurring schedule.", - "items": { - "type": "string" - }, - "minItems": 1, - "type": "array" - } - }, - "type": "object" - }, - "start": { - "description": "The start date and time of the schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-03-12T12:00:00.000Z`.", - "type": "string" - }, - "timezone": { - "description": "The timezone of the schedule. The default timezone is UTC.", - "type": "string" - } - }, - "required": [ - "start", - "duration" - ], - "type": "object" - } - }, - "type": "object" - } - }, - "required": [ - "schedule" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "body": { - "additionalProperties": false, - "properties": { - "schedule": { - "additionalProperties": false, - "properties": { - "custom": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "The duration of the schedule. It allows values in `` format. `` is one of `d`, `h`, `m`, or `s` for hours, minutes, seconds. For example: `1d`, `5h`, `30m`, `5000s`.", - "type": "string" - }, - "recurring": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end date of a recurring schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-04-01T00:00:00.000Z`.", - "type": "string" - }, - "every": { - "description": "The interval and frequency of a recurring schedule. It allows values in `` format. `` is one of `d`, `w`, `M`, or `y` for days, weeks, months, years. For example: `15d`, `2w`, `3m`, `1y`.", - "type": "string" - }, - "occurrences": { - "description": "The total number of recurrences of the schedule.", - "minimum": 1, - "type": "number" - }, - "onMonth": { - "description": "The specific months for a recurring schedule. Valid values are 1-12.", - "items": { - "maximum": 12, - "minimum": 1, - "type": "number" - }, - "minItems": 1, - "type": "array" - }, - "onMonthDay": { - "description": "The specific days of the month for a recurring schedule. Valid values are 1-31.", - "items": { - "maximum": 31, - "minimum": 1, - "type": "number" - }, - "minItems": 1, - "type": "array" - }, - "onWeekDay": { - "description": "The specific days of the week (`[MO,TU,WE,TH,FR,SA,SU]`) or nth day of month (`[+1MO, -3FR, +2WE, -4SA, -5SU]`) for a recurring schedule.", - "items": { - "type": "string" - }, - "minItems": 1, - "type": "array" - } - }, - "type": "object" - }, - "start": { - "description": "The start date and time of the schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-03-12T12:00:00.000Z`.", - "type": "string" - }, - "timezone": { - "description": "The timezone of the schedule. The default timezone is UTC.", - "type": "string" - } - }, - "required": [ - "start", - "duration" - ], - "type": "object" - }, - "id": { - "description": "Identifier of the snooze schedule.", - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - } - }, - "required": [ - "schedule" - ], - "type": "object" - } - }, - "required": [ - "body" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a rule with the given id does not exist." - } - }, - "summary": "Schedule a snooze for the rule", - "tags": [ - "alerting" - ], - "x-state": "Generally available; added in 8.19.0" - } - }, - "/api/alerting/rule/{ruleId}/snooze_schedule/{scheduleId}": { - "delete": { - "operationId": "delete-alerting-rule-ruleid-snooze-schedule-scheduleid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the rule.", - "in": "path", - "name": "ruleId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "The identifier for the snooze schedule.", - "in": "path", - "name": "scheduleId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a rule with the given id does not exist." - } - }, - "summary": "Delete a snooze schedule for a rule", - "tags": [ - "alerting" - ], - "x-state": "Generally available; added in 8.19.0" - } - }, - "/api/alerting/rule/{rule_id}/alert/{alert_id}/_mute": { - "post": { - "operationId": "post-alerting-rule-rule-id-alert-alert-id-mute", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the rule.", - "in": "path", - "name": "rule_id", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "The identifier for the alert.", - "in": "path", - "name": "alert_id", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "Whether to validate the existence of the alert.", - "in": "query", - "name": "validate_alerts_existence", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "204": { - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a rule or alert with the given ID does not exist." - } - }, - "summary": "Mute an alert", - "tags": [ - "alerting" - ] - } - }, - "/api/alerting/rule/{rule_id}/alert/{alert_id}/_unmute": { - "post": { - "operationId": "post-alerting-rule-rule-id-alert-alert-id-unmute", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the rule.", - "in": "path", - "name": "rule_id", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "The identifier for the alert.", - "in": "path", - "name": "alert_id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a rule or alert with the given ID does not exist." - } - }, - "summary": "Unmute an alert", - "tags": [ - "alerting" - ] - } - }, - "/api/alerting/rules/_find": { - "get": { - "operationId": "get-alerting-rules-find", - "parameters": [ - { - "description": "The number of rules to return per page.", - "in": "query", - "name": "per_page", - "required": false, - "schema": { - "default": 10, - "minimum": 0, - "type": "number" - } - }, - { - "description": "The page number to return.", - "in": "query", - "name": "page", - "required": false, - "schema": { - "default": 1, - "minimum": 1, - "type": "number" - } - }, - { - "description": "An Elasticsearch simple_query_string query that filters the objects in the response.", - "in": "query", - "name": "search", - "required": false, - "schema": { - "type": "string" - } - }, - { - "description": "The default operator to use for the simple_query_string.", - "in": "query", - "name": "default_search_operator", - "required": false, - "schema": { - "default": "OR", - "enum": [ - "OR", - "AND" - ], - "type": "string" - } - }, - { - "description": "The fields to perform the simple_query_string parsed query against.", - "in": "query", - "name": "search_fields", - "required": false, - "schema": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ] - } - }, - { - "description": "Determines which field is used to sort the results. The field must exist in the `attributes` key of the response.", - "in": "query", - "name": "sort_field", - "required": false, - "schema": { - "type": "string" - } - }, - { - "description": "Determines the sort order.", - "in": "query", - "name": "sort_order", - "required": false, - "schema": { - "enum": [ - "asc", - "desc" - ], - "type": "string" - } - }, - { - "description": "Filters the rules that have a relation with the reference objects with a specific type and identifier.", - "in": "query", - "name": "has_reference", - "required": false, - "schema": { - "additionalProperties": false, - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "type", - "id" - ], - "type": "object" - } - }, - { - "description": "The fields to return in the `attributes` key of the response.", - "in": "query", - "name": "fields", - "required": false, - "schema": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ] - } - }, - { - "description": "A KQL string that you filter with an attribute from your saved object. It should look like `savedObjectType.attributes.title: \"myTitle\"`. However, if you used a direct attribute of a saved object, such as `updatedAt`, you must define your filter, for example, `savedObjectType.updatedAt > 2018-12-22`.", - "in": "query", - "name": "filter", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "filter_consumers", - "required": false, - "schema": { - "items": { - "description": "List of consumers to filter.", - "type": "string" - }, - "type": "array" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "findConditionalActionRulesResponse": { - "description": "A response that contains information about an index threshold rule.", - "summary": "Index threshold rule", - "value": { - "data": [ - { - "actions": [ - { - "frequency": { - "notify_when": "onActionGroupChange", - "summary": false, - "throttle": null - }, - "group": "threshold met", - "id": "9dca3e00-74f5-11ed-9801-35303b735aef", - "params": { - "connector_type_id": ".server-log", - "level": "info", - "message": "Rule {{rule.name}} is active for group {{context.group}}:\n\n- Value: {{context.value}}\n- Conditions Met: {{context.conditions}} over {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}}\n- Timestamp: {{context.date}}" - }, - "uuid": "1c7a1280-f28c-4e06-96b2-e4e5f05d1d61" - } - ], - "api_key_created_by_user": false, - "api_key_owner": "elastic", - "consumer": "alerts", - "created_at": "2022-12-05T23:40:33.132Z", - "created_by": "elastic", - "enabled": true, - "execution_status": { - "last_duration": 48, - "last_execution_date": "2022-12-06T01:44:23.983Z", - "status": "ok" - }, - "id": "3583a470-74f6-11ed-9801-35303b735aef", - "last_run": { - "alerts_count": { - "active": 0, - "ignored": 0, - "new": 0, - "recovered": 0 - }, - "outcome": "succeeded", - "outcome_msg": null, - "warning": null - }, - "mute_all": false, - "muted_alert_ids": [], - "name": "my alert", - "next_run": "2022-12-06T01:45:23.912Z", - "params": { - "aggField": "sheet.version", - "aggType": "avg", - "groupBy": "top", - "index": [ - "test-index" - ], - "termField": "name.keyword", - "termSize": 6, - "threshold": [ - 1000 - ], - "thresholdComparator": ">", - "timeField": "@timestamp", - "timeWindowSize": 5, - "timeWindowUnit": "m" - }, - "revision": 1, - "rule_type_id": ".index-threshold", - "schedule": { - "interval": "1m" - }, - "scheduled_task_id": "3583a470-74f6-11ed-9801-35303b735aef", - "tags": [ - "cpu" - ], - "throttle": null, - "updated_at": "2022-12-05T23:40:33.132Z", - "updated_by": "elastic" - } - ], - "page": 1, - "per_page": 10, - "total": 1 - } - }, - "findRulesResponse": { - "description": "A response that contains information about a security rule that has conditional actions.", - "summary": "Security rule", - "value": { - "data": [ - { - "actions": [ - { - "alerts_filter": { - "query": { - "filters": [ - { - "$state": { - "store": "appState" - }, - "meta": { - "alias": null, - "disabled": false, - "field": "client.geo.region_iso_code", - "index": "c4bdca79-e69e-4d80-82a1-e5192c621bea", - "key": "client.geo.region_iso_code", - "negate": false, - "params": { - "query": "CA-QC", - "type": "phrase" - } - }, - "query": { - "match_phrase": { - "client.geo.region_iso_code": "CA-QC" - } - } - } - ], - "kql": "" - }, - "timeframe": { - "days": [ - 7 - ], - "hours": { - "end": "17:00", - "start": "08:00" - }, - "timezone": "UTC" - } - }, - "connector_type_id": ".index", - "frequency": { - "notify_when": "onActiveAlert", - "summary": true, - "throttle": null - }, - "group": "default", - "id": "49eae970-f401-11ed-9f8e-399c75a2deeb", - "params": { - "documents": [ - { - "alert_id": { - "[object Object]": null - }, - "context_message": { - "[object Object]": null - }, - "rule_id": { - "[object Object]": null - }, - "rule_name": { - "[object Object]": null - } - } - ] - }, - "uuid": "1c7a1280-f28c-4e06-96b2-e4e5f05d1d61" - } - ], - "api_key_created_by_user": false, - "api_key_owner": "elastic", - "consumer": "siem", - "created_at": "2023-05-16T15:50:28.358Z", - "created_by": "elastic", - "enabled": true, - "execution_status": { - "last_duration": 166, - "last_execution_date": "2023-05-16T20:26:49.590Z", - "status": "ok" - }, - "id": "6107a8f0-f401-11ed-9f8e-399c75a2deeb", - "last_run": { - "alerts_count": { - "active": 0, - "ignored": 0, - "new": 0, - "recovered": 0 - }, - "outcome": "succeeded", - "outcome_msg": [ - "Rule execution completed successfully" - ], - "outcome_order": 0, - "warning": null - }, - "mute_all": false, - "muted_alert_ids": [], - "name": "security_rule", - "next_run": "2023-05-16T20:27:49.507Z", - "notify_when": null, - "params": { - "author": [], - "description": "A security threshold rule.", - "exceptionsList": [], - "falsePositives": [], - "filters": [], - "from": "now-3660s", - "immutable": false, - "index": [ - "kibana_sample_data_logs" - ], - "language": "kuery", - "license": "", - "maxSignals": 100, - "meta": { - "from": "1h", - "kibana_siem_app_url": "https://localhost:5601/app/security" - }, - "outputIndex": "", - "query": "*", - "references": [], - "riskScore": 21, - "riskScoreMapping": [], - "ruleId": "an_internal_rule_id", - "severity": "low", - "severityMapping": [], - "threat": [], - "threshold": { - "cardinality": [], - "field": [ - "bytes" - ], - "value": 1 - }, - "to": "now", - "type": "threshold", - "version": 1 - }, - "revision": 1, - "rule_type_id": "siem.thresholdRule", - "running": false, - "schedule": { - "interval": "1m" - }, - "scheduled_task_id": "6107a8f0-f401-11ed-9f8e-399c75a2deeb", - "tags": [], - "throttle": null, - "updated_at": "2023-05-16T20:25:42.559Z", - "updated_by": "elastic" - } - ], - "page": 1, - "per_page": 10, - "total": 1 - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "actions": { - "items": { - "additionalProperties": false, - "properties": { - "alerts_filter": { - "additionalProperties": false, - "description": "Defines a period that limits whether the action runs.", - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "dsl": { - "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL).", - "type": "string" - }, - "filters": { - "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL) as defined in the `kbn-es-query` package.", - "items": { - "additionalProperties": false, - "properties": { - "$state": { - "additionalProperties": false, - "properties": { - "store": { - "description": "A filter can be either specific to an application context or applied globally.", - "enum": [ - "appState", - "globalState" - ], - "type": "string" - } - }, - "required": [ - "store" - ], - "type": "object" - }, - "meta": { - "additionalProperties": {}, - "type": "object" - }, - "query": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "meta" - ], - "type": "object" - }, - "type": "array" - }, - "kql": { - "description": "A filter written in Kibana Query Language (KQL).", - "type": "string" - } - }, - "required": [ - "kql", - "filters" - ], - "type": "object" - }, - "timeframe": { - "additionalProperties": false, - "properties": { - "days": { - "description": "Defines the days of the week that the action can run, represented as an array of numbers. For example, `1` represents Monday. An empty array is equivalent to specifying all the days of the week.", - "items": { - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "type": "integer" - }, - "type": "array" - }, - "hours": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end of the time frame in 24-hour notation (`hh:mm`).", - "type": "string" - }, - "start": { - "description": "The start of the time frame in 24-hour notation (`hh:mm`).", - "type": "string" - } - }, - "required": [ - "start", - "end" - ], - "type": "object" - }, - "timezone": { - "description": "The ISO time zone for the `hours` values. Values such as `UTC` and `UTC+1` also work but lack built-in daylight savings time support and are not recommended.", - "type": "string" - } - }, - "required": [ - "days", - "hours", - "timezone" - ], - "type": "object" - } - }, - "type": "object" - }, - "connector_type_id": { - "description": "The type of connector. This property appears in responses but cannot be set in requests.", - "type": "string" - }, - "frequency": { - "additionalProperties": false, - "properties": { - "notify_when": { - "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "enum": [ - "onActionGroupChange", - "onActiveAlert", - "onThrottleInterval" - ], - "type": "string" - }, - "summary": { - "description": "Indicates whether the action is a summary.", - "type": "boolean" - }, - "throttle": { - "description": "The throttle interval, which defines how often an alert generates repeated actions. It is specified in seconds, minutes, hours, or days and is applicable only if 'notify_when' is set to 'onThrottleInterval'. NOTE: You cannot specify the throttle interval at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "summary", - "notify_when", - "throttle" - ], - "type": "object" - }, - "group": { - "description": "The group name, which affects when the action runs (for example, when the threshold is met or when the alert is recovered). Each rule type has a list of valid action group names. If you don't need to group actions, set to `default`.", - "type": "string" - }, - "id": { - "description": "The identifier for the connector saved object.", - "type": "string" - }, - "params": { - "additionalProperties": {}, - "description": "The parameters for the action, which are sent to the connector. The `params` are handled as Mustache templates and passed a default set of context.", - "type": "object" - }, - "use_alert_data_for_template": { - "description": "Indicates whether to use alert data as a template.", - "type": "boolean" - }, - "uuid": { - "description": "A universally unique identifier (UUID) for the action.", - "type": "string" - } - }, - "required": [ - "id", - "connector_type_id", - "params" - ], - "type": "object" - }, - "type": "array" - }, - "active_snoozes": { - "items": { - "description": "List of active snoozes for the rule.", - "type": "string" - }, - "type": "array" - }, - "alert_delay": { - "additionalProperties": false, - "description": "Indicates that an alert occurs only when the specified number of consecutive runs met the rule conditions.", - "properties": { - "active": { - "description": "The number of consecutive runs that must meet the rule conditions.", - "type": "number" - } - }, - "required": [ - "active" - ], - "type": "object" - }, - "api_key_created_by_user": { - "description": "Indicates whether the API key that is associated with the rule was created by the user.", - "nullable": true, - "type": "boolean" - }, - "api_key_owner": { - "description": "The owner of the API key that is associated with the rule and used to run background tasks.", - "nullable": true, - "type": "string" - }, - "artifacts": { - "additionalProperties": false, - "properties": { - "dashboards": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "type": "array" - }, - "investigation_guide": { - "additionalProperties": false, - "properties": { - "blob": { - "description": "User-created content that describes alert causes and remdiation.", - "type": "string" - } - }, - "required": [ - "blob" - ], - "type": "object" - } - }, - "type": "object" - }, - "consumer": { - "description": "The name of the application or feature that owns the rule. For example: `alerts`, `apm`, `discover`, `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, `securitySolution`, `siem`, `stackAlerts`, or `uptime`.", - "type": "string" - }, - "created_at": { - "description": "The date and time that the rule was created.", - "type": "string" - }, - "created_by": { - "description": "The identifier for the user that created the rule.", - "nullable": true, - "type": "string" - }, - "enabled": { - "description": "Indicates whether you want to run the rule on an interval basis after it is created.", - "type": "boolean" - }, - "execution_status": { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "message": { - "description": "Error message.", - "type": "string" - }, - "reason": { - "description": "Reason for error.", - "enum": [ - "read", - "decrypt", - "execute", - "unknown", - "license", - "timeout", - "disabled", - "validate" - ], - "type": "string" - } - }, - "required": [ - "reason", - "message" - ], - "type": "object" - }, - "last_duration": { - "description": "Duration of last execution of the rule.", - "type": "number" - }, - "last_execution_date": { - "description": "The date and time when rule was executed last.", - "type": "string" - }, - "status": { - "description": "Status of rule execution.", - "enum": [ - "ok", - "active", - "error", - "warning", - "pending", - "unknown" - ], - "type": "string" - }, - "warning": { - "additionalProperties": false, - "properties": { - "message": { - "description": "Warning message.", - "type": "string" - }, - "reason": { - "description": "Reason for warning.", - "enum": [ - "maxExecutableActions", - "maxAlerts", - "maxQueuedActions", - "ruleExecution" - ], - "type": "string" - } - }, - "required": [ - "reason", - "message" - ], - "type": "object" - } - }, - "required": [ - "status", - "last_execution_date" - ], - "type": "object" - }, - "flapping": { - "additionalProperties": false, - "description": "When flapping detection is turned on, alerts that switch quickly between active and recovered states are identified as “flapping” and notifications are reduced.", - "nullable": true, - "properties": { - "enabled": { - "description": "Determines whether the rule can enter the flapping state. By default, rules can enter the flapping state.", - "type": "boolean" - }, - "look_back_window": { - "description": "The minimum number of runs in which the threshold must be met.", - "maximum": 20, - "minimum": 2, - "type": "number" - }, - "status_change_threshold": { - "description": "The minimum number of times an alert must switch states in the look back window.", - "maximum": 20, - "minimum": 2, - "type": "number" - } - }, - "required": [ - "look_back_window", - "status_change_threshold" - ], - "type": "object" - }, - "id": { - "description": "The identifier for the rule.", - "type": "string" - }, - "is_snoozed_until": { - "description": "The date when the rule will no longer be snoozed.", - "nullable": true, - "type": "string" - }, - "last_run": { - "additionalProperties": false, - "nullable": true, - "properties": { - "alerts_count": { - "additionalProperties": false, - "properties": { - "active": { - "description": "Number of active alerts during last run.", - "nullable": true, - "type": "number" - }, - "ignored": { - "description": "Number of ignored alerts during last run.", - "nullable": true, - "type": "number" - }, - "new": { - "description": "Number of new alerts during last run.", - "nullable": true, - "type": "number" - }, - "recovered": { - "description": "Number of recovered alerts during last run.", - "nullable": true, - "type": "number" - } - }, - "type": "object" - }, - "outcome": { - "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", - "enum": [ - "succeeded", - "warning", - "failed" - ], - "type": "string" - }, - "outcome_msg": { - "items": { - "description": "Outcome message generated during last rule run.", - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "outcome_order": { - "description": "Order of the outcome.", - "type": "number" - }, - "warning": { - "description": "Warning of last rule execution.", - "enum": [ - "read", - "decrypt", - "execute", - "unknown", - "license", - "timeout", - "disabled", - "validate", - "maxExecutableActions", - "maxAlerts", - "maxQueuedActions", - "ruleExecution" - ], - "nullable": true, - "type": "string" - } - }, - "required": [ - "outcome", - "alerts_count" - ], - "type": "object" - }, - "mapped_params": { - "additionalProperties": {}, - "type": "object" - }, - "monitoring": { - "additionalProperties": false, - "description": "Monitoring details of the rule.", - "properties": { - "run": { - "additionalProperties": false, - "description": "Rule run details.", - "properties": { - "calculated_metrics": { - "additionalProperties": false, - "description": "Calculation of different percentiles and success ratio.", - "properties": { - "p50": { - "type": "number" - }, - "p95": { - "type": "number" - }, - "p99": { - "type": "number" - }, - "success_ratio": { - "type": "number" - } - }, - "required": [ - "success_ratio" - ], - "type": "object" - }, - "history": { - "description": "History of the rule run.", - "items": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "Duration of the rule run.", - "type": "number" - }, - "outcome": { - "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", - "enum": [ - "succeeded", - "warning", - "failed" - ], - "type": "string" - }, - "success": { - "description": "Indicates whether the rule run was successful.", - "type": "boolean" - }, - "timestamp": { - "description": "Time of rule run.", - "type": "number" - } - }, - "required": [ - "success", - "timestamp" - ], - "type": "object" - }, - "type": "array" - }, - "last_run": { - "additionalProperties": false, - "properties": { - "metrics": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "Duration of most recent rule run.", - "type": "number" - }, - "gap_duration_s": { - "description": "Duration in seconds of rule run gap.", - "nullable": true, - "type": "number" - }, - "gap_range": { - "additionalProperties": false, - "nullable": true, - "properties": { - "gte": { - "description": "End of the gap range.", - "type": "string" - }, - "lte": { - "description": "Start of the gap range.", - "type": "string" - } - }, - "required": [ - "lte", - "gte" - ], - "type": "object" - }, - "total_alerts_created": { - "description": "Total number of alerts created during last rule run.", - "nullable": true, - "type": "number" - }, - "total_alerts_detected": { - "description": "Total number of alerts detected during last rule run.", - "nullable": true, - "type": "number" - }, - "total_indexing_duration_ms": { - "description": "Total time spent indexing documents during last rule run in milliseconds.", - "nullable": true, - "type": "number" - }, - "total_search_duration_ms": { - "description": "Total time spent performing Elasticsearch searches as measured by Kibana; includes network latency and time spent serializing or deserializing the request and response.", - "nullable": true, - "type": "number" - } - }, - "type": "object" - }, - "timestamp": { - "description": "Time of the most recent rule run.", - "type": "string" - } - }, - "required": [ - "timestamp", - "metrics" - ], - "type": "object" - } - }, - "required": [ - "history", - "calculated_metrics", - "last_run" - ], - "type": "object" - } - }, - "required": [ - "run" - ], - "type": "object" - }, - "mute_all": { - "description": "Indicates whether all alerts are muted.", - "type": "boolean" - }, - "muted_alert_ids": { - "items": { - "description": "List of identifiers of muted alerts. ", - "type": "string" - }, - "type": "array" - }, - "name": { - "description": " The name of the rule.", - "type": "string" - }, - "next_run": { - "description": "Date and time of the next run of the rule.", - "nullable": true, - "type": "string" - }, - "notify_when": { - "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "enum": [ - "onActionGroupChange", - "onActiveAlert", - "onThrottleInterval" - ], - "nullable": true, - "type": "string" - }, - "params": { - "additionalProperties": {}, - "description": "The parameters for the rule.", - "type": "object" - }, - "revision": { - "description": "The rule revision number.", - "type": "number" - }, - "rule_type_id": { - "description": "The rule type identifier.", - "type": "string" - }, - "running": { - "description": "Indicates whether the rule is running.", - "nullable": true, - "type": "boolean" - }, - "schedule": { - "additionalProperties": false, - "properties": { - "interval": { - "description": "The interval is specified in seconds, minutes, hours, or days.", - "type": "string" - } - }, - "required": [ - "interval" - ], - "type": "object" - }, - "scheduled_task_id": { - "description": "Identifier of the scheduled task.", - "type": "string" - }, - "snooze_schedule": { - "items": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "Duration of the rule snooze schedule.", - "type": "number" - }, - "id": { - "description": "Identifier of the rule snooze schedule.", - "type": "string" - }, - "rRule": { - "additionalProperties": false, - "properties": { - "byhour": { - "items": { - "description": "Indicates hours of the day to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "byminute": { - "items": { - "description": "Indicates minutes of the hour to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bymonth": { - "items": { - "description": "Indicates months of the year that this rule should recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bymonthday": { - "items": { - "description": "Indicates the days of the month to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bysecond": { - "items": { - "description": "Indicates seconds of the day to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bysetpos": { - "items": { - "description": "A positive or negative integer affecting the nth day of the month. For example, -2 combined with `byweekday` of FR is 2nd to last Friday of the month. It is recommended to not set this manually and just use `byweekday`.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "byweekday": { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ], - "description": "Indicates the days of the week to recur or else nth-day-of-month strings. For example, \"+2TU\" second Tuesday of month, \"-1FR\" last Friday of the month, which are internally converted to a `byweekday/bysetpos` combination." - }, - "nullable": true, - "type": "array" - }, - "byweekno": { - "items": { - "description": "Indicates number of the week hours to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "byyearday": { - "items": { - "description": "Indicates the days of the year that this rule should recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "count": { - "description": "Number of times the rule should recur until it stops.", - "type": "number" - }, - "dtstart": { - "description": "Rule start date in Coordinated Universal Time (UTC).", - "type": "string" - }, - "freq": { - "description": "Indicates frequency of the rule. Options are YEARLY, MONTHLY, WEEKLY, DAILY.", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ], - "type": "integer" - }, - "interval": { - "description": "Indicates the interval of frequency. For example, 1 and YEARLY is every 1 year, 2 and WEEKLY is every 2 weeks.", - "type": "number" - }, - "tzid": { - "description": "Indicates timezone abbreviation.", - "type": "string" - }, - "until": { - "description": "Recur the rule until this date.", - "type": "string" - }, - "wkst": { - "description": "Indicates the start of week, defaults to Monday.", - "enum": [ - "MO", - "TU", - "WE", - "TH", - "FR", - "SA", - "SU" - ], - "type": "string" - } - }, - "required": [ - "dtstart", - "tzid" - ], - "type": "object" - }, - "skipRecurrences": { - "items": { - "description": "Skips recurrence of rule on this date.", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "duration", - "rRule" - ], - "type": "object" - }, - "type": "array" - }, - "tags": { - "items": { - "description": "The tags for the rule.", - "type": "string" - }, - "type": "array" - }, - "throttle": { - "deprecated": true, - "description": "Deprecated in 8.13.0. Use the `throttle` property in the action `frequency` object instead. The throttle interval, which defines how often an alert generates repeated actions. NOTE: You cannot specify the throttle interval at both the rule and action level. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "nullable": true, - "type": "string" - }, - "updated_at": { - "description": "The date and time that the rule was updated most recently.", - "type": "string" - }, - "updated_by": { - "description": "The identifier for the user that updated this rule most recently.", - "nullable": true, - "type": "string" - }, - "view_in_app_relative_url": { - "description": "Relative URL to view rule in the app.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "id", - "enabled", - "name", - "tags", - "rule_type_id", - "consumer", - "schedule", - "actions", - "params", - "created_by", - "updated_by", - "created_at", - "updated_at", - "api_key_owner", - "mute_all", - "muted_alert_ids", - "execution_status", - "revision" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - } - }, - "summary": "Get information about rules", - "tags": [ - "alerting" - ] - } - }, - "/api/fleet/agent_download_sources": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-read OR fleet-settings-read.", - "operationId": "get-fleet-agent-download-sources", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "host": { - "format": "uri", - "type": "string" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "description": "The ID of the proxy to use for this download source. See the proxies API for more information.", - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "id", - "name", - "host" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "page": { - "type": "number" - }, - "perPage": { - "type": "number" - }, - "total": { - "type": "number" - } - }, - "required": [ - "items", - "total", - "page", - "perPage" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get agent binary download sources", - "tags": [ - "Elastic Agent binary download sources" - ] - }, - "post": { - "description": "[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "post-fleet-agent-download-sources", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "host": { - "format": "uri", - "type": "string" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "description": "The ID of the proxy to use for this download source. See the proxies API for more information.", - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "name", - "host" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "host": { - "format": "uri", - "type": "string" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "description": "The ID of the proxy to use for this download source. See the proxies API for more information.", - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "id", - "name", - "host" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Create an agent binary download source", - "tags": [ - "Elastic Agent binary download sources" - ] - } - }, - "/api/fleet/agent_download_sources/{sourceId}": { - "delete": { - "description": "Delete an agent binary download source by ID.

[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "delete-fleet-agent-download-sources-sourceid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "sourceId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Delete an agent binary download source", - "tags": [ - "Elastic Agent binary download sources" - ] - }, - "get": { - "description": "Get an agent binary download source by ID.

[Required authorization] Route required privileges: fleet-agent-policies-read OR fleet-settings-read.", - "operationId": "get-fleet-agent-download-sources-sourceid", - "parameters": [ - { - "in": "path", - "name": "sourceId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "host": { - "format": "uri", - "type": "string" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "description": "The ID of the proxy to use for this download source. See the proxies API for more information.", - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "id", - "name", - "host" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get an agent binary download source", - "tags": [ - "Elastic Agent binary download sources" - ] - }, - "put": { - "description": "Update an agent binary download source by ID.

[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "put-fleet-agent-download-sources-sourceid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "sourceId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "host": { - "format": "uri", - "type": "string" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "description": "The ID of the proxy to use for this download source. See the proxies API for more information.", - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "name", - "host" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "host": { - "format": "uri", - "type": "string" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "description": "The ID of the proxy to use for this download source. See the proxies API for more information.", - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "id", - "name", - "host" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Update an agent binary download source", - "tags": [ - "Elastic Agent binary download sources" - ] - } - }, - "/api/fleet/agent_policies": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-read OR fleet-agents-read OR fleet-setup.", - "operationId": "get-fleet-agent-policies", - "parameters": [ - { - "in": "query", - "name": "page", - "required": false, - "schema": { - "type": "number" - } - }, - { - "in": "query", - "name": "perPage", - "required": false, - "schema": { - "type": "number" - } - }, - { - "in": "query", - "name": "sortField", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "sortOrder", - "required": false, - "schema": { - "enum": [ - "desc", - "asc" - ], - "type": "string" - } - }, - { - "in": "query", - "name": "showUpgradeable", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "kuery", - "required": false, - "schema": { - "type": "string" - } - }, - { - "description": "use withAgentCount instead", - "in": "query", - "name": "noAgentCount", - "required": false, - "schema": { - "deprecated": true, - "type": "boolean" - } - }, - { - "description": "get policies with agent count", - "in": "query", - "name": "withAgentCount", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "description": "get full policies with package policies populated", - "in": "query", - "name": "full", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "format", - "required": false, - "schema": { - "enum": [ - "simplified", - "legacy" - ], - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "advanced_settings": { - "additionalProperties": false, - "properties": { - "agent_download_target_directory": { - "nullable": true - }, - "agent_download_timeout": { - "nullable": true - }, - "agent_internal": { - "nullable": true - }, - "agent_limits_go_max_procs": { - "nullable": true - }, - "agent_logging_files_interval": { - "nullable": true - }, - "agent_logging_files_keepfiles": { - "nullable": true - }, - "agent_logging_files_rotateeverybytes": { - "nullable": true - }, - "agent_logging_level": { - "nullable": true - }, - "agent_logging_metrics_period": { - "nullable": true - }, - "agent_logging_to_files": { - "nullable": true - }, - "agent_monitoring_runtime_experimental": { - "nullable": true - } - }, - "type": "object" - }, - "agent_features": { - "items": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "enabled" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "agentless": { - "additionalProperties": false, - "properties": { - "cloud_connectors": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "target_csp": { - "enum": [ - "aws", - "azure", - "gcp" - ], - "type": "string" - } - }, - "required": [ - "enabled" - ], - "type": "object" - }, - "resources": { - "additionalProperties": false, - "properties": { - "requests": { - "additionalProperties": false, - "properties": { - "cpu": { - "type": "string" - }, - "memory": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "agents": { - "type": "number" - }, - "data_output_id": { - "nullable": true, - "type": "string" - }, - "description": { - "type": "string" - }, - "download_source_id": { - "nullable": true, - "type": "string" - }, - "fips_agents": { - "type": "number" - }, - "fleet_server_host_id": { - "nullable": true, - "type": "string" - }, - "global_data_tags": { - "description": "User defined data tags that are added to all of the inputs. The values can be strings or numbers.", - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "required": [ - "name", - "value" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "has_agent_version_conditions": { - "type": "boolean" - }, - "has_fleet_server": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "inactivity_timeout": { - "default": 1209600, - "minimum": 0, - "type": "number" - }, - "is_default": { - "type": "boolean" - }, - "is_default_fleet_server": { - "type": "boolean" - }, - "is_managed": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "is_protected": { - "description": "Indicates whether the agent policy has tamper protection enabled. Default false.", - "type": "boolean" - }, - "keep_monitoring_alive": { - "default": false, - "description": "When set to true, monitoring will be enabled but logs/metrics collection will be disabled", - "nullable": true, - "type": "boolean" - }, - "monitoring_diagnostics": { - "additionalProperties": false, - "properties": { - "limit": { - "additionalProperties": false, - "properties": { - "burst": { - "type": "number" - }, - "interval": { - "type": "string" - } - }, - "type": "object" - }, - "uploader": { - "additionalProperties": false, - "properties": { - "init_dur": { - "type": "string" - }, - "max_dur": { - "type": "string" - }, - "max_retries": { - "type": "number" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "monitoring_enabled": { - "items": { - "enum": [ - "logs", - "metrics", - "traces" - ], - "type": "string" - }, - "maxItems": 3, - "type": "array" - }, - "monitoring_http": { - "additionalProperties": false, - "properties": { - "buffer": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "host": { - "type": "string" - }, - "port": { - "maximum": 65353, - "minimum": 0, - "type": "number" - } - }, - "type": "object" - }, - "monitoring_output_id": { - "nullable": true, - "type": "string" - }, - "monitoring_pprof_enabled": { - "type": "boolean" - }, - "name": { - "minLength": 1, - "type": "string" - }, - "namespace": { - "minLength": 1, - "type": "string" - }, - "overrides": { - "additionalProperties": {}, - "description": "Override settings that are defined in the agent policy. Input settings cannot be overridden. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "type": "object" - }, - "package_policies": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "description": "This field is present only when retrieving a single agent policy, or when retrieving a list of agent policies with the ?full=true parameter", - "items": { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "agents": { - "type": "number" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "description": "Package policy unique identifier.", - "type": "string" - }, - "inputs": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package policy inputs." - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "description": "Package policy revision.", - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "anyOf": [ - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package level variable." - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs", - "id", - "revision", - "updated_at", - "updated_by", - "created_at", - "created_by" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - ] - }, - "required_versions": { - "items": { - "additionalProperties": false, - "properties": { - "percentage": { - "description": "Target percentage of agents to auto upgrade", - "maximum": 100, - "minimum": 0, - "type": "number" - }, - "version": { - "description": "Target version for automatic agent upgrade", - "type": "string" - } - }, - "required": [ - "version", - "percentage" - ], - "type": "object" - }, - "maxItems": 100, - "nullable": true, - "type": "array" - }, - "revision": { - "type": "number" - }, - "schema_version": { - "type": "string" - }, - "space_ids": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "status": { - "enum": [ - "active", - "inactive" - ], - "type": "string" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the agent policy supports agentless integrations.", - "nullable": true, - "type": "boolean" - }, - "unenroll_timeout": { - "minimum": 0, - "type": "number" - }, - "unprivileged_agents": { - "type": "number" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "namespace", - "is_protected", - "status", - "updated_at", - "updated_by", - "revision" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "page": { - "type": "number" - }, - "perPage": { - "type": "number" - }, - "total": { - "type": "number" - } - }, - "required": [ - "items", - "total", - "page", - "perPage" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get agent policies", - "tags": [ - "Elastic Agent policies" - ] - }, - "post": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-all.", - "operationId": "post-fleet-agent-policies", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "query", - "name": "sys_monitoring", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "advanced_settings": { - "additionalProperties": false, - "properties": { - "agent_download_target_directory": { - "nullable": true - }, - "agent_download_timeout": { - "nullable": true - }, - "agent_internal": { - "nullable": true - }, - "agent_limits_go_max_procs": { - "nullable": true - }, - "agent_logging_files_interval": { - "nullable": true - }, - "agent_logging_files_keepfiles": { - "nullable": true - }, - "agent_logging_files_rotateeverybytes": { - "nullable": true - }, - "agent_logging_level": { - "nullable": true - }, - "agent_logging_metrics_period": { - "nullable": true - }, - "agent_logging_to_files": { - "nullable": true - }, - "agent_monitoring_runtime_experimental": { - "nullable": true - } - }, - "type": "object" - }, - "agent_features": { - "items": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "enabled" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "agentless": { - "additionalProperties": false, - "properties": { - "cloud_connectors": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "target_csp": { - "enum": [ - "aws", - "azure", - "gcp" - ], - "type": "string" - } - }, - "required": [ - "enabled" - ], - "type": "object" - }, - "resources": { - "additionalProperties": false, - "properties": { - "requests": { - "additionalProperties": false, - "properties": { - "cpu": { - "type": "string" - }, - "memory": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "data_output_id": { - "nullable": true, - "type": "string" - }, - "description": { - "type": "string" - }, - "download_source_id": { - "nullable": true, - "type": "string" - }, - "fleet_server_host_id": { - "nullable": true, - "type": "string" - }, - "force": { - "type": "boolean" - }, - "global_data_tags": { - "description": "User defined data tags that are added to all of the inputs. The values can be strings or numbers.", - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "required": [ - "name", - "value" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "has_agent_version_conditions": { - "type": "boolean" - }, - "has_fleet_server": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "inactivity_timeout": { - "default": 1209600, - "minimum": 0, - "type": "number" - }, - "is_default": { - "type": "boolean" - }, - "is_default_fleet_server": { - "type": "boolean" - }, - "is_managed": { - "type": "boolean" - }, - "is_protected": { - "type": "boolean" - }, - "keep_monitoring_alive": { - "default": false, - "description": "When set to true, monitoring will be enabled but logs/metrics collection will be disabled", - "nullable": true, - "type": "boolean" - }, - "monitoring_diagnostics": { - "additionalProperties": false, - "properties": { - "limit": { - "additionalProperties": false, - "properties": { - "burst": { - "type": "number" - }, - "interval": { - "type": "string" - } - }, - "type": "object" - }, - "uploader": { - "additionalProperties": false, - "properties": { - "init_dur": { - "type": "string" - }, - "max_dur": { - "type": "string" - }, - "max_retries": { - "type": "number" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "monitoring_enabled": { - "items": { - "enum": [ - "logs", - "metrics", - "traces" - ], - "type": "string" - }, - "maxItems": 3, - "type": "array" - }, - "monitoring_http": { - "additionalProperties": false, - "properties": { - "buffer": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "host": { - "type": "string" - }, - "port": { - "maximum": 65353, - "minimum": 0, - "type": "number" - } - }, - "type": "object" - }, - "monitoring_output_id": { - "nullable": true, - "type": "string" - }, - "monitoring_pprof_enabled": { - "type": "boolean" - }, - "name": { - "minLength": 1, - "type": "string" - }, - "namespace": { - "minLength": 1, - "type": "string" - }, - "overrides": { - "additionalProperties": {}, - "description": "Override settings that are defined in the agent policy. Input settings cannot be overridden. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "type": "object" - }, - "required_versions": { - "items": { - "additionalProperties": false, - "properties": { - "percentage": { - "description": "Target percentage of agents to auto upgrade", - "maximum": 100, - "minimum": 0, - "type": "number" - }, - "version": { - "description": "Target version for automatic agent upgrade", - "type": "string" - } - }, - "required": [ - "version", - "percentage" - ], - "type": "object" - }, - "maxItems": 100, - "nullable": true, - "type": "array" - }, - "space_ids": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "deprecated": true, - "description": "Indicates whether the agent policy supports agentless integrations. Deprecated in favor of the Fleet agentless policies API.", - "nullable": true, - "type": "boolean" - }, - "unenroll_timeout": { - "minimum": 0, - "type": "number" - } - }, - "required": [ - "name", - "namespace" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "advanced_settings": { - "additionalProperties": false, - "properties": { - "agent_download_target_directory": { - "nullable": true - }, - "agent_download_timeout": { - "nullable": true - }, - "agent_internal": { - "nullable": true - }, - "agent_limits_go_max_procs": { - "nullable": true - }, - "agent_logging_files_interval": { - "nullable": true - }, - "agent_logging_files_keepfiles": { - "nullable": true - }, - "agent_logging_files_rotateeverybytes": { - "nullable": true - }, - "agent_logging_level": { - "nullable": true - }, - "agent_logging_metrics_period": { - "nullable": true - }, - "agent_logging_to_files": { - "nullable": true - }, - "agent_monitoring_runtime_experimental": { - "nullable": true - } - }, - "type": "object" - }, - "agent_features": { - "items": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "enabled" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "agentless": { - "additionalProperties": false, - "properties": { - "cloud_connectors": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "target_csp": { - "enum": [ - "aws", - "azure", - "gcp" - ], - "type": "string" - } - }, - "required": [ - "enabled" - ], - "type": "object" - }, - "resources": { - "additionalProperties": false, - "properties": { - "requests": { - "additionalProperties": false, - "properties": { - "cpu": { - "type": "string" - }, - "memory": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "agents": { - "type": "number" - }, - "data_output_id": { - "nullable": true, - "type": "string" - }, - "description": { - "type": "string" - }, - "download_source_id": { - "nullable": true, - "type": "string" - }, - "fips_agents": { - "type": "number" - }, - "fleet_server_host_id": { - "nullable": true, - "type": "string" - }, - "global_data_tags": { - "description": "User defined data tags that are added to all of the inputs. The values can be strings or numbers.", - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "required": [ - "name", - "value" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "has_agent_version_conditions": { - "type": "boolean" - }, - "has_fleet_server": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "inactivity_timeout": { - "default": 1209600, - "minimum": 0, - "type": "number" - }, - "is_default": { - "type": "boolean" - }, - "is_default_fleet_server": { - "type": "boolean" - }, - "is_managed": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "is_protected": { - "description": "Indicates whether the agent policy has tamper protection enabled. Default false.", - "type": "boolean" - }, - "keep_monitoring_alive": { - "default": false, - "description": "When set to true, monitoring will be enabled but logs/metrics collection will be disabled", - "nullable": true, - "type": "boolean" - }, - "monitoring_diagnostics": { - "additionalProperties": false, - "properties": { - "limit": { - "additionalProperties": false, - "properties": { - "burst": { - "type": "number" - }, - "interval": { - "type": "string" - } - }, - "type": "object" - }, - "uploader": { - "additionalProperties": false, - "properties": { - "init_dur": { - "type": "string" - }, - "max_dur": { - "type": "string" - }, - "max_retries": { - "type": "number" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "monitoring_enabled": { - "items": { - "enum": [ - "logs", - "metrics", - "traces" - ], - "type": "string" - }, - "maxItems": 3, - "type": "array" - }, - "monitoring_http": { - "additionalProperties": false, - "properties": { - "buffer": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "host": { - "type": "string" - }, - "port": { - "maximum": 65353, - "minimum": 0, - "type": "number" - } - }, - "type": "object" - }, - "monitoring_output_id": { - "nullable": true, - "type": "string" - }, - "monitoring_pprof_enabled": { - "type": "boolean" - }, - "name": { - "minLength": 1, - "type": "string" - }, - "namespace": { - "minLength": 1, - "type": "string" - }, - "overrides": { - "additionalProperties": {}, - "description": "Override settings that are defined in the agent policy. Input settings cannot be overridden. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "type": "object" - }, - "package_policies": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "description": "This field is present only when retrieving a single agent policy, or when retrieving a list of agent policies with the ?full=true parameter", - "items": { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "agents": { - "type": "number" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "description": "Package policy unique identifier.", - "type": "string" - }, - "inputs": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package policy inputs." - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "description": "Package policy revision.", - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "anyOf": [ - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package level variable." - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs", - "id", - "revision", - "updated_at", - "updated_by", - "created_at", - "created_by" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - ] - }, - "required_versions": { - "items": { - "additionalProperties": false, - "properties": { - "percentage": { - "description": "Target percentage of agents to auto upgrade", - "maximum": 100, - "minimum": 0, - "type": "number" - }, - "version": { - "description": "Target version for automatic agent upgrade", - "type": "string" - } - }, - "required": [ - "version", - "percentage" - ], - "type": "object" - }, - "maxItems": 100, - "nullable": true, - "type": "array" - }, - "revision": { - "type": "number" - }, - "schema_version": { - "type": "string" - }, - "space_ids": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "status": { - "enum": [ - "active", - "inactive" - ], - "type": "string" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the agent policy supports agentless integrations.", - "nullable": true, - "type": "boolean" - }, - "unenroll_timeout": { - "minimum": 0, - "type": "number" - }, - "unprivileged_agents": { - "type": "number" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "namespace", - "is_protected", - "status", - "updated_at", - "updated_by", - "revision" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Create an agent policy", - "tags": [ - "Elastic Agent policies" - ] - } - }, - "/api/fleet/agent_policies/_bulk_get": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-read OR fleet-agents-read OR fleet-setup.", - "operationId": "post-fleet-agent-policies-bulk-get", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "query", - "name": "format", - "required": false, - "schema": { - "enum": [ - "simplified", - "legacy" - ], - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "full": { - "description": "get full policies with package policies populated", - "type": "boolean" - }, - "ids": { - "description": "list of package policy ids", - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ignoreMissing": { - "type": "boolean" - } - }, - "required": [ - "ids" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "advanced_settings": { - "additionalProperties": false, - "properties": { - "agent_download_target_directory": { - "nullable": true - }, - "agent_download_timeout": { - "nullable": true - }, - "agent_internal": { - "nullable": true - }, - "agent_limits_go_max_procs": { - "nullable": true - }, - "agent_logging_files_interval": { - "nullable": true - }, - "agent_logging_files_keepfiles": { - "nullable": true - }, - "agent_logging_files_rotateeverybytes": { - "nullable": true - }, - "agent_logging_level": { - "nullable": true - }, - "agent_logging_metrics_period": { - "nullable": true - }, - "agent_logging_to_files": { - "nullable": true - }, - "agent_monitoring_runtime_experimental": { - "nullable": true - } - }, - "type": "object" - }, - "agent_features": { - "items": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "enabled" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "agentless": { - "additionalProperties": false, - "properties": { - "cloud_connectors": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "target_csp": { - "enum": [ - "aws", - "azure", - "gcp" - ], - "type": "string" - } - }, - "required": [ - "enabled" - ], - "type": "object" - }, - "resources": { - "additionalProperties": false, - "properties": { - "requests": { - "additionalProperties": false, - "properties": { - "cpu": { - "type": "string" - }, - "memory": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "agents": { - "type": "number" - }, - "data_output_id": { - "nullable": true, - "type": "string" - }, - "description": { - "type": "string" - }, - "download_source_id": { - "nullable": true, - "type": "string" - }, - "fips_agents": { - "type": "number" - }, - "fleet_server_host_id": { - "nullable": true, - "type": "string" - }, - "global_data_tags": { - "description": "User defined data tags that are added to all of the inputs. The values can be strings or numbers.", - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "required": [ - "name", - "value" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "has_agent_version_conditions": { - "type": "boolean" - }, - "has_fleet_server": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "inactivity_timeout": { - "default": 1209600, - "minimum": 0, - "type": "number" - }, - "is_default": { - "type": "boolean" - }, - "is_default_fleet_server": { - "type": "boolean" - }, - "is_managed": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "is_protected": { - "description": "Indicates whether the agent policy has tamper protection enabled. Default false.", - "type": "boolean" - }, - "keep_monitoring_alive": { - "default": false, - "description": "When set to true, monitoring will be enabled but logs/metrics collection will be disabled", - "nullable": true, - "type": "boolean" - }, - "monitoring_diagnostics": { - "additionalProperties": false, - "properties": { - "limit": { - "additionalProperties": false, - "properties": { - "burst": { - "type": "number" - }, - "interval": { - "type": "string" - } - }, - "type": "object" - }, - "uploader": { - "additionalProperties": false, - "properties": { - "init_dur": { - "type": "string" - }, - "max_dur": { - "type": "string" - }, - "max_retries": { - "type": "number" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "monitoring_enabled": { - "items": { - "enum": [ - "logs", - "metrics", - "traces" - ], - "type": "string" - }, - "maxItems": 3, - "type": "array" - }, - "monitoring_http": { - "additionalProperties": false, - "properties": { - "buffer": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "host": { - "type": "string" - }, - "port": { - "maximum": 65353, - "minimum": 0, - "type": "number" - } - }, - "type": "object" - }, - "monitoring_output_id": { - "nullable": true, - "type": "string" - }, - "monitoring_pprof_enabled": { - "type": "boolean" - }, - "name": { - "minLength": 1, - "type": "string" - }, - "namespace": { - "minLength": 1, - "type": "string" - }, - "overrides": { - "additionalProperties": {}, - "description": "Override settings that are defined in the agent policy. Input settings cannot be overridden. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "type": "object" - }, - "package_policies": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "description": "This field is present only when retrieving a single agent policy, or when retrieving a list of agent policies with the ?full=true parameter", - "items": { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "agents": { - "type": "number" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "description": "Package policy unique identifier.", - "type": "string" - }, - "inputs": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package policy inputs." - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "description": "Package policy revision.", - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "anyOf": [ - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package level variable." - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs", - "id", - "revision", - "updated_at", - "updated_by", - "created_at", - "created_by" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - ] - }, - "required_versions": { - "items": { - "additionalProperties": false, - "properties": { - "percentage": { - "description": "Target percentage of agents to auto upgrade", - "maximum": 100, - "minimum": 0, - "type": "number" - }, - "version": { - "description": "Target version for automatic agent upgrade", - "type": "string" - } - }, - "required": [ - "version", - "percentage" - ], - "type": "object" - }, - "maxItems": 100, - "nullable": true, - "type": "array" - }, - "revision": { - "type": "number" - }, - "schema_version": { - "type": "string" - }, - "space_ids": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "status": { - "enum": [ - "active", - "inactive" - ], - "type": "string" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the agent policy supports agentless integrations.", - "nullable": true, - "type": "boolean" - }, - "unenroll_timeout": { - "minimum": 0, - "type": "number" - }, - "unprivileged_agents": { - "type": "number" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "namespace", - "is_protected", - "status", - "updated_at", - "updated_by", - "revision" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk get agent policies", - "tags": [ - "Elastic Agent policies" - ] - } - }, - "/api/fleet/agent_policies/delete": { - "post": { - "description": "Delete an agent policy by ID.

[Required authorization] Route required privileges: fleet-agent-policies-all.", - "operationId": "post-fleet-agent-policies-delete", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "agentPolicyId": { - "type": "string" - }, - "force": { - "description": "bypass validation checks that can prevent agent policy deletion", - "type": "boolean" - } - }, - "required": [ - "agentPolicyId" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Delete an agent policy", - "tags": [ - "Elastic Agent policies" - ] - } - }, - "/api/fleet/agent_policies/outputs": { - "post": { - "description": "Get a list of outputs associated with agent policies.

[Required authorization] Route required privileges: fleet-agent-policies-read AND fleet-settings-read.", - "operationId": "post-fleet-agent-policies-outputs", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "ids": { - "description": "list of package policy ids", - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - } - }, - "required": [ - "ids" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "agentPolicyId": { - "type": "string" - }, - "data": { - "additionalProperties": false, - "properties": { - "integrations": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "integrationPolicyName": { - "type": "string" - }, - "name": { - "type": "string" - }, - "pkgName": { - "type": "string" - } - }, - "type": "object" - }, - "maxItems": 1000, - "type": "array" - }, - "output": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - } - }, - "required": [ - "output" - ], - "type": "object" - }, - "monitoring": { - "additionalProperties": false, - "properties": { - "output": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - } - }, - "required": [ - "output" - ], - "type": "object" - } - }, - "required": [ - "monitoring", - "data" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get outputs for agent policies", - "tags": [ - "Elastic Agent policies" - ] - } - }, - "/api/fleet/agent_policies/{agentPolicyId}": { - "get": { - "description": "Get an agent policy by ID.

[Required authorization] Route required privileges: fleet-agent-policies-read OR fleet-agents-read OR fleet-setup.", - "operationId": "get-fleet-agent-policies-agentpolicyid", - "parameters": [ - { - "in": "path", - "name": "agentPolicyId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "format", - "required": false, - "schema": { - "enum": [ - "simplified", - "legacy" - ], - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "advanced_settings": { - "additionalProperties": false, - "properties": { - "agent_download_target_directory": { - "nullable": true - }, - "agent_download_timeout": { - "nullable": true - }, - "agent_internal": { - "nullable": true - }, - "agent_limits_go_max_procs": { - "nullable": true - }, - "agent_logging_files_interval": { - "nullable": true - }, - "agent_logging_files_keepfiles": { - "nullable": true - }, - "agent_logging_files_rotateeverybytes": { - "nullable": true - }, - "agent_logging_level": { - "nullable": true - }, - "agent_logging_metrics_period": { - "nullable": true - }, - "agent_logging_to_files": { - "nullable": true - }, - "agent_monitoring_runtime_experimental": { - "nullable": true - } - }, - "type": "object" - }, - "agent_features": { - "items": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "enabled" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "agentless": { - "additionalProperties": false, - "properties": { - "cloud_connectors": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "target_csp": { - "enum": [ - "aws", - "azure", - "gcp" - ], - "type": "string" - } - }, - "required": [ - "enabled" - ], - "type": "object" - }, - "resources": { - "additionalProperties": false, - "properties": { - "requests": { - "additionalProperties": false, - "properties": { - "cpu": { - "type": "string" - }, - "memory": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "agents": { - "type": "number" - }, - "data_output_id": { - "nullable": true, - "type": "string" - }, - "description": { - "type": "string" - }, - "download_source_id": { - "nullable": true, - "type": "string" - }, - "fips_agents": { - "type": "number" - }, - "fleet_server_host_id": { - "nullable": true, - "type": "string" - }, - "global_data_tags": { - "description": "User defined data tags that are added to all of the inputs. The values can be strings or numbers.", - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "required": [ - "name", - "value" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "has_agent_version_conditions": { - "type": "boolean" - }, - "has_fleet_server": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "inactivity_timeout": { - "default": 1209600, - "minimum": 0, - "type": "number" - }, - "is_default": { - "type": "boolean" - }, - "is_default_fleet_server": { - "type": "boolean" - }, - "is_managed": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "is_protected": { - "description": "Indicates whether the agent policy has tamper protection enabled. Default false.", - "type": "boolean" - }, - "keep_monitoring_alive": { - "default": false, - "description": "When set to true, monitoring will be enabled but logs/metrics collection will be disabled", - "nullable": true, - "type": "boolean" - }, - "monitoring_diagnostics": { - "additionalProperties": false, - "properties": { - "limit": { - "additionalProperties": false, - "properties": { - "burst": { - "type": "number" - }, - "interval": { - "type": "string" - } - }, - "type": "object" - }, - "uploader": { - "additionalProperties": false, - "properties": { - "init_dur": { - "type": "string" - }, - "max_dur": { - "type": "string" - }, - "max_retries": { - "type": "number" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "monitoring_enabled": { - "items": { - "enum": [ - "logs", - "metrics", - "traces" - ], - "type": "string" - }, - "maxItems": 3, - "type": "array" - }, - "monitoring_http": { - "additionalProperties": false, - "properties": { - "buffer": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "host": { - "type": "string" - }, - "port": { - "maximum": 65353, - "minimum": 0, - "type": "number" - } - }, - "type": "object" - }, - "monitoring_output_id": { - "nullable": true, - "type": "string" - }, - "monitoring_pprof_enabled": { - "type": "boolean" - }, - "name": { - "minLength": 1, - "type": "string" - }, - "namespace": { - "minLength": 1, - "type": "string" - }, - "overrides": { - "additionalProperties": {}, - "description": "Override settings that are defined in the agent policy. Input settings cannot be overridden. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "type": "object" - }, - "package_policies": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "description": "This field is present only when retrieving a single agent policy, or when retrieving a list of agent policies with the ?full=true parameter", - "items": { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "agents": { - "type": "number" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "description": "Package policy unique identifier.", - "type": "string" - }, - "inputs": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package policy inputs." - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "description": "Package policy revision.", - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "anyOf": [ - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package level variable." - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs", - "id", - "revision", - "updated_at", - "updated_by", - "created_at", - "created_by" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - ] - }, - "required_versions": { - "items": { - "additionalProperties": false, - "properties": { - "percentage": { - "description": "Target percentage of agents to auto upgrade", - "maximum": 100, - "minimum": 0, - "type": "number" - }, - "version": { - "description": "Target version for automatic agent upgrade", - "type": "string" - } - }, - "required": [ - "version", - "percentage" - ], - "type": "object" - }, - "maxItems": 100, - "nullable": true, - "type": "array" - }, - "revision": { - "type": "number" - }, - "schema_version": { - "type": "string" - }, - "space_ids": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "status": { - "enum": [ - "active", - "inactive" - ], - "type": "string" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the agent policy supports agentless integrations.", - "nullable": true, - "type": "boolean" - }, - "unenroll_timeout": { - "minimum": 0, - "type": "number" - }, - "unprivileged_agents": { - "type": "number" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "namespace", - "is_protected", - "status", - "updated_at", - "updated_by", - "revision" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get an agent policy", - "tags": [ - "Elastic Agent policies" - ] - }, - "put": { - "description": "Update an agent policy by ID.

[Required authorization] Route required privileges: fleet-agent-policies-all.", - "operationId": "put-fleet-agent-policies-agentpolicyid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "agentPolicyId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "format", - "required": false, - "schema": { - "enum": [ - "simplified", - "legacy" - ], - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "advanced_settings": { - "additionalProperties": false, - "properties": { - "agent_download_target_directory": { - "nullable": true - }, - "agent_download_timeout": { - "nullable": true - }, - "agent_internal": { - "nullable": true - }, - "agent_limits_go_max_procs": { - "nullable": true - }, - "agent_logging_files_interval": { - "nullable": true - }, - "agent_logging_files_keepfiles": { - "nullable": true - }, - "agent_logging_files_rotateeverybytes": { - "nullable": true - }, - "agent_logging_level": { - "nullable": true - }, - "agent_logging_metrics_period": { - "nullable": true - }, - "agent_logging_to_files": { - "nullable": true - }, - "agent_monitoring_runtime_experimental": { - "nullable": true - } - }, - "type": "object" - }, - "agent_features": { - "items": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "enabled" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "agentless": { - "additionalProperties": false, - "properties": { - "cloud_connectors": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "target_csp": { - "enum": [ - "aws", - "azure", - "gcp" - ], - "type": "string" - } - }, - "required": [ - "enabled" - ], - "type": "object" - }, - "resources": { - "additionalProperties": false, - "properties": { - "requests": { - "additionalProperties": false, - "properties": { - "cpu": { - "type": "string" - }, - "memory": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "bumpRevision": { - "type": "boolean" - }, - "data_output_id": { - "nullable": true, - "type": "string" - }, - "description": { - "type": "string" - }, - "download_source_id": { - "nullable": true, - "type": "string" - }, - "fleet_server_host_id": { - "nullable": true, - "type": "string" - }, - "force": { - "type": "boolean" - }, - "global_data_tags": { - "description": "User defined data tags that are added to all of the inputs. The values can be strings or numbers.", - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "required": [ - "name", - "value" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "has_agent_version_conditions": { - "type": "boolean" - }, - "has_fleet_server": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "inactivity_timeout": { - "default": 1209600, - "minimum": 0, - "type": "number" - }, - "is_default": { - "type": "boolean" - }, - "is_default_fleet_server": { - "type": "boolean" - }, - "is_managed": { - "type": "boolean" - }, - "is_protected": { - "type": "boolean" - }, - "keep_monitoring_alive": { - "default": false, - "description": "When set to true, monitoring will be enabled but logs/metrics collection will be disabled", - "nullable": true, - "type": "boolean" - }, - "monitoring_diagnostics": { - "additionalProperties": false, - "properties": { - "limit": { - "additionalProperties": false, - "properties": { - "burst": { - "type": "number" - }, - "interval": { - "type": "string" - } - }, - "type": "object" - }, - "uploader": { - "additionalProperties": false, - "properties": { - "init_dur": { - "type": "string" - }, - "max_dur": { - "type": "string" - }, - "max_retries": { - "type": "number" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "monitoring_enabled": { - "items": { - "enum": [ - "logs", - "metrics", - "traces" - ], - "type": "string" - }, - "maxItems": 3, - "type": "array" - }, - "monitoring_http": { - "additionalProperties": false, - "properties": { - "buffer": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "host": { - "type": "string" - }, - "port": { - "maximum": 65353, - "minimum": 0, - "type": "number" - } - }, - "type": "object" - }, - "monitoring_output_id": { - "nullable": true, - "type": "string" - }, - "monitoring_pprof_enabled": { - "type": "boolean" - }, - "name": { - "minLength": 1, - "type": "string" - }, - "namespace": { - "minLength": 1, - "type": "string" - }, - "overrides": { - "additionalProperties": {}, - "description": "Override settings that are defined in the agent policy. Input settings cannot be overridden. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "type": "object" - }, - "required_versions": { - "items": { - "additionalProperties": false, - "properties": { - "percentage": { - "description": "Target percentage of agents to auto upgrade", - "maximum": 100, - "minimum": 0, - "type": "number" - }, - "version": { - "description": "Target version for automatic agent upgrade", - "type": "string" - } - }, - "required": [ - "version", - "percentage" - ], - "type": "object" - }, - "maxItems": 100, - "nullable": true, - "type": "array" - }, - "space_ids": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "deprecated": true, - "description": "Indicates whether the agent policy supports agentless integrations. Deprecated in favor of the Fleet agentless policies API.", - "nullable": true, - "type": "boolean" - }, - "unenroll_timeout": { - "minimum": 0, - "type": "number" - } - }, - "required": [ - "name", - "namespace" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "advanced_settings": { - "additionalProperties": false, - "properties": { - "agent_download_target_directory": { - "nullable": true - }, - "agent_download_timeout": { - "nullable": true - }, - "agent_internal": { - "nullable": true - }, - "agent_limits_go_max_procs": { - "nullable": true - }, - "agent_logging_files_interval": { - "nullable": true - }, - "agent_logging_files_keepfiles": { - "nullable": true - }, - "agent_logging_files_rotateeverybytes": { - "nullable": true - }, - "agent_logging_level": { - "nullable": true - }, - "agent_logging_metrics_period": { - "nullable": true - }, - "agent_logging_to_files": { - "nullable": true - }, - "agent_monitoring_runtime_experimental": { - "nullable": true - } - }, - "type": "object" - }, - "agent_features": { - "items": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "enabled" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "agentless": { - "additionalProperties": false, - "properties": { - "cloud_connectors": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "target_csp": { - "enum": [ - "aws", - "azure", - "gcp" - ], - "type": "string" - } - }, - "required": [ - "enabled" - ], - "type": "object" - }, - "resources": { - "additionalProperties": false, - "properties": { - "requests": { - "additionalProperties": false, - "properties": { - "cpu": { - "type": "string" - }, - "memory": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "agents": { - "type": "number" - }, - "data_output_id": { - "nullable": true, - "type": "string" - }, - "description": { - "type": "string" - }, - "download_source_id": { - "nullable": true, - "type": "string" - }, - "fips_agents": { - "type": "number" - }, - "fleet_server_host_id": { - "nullable": true, - "type": "string" - }, - "global_data_tags": { - "description": "User defined data tags that are added to all of the inputs. The values can be strings or numbers.", - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "required": [ - "name", - "value" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "has_agent_version_conditions": { - "type": "boolean" - }, - "has_fleet_server": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "inactivity_timeout": { - "default": 1209600, - "minimum": 0, - "type": "number" - }, - "is_default": { - "type": "boolean" - }, - "is_default_fleet_server": { - "type": "boolean" - }, - "is_managed": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "is_protected": { - "description": "Indicates whether the agent policy has tamper protection enabled. Default false.", - "type": "boolean" - }, - "keep_monitoring_alive": { - "default": false, - "description": "When set to true, monitoring will be enabled but logs/metrics collection will be disabled", - "nullable": true, - "type": "boolean" - }, - "monitoring_diagnostics": { - "additionalProperties": false, - "properties": { - "limit": { - "additionalProperties": false, - "properties": { - "burst": { - "type": "number" - }, - "interval": { - "type": "string" - } - }, - "type": "object" - }, - "uploader": { - "additionalProperties": false, - "properties": { - "init_dur": { - "type": "string" - }, - "max_dur": { - "type": "string" - }, - "max_retries": { - "type": "number" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "monitoring_enabled": { - "items": { - "enum": [ - "logs", - "metrics", - "traces" - ], - "type": "string" - }, - "maxItems": 3, - "type": "array" - }, - "monitoring_http": { - "additionalProperties": false, - "properties": { - "buffer": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "host": { - "type": "string" - }, - "port": { - "maximum": 65353, - "minimum": 0, - "type": "number" - } - }, - "type": "object" - }, - "monitoring_output_id": { - "nullable": true, - "type": "string" - }, - "monitoring_pprof_enabled": { - "type": "boolean" - }, - "name": { - "minLength": 1, - "type": "string" - }, - "namespace": { - "minLength": 1, - "type": "string" - }, - "overrides": { - "additionalProperties": {}, - "description": "Override settings that are defined in the agent policy. Input settings cannot be overridden. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "type": "object" - }, - "package_policies": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "description": "This field is present only when retrieving a single agent policy, or when retrieving a list of agent policies with the ?full=true parameter", - "items": { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "agents": { - "type": "number" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "description": "Package policy unique identifier.", - "type": "string" - }, - "inputs": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package policy inputs." - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "description": "Package policy revision.", - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "anyOf": [ - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package level variable." - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs", - "id", - "revision", - "updated_at", - "updated_by", - "created_at", - "created_by" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - ] - }, - "required_versions": { - "items": { - "additionalProperties": false, - "properties": { - "percentage": { - "description": "Target percentage of agents to auto upgrade", - "maximum": 100, - "minimum": 0, - "type": "number" - }, - "version": { - "description": "Target version for automatic agent upgrade", - "type": "string" - } - }, - "required": [ - "version", - "percentage" - ], - "type": "object" - }, - "maxItems": 100, - "nullable": true, - "type": "array" - }, - "revision": { - "type": "number" - }, - "schema_version": { - "type": "string" - }, - "space_ids": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "status": { - "enum": [ - "active", - "inactive" - ], - "type": "string" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the agent policy supports agentless integrations.", - "nullable": true, - "type": "boolean" - }, - "unenroll_timeout": { - "minimum": 0, - "type": "number" - }, - "unprivileged_agents": { - "type": "number" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "namespace", - "is_protected", - "status", - "updated_at", - "updated_by", - "revision" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Update an agent policy", - "tags": [ - "Elastic Agent policies" - ] - } - }, - "/api/fleet/agent_policies/{agentPolicyId}/auto_upgrade_agents_status": { - "get": { - "description": "Get auto upgrade agent status

[Required authorization] Route required privileges: fleet-agents-read.", - "operationId": "get-fleet-agent-policies-agentpolicyid-auto-upgrade-agents-status", - "parameters": [ - { - "in": "path", - "name": "agentPolicyId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "currentVersions": { - "items": { - "additionalProperties": false, - "properties": { - "agents": { - "description": "Number of agents that upgraded to this version", - "type": "number" - }, - "failedUpgradeActionIds": { - "description": "List of action IDs related to failed upgrades", - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "failedUpgradeAgents": { - "description": "Number of agents that failed to upgrade to this version", - "type": "number" - }, - "inProgressUpgradeActionIds": { - "description": "List of action IDs related to in-progress upgrades", - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "inProgressUpgradeAgents": { - "description": "Number of agents that are upgrading to this version", - "type": "number" - }, - "version": { - "description": "Agent version", - "type": "string" - } - }, - "required": [ - "version", - "agents", - "failedUpgradeAgents", - "inProgressUpgradeAgents" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "totalAgents": { - "type": "number" - } - }, - "required": [ - "currentVersions", - "totalAgents" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get auto upgrade agent status", - "tags": [ - "Elastic Agent policies" - ] - } - }, - "/api/fleet/agent_policies/{agentPolicyId}/copy": { - "post": { - "description": "Copy an agent policy by ID.

[Required authorization] Route required privileges: fleet-agent-policies-all.", - "operationId": "post-fleet-agent-policies-agentpolicyid-copy", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "agentPolicyId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "format", - "required": false, - "schema": { - "enum": [ - "simplified", - "legacy" - ], - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "description": { - "type": "string" - }, - "name": { - "minLength": 1, - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "advanced_settings": { - "additionalProperties": false, - "properties": { - "agent_download_target_directory": { - "nullable": true - }, - "agent_download_timeout": { - "nullable": true - }, - "agent_internal": { - "nullable": true - }, - "agent_limits_go_max_procs": { - "nullable": true - }, - "agent_logging_files_interval": { - "nullable": true - }, - "agent_logging_files_keepfiles": { - "nullable": true - }, - "agent_logging_files_rotateeverybytes": { - "nullable": true - }, - "agent_logging_level": { - "nullable": true - }, - "agent_logging_metrics_period": { - "nullable": true - }, - "agent_logging_to_files": { - "nullable": true - }, - "agent_monitoring_runtime_experimental": { - "nullable": true - } - }, - "type": "object" - }, - "agent_features": { - "items": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "enabled" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "agentless": { - "additionalProperties": false, - "properties": { - "cloud_connectors": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "target_csp": { - "enum": [ - "aws", - "azure", - "gcp" - ], - "type": "string" - } - }, - "required": [ - "enabled" - ], - "type": "object" - }, - "resources": { - "additionalProperties": false, - "properties": { - "requests": { - "additionalProperties": false, - "properties": { - "cpu": { - "type": "string" - }, - "memory": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "agents": { - "type": "number" - }, - "data_output_id": { - "nullable": true, - "type": "string" - }, - "description": { - "type": "string" - }, - "download_source_id": { - "nullable": true, - "type": "string" - }, - "fips_agents": { - "type": "number" - }, - "fleet_server_host_id": { - "nullable": true, - "type": "string" - }, - "global_data_tags": { - "description": "User defined data tags that are added to all of the inputs. The values can be strings or numbers.", - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "required": [ - "name", - "value" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "has_agent_version_conditions": { - "type": "boolean" - }, - "has_fleet_server": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "inactivity_timeout": { - "default": 1209600, - "minimum": 0, - "type": "number" - }, - "is_default": { - "type": "boolean" - }, - "is_default_fleet_server": { - "type": "boolean" - }, - "is_managed": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "is_protected": { - "description": "Indicates whether the agent policy has tamper protection enabled. Default false.", - "type": "boolean" - }, - "keep_monitoring_alive": { - "default": false, - "description": "When set to true, monitoring will be enabled but logs/metrics collection will be disabled", - "nullable": true, - "type": "boolean" - }, - "monitoring_diagnostics": { - "additionalProperties": false, - "properties": { - "limit": { - "additionalProperties": false, - "properties": { - "burst": { - "type": "number" - }, - "interval": { - "type": "string" - } - }, - "type": "object" - }, - "uploader": { - "additionalProperties": false, - "properties": { - "init_dur": { - "type": "string" - }, - "max_dur": { - "type": "string" - }, - "max_retries": { - "type": "number" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "monitoring_enabled": { - "items": { - "enum": [ - "logs", - "metrics", - "traces" - ], - "type": "string" - }, - "maxItems": 3, - "type": "array" - }, - "monitoring_http": { - "additionalProperties": false, - "properties": { - "buffer": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "host": { - "type": "string" - }, - "port": { - "maximum": 65353, - "minimum": 0, - "type": "number" - } - }, - "type": "object" - }, - "monitoring_output_id": { - "nullable": true, - "type": "string" - }, - "monitoring_pprof_enabled": { - "type": "boolean" - }, - "name": { - "minLength": 1, - "type": "string" - }, - "namespace": { - "minLength": 1, - "type": "string" - }, - "overrides": { - "additionalProperties": {}, - "description": "Override settings that are defined in the agent policy. Input settings cannot be overridden. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "type": "object" - }, - "package_policies": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "description": "This field is present only when retrieving a single agent policy, or when retrieving a list of agent policies with the ?full=true parameter", - "items": { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "agents": { - "type": "number" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "description": "Package policy unique identifier.", - "type": "string" - }, - "inputs": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package policy inputs." - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "description": "Package policy revision.", - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "anyOf": [ - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package level variable." - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs", - "id", - "revision", - "updated_at", - "updated_by", - "created_at", - "created_by" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - ] - }, - "required_versions": { - "items": { - "additionalProperties": false, - "properties": { - "percentage": { - "description": "Target percentage of agents to auto upgrade", - "maximum": 100, - "minimum": 0, - "type": "number" - }, - "version": { - "description": "Target version for automatic agent upgrade", - "type": "string" - } - }, - "required": [ - "version", - "percentage" - ], - "type": "object" - }, - "maxItems": 100, - "nullable": true, - "type": "array" - }, - "revision": { - "type": "number" - }, - "schema_version": { - "type": "string" - }, - "space_ids": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "status": { - "enum": [ - "active", - "inactive" - ], - "type": "string" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the agent policy supports agentless integrations.", - "nullable": true, - "type": "boolean" - }, - "unenroll_timeout": { - "minimum": 0, - "type": "number" - }, - "unprivileged_agents": { - "type": "number" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "namespace", - "is_protected", - "status", - "updated_at", - "updated_by", - "revision" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Copy an agent policy", - "tags": [ - "Elastic Agent policies" - ] - } - }, - "/api/fleet/agent_policies/{agentPolicyId}/download": { - "get": { - "description": "Download an agent policy by ID.

[Required authorization] Route required privileges: fleet-agent-policies-read OR fleet-setup.", - "operationId": "get-fleet-agent-policies-agentpolicyid-download", - "parameters": [ - { - "in": "path", - "name": "agentPolicyId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "download", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "standalone", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "kubernetes", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - }, - "404": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "Not found." - } - }, - "summary": "Download an agent policy", - "tags": [ - "Elastic Agent policies" - ] - } - }, - "/api/fleet/agent_policies/{agentPolicyId}/full": { - "get": { - "description": "Get a full agent policy by ID.

[Required authorization] Route required privileges: fleet-agent-policies-read.", - "operationId": "get-fleet-agent-policies-agentpolicyid-full", - "parameters": [ - { - "in": "path", - "name": "agentPolicyId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "download", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "standalone", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "kubernetes", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "anyOf": [ - { - "type": "string" - }, - { - "additionalProperties": false, - "properties": { - "agent": { - "additionalProperties": false, - "properties": { - "download": { - "additionalProperties": false, - "properties": { - "proxy_headers": { - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, - "nullable": true, - "type": "object" - }, - "proxy_url": { - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "additionalProperties": true, - "properties": { - "id": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "key" - ], - "type": "object" - } - }, - "type": "object" - }, - "sourceURI": { - "type": "string" - }, - "ssl": { - "additionalProperties": false, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "renegotiation": { - "type": "string" - }, - "verification_mode": { - "type": "string" - } - }, - "type": "object" - }, - "target_directory": { - "type": "string" - }, - "timeout": { - "type": "string" - } - }, - "required": [ - "sourceURI" - ], - "type": "object" - }, - "features": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "type": "object" - }, - "type": "object" - }, - "internal": {}, - "limits": { - "additionalProperties": false, - "properties": { - "go_max_procs": { - "type": "number" - } - }, - "type": "object" - }, - "logging": { - "additionalProperties": false, - "properties": { - "files": { - "additionalProperties": false, - "properties": { - "interval": { - "type": "string" - }, - "keepfiles": { - "type": "number" - }, - "rotateeverybytes": { - "type": "number" - } - }, - "type": "object" - }, - "level": { - "type": "string" - }, - "metrics": { - "additionalProperties": false, - "properties": { - "period": { - "type": "string" - } - }, - "type": "object" - }, - "to_files": { - "type": "boolean" - } - }, - "type": "object" - }, - "monitoring": { - "additionalProperties": false, - "properties": { - "_runtime_experimental": { - "type": "string" - }, - "apm": {}, - "diagnostics": { - "additionalProperties": false, - "properties": { - "limit": { - "additionalProperties": false, - "properties": { - "burst": { - "type": "number" - }, - "interval": { - "type": "string" - } - }, - "type": "object" - }, - "uploader": { - "additionalProperties": false, - "properties": { - "init_dur": { - "type": "string" - }, - "max_dur": { - "type": "string" - }, - "max_retries": { - "type": "number" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "http": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "host": { - "type": "string" - }, - "port": { - "type": "number" - } - }, - "type": "object" - }, - "logs": { - "type": "boolean" - }, - "metrics": { - "type": "boolean" - }, - "namespace": { - "type": "string" - }, - "pprof": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "type": "object" - }, - "traces": { - "type": "boolean" - }, - "use_output": { - "type": "string" - } - }, - "required": [ - "enabled", - "metrics", - "logs", - "traces", - "apm" - ], - "type": "object" - }, - "protection": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "signing_key": { - "type": "string" - }, - "uninstall_token_hash": { - "type": "string" - } - }, - "required": [ - "enabled", - "uninstall_token_hash", - "signing_key" - ], - "type": "object" - } - }, - "required": [ - "monitoring", - "download", - "features", - "internal" - ], - "type": "object" - }, - "connectors": { - "additionalProperties": {}, - "type": "object" - }, - "exporters": { - "additionalProperties": {}, - "type": "object" - }, - "extensions": { - "additionalProperties": {}, - "type": "object" - }, - "fleet": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "proxy_headers": { - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, - "nullable": true, - "type": "object" - }, - "proxy_url": { - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "additionalProperties": true, - "properties": { - "id": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "key" - ], - "type": "object" - } - }, - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "renegotiation": { - "type": "string" - }, - "verification_mode": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kibana": { - "additionalProperties": false, - "properties": { - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "path": { - "type": "string" - }, - "protocol": { - "type": "string" - } - }, - "required": [ - "hosts", - "protocol" - ], - "type": "object" - } - }, - "required": [ - "kibana" - ], - "type": "object" - } - ] - }, - "id": { - "type": "string" - }, - "inputs": { - "items": { - "additionalProperties": true, - "properties": { - "data_stream": { - "additionalProperties": true, - "properties": { - "namespace": { - "type": "string" - } - }, - "required": [ - "namespace" - ], - "type": "object" - }, - "id": { - "type": "string" - }, - "meta": { - "additionalProperties": true, - "properties": { - "package": { - "additionalProperties": true, - "properties": { - "name": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "package_policy_id": { - "type": "string" - }, - "processors": { - "items": { - "additionalProperties": true, - "properties": { - "add_fields": { - "additionalProperties": true, - "properties": { - "fields": { - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "type": "object" - }, - "target": { - "type": "string" - } - }, - "required": [ - "target", - "fields" - ], - "type": "object" - } - }, - "required": [ - "add_fields" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "revision": { - "type": "number" - }, - "streams": { - "items": { - "additionalProperties": true, - "properties": { - "data_stream": { - "additionalProperties": true, - "properties": { - "dataset": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset" - ], - "type": "object" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id", - "data_stream" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "type": { - "type": "string" - }, - "use_output": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "revision", - "type", - "data_stream", - "use_output", - "package_policy_id" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "namespaces": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "output_permissions": { - "additionalProperties": { - "additionalProperties": {}, - "type": "object" - }, - "type": "object" - }, - "outputs": { - "additionalProperties": { - "additionalProperties": true, - "properties": { - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "proxy_headers": { - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, - "nullable": true, - "type": "object" - }, - "proxy_url": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "type": "object" - }, - "processors": { - "additionalProperties": {}, - "type": "object" - }, - "receivers": { - "additionalProperties": {}, - "type": "object" - }, - "revision": { - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "service": { - "additionalProperties": false, - "properties": { - "extensions": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "pipelines": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "exporters": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "processors": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "receivers": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - } - }, - "type": "object", - "x-oas-optional": true - }, - "type": "object" - } - }, - "type": "object" - }, - "signed": { - "additionalProperties": false, - "properties": { - "data": { - "type": "string" - }, - "signature": { - "type": "string" - } - }, - "required": [ - "data", - "signature" - ], - "type": "object" - } - }, - "required": [ - "id", - "outputs", - "inputs" - ], - "type": "object" - } - ] - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get a full agent policy", - "tags": [ - "Elastic Agent policies" - ] - } - }, - "/api/fleet/agent_policies/{agentPolicyId}/outputs": { - "get": { - "description": "Get a list of outputs associated with agent policy by policy id.

[Required authorization] Route required privileges: fleet-agent-policies-read AND fleet-settings-read.", - "operationId": "get-fleet-agent-policies-agentpolicyid-outputs", - "parameters": [ - { - "in": "path", - "name": "agentPolicyId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "agentPolicyId": { - "type": "string" - }, - "data": { - "additionalProperties": false, - "properties": { - "integrations": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "integrationPolicyName": { - "type": "string" - }, - "name": { - "type": "string" - }, - "pkgName": { - "type": "string" - } - }, - "type": "object" - }, - "maxItems": 1000, - "type": "array" - }, - "output": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - } - }, - "required": [ - "output" - ], - "type": "object" - }, - "monitoring": { - "additionalProperties": false, - "properties": { - "output": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - } - }, - "required": [ - "output" - ], - "type": "object" - } - }, - "required": [ - "monitoring", - "data" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get outputs for an agent policy", - "tags": [ - "Elastic Agent policies" - ] - } - }, - "/api/fleet/agent_status": { - "get": { - "operationId": "get-fleet-agent-status", - "parameters": [ - { - "in": "query", - "name": "policyId", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "policyIds", - "required": false, - "schema": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - { - "type": "string" - } - ] - } - }, - { - "in": "query", - "name": "kuery", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "results": { - "additionalProperties": false, - "properties": { - "active": { - "type": "number" - }, - "all": { - "type": "number" - }, - "error": { - "type": "number" - }, - "events": { - "type": "number" - }, - "inactive": { - "type": "number" - }, - "offline": { - "type": "number" - }, - "online": { - "type": "number" - }, - "orphaned": { - "type": "number" - }, - "other": { - "type": "number" - }, - "unenrolled": { - "type": "number" - }, - "uninstalled": { - "type": "number" - }, - "updating": { - "type": "number" - } - }, - "required": [ - "events", - "online", - "error", - "offline", - "other", - "updating", - "inactive", - "unenrolled", - "all", - "active" - ], - "type": "object" - } - }, - "required": [ - "results" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get an agent status summary", - "tags": [ - "Elastic Agent status" - ] - } - }, - "/api/fleet/agent_status/data": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agents-read.", - "operationId": "get-fleet-agent-status-data", - "parameters": [ - { - "in": "query", - "name": "agentsIds", - "required": true, - "schema": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "type": "string" - } - ] - } - }, - { - "in": "query", - "name": "pkgName", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "pkgVersion", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "previewData", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "dataPreview": { - "items": {}, - "maxItems": 10000, - "type": "array" - }, - "items": { - "items": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "data": { - "type": "boolean" - } - }, - "required": [ - "data" - ], - "type": "object" - }, - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items", - "dataPreview" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get incoming agent data", - "tags": [ - "Elastic Agents" - ] - } - }, - "/api/fleet/agentless_policies": { - "post": { - "description": "Create an agentless policy", - "operationId": "post-fleet-agentless-policies", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The format of the response package policy.", - "in": "query", - "name": "format", - "required": false, - "schema": { - "default": "simplified", - "enum": [ - "legacy", - "simplified" - ], - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "createAgentlessPoliciesRequestExample": { - "description": "Example request to create agentless policies", - "value": { - "description": "test", - "inputs": { - "ESS Billing-cel": { - "enabled": true, - "streams": { - "ess_billing.billing": { - "enabled": true, - "vars": { - "hide_sensitive": true, - "http_client_timeout": "30s", - "lookbehind": 365, - "tags": [ - "forwarded", - "billing" - ] - } - }, - "ess_billing.credits": { - "enabled": false - } - }, - "vars": { - "api_key": "", - "organization_id": "1234" - } - } - }, - "name": "ess_billing-1", - "namespace": "default", - "package": { - "name": "ess_billing", - "version": "1.6.0" - } - } - }, - "createAgentlessPoliciesReuseAWSCloudConnectorExample": { - "description": "Example request to create agentless policy reusing an existing AWS cloud connector", - "value": { - "cloud_connector": { - "cloud_connector_id": "existing-aws-connector-id", - "target_csp": "aws" - }, - "description": "CSPM integration for AWS reusing existing cloud connector", - "inputs": { - "cspm-cloudbeat/cis_aws": { - "enabled": true, - "streams": { - "cloud_security_posture.findings": { - "enabled": true, - "vars": { - "aws.account_type": "organization-account", - "aws.credentials.type": "cloud_connector", - "aws.supports_cloud_connectors": true, - "external_id": { - "id": "ABCDEFGHIJKLMNOPQRST", - "isSecretRef": true - }, - "role_arn": "arn:aws:iam::123456789012:role/TestRole" - } - } - }, - "vars": { - "cloud_formation_template": "https://console.aws.amazon.com/cloudformation/home#/stacks/quickcreate?templateURL=https://elastic-cspm-cft.s3.eu-central-1.amazonaws.com/cloudformation-cspm-ACCOUNT_TYPE-9.2.0.yml" - } - }, - "cspm-cloudbeat/cis_azure": { - "enabled": false - }, - "cspm-cloudbeat/cis_gcp": { - "enabled": false - } - }, - "name": "cspm-aws-reuse-policy", - "namespace": "default", - "package": { - "name": "cloud_security_posture", - "version": "3.1.1" - }, - "vars": { - "deployment": "aws", - "posture": "cspm" - } - } - }, - "createAgentlessPoliciesWithAWSCloudConnectorExample": { - "description": "Example request to create agentless policy with AWS cloud connector", - "value": { - "cloud_connector": { - "target_csp": "aws" - }, - "description": "CSPM integration for AWS with cloud connector", - "inputs": { - "cspm-cloudbeat/cis_aws": { - "enabled": true, - "streams": { - "cloud_security_posture.findings": { - "enabled": true, - "vars": { - "aws.account_type": "organization-account", - "aws.credentials.type": "cloud_connector", - "aws.supports_cloud_connectors": true, - "external_id": { - "id": "ABCDEFGHIJKLMNOPQRST", - "isSecretRef": true - }, - "role_arn": "arn:aws:iam::123456789012:role/TestRole" - } - } - }, - "vars": { - "cloud_formation_template": "https://console.aws.amazon.com/cloudformation/home#/stacks/quickcreate?templateURL=https://elastic-cspm-cft.s3.eu-central-1.amazonaws.com/cloudformation-cspm-ACCOUNT_TYPE-9.2.0.yml" - } - }, - "cspm-cloudbeat/cis_azure": { - "enabled": false - }, - "cspm-cloudbeat/cis_gcp": { - "enabled": false - } - }, - "name": "cspm-aws-policy", - "namespace": "default", - "package": { - "name": "cloud_security_posture", - "version": "3.1.1" - }, - "vars": { - "deployment": "aws", - "posture": "cspm" - } - } - }, - "createAgentlessPoliciesWithAzureCloudConnectorExample": { - "description": "Example request to create agentless policy with Azure cloud connector", - "value": { - "cloud_connector": { - "target_csp": "azure" - }, - "description": "CSPM integration for Azure with cloud connector", - "inputs": { - "cspm-cloudbeat/cis_aws": { - "enabled": false - }, - "cspm-cloudbeat/cis_azure": { - "enabled": true, - "streams": { - "cloud_security_posture.findings": { - "enabled": true, - "vars": { - "azure.account_type": "organization-account", - "azure_credentials_cloud_connector_id": { - "type": "text", - "value": "existing-azure-credentials-connector-id" - }, - "client_id": { - "id": "client-secret-id", - "isSecretRef": true - }, - "tenant_id": { - "id": "tenant-secret-id", - "isSecretRef": true - } - } - } - } - }, - "cspm-cloudbeat/cis_gcp": { - "enabled": false - } - }, - "name": "cspm-azure-policy", - "namespace": "default", - "package": { - "name": "cloud_security_posture", - "version": "3.1.1" - }, - "vars": { - "deployment": "azure", - "posture": "cspm" - } - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 100, - "nullable": true, - "type": "array" - }, - "cloud_connector": { - "additionalProperties": false, - "properties": { - "cloud_connector_id": { - "description": "ID of an existing cloud connector to reuse. If not provided, a new connector will be created.", - "type": "string" - }, - "enabled": { - "default": false, - "description": "Whether cloud connectors are enabled for this policy.", - "type": "boolean" - }, - "name": { - "description": "Optional name for the cloud connector. If not provided, will be auto-generated from credentials.", - "maxLength": 255, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "description": { - "description": "Policy description.", - "type": "string" - }, - "force": { - "description": "Force package policy creation even if the package is not verified, or if the agent policy is managed.", - "type": "boolean" - }, - "id": { - "description": "Policy unique identifier.", - "type": "string" - }, - "inputs": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object" - }, - "name": { - "description": "Unique name for the policy.", - "type": "string" - }, - "namespace": { - "description": "Policy namespace. When not specified, it inherits the agent policy namespace.", - "type": "string" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_template": { - "description": "The policy template to use for the agentless package policy. If not provided, the default policy template will be used.", - "type": "string" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "required": [ - "name", - "package" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "createAgentlessPoliciesResponseExample": { - "description": "Example response showing the successful result of communication initialisation over MCP protocol", - "value": { - "item": { - "created_at": "2025-11-06T18:27:43.541Z", - "created_by": "test_user", - "description": "test", - "enabled": true, - "id": "d52a7812-5736-4fdc-aed8-72152afa1ffa", - "inputs": { - "ESS Billing-cel": { - "enabled": true, - "streams": { - "ess_billing.billing": { - "enabled": true, - "vars": { - "hide_sensitive": true, - "http_client_timeout": "30s", - "lookbehind": 365, - "tags": [ - "forwarded", - "billing" - ] - } - }, - "ess_billing.credits": { - "enabled": false - } - }, - "vars": { - "api_key": { - "id": "QY1sWpoBbWcMW-edr0Ee", - "isSecretRef": true - }, - "organization_id": "1234", - "url": "https://billing.elastic-cloud.com" - } - } - }, - "name": "ess_billing-1", - "namespace": "default", - "package": { - "name": "ess_billing", - "title": "Elasticsearch Service Billing", - "version": "1.6.0" - }, - "revision": 1, - "secret_references": [ - { - "id": "QY1sWpoBbWcMW-edr0Ee" - } - ], - "supports_agentless": true, - "updated_at": "2025-11-06T18:27:43.541Z", - "updated_by": "test_user", - "version": "WzE0OTgsMV0=" - } - } - }, - "createAgentlessPoliciesWithAWSCloudConnectorResponseExample": { - "description": "Example response for AWS cloud connector integration", - "value": { - "item": { - "cloud_connector_id": "aws-connector-67890", - "created_at": "2025-11-06T18:27:43.541Z", - "created_by": "test_user", - "description": "CSPM integration for AWS with cloud connector", - "enabled": true, - "id": "aws-policy-12345", - "inputs": { - "cspm-cloudbeat/cis_aws": { - "enabled": true, - "streams": { - "cloud_security_posture.findings": { - "enabled": true, - "vars": { - "aws.account_type": "organization-account", - "aws.credentials.type": "cloud_connector", - "external_id": { - "id": "secret-external-id-123", - "isSecretRef": true - }, - "role_arn": "arn:aws:iam::123456789012:role/TestRole" - } - } - }, - "vars": { - "cloud_formation_template": "https://console.aws.amazon.com/cloudformation/home#/stacks/quickcreate?templateURL=https://elastic-cspm-cft.s3.eu-central-1.amazonaws.com/cloudformation-cspm-ACCOUNT_TYPE-9.2.0.yml" - } - }, - "cspm-cloudbeat/cis_azure": { - "enabled": false - }, - "cspm-cloudbeat/cis_gcp": { - "enabled": false - } - }, - "name": "cspm-aws-policy", - "namespace": "default", - "package": { - "name": "cloud_security_posture", - "title": "Cloud Security Posture Management", - "version": "3.1.1" - }, - "revision": 1, - "secret_references": [ - { - "id": "secret-external-id-123" - } - ], - "supports_agentless": true, - "supports_cloud_connector": true, - "updated_at": "2025-11-06T18:27:43.541Z", - "updated_by": "test_user", - "vars": { - "deployment": "aws", - "posture": "cspm" - }, - "version": "WzE0OTgsMV0=" - } - } - }, - "createAgentlessPoliciesWithAzureCloudConnectorResponseExample": { - "description": "Example response for Azure cloud connector integration", - "value": { - "item": { - "cloud_connector_id": "azure-connector-67890", - "created_at": "2025-11-06T18:27:43.541Z", - "created_by": "test_user", - "description": "CSPM integration for Azure with cloud connector", - "enabled": true, - "id": "azure-policy-12345", - "inputs": { - "cspm-cloudbeat/cis_aws": { - "enabled": false - }, - "cspm-cloudbeat/cis_azure": { - "enabled": true, - "streams": { - "cloud_security_posture.findings": { - "enabled": true, - "vars": { - "azure.account_type": "organization-account", - "azure_credentials_cloud_connector_id": { - "type": "text", - "value": "existing-azure-credentials-connector-id" - }, - "client_id": { - "id": "client-secret-id-456", - "isSecretRef": true - }, - "tenant_id": { - "id": "tenant-secret-id-123", - "isSecretRef": true - } - } - } - } - }, - "cspm-cloudbeat/cis_gcp": { - "enabled": false - } - }, - "name": "cspm-azure-policy", - "namespace": "default", - "package": { - "name": "cloud_security_posture", - "title": "Cloud Security Posture Management", - "version": "3.1.1" - }, - "revision": 1, - "secret_references": [ - { - "id": "tenant-secret-id-123" - }, - { - "id": "client-secret-id-456" - } - ], - "supports_agentless": true, - "supports_cloud_connector": true, - "updated_at": "2025-11-06T18:27:43.541Z", - "updated_by": "test_user", - "vars": { - "deployment": "azure", - "posture": "cspm" - }, - "version": "WzE0OTgsMV0=" - } - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "description": "The created agentless package policy.", - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "agents": { - "type": "number" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "description": "Package policy unique identifier.", - "type": "string" - }, - "inputs": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package policy inputs." - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "description": "Package policy revision.", - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "anyOf": [ - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package level variable." - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs", - "id", - "revision", - "updated_at", - "updated_by", - "created_at", - "created_by" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful response" - }, - "400": { - "content": { - "application/json": { - "examples": { - "genericErrorResponseExample": { - "description": "Example of a generic error response", - "value": { - "error": "Bad Request", - "message": "An error message describing what went wrong", - "statusCode": 400 - } - } - }, - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "Bad Request" - }, - "409": { - "content": { - "application/json": { - "examples": { - "conflictErrorResponseExample": { - "description": "Example of a conflict error response", - "value": { - "error": "Conflict", - "message": "An error message describing what went wrong", - "statusCode": 409 - } - } - }, - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "Conflict" - } - }, - "summary": "Create an agentless policy", - "tags": [ - "Fleet agentless policies" - ], - "x-state": "Technical Preview; added in 9.3.0" - } - }, - "/api/fleet/agentless_policies/{policyId}": { - "delete": { - "description": "Delete an agentless policy", - "operationId": "delete-fleet-agentless-policies-policyid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The ID of the policy to delete.", - "in": "path", - "name": "policyId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "Force delete the policy even if the policy is managed.", - "in": "query", - "name": "force", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "createAgentlessPoliciesResponseExample": { - "description": "Example response showing the successful result of communication initialisation over MCP protocol", - "value": { - "item": { - "id": "d52a7812-5736-4fdc-aed8-72152afa1ffa" - } - } - } - }, - "schema": { - "additionalProperties": false, - "description": "Response for deleting an agentless package policy.", - "properties": { - "id": { - "description": "The ID of the deleted agentless package policy.", - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful response" - }, - "400": { - "content": { - "application/json": { - "examples": { - "genericErrorResponseExample": { - "description": "Example of a generic error response", - "value": { - "error": "Bad Request", - "message": "An error message describing what went wrong", - "statusCode": 400 - } - } - }, - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "Bad Request" - }, - "409": { - "content": { - "application/json": { - "examples": { - "conflictErrorResponseExample": { - "description": "Example of a conflict error response", - "value": { - "error": "Conflict", - "message": "An error message describing what went wrong", - "statusCode": 409 - } - } - }, - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "Conflict" - } - }, - "summary": "Delete an agentless policy", - "tags": [ - "Fleet agentless policies" - ], - "x-state": "Technical Preview; added in 9.3.0" - } - }, - "/api/fleet/agents": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agents-read.", - "operationId": "get-fleet-agents", - "parameters": [ - { - "in": "query", - "name": "page", - "required": false, - "schema": { - "type": "number" - } - }, - { - "in": "query", - "name": "perPage", - "required": false, - "schema": { - "default": 20, - "type": "number" - } - }, - { - "in": "query", - "name": "kuery", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "showAgentless", - "required": false, - "schema": { - "default": true, - "type": "boolean" - } - }, - { - "in": "query", - "name": "showInactive", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - }, - { - "in": "query", - "name": "withMetrics", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - }, - { - "in": "query", - "name": "showUpgradeable", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - }, - { - "in": "query", - "name": "getStatusSummary", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - }, - { - "in": "query", - "name": "sortField", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "sortOrder", - "required": false, - "schema": { - "enum": [ - "asc", - "desc" - ], - "type": "string" - } - }, - { - "in": "query", - "name": "searchAfter", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "openPit", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "pitId", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "pitKeepAlive", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "access_api_key": { - "type": "string" - }, - "access_api_key_id": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "agent": { - "additionalProperties": true, - "properties": { - "id": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "version" - ], - "type": "object" - }, - "audit_unenrolled_reason": { - "type": "string" - }, - "components": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "status": { - "enum": [ - "STARTING", - "CONFIGURING", - "HEALTHY", - "DEGRADED", - "FAILED", - "STOPPING", - "STOPPED" - ], - "type": "string" - }, - "type": { - "type": "string" - }, - "units": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "payload": { - "additionalProperties": {}, - "type": "object" - }, - "status": { - "enum": [ - "STARTING", - "CONFIGURING", - "HEALTHY", - "DEGRADED", - "FAILED", - "STOPPING", - "STOPPED" - ], - "type": "string" - }, - "type": { - "enum": [ - "input", - "output", - "" - ], - "type": "string" - } - }, - "required": [ - "id", - "type", - "status", - "message" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "id", - "type", - "status", - "message" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "default_api_key": { - "type": "string" - }, - "default_api_key_history": { - "items": { - "additionalProperties": false, - "deprecated": true, - "properties": { - "id": { - "type": "string" - }, - "retired_at": { - "type": "string" - } - }, - "required": [ - "id", - "retired_at" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "default_api_key_id": { - "type": "string" - }, - "enrolled_at": { - "type": "string" - }, - "id": { - "type": "string" - }, - "last_checkin": { - "type": "string" - }, - "last_checkin_message": { - "type": "string" - }, - "last_checkin_status": { - "enum": [ - "error", - "online", - "degraded", - "updating", - "starting" - ], - "type": "string" - }, - "last_known_status": { - "enum": [ - "offline", - "error", - "online", - "inactive", - "enrolling", - "unenrolling", - "unenrolled", - "updating", - "degraded", - "uninstalled", - "orphaned" - ], - "type": "string" - }, - "local_metadata": { - "additionalProperties": {}, - "type": "object" - }, - "metrics": { - "additionalProperties": false, - "properties": { - "cpu_avg": { - "type": "number" - }, - "memory_size_byte_avg": { - "type": "number" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "outputs": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "api_key_id": { - "type": "string" - }, - "to_retire_api_key_ids": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "retired_at": { - "type": "string" - } - }, - "required": [ - "id", - "retired_at" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "type": "object" - }, - "packages": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - "policy_id": { - "type": "string" - }, - "policy_revision": { - "nullable": true, - "type": "number" - }, - "sort": { - "items": {}, - "maxItems": 10, - "type": "array" - }, - "status": { - "enum": [ - "offline", - "error", - "online", - "inactive", - "enrolling", - "unenrolling", - "unenrolled", - "updating", - "degraded", - "uninstalled", - "orphaned" - ], - "type": "string" - }, - "tags": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "enum": [ - "PERMANENT", - "EPHEMERAL", - "TEMPORARY" - ], - "type": "string" - }, - "unenrolled_at": { - "type": "string" - }, - "unenrollment_started_at": { - "type": "string" - }, - "unhealthy_reason": { - "items": { - "enum": [ - "input", - "output", - "other" - ], - "type": "string" - }, - "maxItems": 3, - "nullable": true, - "type": "array" - }, - "upgrade": { - "additionalProperties": false, - "properties": { - "rollbacks": { - "items": { - "additionalProperties": false, - "properties": { - "valid_until": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "valid_until", - "version" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - }, - "upgrade_attempts": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "nullable": true, - "type": "array" - }, - "upgrade_details": { - "additionalProperties": false, - "nullable": true, - "properties": { - "action_id": { - "type": "string" - }, - "metadata": { - "additionalProperties": false, - "properties": { - "download_percent": { - "type": "number" - }, - "download_rate": { - "type": "number" - }, - "error_msg": { - "type": "string" - }, - "failed_state": { - "enum": [ - "UPG_REQUESTED", - "UPG_SCHEDULED", - "UPG_DOWNLOADING", - "UPG_EXTRACTING", - "UPG_REPLACING", - "UPG_RESTARTING", - "UPG_FAILED", - "UPG_WATCHING", - "UPG_ROLLBACK" - ], - "type": "string" - }, - "retry_error_msg": { - "type": "string" - }, - "retry_until": { - "type": "string" - }, - "scheduled_at": { - "type": "string" - } - }, - "type": "object" - }, - "state": { - "enum": [ - "UPG_REQUESTED", - "UPG_SCHEDULED", - "UPG_DOWNLOADING", - "UPG_EXTRACTING", - "UPG_REPLACING", - "UPG_RESTARTING", - "UPG_FAILED", - "UPG_WATCHING", - "UPG_ROLLBACK" - ], - "type": "string" - }, - "target_version": { - "type": "string" - } - }, - "required": [ - "target_version", - "action_id", - "state" - ], - "type": "object" - }, - "upgrade_started_at": { - "nullable": true, - "type": "string" - }, - "upgraded_at": { - "nullable": true, - "type": "string" - }, - "user_provided_metadata": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "id", - "packages", - "type", - "active", - "enrolled_at", - "local_metadata" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "nextSearchAfter": { - "type": "string" - }, - "page": { - "type": "number" - }, - "perPage": { - "type": "number" - }, - "pit": { - "type": "string" - }, - "statusSummary": { - "additionalProperties": { - "type": "number" - }, - "type": "object" - }, - "total": { - "type": "number" - } - }, - "required": [ - "items", - "total", - "page", - "perPage" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get agents", - "tags": [ - "Elastic Agents" - ] - }, - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-read.", - "operationId": "post-fleet-agents", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "actionIds": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - } - }, - "required": [ - "actionIds" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get agents by action ids", - "tags": [ - "Elastic Agents" - ] - } - }, - "/api/fleet/agents/action_status": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agents-read.", - "operationId": "get-fleet-agents-action-status", - "parameters": [ - { - "in": "query", - "name": "page", - "required": false, - "schema": { - "default": 0, - "type": "number" - } - }, - { - "in": "query", - "name": "perPage", - "required": false, - "schema": { - "default": 20, - "type": "number" - } - }, - { - "in": "query", - "name": "date", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "latest", - "required": false, - "schema": { - "type": "number" - } - }, - { - "in": "query", - "name": "errorSize", - "required": false, - "schema": { - "default": 5, - "type": "number" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "actionId": { - "type": "string" - }, - "cancellationTime": { - "type": "string" - }, - "completionTime": { - "type": "string" - }, - "creationTime": { - "description": "creation time of action", - "type": "string" - }, - "expiration": { - "type": "string" - }, - "hasRolloutPeriod": { - "type": "boolean" - }, - "is_automatic": { - "type": "boolean" - }, - "latestErrors": { - "items": { - "additionalProperties": false, - "description": "latest errors that happened when the agents executed the action", - "properties": { - "agentId": { - "type": "string" - }, - "error": { - "type": "string" - }, - "hostname": { - "type": "string" - }, - "timestamp": { - "type": "string" - } - }, - "required": [ - "agentId", - "error", - "timestamp" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "nbAgentsAck": { - "description": "number of agents that acknowledged the action", - "type": "number" - }, - "nbAgentsActionCreated": { - "description": "number of agents included in action from kibana", - "type": "number" - }, - "nbAgentsActioned": { - "description": "number of agents actioned", - "type": "number" - }, - "nbAgentsFailed": { - "description": "number of agents that failed to execute the action", - "type": "number" - }, - "newPolicyId": { - "description": "new policy id (POLICY_REASSIGN action)", - "type": "string" - }, - "policyId": { - "description": "policy id (POLICY_CHANGE action)", - "type": "string" - }, - "revision": { - "description": "new policy revision (POLICY_CHANGE action)", - "type": "number" - }, - "startTime": { - "description": "start time of action (scheduled actions)", - "type": "string" - }, - "status": { - "enum": [ - "COMPLETE", - "EXPIRED", - "CANCELLED", - "FAILED", - "IN_PROGRESS", - "ROLLOUT_PASSED" - ], - "type": "string" - }, - "type": { - "enum": [ - "UPGRADE", - "UNENROLL", - "SETTINGS", - "POLICY_REASSIGN", - "CANCEL", - "FORCE_UNENROLL", - "REQUEST_DIAGNOSTICS", - "UPDATE_TAGS", - "POLICY_CHANGE", - "INPUT_ACTION", - "MIGRATE", - "PRIVILEGE_LEVEL_CHANGE" - ], - "type": "string" - }, - "version": { - "description": "agent version number (UPGRADE action)", - "type": "string" - } - }, - "required": [ - "actionId", - "nbAgentsActionCreated", - "nbAgentsAck", - "nbAgentsFailed", - "type", - "nbAgentsActioned", - "status", - "creationTime" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get an agent action status", - "tags": [ - "Elastic Agent actions" - ] - } - }, - "/api/fleet/agents/actions/{actionId}/cancel": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-actions-actionid-cancel", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "actionId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "ack_data": {}, - "agents": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - "created_at": { - "type": "string" - }, - "data": {}, - "expiration": { - "type": "string" - }, - "id": { - "type": "string" - }, - "minimum_execution_duration": { - "type": "number" - }, - "namespaces": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "rollout_duration_seconds": { - "type": "number" - }, - "sent_at": { - "type": "string" - }, - "source_uri": { - "type": "string" - }, - "start_time": { - "type": "string" - }, - "total": { - "type": "number" - }, - "type": { - "type": "string" - } - }, - "required": [ - "id", - "type", - "data", - "created_at", - "ack_data" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Cancel an agent action", - "tags": [ - "Elastic Agent actions" - ] - } - }, - "/api/fleet/agents/available_versions": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agents-read.", - "operationId": "get-fleet-agents-available-versions", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get available agent versions", - "tags": [ - "Elastic Agents" - ] - } - }, - "/api/fleet/agents/bulk_migrate": { - "post": { - "description": "Bulk migrate agents to another cluster.

[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-bulk-migrate", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "agents": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "batchSize": { - "type": "number" - }, - "enrollment_token": { - "type": "string" - }, - "settings": { - "additionalProperties": false, - "properties": { - "ca_sha256": { - "type": "string" - }, - "certificate_authorities": { - "type": "string" - }, - "elastic_agent_cert": { - "type": "string" - }, - "elastic_agent_cert_key": { - "type": "string" - }, - "elastic_agent_cert_key_passphrase": { - "type": "string" - }, - "headers": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "insecure": { - "type": "boolean" - }, - "proxy_disabled": { - "type": "boolean" - }, - "proxy_headers": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "proxy_url": { - "type": "string" - }, - "staging": { - "type": "string" - }, - "tags": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - } - }, - "type": "object" - }, - "uri": { - "format": "uri", - "type": "string" - } - }, - "required": [ - "agents", - "uri", - "enrollment_token" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "actionId": { - "type": "string" - } - }, - "required": [ - "actionId" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Migrate multiple agents", - "tags": [ - "Elastic Agents" - ] - } - }, - "/api/fleet/agents/bulk_privilege_level_change": { - "post": { - "description": "Change multiple agents' privilege level to unprivileged.

[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-bulk-privilege-level-change", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "bulkChangeAgentPrivilegeLevelRequest": { - "value": { - "agents": "agent", - "user_info": { - "groupname": "groupname", - "password": "password", - "username": "username" - } - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "agents": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "batchSize": { - "type": "number" - }, - "user_info": { - "additionalProperties": false, - "properties": { - "groupname": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "agents" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "successResponse": { - "value": { - "actionId": "actionId" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "actionId": { - "type": "string" - } - }, - "required": [ - "actionId" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "examples": { - "badRequestResponse": { - "value": { - "message": "Bad Request" - } - } - }, - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk change agent privilege level", - "tags": [ - "Elastic Agents" - ], - "x-state": "Technical Preview; added in 9.3.0" - } - }, - "/api/fleet/agents/bulk_reassign": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-bulk-reassign", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "agents": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "batchSize": { - "type": "number" - }, - "includeInactive": { - "default": false, - "type": "boolean" - }, - "policy_id": { - "type": "string" - } - }, - "required": [ - "policy_id", - "agents" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "actionId": { - "type": "string" - } - }, - "required": [ - "actionId" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk reassign agents", - "tags": [ - "Elastic Agent actions" - ] - } - }, - "/api/fleet/agents/bulk_request_diagnostics": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-read.", - "operationId": "post-fleet-agents-bulk-request-diagnostics", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "additional_metrics": { - "items": { - "enum": [ - "CPU" - ], - "type": "string" - }, - "maxItems": 1, - "type": "array" - }, - "agents": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "batchSize": { - "type": "number" - } - }, - "required": [ - "agents" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "actionId": { - "type": "string" - } - }, - "required": [ - "actionId" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk request diagnostics from agents", - "tags": [ - "Elastic Agent actions" - ] - } - }, - "/api/fleet/agents/bulk_rollback": { - "post": { - "description": "Rollback multiple agents to the previous version.

[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-bulk-rollback", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "bulkRollbackAgentsRequest": { - "value": { - "agents": [ - "agent-1", - "agent-2" - ], - "batchSize": 100, - "includeInactive": false - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "agents": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "batchSize": { - "type": "number" - }, - "includeInactive": { - "default": false, - "type": "boolean" - } - }, - "required": [ - "agents" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "successResponse": { - "value": { - "actionIds": [ - "actionId1", - "actionId2" - ] - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "actionIds": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "actionIds" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "examples": { - "badRequestResponse": { - "value": { - "message": "Bad Request" - } - } - }, - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk rollback agents", - "tags": [ - "Elastic Agent actions" - ], - "x-state": "Technical Preview; added in 9.4.0" - } - }, - "/api/fleet/agents/bulk_unenroll": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-bulk-unenroll", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "agents": { - "anyOf": [ - { - "items": { - "description": "list of agent IDs", - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "description": "KQL query string, leave empty to action all agents", - "type": "string" - } - ] - }, - "batchSize": { - "type": "number" - }, - "force": { - "description": "Unenrolls hosted agents too", - "type": "boolean" - }, - "includeInactive": { - "description": "When passing agents by KQL query, unenrolls inactive agents too", - "type": "boolean" - }, - "revoke": { - "description": "Revokes API keys of agents", - "type": "boolean" - } - }, - "required": [ - "agents" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "actionId": { - "type": "string" - } - }, - "required": [ - "actionId" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk unenroll agents", - "tags": [ - "Elastic Agent actions" - ] - } - }, - "/api/fleet/agents/bulk_update_agent_tags": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-bulk-update-agent-tags", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "agents": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "batchSize": { - "type": "number" - }, - "includeInactive": { - "default": false, - "type": "boolean" - }, - "tagsToAdd": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "tagsToRemove": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - } - }, - "required": [ - "agents" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "actionId": { - "type": "string" - } - }, - "required": [ - "actionId" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk update agent tags", - "tags": [ - "Elastic Agent actions" - ] - } - }, - "/api/fleet/agents/bulk_upgrade": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-bulk-upgrade", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "agents": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "batchSize": { - "type": "number" - }, - "force": { - "type": "boolean" - }, - "includeInactive": { - "default": false, - "type": "boolean" - }, - "rollout_duration_seconds": { - "minimum": 600, - "type": "number" - }, - "skipRateLimitCheck": { - "type": "boolean" - }, - "source_uri": { - "type": "string" - }, - "start_time": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "agents", - "version" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "actionId": { - "type": "string" - } - }, - "required": [ - "actionId" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk upgrade agents", - "tags": [ - "Elastic Agent actions" - ] - } - }, - "/api/fleet/agents/files/{fileId}": { - "delete": { - "description": "Delete a file uploaded by an agent.

[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "delete-fleet-agents-files-fileid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "fileId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "deleted": { - "type": "boolean" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id", - "deleted" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Delete an uploaded file", - "tags": [ - "Elastic Agents" - ] - } - }, - "/api/fleet/agents/files/{fileId}/{fileName}": { - "get": { - "description": "Get a file uploaded by an agent.

[Required authorization] Route required privileges: fleet-agents-read.", - "operationId": "get-fleet-agents-files-fileid-filename", - "parameters": [ - { - "in": "path", - "name": "fileId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "fileName", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get an uploaded file", - "tags": [ - "Elastic Agents" - ] - } - }, - "/api/fleet/agents/setup": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agents-read OR fleet-agent-policies-read OR fleet-settings-read OR fleet-setup.", - "operationId": "get-fleet-agents-setup", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "A summary of the agent setup status. `isReady` indicates whether the setup is ready. If the setup is not ready, `missing_requirements` lists which requirements are missing.", - "properties": { - "isReady": { - "type": "boolean" - }, - "is_action_secrets_storage_enabled": { - "type": "boolean" - }, - "is_secrets_storage_enabled": { - "type": "boolean" - }, - "is_space_awareness_enabled": { - "type": "boolean" - }, - "is_ssl_secrets_storage_enabled": { - "type": "boolean" - }, - "missing_optional_features": { - "items": { - "enum": [ - "encrypted_saved_object_encryption_key_required" - ], - "type": "string" - }, - "maxItems": 1, - "type": "array" - }, - "missing_requirements": { - "items": { - "enum": [ - "security_required", - "tls_required", - "api_keys", - "fleet_admin_user", - "fleet_server" - ], - "type": "string" - }, - "maxItems": 5, - "type": "array" - }, - "package_verification_key_id": { - "type": "string" - } - }, - "required": [ - "isReady", - "missing_requirements", - "missing_optional_features" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get agent setup info", - "tags": [ - "Elastic Agents" - ] - }, - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-read OR fleet-agent-policies-read OR fleet-settings-read OR fleet-setup.", - "operationId": "post-fleet-agents-setup", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "A summary of the result of Fleet's `setup` lifecycle. If `isInitialized` is true, Fleet is ready to accept agent enrollment. `nonFatalErrors` may include useful insight into non-blocking issues with Fleet setup.", - "properties": { - "isInitialized": { - "type": "boolean" - }, - "nonFatalErrors": { - "items": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "message" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "isInitialized", - "nonFatalErrors" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Initiate agent setup", - "tags": [ - "Elastic Agents" - ] - } - }, - "/api/fleet/agents/tags": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agents-read.", - "operationId": "get-fleet-agents-tags", - "parameters": [ - { - "in": "query", - "name": "kuery", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "showInactive", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get agent tags", - "tags": [ - "Elastic Agents" - ] - } - }, - "/api/fleet/agents/{agentId}": { - "delete": { - "description": "Delete an agent by ID.

[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "delete-fleet-agents-agentid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "action": { - "enum": [ - "deleted" - ], - "type": "string" - } - }, - "required": [ - "action" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Delete an agent", - "tags": [ - "Elastic Agents" - ] - }, - "get": { - "description": "Get an agent by ID.

[Required authorization] Route required privileges: fleet-agents-read.", - "operationId": "get-fleet-agents-agentid", - "parameters": [ - { - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "withMetrics", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "access_api_key": { - "type": "string" - }, - "access_api_key_id": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "agent": { - "additionalProperties": true, - "properties": { - "id": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "version" - ], - "type": "object" - }, - "audit_unenrolled_reason": { - "type": "string" - }, - "components": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "status": { - "enum": [ - "STARTING", - "CONFIGURING", - "HEALTHY", - "DEGRADED", - "FAILED", - "STOPPING", - "STOPPED" - ], - "type": "string" - }, - "type": { - "type": "string" - }, - "units": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "payload": { - "additionalProperties": {}, - "type": "object" - }, - "status": { - "enum": [ - "STARTING", - "CONFIGURING", - "HEALTHY", - "DEGRADED", - "FAILED", - "STOPPING", - "STOPPED" - ], - "type": "string" - }, - "type": { - "enum": [ - "input", - "output", - "" - ], - "type": "string" - } - }, - "required": [ - "id", - "type", - "status", - "message" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "id", - "type", - "status", - "message" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "default_api_key": { - "type": "string" - }, - "default_api_key_history": { - "items": { - "additionalProperties": false, - "deprecated": true, - "properties": { - "id": { - "type": "string" - }, - "retired_at": { - "type": "string" - } - }, - "required": [ - "id", - "retired_at" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "default_api_key_id": { - "type": "string" - }, - "enrolled_at": { - "type": "string" - }, - "id": { - "type": "string" - }, - "last_checkin": { - "type": "string" - }, - "last_checkin_message": { - "type": "string" - }, - "last_checkin_status": { - "enum": [ - "error", - "online", - "degraded", - "updating", - "starting" - ], - "type": "string" - }, - "last_known_status": { - "enum": [ - "offline", - "error", - "online", - "inactive", - "enrolling", - "unenrolling", - "unenrolled", - "updating", - "degraded", - "uninstalled", - "orphaned" - ], - "type": "string" - }, - "local_metadata": { - "additionalProperties": {}, - "type": "object" - }, - "metrics": { - "additionalProperties": false, - "properties": { - "cpu_avg": { - "type": "number" - }, - "memory_size_byte_avg": { - "type": "number" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "outputs": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "api_key_id": { - "type": "string" - }, - "to_retire_api_key_ids": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "retired_at": { - "type": "string" - } - }, - "required": [ - "id", - "retired_at" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "type": "object" - }, - "packages": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - "policy_id": { - "type": "string" - }, - "policy_revision": { - "nullable": true, - "type": "number" - }, - "sort": { - "items": {}, - "maxItems": 10, - "type": "array" - }, - "status": { - "enum": [ - "offline", - "error", - "online", - "inactive", - "enrolling", - "unenrolling", - "unenrolled", - "updating", - "degraded", - "uninstalled", - "orphaned" - ], - "type": "string" - }, - "tags": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "enum": [ - "PERMANENT", - "EPHEMERAL", - "TEMPORARY" - ], - "type": "string" - }, - "unenrolled_at": { - "type": "string" - }, - "unenrollment_started_at": { - "type": "string" - }, - "unhealthy_reason": { - "items": { - "enum": [ - "input", - "output", - "other" - ], - "type": "string" - }, - "maxItems": 3, - "nullable": true, - "type": "array" - }, - "upgrade": { - "additionalProperties": false, - "properties": { - "rollbacks": { - "items": { - "additionalProperties": false, - "properties": { - "valid_until": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "valid_until", - "version" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - }, - "upgrade_attempts": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "nullable": true, - "type": "array" - }, - "upgrade_details": { - "additionalProperties": false, - "nullable": true, - "properties": { - "action_id": { - "type": "string" - }, - "metadata": { - "additionalProperties": false, - "properties": { - "download_percent": { - "type": "number" - }, - "download_rate": { - "type": "number" - }, - "error_msg": { - "type": "string" - }, - "failed_state": { - "enum": [ - "UPG_REQUESTED", - "UPG_SCHEDULED", - "UPG_DOWNLOADING", - "UPG_EXTRACTING", - "UPG_REPLACING", - "UPG_RESTARTING", - "UPG_FAILED", - "UPG_WATCHING", - "UPG_ROLLBACK" - ], - "type": "string" - }, - "retry_error_msg": { - "type": "string" - }, - "retry_until": { - "type": "string" - }, - "scheduled_at": { - "type": "string" - } - }, - "type": "object" - }, - "state": { - "enum": [ - "UPG_REQUESTED", - "UPG_SCHEDULED", - "UPG_DOWNLOADING", - "UPG_EXTRACTING", - "UPG_REPLACING", - "UPG_RESTARTING", - "UPG_FAILED", - "UPG_WATCHING", - "UPG_ROLLBACK" - ], - "type": "string" - }, - "target_version": { - "type": "string" - } - }, - "required": [ - "target_version", - "action_id", - "state" - ], - "type": "object" - }, - "upgrade_started_at": { - "nullable": true, - "type": "string" - }, - "upgraded_at": { - "nullable": true, - "type": "string" - }, - "user_provided_metadata": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "id", - "packages", - "type", - "active", - "enrolled_at", - "local_metadata" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get an agent", - "tags": [ - "Elastic Agents" - ] - }, - "put": { - "description": "Update an agent by ID.

[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "put-fleet-agents-agentid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "tags": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "user_provided_metadata": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "access_api_key": { - "type": "string" - }, - "access_api_key_id": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "agent": { - "additionalProperties": true, - "properties": { - "id": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "version" - ], - "type": "object" - }, - "audit_unenrolled_reason": { - "type": "string" - }, - "components": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "status": { - "enum": [ - "STARTING", - "CONFIGURING", - "HEALTHY", - "DEGRADED", - "FAILED", - "STOPPING", - "STOPPED" - ], - "type": "string" - }, - "type": { - "type": "string" - }, - "units": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "payload": { - "additionalProperties": {}, - "type": "object" - }, - "status": { - "enum": [ - "STARTING", - "CONFIGURING", - "HEALTHY", - "DEGRADED", - "FAILED", - "STOPPING", - "STOPPED" - ], - "type": "string" - }, - "type": { - "enum": [ - "input", - "output", - "" - ], - "type": "string" - } - }, - "required": [ - "id", - "type", - "status", - "message" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "id", - "type", - "status", - "message" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "default_api_key": { - "type": "string" - }, - "default_api_key_history": { - "items": { - "additionalProperties": false, - "deprecated": true, - "properties": { - "id": { - "type": "string" - }, - "retired_at": { - "type": "string" - } - }, - "required": [ - "id", - "retired_at" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "default_api_key_id": { - "type": "string" - }, - "enrolled_at": { - "type": "string" - }, - "id": { - "type": "string" - }, - "last_checkin": { - "type": "string" - }, - "last_checkin_message": { - "type": "string" - }, - "last_checkin_status": { - "enum": [ - "error", - "online", - "degraded", - "updating", - "starting" - ], - "type": "string" - }, - "last_known_status": { - "enum": [ - "offline", - "error", - "online", - "inactive", - "enrolling", - "unenrolling", - "unenrolled", - "updating", - "degraded", - "uninstalled", - "orphaned" - ], - "type": "string" - }, - "local_metadata": { - "additionalProperties": {}, - "type": "object" - }, - "metrics": { - "additionalProperties": false, - "properties": { - "cpu_avg": { - "type": "number" - }, - "memory_size_byte_avg": { - "type": "number" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "outputs": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "api_key_id": { - "type": "string" - }, - "to_retire_api_key_ids": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "retired_at": { - "type": "string" - } - }, - "required": [ - "id", - "retired_at" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "type": "object" - }, - "packages": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - "policy_id": { - "type": "string" - }, - "policy_revision": { - "nullable": true, - "type": "number" - }, - "sort": { - "items": {}, - "maxItems": 10, - "type": "array" - }, - "status": { - "enum": [ - "offline", - "error", - "online", - "inactive", - "enrolling", - "unenrolling", - "unenrolled", - "updating", - "degraded", - "uninstalled", - "orphaned" - ], - "type": "string" - }, - "tags": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "enum": [ - "PERMANENT", - "EPHEMERAL", - "TEMPORARY" - ], - "type": "string" - }, - "unenrolled_at": { - "type": "string" - }, - "unenrollment_started_at": { - "type": "string" - }, - "unhealthy_reason": { - "items": { - "enum": [ - "input", - "output", - "other" - ], - "type": "string" - }, - "maxItems": 3, - "nullable": true, - "type": "array" - }, - "upgrade": { - "additionalProperties": false, - "properties": { - "rollbacks": { - "items": { - "additionalProperties": false, - "properties": { - "valid_until": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "valid_until", - "version" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - }, - "upgrade_attempts": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "nullable": true, - "type": "array" - }, - "upgrade_details": { - "additionalProperties": false, - "nullable": true, - "properties": { - "action_id": { - "type": "string" - }, - "metadata": { - "additionalProperties": false, - "properties": { - "download_percent": { - "type": "number" - }, - "download_rate": { - "type": "number" - }, - "error_msg": { - "type": "string" - }, - "failed_state": { - "enum": [ - "UPG_REQUESTED", - "UPG_SCHEDULED", - "UPG_DOWNLOADING", - "UPG_EXTRACTING", - "UPG_REPLACING", - "UPG_RESTARTING", - "UPG_FAILED", - "UPG_WATCHING", - "UPG_ROLLBACK" - ], - "type": "string" - }, - "retry_error_msg": { - "type": "string" - }, - "retry_until": { - "type": "string" - }, - "scheduled_at": { - "type": "string" - } - }, - "type": "object" - }, - "state": { - "enum": [ - "UPG_REQUESTED", - "UPG_SCHEDULED", - "UPG_DOWNLOADING", - "UPG_EXTRACTING", - "UPG_REPLACING", - "UPG_RESTARTING", - "UPG_FAILED", - "UPG_WATCHING", - "UPG_ROLLBACK" - ], - "type": "string" - }, - "target_version": { - "type": "string" - } - }, - "required": [ - "target_version", - "action_id", - "state" - ], - "type": "object" - }, - "upgrade_started_at": { - "nullable": true, - "type": "string" - }, - "upgraded_at": { - "nullable": true, - "type": "string" - }, - "user_provided_metadata": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "id", - "packages", - "type", - "active", - "enrolled_at", - "local_metadata" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Update an agent by ID", - "tags": [ - "Elastic Agents" - ] - } - }, - "/api/fleet/agents/{agentId}/actions": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-agentid-actions", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "action": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "ack_data": {}, - "data": {}, - "type": { - "enum": [ - "UNENROLL", - "UPGRADE", - "POLICY_REASSIGN" - ], - "type": "string" - } - }, - "required": [ - "type", - "data", - "ack_data" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "data": { - "additionalProperties": false, - "properties": { - "log_level": { - "enum": [ - "debug", - "info", - "warning", - "error" - ], - "nullable": true, - "type": "string" - } - }, - "required": [ - "log_level" - ], - "type": "object" - }, - "type": { - "enum": [ - "SETTINGS" - ], - "type": "string" - } - }, - "required": [ - "type", - "data" - ], - "type": "object" - } - ] - } - }, - "required": [ - "action" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "ack_data": {}, - "agents": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - "created_at": { - "type": "string" - }, - "data": {}, - "expiration": { - "type": "string" - }, - "id": { - "type": "string" - }, - "minimum_execution_duration": { - "type": "number" - }, - "namespaces": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "rollout_duration_seconds": { - "type": "number" - }, - "sent_at": { - "type": "string" - }, - "source_uri": { - "type": "string" - }, - "start_time": { - "type": "string" - }, - "total": { - "type": "number" - }, - "type": { - "type": "string" - } - }, - "required": [ - "id", - "type", - "data", - "created_at", - "ack_data" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Create an agent action", - "tags": [ - "Elastic Agent actions" - ] - } - }, - "/api/fleet/agents/{agentId}/migrate": { - "post": { - "description": "Migrate a single agent to another cluster.

[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-agentid-migrate", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "enrollment_token": { - "type": "string" - }, - "settings": { - "additionalProperties": false, - "properties": { - "ca_sha256": { - "type": "string" - }, - "certificate_authorities": { - "type": "string" - }, - "elastic_agent_cert": { - "type": "string" - }, - "elastic_agent_cert_key": { - "type": "string" - }, - "elastic_agent_cert_key_passphrase": { - "type": "string" - }, - "headers": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "insecure": { - "type": "boolean" - }, - "proxy_disabled": { - "type": "boolean" - }, - "proxy_headers": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "proxy_url": { - "type": "string" - }, - "replace_token": { - "type": "string" - }, - "staging": { - "type": "string" - }, - "tags": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - } - }, - "type": "object" - }, - "uri": { - "format": "uri", - "type": "string" - } - }, - "required": [ - "uri", - "enrollment_token" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "actionId": { - "type": "string" - } - }, - "required": [ - "actionId" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Migrate a single agent", - "tags": [ - "Elastic Agents" - ] - } - }, - "/api/fleet/agents/{agentId}/privilege_level_change": { - "post": { - "description": "Change the privilege level of a single agent to unprivileged.

[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-agentid-privilege-level-change", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The agent ID to change privilege level for", - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "changeAgentPrivilegeLevelRequest": { - "value": { - "user_info": { - "groupname": "groupname", - "password": "password", - "username": "username" - } - } - } - }, - "schema": { - "additionalProperties": false, - "nullable": true, - "properties": { - "user_info": { - "additionalProperties": false, - "properties": { - "groupname": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "successResponse": { - "value": { - "actionId": "actionId" - } - } - }, - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "actionId": { - "type": "string" - } - }, - "required": [ - "actionId" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - } - ] - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "examples": { - "badRequestResponse": { - "value": { - "message": "Bad Request" - } - } - }, - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Change agent privilege level", - "tags": [ - "Elastic Agents" - ], - "x-state": "Technical Preview; added in 9.3.0" - } - }, - "/api/fleet/agents/{agentId}/reassign": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-agentid-reassign", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "policy_id": { - "type": "string" - } - }, - "required": [ - "policy_id" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Reassign an agent", - "tags": [ - "Elastic Agent actions" - ] - } - }, - "/api/fleet/agents/{agentId}/request_diagnostics": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-read.", - "operationId": "post-fleet-agents-agentid-request-diagnostics", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "nullable": true, - "properties": { - "additional_metrics": { - "items": { - "enum": [ - "CPU" - ], - "type": "string" - }, - "maxItems": 1, - "type": "array" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "actionId": { - "type": "string" - } - }, - "required": [ - "actionId" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Request agent diagnostics", - "tags": [ - "Elastic Agent actions" - ] - } - }, - "/api/fleet/agents/{agentId}/rollback": { - "post": { - "description": "Rollback an agent to the previous version.

[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-agentid-rollback", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The agent ID to rollback", - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "successResponse": { - "value": { - "actionId": "actionId" - } - } - }, - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "actionId": { - "type": "string" - } - }, - "required": [ - "actionId" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - } - ] - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "examples": { - "badRequestResponse": { - "value": { - "message": "Bad Request" - } - } - }, - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Rollback an agent", - "tags": [ - "Elastic Agent actions" - ], - "x-state": "Technical Preview; added in 9.4.0" - } - }, - "/api/fleet/agents/{agentId}/unenroll": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-agentid-unenroll", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "nullable": true, - "properties": { - "force": { - "type": "boolean" - }, - "revoke": { - "type": "boolean" - } - }, - "type": "object" - } - } - } - }, - "responses": {}, - "summary": "Unenroll an agent", - "tags": [ - "Elastic Agent actions" - ] - } - }, - "/api/fleet/agents/{agentId}/upgrade": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-agentid-upgrade", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "force": { - "type": "boolean" - }, - "skipRateLimitCheck": { - "type": "boolean" - }, - "source_uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "version" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Upgrade an agent", - "tags": [ - "Elastic Agent actions" - ] - } - }, - "/api/fleet/agents/{agentId}/uploads": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agents-read.", - "operationId": "get-fleet-agents-agentid-uploads", - "parameters": [ - { - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "actionId": { - "type": "string" - }, - "createTime": { - "type": "string" - }, - "error": { - "type": "string" - }, - "filePath": { - "type": "string" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "status": { - "enum": [ - "READY", - "AWAITING_UPLOAD", - "DELETED", - "EXPIRED", - "IN_PROGRESS", - "FAILED" - ], - "type": "string" - } - }, - "required": [ - "id", - "name", - "filePath", - "createTime", - "status", - "actionId" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get agent uploads", - "tags": [ - "Elastic Agents" - ] - } - }, - "/api/fleet/check-permissions": { - "get": { - "operationId": "get-fleet-check-permissions", - "parameters": [ - { - "in": "query", - "name": "fleetServerSetup", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "error": { - "enum": [ - "MISSING_SECURITY", - "MISSING_PRIVILEGES", - "MISSING_FLEET_SERVER_SETUP_PRIVILEGES" - ], - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "required": [ - "success" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Check permissions", - "tags": [ - "Fleet internals" - ] - } - }, - "/api/fleet/cloud_connectors": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-read OR integrations-read.", - "operationId": "get-fleet-cloud-connectors", - "parameters": [ - { - "description": "The page number for pagination.", - "in": "query", - "name": "page", - "required": false, - "schema": { - "type": "string" - } - }, - { - "description": "The number of items per page.", - "in": "query", - "name": "perPage", - "required": false, - "schema": { - "type": "string" - } - }, - { - "description": "KQL query to filter cloud connectors.", - "in": "query", - "name": "kuery", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "accountType": { - "type": "string" - }, - "cloudProvider": { - "type": "string" - }, - "created_at": { - "type": "string" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "namespace": { - "type": "string" - }, - "packagePolicyCount": { - "type": "number" - }, - "updated_at": { - "type": "string" - }, - "vars": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "id", - "name", - "cloudProvider", - "vars", - "packagePolicyCount", - "created_at", - "updated_at" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get cloud connectors", - "tags": [ - "Fleet cloud connectors" - ], - "x-state": "Technical Preview; added in 9.2.0" - }, - "post": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-all OR integrations-all.", - "operationId": "post-fleet-cloud-connectors", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "accountType": { - "description": "The account type: single-account (single account/subscription) or organization-account (organization-wide).", - "enum": [ - "single-account", - "organization-account" - ], - "type": "string" - }, - "cloudProvider": { - "description": "The cloud provider type: aws, azure, or gcp.", - "enum": [ - "aws", - "azure", - "gcp" - ], - "type": "string" - }, - "name": { - "description": "The name of the cloud connector.", - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "maxLength": 1000, - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "maxLength": 50, - "type": "string" - }, - "value": { - "anyOf": [ - { - "maxLength": 1000, - "type": "string" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "maxLength": 255, - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "isSecretRef", - "id" - ], - "type": "object" - } - ] - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - } - ] - }, - "type": "object" - } - }, - "required": [ - "name", - "cloudProvider", - "vars" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "accountType": { - "type": "string" - }, - "cloudProvider": { - "type": "string" - }, - "created_at": { - "type": "string" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "namespace": { - "type": "string" - }, - "packagePolicyCount": { - "type": "number" - }, - "updated_at": { - "type": "string" - }, - "vars": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "id", - "name", - "cloudProvider", - "vars", - "packagePolicyCount", - "created_at", - "updated_at" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Create cloud connector", - "tags": [ - "Fleet cloud connectors" - ], - "x-state": "Technical Preview; added in 9.2.0" - } - }, - "/api/fleet/cloud_connectors/{cloudConnectorId}": { - "delete": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-all OR integrations-all.", - "operationId": "delete-fleet-cloud-connectors-cloudconnectorid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The unique identifier of the cloud connector to delete.", - "in": "path", - "name": "cloudConnectorId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "If true, forces deletion even if the cloud connector is in use.", - "in": "query", - "name": "force", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Delete cloud connector (supports force deletion)", - "tags": [ - "Fleet cloud connectors" - ], - "x-state": "Technical Preview; added in 9.2.0" - }, - "get": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-read OR integrations-read.", - "operationId": "get-fleet-cloud-connectors-cloudconnectorid", - "parameters": [ - { - "description": "The unique identifier of the cloud connector.", - "in": "path", - "name": "cloudConnectorId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "accountType": { - "type": "string" - }, - "cloudProvider": { - "type": "string" - }, - "created_at": { - "type": "string" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "namespace": { - "type": "string" - }, - "packagePolicyCount": { - "type": "number" - }, - "updated_at": { - "type": "string" - }, - "vars": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "id", - "name", - "cloudProvider", - "vars", - "packagePolicyCount", - "created_at", - "updated_at" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get cloud connector", - "tags": [ - "Fleet cloud connectors" - ], - "x-state": "Technical Preview; added in 9.2.0" - }, - "put": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-all OR integrations-all.", - "operationId": "put-fleet-cloud-connectors-cloudconnectorid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The unique identifier of the cloud connector to update.", - "in": "path", - "name": "cloudConnectorId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "accountType": { - "description": "The account type: single-account (single account/subscription) or organization-account (organization-wide).", - "enum": [ - "single-account", - "organization-account" - ], - "type": "string" - }, - "name": { - "description": "The name of the cloud connector.", - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "maxLength": 1000, - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "maxLength": 50, - "type": "string" - }, - "value": { - "anyOf": [ - { - "maxLength": 1000, - "type": "string" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "maxLength": 255, - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "isSecretRef", - "id" - ], - "type": "object" - } - ] - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - } - ] - }, - "type": "object" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "accountType": { - "type": "string" - }, - "cloudProvider": { - "type": "string" - }, - "created_at": { - "type": "string" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "namespace": { - "type": "string" - }, - "packagePolicyCount": { - "type": "number" - }, - "updated_at": { - "type": "string" - }, - "vars": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "id", - "name", - "cloudProvider", - "vars", - "packagePolicyCount", - "created_at", - "updated_at" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Update cloud connector", - "tags": [ - "Fleet cloud connectors" - ], - "x-state": "Technical Preview; added in 9.2.0" - } - }, - "/api/fleet/cloud_connectors/{cloudConnectorId}/usage": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-read OR integrations-read.", - "operationId": "get-fleet-cloud-connectors-cloudconnectorid-usage", - "parameters": [ - { - "description": "The unique identifier of the cloud connector.", - "in": "path", - "name": "cloudConnectorId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "The page number for pagination.", - "in": "query", - "name": "page", - "required": false, - "schema": { - "minimum": 1, - "type": "number" - } - }, - { - "description": "The number of items per page.", - "in": "query", - "name": "perPage", - "required": false, - "schema": { - "minimum": 1, - "type": "number" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "getCloudConnectorUsageResponseExample": { - "description": "Example response showing package policies using the cloud connector", - "value": { - "items": [ - { - "created_at": "2025-01-16T09:00:00.000Z", - "id": "package-policy-1", - "name": "CSPM AWS Policy", - "package": { - "name": "cloud_security_posture", - "title": "Cloud Security Posture Management", - "version": "3.1.1" - }, - "policy_ids": [ - "policy-id-123", - "policy-id-456" - ], - "updated_at": "2025-01-16T09:00:00.000Z" - } - ], - "page": 1, - "perPage": 20, - "total": 2 - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "created_at": { - "type": "string" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "package": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "title": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "title", - "version" - ], - "type": "object" - }, - "policy_ids": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - "updated_at": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "policy_ids", - "created_at", - "updated_at" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "page": { - "type": "number" - }, - "perPage": { - "type": "number" - }, - "total": { - "type": "number" - } - }, - "required": [ - "items", - "total", - "page", - "perPage" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "examples": { - "genericErrorResponseExample": { - "description": "Example of a generic error response", - "value": { - "error": "Bad Request", - "message": "Cloud connector not found", - "statusCode": 400 - } - } - }, - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get cloud connector usage (package policies using the connector)", - "tags": [ - "Fleet cloud connectors" - ], - "x-state": "Technical Preview; added in 9.2.0" - } - }, - "/api/fleet/data_streams": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agents-all AND fleet-agent-policies-all AND fleet-settings-all.", - "operationId": "get-fleet-data-streams", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "data_streams": { - "items": { - "additionalProperties": false, - "properties": { - "dashboards": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "title": { - "type": "string" - } - }, - "required": [ - "id", - "title" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "dataset": { - "type": "string" - }, - "index": { - "type": "string" - }, - "last_activity_ms": { - "type": "number" - }, - "namespace": { - "type": "string" - }, - "package": { - "type": "string" - }, - "package_version": { - "type": "string" - }, - "serviceDetails": { - "additionalProperties": false, - "nullable": true, - "properties": { - "environment": { - "type": "string" - }, - "serviceName": { - "type": "string" - } - }, - "required": [ - "environment", - "serviceName" - ], - "type": "object" - }, - "size_in_bytes": { - "type": "number" - }, - "size_in_bytes_formatted": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string" - } - ] - }, - "type": { - "type": "string" - } - }, - "required": [ - "index", - "dataset", - "namespace", - "type", - "package", - "package_version", - "last_activity_ms", - "size_in_bytes", - "size_in_bytes_formatted", - "dashboards", - "serviceDetails" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "data_streams" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get data streams", - "tags": [ - "Data streams" - ] - } - }, - "/api/fleet/enrollment_api_keys": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agents-all OR fleet-setup.", - "operationId": "get-fleet-enrollment-api-keys", - "parameters": [ - { - "in": "query", - "name": "page", - "required": false, - "schema": { - "default": 1, - "type": "number" - } - }, - { - "in": "query", - "name": "perPage", - "required": false, - "schema": { - "default": 20, - "type": "number" - } - }, - { - "in": "query", - "name": "kuery", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "active": { - "description": "When false, the enrollment API key is revoked and cannot be used for enrolling Elastic Agents.", - "type": "boolean" - }, - "api_key": { - "description": "The enrollment API key (token) used for enrolling Elastic Agents.", - "type": "string" - }, - "api_key_id": { - "description": "The ID of the API key in the Security API.", - "type": "string" - }, - "created_at": { - "type": "string" - }, - "hidden": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "name": { - "description": "The name of the enrollment API key.", - "type": "string" - }, - "policy_id": { - "description": "The ID of the agent policy the Elastic Agent will be enrolled in.", - "type": "string" - } - }, - "required": [ - "id", - "api_key_id", - "api_key", - "active", - "created_at" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "list": { - "deprecated": true, - "items": { - "additionalProperties": false, - "properties": { - "active": { - "description": "When false, the enrollment API key is revoked and cannot be used for enrolling Elastic Agents.", - "type": "boolean" - }, - "api_key": { - "description": "The enrollment API key (token) used for enrolling Elastic Agents.", - "type": "string" - }, - "api_key_id": { - "description": "The ID of the API key in the Security API.", - "type": "string" - }, - "created_at": { - "type": "string" - }, - "hidden": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "name": { - "description": "The name of the enrollment API key.", - "type": "string" - }, - "policy_id": { - "description": "The ID of the agent policy the Elastic Agent will be enrolled in.", - "type": "string" - } - }, - "required": [ - "id", - "api_key_id", - "api_key", - "active", - "created_at" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "page": { - "type": "number" - }, - "perPage": { - "type": "number" - }, - "total": { - "type": "number" - } - }, - "required": [ - "items", - "total", - "page", - "perPage", - "list" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get enrollment API keys", - "tags": [ - "Fleet enrollment API keys" - ] - }, - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-enrollment-api-keys", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "expiration": { - "type": "string" - }, - "name": { - "type": "string" - }, - "policy_id": { - "type": "string" - } - }, - "required": [ - "policy_id" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "action": { - "enum": [ - "created" - ], - "type": "string" - }, - "item": { - "additionalProperties": false, - "properties": { - "active": { - "description": "When false, the enrollment API key is revoked and cannot be used for enrolling Elastic Agents.", - "type": "boolean" - }, - "api_key": { - "description": "The enrollment API key (token) used for enrolling Elastic Agents.", - "type": "string" - }, - "api_key_id": { - "description": "The ID of the API key in the Security API.", - "type": "string" - }, - "created_at": { - "type": "string" - }, - "hidden": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "name": { - "description": "The name of the enrollment API key.", - "type": "string" - }, - "policy_id": { - "description": "The ID of the agent policy the Elastic Agent will be enrolled in.", - "type": "string" - } - }, - "required": [ - "id", - "api_key_id", - "api_key", - "active", - "created_at" - ], - "type": "object" - } - }, - "required": [ - "item", - "action" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Create an enrollment API key", - "tags": [ - "Fleet enrollment API keys" - ] - } - }, - "/api/fleet/enrollment_api_keys/{keyId}": { - "delete": { - "description": "Revoke an enrollment API key by ID by marking it as inactive.

[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "delete-fleet-enrollment-api-keys-keyid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "keyId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "action": { - "enum": [ - "deleted" - ], - "type": "string" - } - }, - "required": [ - "action" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Revoke an enrollment API key", - "tags": [ - "Fleet enrollment API keys" - ] - }, - "get": { - "description": "Get an enrollment API key by ID.

[Required authorization] Route required privileges: fleet-agents-all OR fleet-setup.", - "operationId": "get-fleet-enrollment-api-keys-keyid", - "parameters": [ - { - "in": "path", - "name": "keyId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "active": { - "description": "When false, the enrollment API key is revoked and cannot be used for enrolling Elastic Agents.", - "type": "boolean" - }, - "api_key": { - "description": "The enrollment API key (token) used for enrolling Elastic Agents.", - "type": "string" - }, - "api_key_id": { - "description": "The ID of the API key in the Security API.", - "type": "string" - }, - "created_at": { - "type": "string" - }, - "hidden": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "name": { - "description": "The name of the enrollment API key.", - "type": "string" - }, - "policy_id": { - "description": "The ID of the agent policy the Elastic Agent will be enrolled in.", - "type": "string" - } - }, - "required": [ - "id", - "api_key_id", - "api_key", - "active", - "created_at" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get an enrollment API key", - "tags": [ - "Fleet enrollment API keys" - ] - } - }, - "/api/fleet/epm/bulk_assets": { - "post": { - "description": "[Required authorization] Route required privileges: integrations-read OR fleet-setup OR fleet-all.", - "operationId": "post-fleet-epm-bulk-assets", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "assetIds": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "assetIds" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "appLink": { - "type": "string" - }, - "attributes": { - "additionalProperties": false, - "properties": { - "description": { - "type": "string" - }, - "service": { - "type": "string" - }, - "title": { - "type": "string" - } - }, - "type": "object" - }, - "id": { - "type": "string" - }, - "type": { - "type": "string" - }, - "updatedAt": { - "type": "string" - } - }, - "required": [ - "id", - "type", - "attributes" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk get assets", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/categories": { - "get": { - "description": "[Required authorization] Route required privileges: integrations-read OR fleet-setup OR fleet-all.", - "operationId": "get-fleet-epm-categories", - "parameters": [ - { - "in": "query", - "name": "prerelease", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "include_policy_templates", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "count": { - "type": "number" - }, - "id": { - "type": "string" - }, - "parent_id": { - "type": "string" - }, - "parent_title": { - "type": "string" - }, - "title": { - "type": "string" - } - }, - "required": [ - "id", - "title", - "count" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get package categories", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/custom_integrations": { - "post": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "post-fleet-epm-custom-integrations", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "datasets": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "type": { - "enum": [ - "logs", - "metrics", - "traces", - "synthetics", - "profiling" - ], - "type": "string" - } - }, - "required": [ - "name", - "type" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "force": { - "type": "boolean" - }, - "integrationName": { - "type": "string" - } - }, - "required": [ - "integrationName", - "datasets" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "_meta": { - "additionalProperties": false, - "properties": { - "install_source": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "install_source", - "name" - ], - "type": "object" - }, - "items": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "originId": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "dashboard", - "lens", - "visualization", - "search", - "index-pattern", - "map", - "ml-module", - "security-rule", - "csp-rule-template", - "osquery-pack-asset", - "osquery-saved-query", - "tag" - ], - "type": "string" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "type": { - "enum": [ - "index", - "index_template", - "component_template", - "ingest_pipeline", - "ilm_policy", - "data_stream_ilm_policy", - "transform", - "ml_model", - "knowledge_base", - "esql_view" - ], - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - } - ] - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items", - "_meta" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Create a custom integration", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/custom_integrations/{pkgName}": { - "put": { - "description": "[Required authorization] Route required privileges: fleet-settings-all AND integrations-all.", - "operationId": "put-fleet-epm-custom-integrations-pkgname", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "categories": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "readMeData": { - "type": "string" - } - }, - "required": [ - "readMeData" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Update a custom integration", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/data_streams": { - "get": { - "description": "[Required authorization] Route required privileges: integrations-read OR fleet-setup OR fleet-all.", - "operationId": "get-fleet-epm-data-streams", - "parameters": [ - { - "in": "query", - "name": "type", - "required": false, - "schema": { - "enum": [ - "logs", - "metrics", - "traces", - "synthetics", - "profiling" - ], - "type": "string" - } - }, - { - "in": "query", - "name": "datasetQuery", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "sortOrder", - "required": false, - "schema": { - "default": "asc", - "enum": [ - "asc", - "desc" - ], - "type": "string" - } - }, - { - "in": "query", - "name": "uncategorisedOnly", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get data streams", - "tags": [ - "Data streams" - ] - } - }, - "/api/fleet/epm/packages": { - "get": { - "description": "[Required authorization] Route required privileges: integrations-read OR fleet-setup OR fleet-all.", - "operationId": "get-fleet-epm-packages", - "parameters": [ - { - "in": "query", - "name": "category", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "prerelease", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "excludeInstallStatus", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "withPackagePoliciesCount", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": true, - "properties": { - "categories": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "conditions": { - "additionalProperties": true, - "properties": { - "elastic": { - "additionalProperties": true, - "properties": { - "capabilities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "subscription": { - "type": "string" - } - }, - "type": "object" - }, - "kibana": { - "additionalProperties": true, - "properties": { - "version": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "data_streams": { - "items": { - "additionalProperties": {}, - "type": "object" - }, - "maxItems": 1000, - "type": "array" - }, - "description": { - "type": "string" - }, - "discovery": { - "additionalProperties": true, - "properties": { - "datasets": { - "items": { - "additionalProperties": true, - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "fields": { - "items": { - "additionalProperties": true, - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - } - }, - "type": "object" - }, - "download": { - "type": "string" - }, - "format_version": { - "type": "string" - }, - "icons": { - "items": { - "additionalProperties": true, - "properties": { - "dark_mode": { - "type": "boolean" - }, - "path": { - "type": "string" - }, - "size": { - "type": "string" - }, - "src": { - "type": "string" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "src" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "id": { - "type": "string" - }, - "installationInfo": { - "additionalProperties": true, - "properties": { - "additional_spaces_installed_kibana": { - "additionalProperties": { - "items": { - "additionalProperties": true, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "originId": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "dashboard", - "lens", - "visualization", - "search", - "index-pattern", - "map", - "ml-module", - "security-rule", - "csp-rule-template", - "osquery-pack-asset", - "osquery-saved-query", - "tag" - ], - "type": "string" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": "object" - }, - "created_at": { - "type": "string" - }, - "experimental_data_stream_features": { - "items": { - "additionalProperties": true, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": true, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "install_format_schema_version": { - "type": "string" - }, - "install_source": { - "enum": [ - "registry", - "upload", - "bundled", - "custom" - ], - "type": "string" - }, - "install_status": { - "enum": [ - "installed", - "installing", - "install_failed" - ], - "type": "string" - }, - "installed_es": { - "items": { - "additionalProperties": true, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "type": { - "enum": [ - "index", - "index_template", - "component_template", - "ingest_pipeline", - "ilm_policy", - "data_stream_ilm_policy", - "transform", - "ml_model", - "knowledge_base", - "esql_view" - ], - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "installed_kibana": { - "items": { - "additionalProperties": true, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "originId": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "dashboard", - "lens", - "visualization", - "search", - "index-pattern", - "map", - "ml-module", - "security-rule", - "csp-rule-template", - "osquery-pack-asset", - "osquery-saved-query", - "tag" - ], - "type": "string" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "installed_kibana_space_id": { - "type": "string" - }, - "is_rollback_ttl_expired": { - "type": "boolean" - }, - "latest_executed_state": { - "additionalProperties": true, - "properties": { - "error": { - "type": "string" - }, - "name": { - "type": "string" - }, - "started_at": { - "type": "string" - } - }, - "type": "object" - }, - "latest_install_failed_attempts": { - "items": { - "additionalProperties": true, - "properties": { - "created_at": { - "type": "string" - }, - "error": { - "additionalProperties": true, - "properties": { - "message": { - "type": "string" - }, - "name": { - "type": "string" - }, - "stack": { - "type": "string" - } - }, - "required": [ - "name", - "message" - ], - "type": "object" - }, - "target_version": { - "type": "string" - } - }, - "required": [ - "created_at", - "target_version", - "error" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "name": { - "type": "string" - }, - "namespaces": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "previous_version": { - "nullable": true, - "type": "string" - }, - "rolled_back": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "updated_at": { - "type": "string" - }, - "verification_key_id": { - "nullable": true, - "type": "string" - }, - "verification_status": { - "enum": [ - "unverified", - "verified", - "unknown" - ], - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "type", - "installed_kibana", - "installed_es", - "name", - "version", - "install_status", - "install_source", - "verification_status" - ], - "type": "object" - }, - "integration": { - "type": "string" - }, - "internal": { - "type": "boolean" - }, - "latestVersion": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner": { - "additionalProperties": true, - "properties": { - "github": { - "type": "string" - }, - "type": { - "enum": [ - "elastic", - "partner", - "community" - ], - "type": "string" - } - }, - "type": "object" - }, - "path": { - "type": "string" - }, - "policy_templates": { - "items": { - "additionalProperties": {}, - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "readme": { - "type": "string" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "signature_path": { - "type": "string" - }, - "source": { - "additionalProperties": true, - "properties": { - "license": { - "type": "string" - } - }, - "required": [ - "license" - ], - "type": "object" - }, - "status": { - "type": "string" - }, - "title": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "integration" - ], - "type": "string" - }, - { - "enum": [ - "input" - ], - "type": "string" - }, - { - "enum": [ - "content" - ], - "type": "string" - }, - { - "type": "string" - } - ] - }, - "vars": { - "items": { - "additionalProperties": {}, - "type": "object" - }, - "maxItems": 1000, - "type": "array" - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "version", - "title", - "id" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get packages", - "tags": [ - "Elastic Package Manager (EPM)" - ] - }, - "post": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "post-fleet-epm-packages", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "query", - "name": "ignoreMappingUpdateErrors", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - }, - { - "in": "query", - "name": "skipDataStreamRollover", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - } - ], - "requestBody": { - "content": { - "application/gzip; application/zip": { - "schema": { - "format": "binary", - "type": "string" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/gzip; application/zip": { - "schema": { - "additionalProperties": false, - "properties": { - "_meta": { - "additionalProperties": false, - "properties": { - "install_source": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "install_source", - "name" - ], - "type": "object" - }, - "items": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "originId": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "dashboard", - "lens", - "visualization", - "search", - "index-pattern", - "map", - "ml-module", - "security-rule", - "csp-rule-template", - "osquery-pack-asset", - "osquery-saved-query", - "tag" - ], - "type": "string" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "type": { - "enum": [ - "index", - "index_template", - "component_template", - "ingest_pipeline", - "ilm_policy", - "data_stream_ilm_policy", - "transform", - "ml_model", - "knowledge_base", - "esql_view" - ], - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - } - ] - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items", - "_meta" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/gzip; application/zip": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Install a package by upload", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/_bulk": { - "post": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "post-fleet-epm-packages-bulk", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "query", - "name": "prerelease", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "force": { - "default": false, - "type": "boolean" - }, - "packages": { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "prerelease": { - "type": "boolean" - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - } - ] - }, - "maxItems": 1000, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "packages" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "result": { - "additionalProperties": false, - "properties": { - "assets": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "originId": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "dashboard", - "lens", - "visualization", - "search", - "index-pattern", - "map", - "ml-module", - "security-rule", - "csp-rule-template", - "osquery-pack-asset", - "osquery-saved-query", - "tag" - ], - "type": "string" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "type": { - "enum": [ - "index", - "index_template", - "component_template", - "ingest_pipeline", - "ilm_policy", - "data_stream_ilm_policy", - "transform", - "ml_model", - "knowledge_base", - "esql_view" - ], - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - } - ] - }, - "maxItems": 10000, - "type": "array" - }, - "error": {}, - "installSource": { - "type": "string" - }, - "installType": { - "type": "string" - }, - "status": { - "enum": [ - "installed", - "already_installed" - ], - "type": "string" - } - }, - "required": [ - "error", - "installType" - ], - "type": "object" - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "version", - "result" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "error": { - "anyOf": [ - { - "type": "string" - }, - {} - ] - }, - "name": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "name", - "statusCode", - "error" - ], - "type": "object" - } - ] - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk install packages", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/_bulk_rollback": { - "post": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "post-fleet-epm-packages-bulk-rollback", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "bulkRollbackRequest": { - "value": { - "packages": [ - { - "name": "system" - } - ] - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "packages": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "description": "Package name to rollback", - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "maxItems": 1000, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "packages" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "successResponse": { - "value": { - "taskId": "taskId" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "taskId": { - "type": "string" - } - }, - "required": [ - "taskId" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "examples": { - "badRequestResponse": { - "value": { - "message": "Bad Request" - } - } - }, - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk rollback packages", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/_bulk_rollback/{taskId}": { - "get": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "get-fleet-epm-packages-bulk-rollback-taskid", - "parameters": [ - { - "description": "Task ID of the bulk operation", - "in": "path", - "name": "taskId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "successResponse": { - "value": { - "status": "success" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - }, - "results": { - "items": { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - }, - "name": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "required": [ - "name", - "success" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "status": { - "type": "string" - } - }, - "required": [ - "status" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "examples": { - "badRequestResponse": { - "value": { - "message": "Bad Request" - } - } - }, - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get Bulk rollback packages details", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/_bulk_uninstall": { - "post": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "post-fleet-epm-packages-bulk-uninstall", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "force": { - "default": false, - "type": "boolean" - }, - "packages": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "maxItems": 1000, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "packages" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "taskId": { - "type": "string" - } - }, - "required": [ - "taskId" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk uninstall packages", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/_bulk_uninstall/{taskId}": { - "get": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "get-fleet-epm-packages-bulk-uninstall-taskid", - "parameters": [ - { - "description": "Task ID of the bulk operation", - "in": "path", - "name": "taskId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - }, - "results": { - "items": { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - }, - "name": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "required": [ - "name", - "success" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "status": { - "type": "string" - } - }, - "required": [ - "status" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get Bulk uninstall packages details", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/_bulk_upgrade": { - "post": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "post-fleet-epm-packages-bulk-upgrade", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "force": { - "default": false, - "type": "boolean" - }, - "packages": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "maxItems": 1000, - "minItems": 1, - "type": "array" - }, - "prerelease": { - "type": "boolean" - }, - "upgrade_package_policies": { - "default": false, - "type": "boolean" - } - }, - "required": [ - "packages" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "taskId": { - "type": "string" - } - }, - "required": [ - "taskId" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk upgrade packages", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/_bulk_upgrade/{taskId}": { - "get": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "get-fleet-epm-packages-bulk-upgrade-taskid", - "parameters": [ - { - "description": "Task ID of the bulk operation", - "in": "path", - "name": "taskId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - }, - "results": { - "items": { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - }, - "name": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "required": [ - "name", - "success" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "status": { - "type": "string" - } - }, - "required": [ - "status" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get Bulk upgrade packages details", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/installed": { - "get": { - "description": "[Required authorization] Route required privileges: integrations-read OR fleet-setup OR fleet-all.", - "operationId": "get-fleet-epm-packages-installed", - "parameters": [ - { - "in": "query", - "name": "dataStreamType", - "required": false, - "schema": { - "enum": [ - "logs", - "metrics", - "traces", - "synthetics", - "profiling" - ], - "type": "string" - } - }, - { - "in": "query", - "name": "showOnlyActiveDataStreams", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "nameQuery", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "searchAfter", - "required": false, - "schema": { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "maxItems": 10, - "type": "array" - } - }, - { - "in": "query", - "name": "perPage", - "required": false, - "schema": { - "default": 15, - "type": "number" - } - }, - { - "in": "query", - "name": "sortOrder", - "required": false, - "schema": { - "default": "asc", - "enum": [ - "asc", - "desc" - ], - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "dataStreams": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "title": { - "type": "string" - } - }, - "required": [ - "name", - "title" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "description": { - "type": "string" - }, - "icons": { - "items": { - "additionalProperties": false, - "properties": { - "dark_mode": { - "type": "boolean" - }, - "path": { - "type": "string" - }, - "size": { - "type": "string" - }, - "src": { - "type": "string" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "src" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "name": { - "type": "string" - }, - "status": { - "type": "string" - }, - "title": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "version", - "status", - "dataStreams" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "searchAfter": { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "enum": [], - "nullable": true - }, - {} - ] - }, - "maxItems": 2, - "type": "array" - }, - "total": { - "type": "number" - } - }, - "required": [ - "items", - "total" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get installed packages", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/limited": { - "get": { - "description": "[Required authorization] Route required privileges: integrations-read OR fleet-setup OR fleet-all.", - "operationId": "get-fleet-epm-packages-limited", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get a limited package list", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/{pkgName}/rollback": { - "post": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "post-fleet-epm-packages-pkgname-rollback", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "Package name to roll back", - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "successResponse": { - "value": { - "success": true, - "version": "1.0.0" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "success": { - "type": "boolean" - }, - "version": { - "type": "string" - } - }, - "required": [ - "version", - "success" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "examples": { - "badRequestResponse": { - "value": { - "message": "Bad Request" - } - } - }, - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Rollback a package to previous version", - "tags": [ - "Elastic Package Manager (EPM)" - ], - "x-state": "Technical Preview; added in 9.1.0" - } - }, - "/api/fleet/epm/packages/{pkgName}/stats": { - "get": { - "description": "[Required authorization] Route required privileges: integrations-read OR fleet-setup OR fleet-all.", - "operationId": "get-fleet-epm-packages-pkgname-stats", - "parameters": [ - { - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "response": { - "additionalProperties": false, - "properties": { - "agent_policy_count": { - "type": "number" - }, - "package_policy_count": { - "type": "number" - } - }, - "required": [ - "agent_policy_count", - "package_policy_count" - ], - "type": "object" - } - }, - "required": [ - "response" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get package stats", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/{pkgName}/{pkgVersion}": { - "delete": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "delete-fleet-epm-packages-pkgname-pkgversion", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "pkgVersion", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "force", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "originId": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "dashboard", - "lens", - "visualization", - "search", - "index-pattern", - "map", - "ml-module", - "security-rule", - "csp-rule-template", - "osquery-pack-asset", - "osquery-saved-query", - "tag" - ], - "type": "string" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "type": { - "enum": [ - "index", - "index_template", - "component_template", - "ingest_pipeline", - "ilm_policy", - "data_stream_ilm_policy", - "transform", - "ml_model", - "knowledge_base", - "esql_view" - ], - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - } - ] - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Delete a package", - "tags": [ - "Elastic Package Manager (EPM)" - ] - }, - "get": { - "operationId": "get-fleet-epm-packages-pkgname-pkgversion", - "parameters": [ - { - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "pkgVersion", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "ignoreUnverified", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "prerelease", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "full", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "withMetadata", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": true, - "properties": { - "agent": { - "additionalProperties": false, - "properties": { - "privileges": { - "additionalProperties": false, - "properties": { - "root": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "asset_tags": { - "items": { - "additionalProperties": false, - "properties": { - "asset_ids": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "asset_types": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "text": { - "type": "string" - } - }, - "required": [ - "text" - ], - "type": "object" - }, - "maxItems": 1000, - "type": "array" - }, - "assets": { - "additionalProperties": {}, - "type": "object" - }, - "categories": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "conditions": { - "additionalProperties": true, - "properties": { - "elastic": { - "additionalProperties": true, - "properties": { - "capabilities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "subscription": { - "type": "string" - } - }, - "type": "object" - }, - "kibana": { - "additionalProperties": true, - "properties": { - "version": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "data_streams": { - "items": { - "additionalProperties": {}, - "type": "object" - }, - "maxItems": 1000, - "type": "array" - }, - "description": { - "type": "string" - }, - "discovery": { - "additionalProperties": true, - "properties": { - "datasets": { - "items": { - "additionalProperties": true, - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "fields": { - "items": { - "additionalProperties": true, - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - } - }, - "type": "object" - }, - "download": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": {}, - "type": "object" - }, - "format_version": { - "type": "string" - }, - "icons": { - "items": { - "additionalProperties": true, - "properties": { - "dark_mode": { - "type": "boolean" - }, - "path": { - "type": "string" - }, - "size": { - "type": "string" - }, - "src": { - "type": "string" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "src" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "installationInfo": { - "additionalProperties": true, - "properties": { - "additional_spaces_installed_kibana": { - "additionalProperties": { - "items": { - "additionalProperties": true, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "originId": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "dashboard", - "lens", - "visualization", - "search", - "index-pattern", - "map", - "ml-module", - "security-rule", - "csp-rule-template", - "osquery-pack-asset", - "osquery-saved-query", - "tag" - ], - "type": "string" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": "object" - }, - "created_at": { - "type": "string" - }, - "experimental_data_stream_features": { - "items": { - "additionalProperties": true, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": true, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "install_format_schema_version": { - "type": "string" - }, - "install_source": { - "enum": [ - "registry", - "upload", - "bundled", - "custom" - ], - "type": "string" - }, - "install_status": { - "enum": [ - "installed", - "installing", - "install_failed" - ], - "type": "string" - }, - "installed_es": { - "items": { - "additionalProperties": true, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "type": { - "enum": [ - "index", - "index_template", - "component_template", - "ingest_pipeline", - "ilm_policy", - "data_stream_ilm_policy", - "transform", - "ml_model", - "knowledge_base", - "esql_view" - ], - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "installed_kibana": { - "items": { - "additionalProperties": true, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "originId": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "dashboard", - "lens", - "visualization", - "search", - "index-pattern", - "map", - "ml-module", - "security-rule", - "csp-rule-template", - "osquery-pack-asset", - "osquery-saved-query", - "tag" - ], - "type": "string" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "installed_kibana_space_id": { - "type": "string" - }, - "is_rollback_ttl_expired": { - "type": "boolean" - }, - "latest_executed_state": { - "additionalProperties": true, - "properties": { - "error": { - "type": "string" - }, - "name": { - "type": "string" - }, - "started_at": { - "type": "string" - } - }, - "type": "object" - }, - "latest_install_failed_attempts": { - "items": { - "additionalProperties": true, - "properties": { - "created_at": { - "type": "string" - }, - "error": { - "additionalProperties": true, - "properties": { - "message": { - "type": "string" - }, - "name": { - "type": "string" - }, - "stack": { - "type": "string" - } - }, - "required": [ - "name", - "message" - ], - "type": "object" - }, - "target_version": { - "type": "string" - } - }, - "required": [ - "created_at", - "target_version", - "error" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "name": { - "type": "string" - }, - "namespaces": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "previous_version": { - "nullable": true, - "type": "string" - }, - "rolled_back": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "updated_at": { - "type": "string" - }, - "verification_key_id": { - "nullable": true, - "type": "string" - }, - "verification_status": { - "enum": [ - "unverified", - "verified", - "unknown" - ], - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "type", - "installed_kibana", - "installed_es", - "name", - "version", - "install_status", - "install_source", - "verification_status" - ], - "type": "object" - }, - "internal": { - "type": "boolean" - }, - "keepPoliciesUpToDate": { - "type": "boolean" - }, - "latestVersion": { - "type": "string" - }, - "license": { - "type": "string" - }, - "licensePath": { - "type": "string" - }, - "name": { - "type": "string" - }, - "notice": { - "type": "string" - }, - "owner": { - "additionalProperties": true, - "properties": { - "github": { - "type": "string" - }, - "type": { - "enum": [ - "elastic", - "partner", - "community" - ], - "type": "string" - } - }, - "type": "object" - }, - "path": { - "type": "string" - }, - "policy_templates": { - "items": { - "additionalProperties": {}, - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "readme": { - "type": "string" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "screenshots": { - "items": { - "additionalProperties": false, - "properties": { - "dark_mode": { - "type": "boolean" - }, - "path": { - "type": "string" - }, - "size": { - "type": "string" - }, - "src": { - "type": "string" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "src" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "signature_path": { - "type": "string" - }, - "source": { - "additionalProperties": true, - "properties": { - "license": { - "type": "string" - } - }, - "required": [ - "license" - ], - "type": "object" - }, - "status": { - "type": "string" - }, - "title": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "integration" - ], - "type": "string" - }, - { - "enum": [ - "input" - ], - "type": "string" - }, - { - "enum": [ - "content" - ], - "type": "string" - }, - { - "type": "string" - } - ] - }, - "vars": { - "items": { - "additionalProperties": {}, - "type": "object" - }, - "maxItems": 1000, - "type": "array" - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "version", - "title", - "assets" - ], - "type": "object" - }, - "metadata": { - "additionalProperties": false, - "properties": { - "has_policies": { - "type": "boolean" - } - }, - "required": [ - "has_policies" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get a package", - "tags": [ - "Elastic Package Manager (EPM)" - ] - }, - "post": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "post-fleet-epm-packages-pkgname-pkgversion", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "pkgVersion", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "prerelease", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "ignoreMappingUpdateErrors", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - }, - { - "in": "query", - "name": "skipDataStreamRollover", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "nullable": true, - "properties": { - "force": { - "default": false, - "type": "boolean" - }, - "ignore_constraints": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "_meta": { - "additionalProperties": false, - "properties": { - "install_source": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "install_source", - "name" - ], - "type": "object" - }, - "items": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "originId": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "dashboard", - "lens", - "visualization", - "search", - "index-pattern", - "map", - "ml-module", - "security-rule", - "csp-rule-template", - "osquery-pack-asset", - "osquery-saved-query", - "tag" - ], - "type": "string" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "type": { - "enum": [ - "index", - "index_template", - "component_template", - "ingest_pipeline", - "ilm_policy", - "data_stream_ilm_policy", - "transform", - "ml_model", - "knowledge_base", - "esql_view" - ], - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - } - ] - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items", - "_meta" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Install a package from the registry", - "tags": [ - "Elastic Package Manager (EPM)" - ] - }, - "put": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "put-fleet-epm-packages-pkgname-pkgversion", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "pkgVersion", - "required": false, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "keepPoliciesUpToDate": { - "type": "boolean" - } - }, - "required": [ - "keepPoliciesUpToDate" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": true, - "properties": { - "agent": { - "additionalProperties": false, - "properties": { - "privileges": { - "additionalProperties": false, - "properties": { - "root": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "asset_tags": { - "items": { - "additionalProperties": false, - "properties": { - "asset_ids": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "asset_types": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "text": { - "type": "string" - } - }, - "required": [ - "text" - ], - "type": "object" - }, - "maxItems": 1000, - "type": "array" - }, - "assets": { - "additionalProperties": {}, - "type": "object" - }, - "categories": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "conditions": { - "additionalProperties": true, - "properties": { - "elastic": { - "additionalProperties": true, - "properties": { - "capabilities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "subscription": { - "type": "string" - } - }, - "type": "object" - }, - "kibana": { - "additionalProperties": true, - "properties": { - "version": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "data_streams": { - "items": { - "additionalProperties": {}, - "type": "object" - }, - "maxItems": 1000, - "type": "array" - }, - "description": { - "type": "string" - }, - "discovery": { - "additionalProperties": true, - "properties": { - "datasets": { - "items": { - "additionalProperties": true, - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "fields": { - "items": { - "additionalProperties": true, - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - } - }, - "type": "object" - }, - "download": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": {}, - "type": "object" - }, - "format_version": { - "type": "string" - }, - "icons": { - "items": { - "additionalProperties": true, - "properties": { - "dark_mode": { - "type": "boolean" - }, - "path": { - "type": "string" - }, - "size": { - "type": "string" - }, - "src": { - "type": "string" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "src" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "installationInfo": { - "additionalProperties": true, - "properties": { - "additional_spaces_installed_kibana": { - "additionalProperties": { - "items": { - "additionalProperties": true, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "originId": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "dashboard", - "lens", - "visualization", - "search", - "index-pattern", - "map", - "ml-module", - "security-rule", - "csp-rule-template", - "osquery-pack-asset", - "osquery-saved-query", - "tag" - ], - "type": "string" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": "object" - }, - "created_at": { - "type": "string" - }, - "experimental_data_stream_features": { - "items": { - "additionalProperties": true, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": true, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "install_format_schema_version": { - "type": "string" - }, - "install_source": { - "enum": [ - "registry", - "upload", - "bundled", - "custom" - ], - "type": "string" - }, - "install_status": { - "enum": [ - "installed", - "installing", - "install_failed" - ], - "type": "string" - }, - "installed_es": { - "items": { - "additionalProperties": true, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "type": { - "enum": [ - "index", - "index_template", - "component_template", - "ingest_pipeline", - "ilm_policy", - "data_stream_ilm_policy", - "transform", - "ml_model", - "knowledge_base", - "esql_view" - ], - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "installed_kibana": { - "items": { - "additionalProperties": true, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "originId": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "dashboard", - "lens", - "visualization", - "search", - "index-pattern", - "map", - "ml-module", - "security-rule", - "csp-rule-template", - "osquery-pack-asset", - "osquery-saved-query", - "tag" - ], - "type": "string" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "installed_kibana_space_id": { - "type": "string" - }, - "is_rollback_ttl_expired": { - "type": "boolean" - }, - "latest_executed_state": { - "additionalProperties": true, - "properties": { - "error": { - "type": "string" - }, - "name": { - "type": "string" - }, - "started_at": { - "type": "string" - } - }, - "type": "object" - }, - "latest_install_failed_attempts": { - "items": { - "additionalProperties": true, - "properties": { - "created_at": { - "type": "string" - }, - "error": { - "additionalProperties": true, - "properties": { - "message": { - "type": "string" - }, - "name": { - "type": "string" - }, - "stack": { - "type": "string" - } - }, - "required": [ - "name", - "message" - ], - "type": "object" - }, - "target_version": { - "type": "string" - } - }, - "required": [ - "created_at", - "target_version", - "error" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "name": { - "type": "string" - }, - "namespaces": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "previous_version": { - "nullable": true, - "type": "string" - }, - "rolled_back": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "updated_at": { - "type": "string" - }, - "verification_key_id": { - "nullable": true, - "type": "string" - }, - "verification_status": { - "enum": [ - "unverified", - "verified", - "unknown" - ], - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "type", - "installed_kibana", - "installed_es", - "name", - "version", - "install_status", - "install_source", - "verification_status" - ], - "type": "object" - }, - "internal": { - "type": "boolean" - }, - "keepPoliciesUpToDate": { - "type": "boolean" - }, - "latestVersion": { - "type": "string" - }, - "license": { - "type": "string" - }, - "licensePath": { - "type": "string" - }, - "name": { - "type": "string" - }, - "notice": { - "type": "string" - }, - "owner": { - "additionalProperties": true, - "properties": { - "github": { - "type": "string" - }, - "type": { - "enum": [ - "elastic", - "partner", - "community" - ], - "type": "string" - } - }, - "type": "object" - }, - "path": { - "type": "string" - }, - "policy_templates": { - "items": { - "additionalProperties": {}, - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "readme": { - "type": "string" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "screenshots": { - "items": { - "additionalProperties": false, - "properties": { - "dark_mode": { - "type": "boolean" - }, - "path": { - "type": "string" - }, - "size": { - "type": "string" - }, - "src": { - "type": "string" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "src" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "signature_path": { - "type": "string" - }, - "source": { - "additionalProperties": true, - "properties": { - "license": { - "type": "string" - } - }, - "required": [ - "license" - ], - "type": "object" - }, - "status": { - "type": "string" - }, - "title": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "integration" - ], - "type": "string" - }, - { - "enum": [ - "input" - ], - "type": "string" - }, - { - "enum": [ - "content" - ], - "type": "string" - }, - { - "type": "string" - } - ] - }, - "vars": { - "items": { - "additionalProperties": {}, - "type": "object" - }, - "maxItems": 1000, - "type": "array" - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "version", - "title", - "assets" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Update package settings", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/{pkgName}/{pkgVersion}/datastream_assets": { - "delete": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "delete-fleet-epm-packages-pkgname-pkgversion-datastream-assets", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "pkgVersion", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "packagePolicyId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "success": { - "type": "boolean" - } - }, - "required": [ - "success" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Delete assets for an input package", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/{pkgName}/{pkgVersion}/kibana_assets": { - "delete": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "delete-fleet-epm-packages-pkgname-pkgversion-kibana-assets", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "pkgVersion", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "success": { - "type": "boolean" - } - }, - "required": [ - "success" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Delete Kibana assets for a package", - "tags": [ - "Elastic Package Manager (EPM)" - ] - }, - "post": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "post-fleet-epm-packages-pkgname-pkgversion-kibana-assets", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "pkgVersion", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "nullable": true, - "properties": { - "force": { - "type": "boolean" - }, - "space_ids": { - "description": "When provided install assets in the specified spaces instead of the current space.", - "items": { - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "success": { - "type": "boolean" - } - }, - "required": [ - "success" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Install Kibana assets for a package", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/{pkgName}/{pkgVersion}/rule_assets": { - "post": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "post-fleet-epm-packages-pkgname-pkgversion-rule-assets", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "pkgVersion", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "nullable": true, - "properties": { - "force": { - "type": "boolean" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "success": { - "type": "boolean" - } - }, - "required": [ - "success" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Install Kibana alert rule for a package", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/{pkgName}/{pkgVersion}/transforms/authorize": { - "post": { - "operationId": "post-fleet-epm-packages-pkgname-pkgversion-transforms-authorize", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "pkgVersion", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "prerelease", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "transforms": { - "items": { - "additionalProperties": false, - "properties": { - "transformId": { - "type": "string" - } - }, - "required": [ - "transformId" - ], - "type": "object" - }, - "maxItems": 1000, - "type": "array" - } - }, - "required": [ - "transforms" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "items": { - "additionalProperties": false, - "properties": { - "error": { - "nullable": true - }, - "success": { - "type": "boolean" - }, - "transformId": { - "type": "string" - } - }, - "required": [ - "transformId", - "success", - "error" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Authorize transforms", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/{pkgName}/{pkgVersion}/{filePath}": { - "get": { - "description": "[Required authorization] Route required privileges: integrations-read OR fleet-setup OR fleet-all.", - "operationId": "get-fleet-epm-packages-pkgname-pkgversion-filepath", - "parameters": [ - { - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "pkgVersion", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "filePath", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": {} - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get a package file", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/templates/{pkgName}/{pkgVersion}/inputs": { - "get": { - "description": "[Required authorization] Route required privileges: integrations-read OR fleet-setup OR fleet-all.", - "operationId": "get-fleet-epm-templates-pkgname-pkgversion-inputs", - "parameters": [ - { - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "pkgVersion", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "format", - "required": false, - "schema": { - "default": "json", - "enum": [ - "json", - "yml", - "yaml" - ], - "type": "string" - } - }, - { - "in": "query", - "name": "prerelease", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "ignoreUnverified", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "additionalProperties": false, - "properties": { - "inputs": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": true, - "properties": { - "data_stream": { - "additionalProperties": true, - "properties": { - "dataset": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset" - ], - "type": "object" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id", - "data_stream" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "type": { - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "inputs" - ], - "type": "object" - } - ] - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get an inputs template", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/verification_key_id": { - "get": { - "description": "[Required authorization] Route required privileges: integrations-read OR fleet-setup OR fleet-all.", - "operationId": "get-fleet-epm-verification-key-id", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "id": { - "nullable": true, - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get a package signature verification key ID", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/fleet_server_hosts": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agents-all OR fleet-settings-read.", - "operationId": "get-fleet-fleet-server-hosts", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "host_urls": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "agent_key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "es_key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "agent_certificate": { - "type": "string" - }, - "agent_certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "agent_key": { - "type": "string" - }, - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "client_auth": { - "enum": [ - "optional", - "required", - "none" - ], - "type": "string" - }, - "es_certificate": { - "type": "string" - }, - "es_certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "es_key": { - "type": "string" - }, - "key": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "name", - "host_urls", - "id" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "page": { - "type": "number" - }, - "perPage": { - "type": "number" - }, - "total": { - "type": "number" - } - }, - "required": [ - "items", - "total", - "page", - "perPage" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get Fleet Server hosts", - "tags": [ - "Fleet Server hosts" - ] - }, - "post": { - "description": "[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "post-fleet-fleet-server-hosts", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "host_urls": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "agent_key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "es_key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "agent_certificate": { - "type": "string" - }, - "agent_certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "agent_key": { - "type": "string" - }, - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "client_auth": { - "enum": [ - "optional", - "required", - "none" - ], - "type": "string" - }, - "es_certificate": { - "type": "string" - }, - "es_certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "es_key": { - "type": "string" - }, - "key": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "name", - "host_urls" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "host_urls": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "agent_key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "es_key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "agent_certificate": { - "type": "string" - }, - "agent_certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "agent_key": { - "type": "string" - }, - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "client_auth": { - "enum": [ - "optional", - "required", - "none" - ], - "type": "string" - }, - "es_certificate": { - "type": "string" - }, - "es_certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "es_key": { - "type": "string" - }, - "key": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "name", - "host_urls", - "id" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Create a Fleet Server host", - "tags": [ - "Fleet Server hosts" - ] - } - }, - "/api/fleet/fleet_server_hosts/{itemId}": { - "delete": { - "description": "Delete a Fleet Server host by ID.

[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "delete-fleet-fleet-server-hosts-itemid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "itemId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Delete a Fleet Server host", - "tags": [ - "Fleet Server hosts" - ] - }, - "get": { - "description": "Get a Fleet Server host by ID.

[Required authorization] Route required privileges: fleet-settings-read.", - "operationId": "get-fleet-fleet-server-hosts-itemid", - "parameters": [ - { - "in": "path", - "name": "itemId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "host_urls": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "agent_key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "es_key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "agent_certificate": { - "type": "string" - }, - "agent_certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "agent_key": { - "type": "string" - }, - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "client_auth": { - "enum": [ - "optional", - "required", - "none" - ], - "type": "string" - }, - "es_certificate": { - "type": "string" - }, - "es_certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "es_key": { - "type": "string" - }, - "key": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "name", - "host_urls", - "id" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get a Fleet Server host", - "tags": [ - "Fleet Server hosts" - ] - }, - "put": { - "description": "Update a Fleet Server host by ID.

[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "put-fleet-fleet-server-hosts-itemid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "itemId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "host_urls": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "is_default": { - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "agent_key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "es_key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "agent_certificate": { - "type": "string" - }, - "agent_certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "agent_key": { - "type": "string" - }, - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "client_auth": { - "enum": [ - "optional", - "required", - "none" - ], - "type": "string" - }, - "es_certificate": { - "type": "string" - }, - "es_certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "es_key": { - "type": "string" - }, - "key": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "proxy_id" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "host_urls": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "agent_key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "es_key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "agent_certificate": { - "type": "string" - }, - "agent_certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "agent_key": { - "type": "string" - }, - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "client_auth": { - "enum": [ - "optional", - "required", - "none" - ], - "type": "string" - }, - "es_certificate": { - "type": "string" - }, - "es_certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "es_key": { - "type": "string" - }, - "key": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "name", - "host_urls", - "id" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Update a Fleet Server host", - "tags": [ - "Fleet Server hosts" - ] - } - }, - "/api/fleet/health_check": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "post-fleet-health-check", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "host_id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "status": { - "type": "string" - } - }, - "required": [ - "status" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - }, - "404": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "Not found." - } - }, - "summary": "Check Fleet Server health", - "tags": [ - "Fleet internals" - ] - } - }, - "/api/fleet/kubernetes": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-read OR fleet-setup.", - "operationId": "get-fleet-kubernetes", - "parameters": [ - { - "in": "query", - "name": "download", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "fleetServer", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "enrolToken", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "type": "string" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get a full K8s agent manifest", - "tags": [ - "Elastic Agent policies" - ] - } - }, - "/api/fleet/kubernetes/download": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-read OR fleet-setup.", - "operationId": "get-fleet-kubernetes-download", - "parameters": [ - { - "in": "query", - "name": "download", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "fleetServer", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "enrolToken", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - }, - "404": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "Not found." - } - }, - "summary": "Download an agent manifest", - "tags": [ - "Elastic Agent policies" - ] - } - }, - "/api/fleet/logstash_api_keys": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "post-fleet-logstash-api-keys", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "api_key": { - "type": "string" - } - }, - "required": [ - "api_key" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Generate a Logstash API key", - "tags": [ - "Fleet outputs" - ] - } - }, - "/api/fleet/message_signing_service/rotate_key_pair": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-all AND fleet-agent-policies-all AND fleet-settings-all.", - "operationId": "post-fleet-message-signing-service-rotate-key-pair", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "query", - "name": "acknowledge", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - }, - "500": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "An internal server error." - } - }, - "summary": "Rotate a Fleet message signing key pair", - "tags": [ - "Message Signing Service" - ] - } - }, - "/api/fleet/outputs": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-settings-read OR fleet-agent-policies-read.", - "operationId": "get-fleet-outputs", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "format": "uri", - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "preset": { - "enum": [ - "balanced", - "custom", - "throughput", - "scale", - "latency" - ], - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "type": { - "enum": [ - "elasticsearch" - ], - "type": "string" - }, - "write_to_logs_streams": { - "nullable": true, - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "format": "uri", - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "kibana_api_key": { - "nullable": true, - "type": "string" - }, - "kibana_url": { - "nullable": true, - "type": "string" - }, - "name": { - "type": "string" - }, - "preset": { - "enum": [ - "balanced", - "custom", - "throughput", - "scale", - "latency" - ], - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "service_token": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "service_token": { - "nullable": true, - "type": "string" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "sync_integrations": { - "type": "boolean" - }, - "sync_uninstalled_integrations": { - "type": "boolean" - }, - "type": { - "enum": [ - "remote_elasticsearch" - ], - "type": "string" - }, - "write_to_logs_streams": { - "nullable": true, - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "type": { - "enum": [ - "logstash" - ], - "type": "string" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "auth_type": { - "enum": [ - "none", - "user_pass", - "ssl", - "kerberos" - ], - "type": "string" - }, - "broker_timeout": { - "type": "number" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "client_id": { - "type": "string" - }, - "compression": { - "enum": [ - "gzip", - "snappy", - "lz4", - "none" - ], - "type": "string" - }, - "compression_level": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "number" - }, - { - "not": {} - } - ] - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "connection_type": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "enum": [ - "plaintext", - "encryption" - ], - "type": "string" - }, - { - "not": {} - } - ] - }, - "hash": { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "random": { - "type": "boolean" - } - }, - "type": "object" - }, - "headers": { - "items": { - "additionalProperties": true, - "properties": { - "key": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "key", - "value" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "partition": { - "enum": [ - "random", - "round_robin", - "hash" - ], - "type": "string" - }, - "password": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "not": {} - }, - { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "string" - }, - { - "not": {} - } - ] - } - ] - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "random": { - "additionalProperties": true, - "properties": { - "group_events": { - "type": "number" - } - }, - "type": "object" - }, - "required_acks": { - "enum": [ - 1, - 0, - -1 - ], - "type": "integer" - }, - "round_robin": { - "additionalProperties": true, - "properties": { - "group_events": { - "type": "number" - } - }, - "type": "object" - }, - "sasl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "mechanism": { - "enum": [ - "PLAIN", - "SCRAM-SHA-256", - "SCRAM-SHA-512" - ], - "type": "string" - } - }, - "type": "object" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "password": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "key" - ], - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "timeout": { - "type": "number" - }, - "topic": { - "type": "string" - }, - "type": { - "enum": [ - "kafka" - ], - "type": "string" - }, - "username": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "string" - }, - { - "not": {} - } - ] - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "type", - "hosts", - "compression_level", - "auth_type", - "connection_type", - "username", - "password" - ], - "type": "object" - } - ] - }, - "maxItems": 10000, - "type": "array" - }, - "page": { - "type": "number" - }, - "perPage": { - "type": "number" - }, - "total": { - "type": "number" - } - }, - "required": [ - "items", - "total", - "page", - "perPage" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get outputs", - "tags": [ - "Fleet outputs" - ] - }, - "post": { - "description": "[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "post-fleet-outputs", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "format": "uri", - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "preset": { - "enum": [ - "balanced", - "custom", - "throughput", - "scale", - "latency" - ], - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": false, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "type": { - "enum": [ - "elasticsearch" - ], - "type": "string" - }, - "write_to_logs_streams": { - "nullable": true, - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "format": "uri", - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "kibana_api_key": { - "nullable": true, - "type": "string" - }, - "kibana_url": { - "nullable": true, - "type": "string" - }, - "name": { - "type": "string" - }, - "preset": { - "enum": [ - "balanced", - "custom", - "throughput", - "scale", - "latency" - ], - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "service_token": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "service_token": { - "nullable": true, - "type": "string" - }, - "shipper": { - "additionalProperties": false, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "sync_integrations": { - "type": "boolean" - }, - "sync_uninstalled_integrations": { - "type": "boolean" - }, - "type": { - "enum": [ - "remote_elasticsearch" - ], - "type": "string" - }, - "write_to_logs_streams": { - "nullable": true, - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": false, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "type": { - "enum": [ - "logstash" - ], - "type": "string" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "auth_type": { - "enum": [ - "none", - "user_pass", - "ssl", - "kerberos" - ], - "type": "string" - }, - "broker_timeout": { - "type": "number" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "client_id": { - "type": "string" - }, - "compression": { - "enum": [ - "gzip", - "snappy", - "lz4", - "none" - ], - "type": "string" - }, - "compression_level": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "number" - }, - { - "not": {} - } - ] - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "connection_type": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "enum": [ - "plaintext", - "encryption" - ], - "type": "string" - }, - { - "not": {} - } - ] - }, - "hash": { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "random": { - "type": "boolean" - } - }, - "type": "object" - }, - "headers": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "key", - "value" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "partition": { - "enum": [ - "random", - "round_robin", - "hash" - ], - "type": "string" - }, - "password": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "not": {} - }, - { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "string" - }, - { - "not": {} - } - ] - } - ] - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "random": { - "additionalProperties": false, - "properties": { - "group_events": { - "type": "number" - } - }, - "type": "object" - }, - "required_acks": { - "enum": [ - 1, - 0, - -1 - ], - "type": "integer" - }, - "round_robin": { - "additionalProperties": false, - "properties": { - "group_events": { - "type": "number" - } - }, - "type": "object" - }, - "sasl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "mechanism": { - "enum": [ - "PLAIN", - "SCRAM-SHA-256", - "SCRAM-SHA-512" - ], - "type": "string" - } - }, - "type": "object" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "password": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "key" - ], - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": false, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "timeout": { - "type": "number" - }, - "topic": { - "type": "string" - }, - "type": { - "enum": [ - "kafka" - ], - "type": "string" - }, - "username": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "string" - }, - { - "not": {} - } - ] - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "type", - "hosts", - "compression_level", - "auth_type", - "connection_type", - "username", - "password" - ], - "type": "object" - } - ] - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "format": "uri", - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "preset": { - "enum": [ - "balanced", - "custom", - "throughput", - "scale", - "latency" - ], - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "type": { - "enum": [ - "elasticsearch" - ], - "type": "string" - }, - "write_to_logs_streams": { - "nullable": true, - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "format": "uri", - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "kibana_api_key": { - "nullable": true, - "type": "string" - }, - "kibana_url": { - "nullable": true, - "type": "string" - }, - "name": { - "type": "string" - }, - "preset": { - "enum": [ - "balanced", - "custom", - "throughput", - "scale", - "latency" - ], - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "service_token": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "service_token": { - "nullable": true, - "type": "string" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "sync_integrations": { - "type": "boolean" - }, - "sync_uninstalled_integrations": { - "type": "boolean" - }, - "type": { - "enum": [ - "remote_elasticsearch" - ], - "type": "string" - }, - "write_to_logs_streams": { - "nullable": true, - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "type": { - "enum": [ - "logstash" - ], - "type": "string" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "auth_type": { - "enum": [ - "none", - "user_pass", - "ssl", - "kerberos" - ], - "type": "string" - }, - "broker_timeout": { - "type": "number" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "client_id": { - "type": "string" - }, - "compression": { - "enum": [ - "gzip", - "snappy", - "lz4", - "none" - ], - "type": "string" - }, - "compression_level": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "number" - }, - { - "not": {} - } - ] - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "connection_type": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "enum": [ - "plaintext", - "encryption" - ], - "type": "string" - }, - { - "not": {} - } - ] - }, - "hash": { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "random": { - "type": "boolean" - } - }, - "type": "object" - }, - "headers": { - "items": { - "additionalProperties": true, - "properties": { - "key": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "key", - "value" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "partition": { - "enum": [ - "random", - "round_robin", - "hash" - ], - "type": "string" - }, - "password": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "not": {} - }, - { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "string" - }, - { - "not": {} - } - ] - } - ] - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "random": { - "additionalProperties": true, - "properties": { - "group_events": { - "type": "number" - } - }, - "type": "object" - }, - "required_acks": { - "enum": [ - 1, - 0, - -1 - ], - "type": "integer" - }, - "round_robin": { - "additionalProperties": true, - "properties": { - "group_events": { - "type": "number" - } - }, - "type": "object" - }, - "sasl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "mechanism": { - "enum": [ - "PLAIN", - "SCRAM-SHA-256", - "SCRAM-SHA-512" - ], - "type": "string" - } - }, - "type": "object" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "password": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "key" - ], - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "timeout": { - "type": "number" - }, - "topic": { - "type": "string" - }, - "type": { - "enum": [ - "kafka" - ], - "type": "string" - }, - "username": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "string" - }, - { - "not": {} - } - ] - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "type", - "hosts", - "compression_level", - "auth_type", - "connection_type", - "username", - "password" - ], - "type": "object" - } - ] - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Create output", - "tags": [ - "Fleet outputs" - ] - } - }, - "/api/fleet/outputs/{outputId}": { - "delete": { - "description": "Delete output by ID.

[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "delete-fleet-outputs-outputid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "outputId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - }, - "404": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "Not found." - } - }, - "summary": "Delete output", - "tags": [ - "Fleet outputs" - ] - }, - "get": { - "description": "Get output by ID.

[Required authorization] Route required privileges: fleet-settings-read OR fleet-agent-policies-read.", - "operationId": "get-fleet-outputs-outputid", - "parameters": [ - { - "in": "path", - "name": "outputId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "format": "uri", - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "preset": { - "enum": [ - "balanced", - "custom", - "throughput", - "scale", - "latency" - ], - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "type": { - "enum": [ - "elasticsearch" - ], - "type": "string" - }, - "write_to_logs_streams": { - "nullable": true, - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "format": "uri", - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "kibana_api_key": { - "nullable": true, - "type": "string" - }, - "kibana_url": { - "nullable": true, - "type": "string" - }, - "name": { - "type": "string" - }, - "preset": { - "enum": [ - "balanced", - "custom", - "throughput", - "scale", - "latency" - ], - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "service_token": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "service_token": { - "nullable": true, - "type": "string" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "sync_integrations": { - "type": "boolean" - }, - "sync_uninstalled_integrations": { - "type": "boolean" - }, - "type": { - "enum": [ - "remote_elasticsearch" - ], - "type": "string" - }, - "write_to_logs_streams": { - "nullable": true, - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "type": { - "enum": [ - "logstash" - ], - "type": "string" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "auth_type": { - "enum": [ - "none", - "user_pass", - "ssl", - "kerberos" - ], - "type": "string" - }, - "broker_timeout": { - "type": "number" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "client_id": { - "type": "string" - }, - "compression": { - "enum": [ - "gzip", - "snappy", - "lz4", - "none" - ], - "type": "string" - }, - "compression_level": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "number" - }, - { - "not": {} - } - ] - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "connection_type": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "enum": [ - "plaintext", - "encryption" - ], - "type": "string" - }, - { - "not": {} - } - ] - }, - "hash": { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "random": { - "type": "boolean" - } - }, - "type": "object" - }, - "headers": { - "items": { - "additionalProperties": true, - "properties": { - "key": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "key", - "value" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "partition": { - "enum": [ - "random", - "round_robin", - "hash" - ], - "type": "string" - }, - "password": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "not": {} - }, - { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "string" - }, - { - "not": {} - } - ] - } - ] - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "random": { - "additionalProperties": true, - "properties": { - "group_events": { - "type": "number" - } - }, - "type": "object" - }, - "required_acks": { - "enum": [ - 1, - 0, - -1 - ], - "type": "integer" - }, - "round_robin": { - "additionalProperties": true, - "properties": { - "group_events": { - "type": "number" - } - }, - "type": "object" - }, - "sasl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "mechanism": { - "enum": [ - "PLAIN", - "SCRAM-SHA-256", - "SCRAM-SHA-512" - ], - "type": "string" - } - }, - "type": "object" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "password": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "key" - ], - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "timeout": { - "type": "number" - }, - "topic": { - "type": "string" - }, - "type": { - "enum": [ - "kafka" - ], - "type": "string" - }, - "username": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "string" - }, - { - "not": {} - } - ] - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "type", - "hosts", - "compression_level", - "auth_type", - "connection_type", - "username", - "password" - ], - "type": "object" - } - ] - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get output", - "tags": [ - "Fleet outputs" - ] - }, - "put": { - "description": "Update output by ID.

[Required authorization] Route required privileges: fleet-settings-all OR fleet-agent-policies-all.", - "operationId": "put-fleet-outputs-outputid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "outputId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "format": "uri", - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "type": "boolean" - }, - "is_default_monitoring": { - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "preset": { - "enum": [ - "balanced", - "custom", - "throughput", - "scale", - "latency" - ], - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": false, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "type": { - "enum": [ - "elasticsearch" - ], - "type": "string" - }, - "write_to_logs_streams": { - "nullable": true, - "type": "boolean" - } - }, - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "format": "uri", - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "type": "boolean" - }, - "is_default_monitoring": { - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "kibana_api_key": { - "nullable": true, - "type": "string" - }, - "kibana_url": { - "nullable": true, - "type": "string" - }, - "name": { - "type": "string" - }, - "preset": { - "enum": [ - "balanced", - "custom", - "throughput", - "scale", - "latency" - ], - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "service_token": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "service_token": { - "nullable": true, - "type": "string" - }, - "shipper": { - "additionalProperties": false, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "sync_integrations": { - "type": "boolean" - }, - "sync_uninstalled_integrations": { - "type": "boolean" - }, - "type": { - "enum": [ - "remote_elasticsearch" - ], - "type": "string" - }, - "write_to_logs_streams": { - "nullable": true, - "type": "boolean" - } - }, - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "type": "boolean" - }, - "is_default_monitoring": { - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": false, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "type": { - "enum": [ - "logstash" - ], - "type": "string" - } - }, - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "auth_type": { - "enum": [ - "none", - "user_pass", - "ssl", - "kerberos" - ], - "type": "string" - }, - "broker_timeout": { - "type": "number" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "client_id": { - "type": "string" - }, - "compression": { - "enum": [ - "gzip", - "snappy", - "lz4", - "none" - ], - "type": "string" - }, - "compression_level": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "number" - }, - { - "not": {} - } - ] - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "connection_type": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "enum": [ - "plaintext", - "encryption" - ], - "type": "string" - }, - { - "not": {} - } - ] - }, - "hash": { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "random": { - "type": "boolean" - } - }, - "type": "object" - }, - "headers": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "key", - "value" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "partition": { - "enum": [ - "random", - "round_robin", - "hash" - ], - "type": "string" - }, - "password": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "not": {} - }, - { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "string" - }, - { - "not": {} - } - ] - } - ] - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "random": { - "additionalProperties": false, - "properties": { - "group_events": { - "type": "number" - } - }, - "type": "object" - }, - "required_acks": { - "enum": [ - 1, - 0, - -1 - ], - "type": "integer" - }, - "round_robin": { - "additionalProperties": false, - "properties": { - "group_events": { - "type": "number" - } - }, - "type": "object" - }, - "sasl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "mechanism": { - "enum": [ - "PLAIN", - "SCRAM-SHA-256", - "SCRAM-SHA-512" - ], - "type": "string" - } - }, - "type": "object" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "password": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "key" - ], - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": false, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "timeout": { - "type": "number" - }, - "topic": { - "type": "string" - }, - "type": { - "enum": [ - "kafka" - ], - "type": "string" - }, - "username": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "string" - }, - { - "not": {} - } - ] - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "compression_level", - "connection_type", - "username", - "password" - ], - "type": "object" - } - ] - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "format": "uri", - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "preset": { - "enum": [ - "balanced", - "custom", - "throughput", - "scale", - "latency" - ], - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "type": { - "enum": [ - "elasticsearch" - ], - "type": "string" - }, - "write_to_logs_streams": { - "nullable": true, - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "format": "uri", - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "kibana_api_key": { - "nullable": true, - "type": "string" - }, - "kibana_url": { - "nullable": true, - "type": "string" - }, - "name": { - "type": "string" - }, - "preset": { - "enum": [ - "balanced", - "custom", - "throughput", - "scale", - "latency" - ], - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "service_token": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "service_token": { - "nullable": true, - "type": "string" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "sync_integrations": { - "type": "boolean" - }, - "sync_uninstalled_integrations": { - "type": "boolean" - }, - "type": { - "enum": [ - "remote_elasticsearch" - ], - "type": "string" - }, - "write_to_logs_streams": { - "nullable": true, - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "type": { - "enum": [ - "logstash" - ], - "type": "string" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "auth_type": { - "enum": [ - "none", - "user_pass", - "ssl", - "kerberos" - ], - "type": "string" - }, - "broker_timeout": { - "type": "number" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "client_id": { - "type": "string" - }, - "compression": { - "enum": [ - "gzip", - "snappy", - "lz4", - "none" - ], - "type": "string" - }, - "compression_level": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "number" - }, - { - "not": {} - } - ] - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "connection_type": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "enum": [ - "plaintext", - "encryption" - ], - "type": "string" - }, - { - "not": {} - } - ] - }, - "hash": { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "random": { - "type": "boolean" - } - }, - "type": "object" - }, - "headers": { - "items": { - "additionalProperties": true, - "properties": { - "key": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "key", - "value" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "partition": { - "enum": [ - "random", - "round_robin", - "hash" - ], - "type": "string" - }, - "password": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "not": {} - }, - { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "string" - }, - { - "not": {} - } - ] - } - ] - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "random": { - "additionalProperties": true, - "properties": { - "group_events": { - "type": "number" - } - }, - "type": "object" - }, - "required_acks": { - "enum": [ - 1, - 0, - -1 - ], - "type": "integer" - }, - "round_robin": { - "additionalProperties": true, - "properties": { - "group_events": { - "type": "number" - } - }, - "type": "object" - }, - "sasl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "mechanism": { - "enum": [ - "PLAIN", - "SCRAM-SHA-256", - "SCRAM-SHA-512" - ], - "type": "string" - } - }, - "type": "object" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "password": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "key" - ], - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "timeout": { - "type": "number" - }, - "topic": { - "type": "string" - }, - "type": { - "enum": [ - "kafka" - ], - "type": "string" - }, - "username": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "string" - }, - { - "not": {} - } - ] - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "type", - "hosts", - "compression_level", - "auth_type", - "connection_type", - "username", - "password" - ], - "type": "object" - } - ] - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Update output", - "tags": [ - "Fleet outputs" - ] - } - }, - "/api/fleet/outputs/{outputId}/health": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-settings-read.", - "operationId": "get-fleet-outputs-outputid-health", - "parameters": [ - { - "in": "path", - "name": "outputId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "message": { - "description": "long message if unhealthy", - "type": "string" - }, - "state": { - "description": "state of output, HEALTHY or DEGRADED", - "type": "string" - }, - "timestamp": { - "description": "timestamp of reported state", - "type": "string" - } - }, - "required": [ - "state", - "message", - "timestamp" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get the latest output health", - "tags": [ - "Fleet outputs" - ] - } - }, - "/api/fleet/package_policies": { - "get": { - "operationId": "get-fleet-package-policies", - "parameters": [ - { - "in": "query", - "name": "page", - "required": false, - "schema": { - "type": "number" - } - }, - { - "in": "query", - "name": "perPage", - "required": false, - "schema": { - "type": "number" - } - }, - { - "in": "query", - "name": "sortField", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "sortOrder", - "required": false, - "schema": { - "enum": [ - "desc", - "asc" - ], - "type": "string" - } - }, - { - "in": "query", - "name": "showUpgradeable", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "kuery", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "format", - "required": false, - "schema": { - "enum": [ - "simplified", - "legacy" - ], - "type": "string" - } - }, - { - "in": "query", - "name": "withAgentCount", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "agents": { - "type": "number" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "description": "Package policy unique identifier.", - "type": "string" - }, - "inputs": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package policy inputs." - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "description": "Package policy revision.", - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "anyOf": [ - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package level variable." - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs", - "id", - "revision", - "updated_at", - "updated_by", - "created_at", - "created_by" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "page": { - "type": "number" - }, - "perPage": { - "type": "number" - }, - "total": { - "type": "number" - } - }, - "required": [ - "items", - "total", - "page", - "perPage" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get package policies", - "tags": [ - "Fleet package policies" - ] - }, - "post": { - "operationId": "post-fleet-package-policies", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "query", - "name": "format", - "required": false, - "schema": { - "enum": [ - "simplified", - "legacy" - ], - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "enabled": { - "type": "boolean" - }, - "force": { - "description": "Force package policy creation even if the package is not verified, or if the agent policy is managed.", - "type": "boolean" - }, - "id": { - "description": "Package policy unique identifier", - "type": "string" - }, - "inputs": { - "items": { - "additionalProperties": false, - "properties": { - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled" - ], - "type": "object" - }, - "maxItems": 1000, - "type": "array" - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "deprecated": true, - "description": "Indicates whether the package policy belongs to an agentless agent policy. Deprecated in favor of the Fleet agentless policies API.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "name", - "inputs" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 100, - "nullable": true, - "type": "array" - }, - "description": { - "description": "Policy description.", - "type": "string" - }, - "force": { - "description": "Force package policy creation even if the package is not verified, or if the agent policy is managed.", - "type": "boolean" - }, - "id": { - "description": "Policy unique identifier.", - "type": "string" - }, - "inputs": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object" - }, - "name": { - "description": "Unique name for the policy.", - "type": "string" - }, - "namespace": { - "description": "Policy namespace. When not specified, it inherits the agent policy namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "Deprecated. Use policy_ids instead.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "description": "IDs of the agent policies which that package policy will be added to.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "supports_agentless": { - "default": false, - "deprecated": true, - "description": "Indicates whether the package policy belongs to an agentless agent policy. Deprecated in favor of the Fleet agentless policies API.", - "nullable": true, - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "required": [ - "name", - "package" - ], - "type": "object" - } - ], - "description": "You should use inputs as an object and not use the deprecated inputs array." - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "agents": { - "type": "number" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "description": "Package policy unique identifier.", - "type": "string" - }, - "inputs": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package policy inputs." - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "description": "Package policy revision.", - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "anyOf": [ - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package level variable." - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs", - "id", - "revision", - "updated_at", - "updated_by", - "created_at", - "created_by" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - }, - "409": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A conflict occurred." - } - }, - "summary": "Create a package policy", - "tags": [ - "Fleet package policies" - ] - } - }, - "/api/fleet/package_policies/_bulk_get": { - "post": { - "operationId": "post-fleet-package-policies-bulk-get", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "query", - "name": "format", - "required": false, - "schema": { - "enum": [ - "simplified", - "legacy" - ], - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "ids": { - "description": "list of package policy ids", - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ignoreMissing": { - "type": "boolean" - } - }, - "required": [ - "ids" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "agents": { - "type": "number" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "description": "Package policy unique identifier.", - "type": "string" - }, - "inputs": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package policy inputs." - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "description": "Package policy revision.", - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "anyOf": [ - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package level variable." - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs", - "id", - "revision", - "updated_at", - "updated_by", - "created_at", - "created_by" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - }, - "404": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - } - } - }, - "description": "Not found." - } - }, - "summary": "Bulk get package policies", - "tags": [ - "Fleet package policies" - ] - } - }, - "/api/fleet/package_policies/delete": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-all AND integrations-all.", - "operationId": "post-fleet-package-policies-delete", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "force": { - "type": "boolean" - }, - "packagePolicyIds": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - } - }, - "required": [ - "packagePolicyIds" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "items": { - "additionalProperties": false, - "properties": { - "body": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "Use `policy_ids` instead", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - "statusCode": { - "type": "number" - }, - "success": { - "type": "boolean" - } - }, - "required": [ - "id", - "success", - "policy_ids", - "package" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk delete package policies", - "tags": [ - "Fleet package policies" - ] - } - }, - "/api/fleet/package_policies/upgrade": { - "post": { - "description": "Upgrade a package policy to a newer package version.

[Required authorization] Route required privileges: fleet-agent-policies-all AND integrations-all.", - "operationId": "post-fleet-package-policies-upgrade", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "packagePolicyIds": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - } - }, - "required": [ - "packagePolicyIds" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "items": { - "additionalProperties": false, - "properties": { - "body": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "statusCode": { - "type": "number" - }, - "success": { - "type": "boolean" - } - }, - "required": [ - "id", - "success" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Upgrade a package policy", - "tags": [ - "Fleet package policies" - ] - } - }, - "/api/fleet/package_policies/upgrade/dryrun": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-read AND integrations-read.", - "operationId": "post-fleet-package-policies-upgrade-dryrun", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "packagePolicyIds": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "packageVersion": { - "type": "string" - } - }, - "required": [ - "packagePolicyIds" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "items": { - "additionalProperties": false, - "properties": { - "agent_diff": { - "items": { - "items": { - "additionalProperties": true, - "properties": { - "data_stream": { - "additionalProperties": true, - "properties": { - "namespace": { - "type": "string" - } - }, - "required": [ - "namespace" - ], - "type": "object" - }, - "id": { - "type": "string" - }, - "meta": { - "additionalProperties": true, - "properties": { - "package": { - "additionalProperties": true, - "properties": { - "name": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - } - }, - "required": [ - "package" - ], - "type": "object" - }, - "name": { - "type": "string" - }, - "package_policy_id": { - "type": "string" - }, - "processors": { - "items": { - "additionalProperties": true, - "properties": { - "add_fields": { - "additionalProperties": true, - "properties": { - "fields": { - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "type": "object" - }, - "target": { - "type": "string" - } - }, - "required": [ - "target", - "fields" - ], - "type": "object" - } - }, - "required": [ - "add_fields" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "revision": { - "type": "number" - }, - "streams": { - "items": { - "additionalProperties": true, - "properties": { - "data_stream": { - "additionalProperties": true, - "properties": { - "dataset": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset" - ], - "type": "object" - }, - "id": { - "type": "string" - } - }, - "required": [ - "data_stream" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "type": { - "type": "string" - }, - "use_output": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "revision", - "type", - "data_stream", - "use_output", - "package_policy_id" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "maxItems": 1, - "type": "array" - }, - "body": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - }, - "diff": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "agents": { - "type": "number" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "inputs": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package policy inputs." - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "description": "Package policy revision.", - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "anyOf": [ - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package level variable." - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs", - "revision", - "updated_at", - "updated_by", - "created_at", - "created_by" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "errors": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "force": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "inputs": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "is_managed": { - "type": "boolean" - }, - "missingVars": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs" - ], - "type": "object" - } - ] - }, - "maxItems": 2, - "type": "array" - }, - "hasErrors": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "hasErrors" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Dry run a package policy upgrade", - "tags": [ - "Fleet package policies" - ] - } - }, - "/api/fleet/package_policies/{packagePolicyId}": { - "delete": { - "description": "Delete a package policy by ID.

[Required authorization] Route required privileges: fleet-agent-policies-all AND integrations-all.", - "operationId": "delete-fleet-package-policies-packagepolicyid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "packagePolicyId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "force", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Delete a package policy", - "tags": [ - "Fleet package policies" - ] - }, - "get": { - "description": "Get a package policy by ID.", - "operationId": "get-fleet-package-policies-packagepolicyid", - "parameters": [ - { - "in": "path", - "name": "packagePolicyId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "format", - "required": false, - "schema": { - "enum": [ - "simplified", - "legacy" - ], - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "agents": { - "type": "number" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "description": "Package policy unique identifier.", - "type": "string" - }, - "inputs": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package policy inputs." - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "description": "Package policy revision.", - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "anyOf": [ - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package level variable." - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs", - "id", - "revision", - "updated_at", - "updated_by", - "created_at", - "created_by" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - }, - "404": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - } - } - }, - "description": "Not found." - } - }, - "summary": "Get a package policy", - "tags": [ - "Fleet package policies" - ] - }, - "put": { - "description": "Update a package policy by ID.", - "operationId": "put-fleet-package-policies-packagepolicyid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "packagePolicyId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "format", - "required": false, - "schema": { - "enum": [ - "simplified", - "legacy" - ], - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "enabled": { - "type": "boolean" - }, - "force": { - "type": "boolean" - }, - "inputs": { - "items": { - "additionalProperties": false, - "properties": { - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "version": { - "type": "string" - } - }, - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 100, - "nullable": true, - "type": "array" - }, - "description": { - "description": "Policy description.", - "type": "string" - }, - "force": { - "description": "Force package policy creation even if the package is not verified, or if the agent policy is managed.", - "type": "boolean" - }, - "id": { - "description": "Policy unique identifier.", - "type": "string" - }, - "inputs": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object" - }, - "name": { - "description": "Unique name for the policy.", - "type": "string" - }, - "namespace": { - "description": "Policy namespace. When not specified, it inherits the agent policy namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "Deprecated. Use policy_ids instead.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "description": "IDs of the agent policies which that package policy will be added to.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "supports_agentless": { - "default": false, - "deprecated": true, - "description": "Indicates whether the package policy belongs to an agentless agent policy. Deprecated in favor of the Fleet agentless policies API.", - "nullable": true, - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "required": [ - "name", - "package" - ], - "type": "object" - } - ] - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "agents": { - "type": "number" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "description": "Package policy unique identifier.", - "type": "string" - }, - "inputs": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package policy inputs." - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "description": "Package policy revision.", - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "anyOf": [ - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package level variable." - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs", - "id", - "revision", - "updated_at", - "updated_by", - "created_at", - "created_by" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - }, - "403": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "Forbidden." - } - }, - "summary": "Update a package policy", - "tags": [ - "Fleet package policies" - ] - } - }, - "/api/fleet/proxies": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-settings-read.", - "operationId": "get-fleet-proxies", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "certificate": { - "nullable": true, - "type": "string" - }, - "certificate_authorities": { - "nullable": true, - "type": "string" - }, - "certificate_key": { - "nullable": true, - "type": "string" - }, - "id": { - "type": "string" - }, - "is_preconfigured": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_headers": { - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, - "nullable": true, - "type": "object" - }, - "url": { - "type": "string" - } - }, - "required": [ - "id", - "url", - "name" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "page": { - "type": "number" - }, - "perPage": { - "type": "number" - }, - "total": { - "type": "number" - } - }, - "required": [ - "items", - "total", - "page", - "perPage" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get proxies", - "tags": [ - "Fleet proxies" - ] - }, - "post": { - "description": "[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "post-fleet-proxies", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "certificate": { - "nullable": true, - "type": "string" - }, - "certificate_authorities": { - "nullable": true, - "type": "string" - }, - "certificate_key": { - "nullable": true, - "type": "string" - }, - "id": { - "type": "string" - }, - "is_preconfigured": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_headers": { - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, - "nullable": true, - "type": "object" - }, - "url": { - "type": "string" - } - }, - "required": [ - "url", - "name" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "certificate": { - "nullable": true, - "type": "string" - }, - "certificate_authorities": { - "nullable": true, - "type": "string" - }, - "certificate_key": { - "nullable": true, - "type": "string" - }, - "id": { - "type": "string" - }, - "is_preconfigured": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_headers": { - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, - "nullable": true, - "type": "object" - }, - "url": { - "type": "string" - } - }, - "required": [ - "id", - "url", - "name" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Create a proxy", - "tags": [ - "Fleet proxies" - ] - } - }, - "/api/fleet/proxies/{itemId}": { - "delete": { - "description": "Delete a proxy by ID

[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "delete-fleet-proxies-itemid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "itemId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Delete a proxy", - "tags": [ - "Fleet proxies" - ] - }, - "get": { - "description": "Get a proxy by ID.

[Required authorization] Route required privileges: fleet-settings-read.", - "operationId": "get-fleet-proxies-itemid", - "parameters": [ - { - "in": "path", - "name": "itemId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "certificate": { - "nullable": true, - "type": "string" - }, - "certificate_authorities": { - "nullable": true, - "type": "string" - }, - "certificate_key": { - "nullable": true, - "type": "string" - }, - "id": { - "type": "string" - }, - "is_preconfigured": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_headers": { - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, - "nullable": true, - "type": "object" - }, - "url": { - "type": "string" - } - }, - "required": [ - "id", - "url", - "name" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get a proxy", - "tags": [ - "Fleet proxies" - ] - }, - "put": { - "description": "Update a proxy by ID.

[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "put-fleet-proxies-itemid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "itemId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "certificate": { - "nullable": true, - "type": "string" - }, - "certificate_authorities": { - "nullable": true, - "type": "string" - }, - "certificate_key": { - "nullable": true, - "type": "string" - }, - "name": { - "type": "string" - }, - "proxy_headers": { - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, - "nullable": true, - "type": "object" - }, - "url": { - "type": "string" - } - }, - "required": [ - "certificate_authorities", - "certificate", - "certificate_key" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "certificate": { - "nullable": true, - "type": "string" - }, - "certificate_authorities": { - "nullable": true, - "type": "string" - }, - "certificate_key": { - "nullable": true, - "type": "string" - }, - "id": { - "type": "string" - }, - "is_preconfigured": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_headers": { - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, - "nullable": true, - "type": "object" - }, - "url": { - "type": "string" - } - }, - "required": [ - "id", - "url", - "name" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Update a proxy", - "tags": [ - "Fleet proxies" - ] - } - }, - "/api/fleet/remote_synced_integrations/status": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-settings-read AND integrations-read.", - "operationId": "get-fleet-remote-synced-integrations-status", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "custom_assets": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "error": { - "type": "string" - }, - "is_deleted": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "package_name": { - "type": "string" - }, - "package_version": { - "type": "string" - }, - "sync_status": { - "enum": [ - "completed", - "synchronizing", - "failed", - "warning" - ], - "type": "string" - }, - "type": { - "type": "string" - }, - "warning": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - }, - "title": { - "type": "string" - } - }, - "required": [ - "title" - ], - "type": "object" - } - }, - "required": [ - "type", - "name", - "package_name", - "package_version", - "sync_status" - ], - "type": "object" - }, - "type": "object" - }, - "error": { - "type": "string" - }, - "integrations": { - "items": { - "additionalProperties": false, - "properties": { - "error": { - "type": "string" - }, - "id": { - "type": "string" - }, - "install_status": { - "additionalProperties": false, - "properties": { - "main": { - "type": "string" - }, - "remote": { - "type": "string" - } - }, - "required": [ - "main" - ], - "type": "object" - }, - "package_name": { - "type": "string" - }, - "package_version": { - "type": "string" - }, - "sync_status": { - "enum": [ - "completed", - "synchronizing", - "failed", - "warning" - ], - "type": "string" - }, - "updated_at": { - "type": "string" - }, - "warning": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - }, - "title": { - "type": "string" - } - }, - "required": [ - "title" - ], - "type": "object" - } - }, - "required": [ - "sync_status", - "install_status" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "warning": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - }, - "title": { - "type": "string" - } - }, - "required": [ - "title" - ], - "type": "object" - } - }, - "required": [ - "integrations" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get remote synced integrations status", - "tags": [ - "Fleet remote synced integrations" - ], - "x-state": "Generally available; added in 9.1.0" - } - }, - "/api/fleet/remote_synced_integrations/{outputId}/remote_status": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-settings-read AND integrations-read.", - "operationId": "get-fleet-remote-synced-integrations-outputid-remote-status", - "parameters": [ - { - "in": "path", - "name": "outputId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "custom_assets": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "error": { - "type": "string" - }, - "is_deleted": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "package_name": { - "type": "string" - }, - "package_version": { - "type": "string" - }, - "sync_status": { - "enum": [ - "completed", - "synchronizing", - "failed", - "warning" - ], - "type": "string" - }, - "type": { - "type": "string" - }, - "warning": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - }, - "title": { - "type": "string" - } - }, - "required": [ - "title" - ], - "type": "object" - } - }, - "required": [ - "type", - "name", - "package_name", - "package_version", - "sync_status" - ], - "type": "object" - }, - "type": "object" - }, - "error": { - "type": "string" - }, - "integrations": { - "items": { - "additionalProperties": false, - "properties": { - "error": { - "type": "string" - }, - "id": { - "type": "string" - }, - "install_status": { - "additionalProperties": false, - "properties": { - "main": { - "type": "string" - }, - "remote": { - "type": "string" - } - }, - "required": [ - "main" - ], - "type": "object" - }, - "package_name": { - "type": "string" - }, - "package_version": { - "type": "string" - }, - "sync_status": { - "enum": [ - "completed", - "synchronizing", - "failed", - "warning" - ], - "type": "string" - }, - "updated_at": { - "type": "string" - }, - "warning": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - }, - "title": { - "type": "string" - } - }, - "required": [ - "title" - ], - "type": "object" - } - }, - "required": [ - "sync_status", - "install_status" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "warning": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - }, - "title": { - "type": "string" - } - }, - "required": [ - "title" - ], - "type": "object" - } - }, - "required": [ - "integrations" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get remote synced integrations status by outputId", - "tags": [ - "Fleet remote synced integrations" - ], - "x-state": "Generally available; added in 9.1.0" - } - }, - "/api/fleet/service_tokens": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-service-tokens", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "nullable": true, - "properties": { - "remote": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "name", - "value" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Create a service token", - "tags": [ - "Fleet service tokens" - ] - } - }, - "/api/fleet/settings": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-settings-read.", - "operationId": "get-fleet-settings", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "action_secret_storage_requirements_met": { - "type": "boolean" - }, - "delete_unenrolled_agents": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - } - }, - "required": [ - "enabled", - "is_preconfigured" - ], - "type": "object" - }, - "has_seen_add_data_notice": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "ilm_migration_status": { - "additionalProperties": false, - "properties": { - "logs": { - "enum": [ - "success" - ], - "nullable": true, - "type": "string" - }, - "metrics": { - "enum": [ - "success" - ], - "nullable": true, - "type": "string" - }, - "synthetics": { - "enum": [ - "success" - ], - "nullable": true, - "type": "string" - } - }, - "type": "object" - }, - "integration_knowledge_enabled": { - "type": "boolean" - }, - "output_secret_storage_requirements_met": { - "type": "boolean" - }, - "preconfigured_fields": { - "items": { - "enum": [ - "fleet_server_hosts" - ], - "type": "string" - }, - "maxItems": 1, - "type": "array" - }, - "prerelease_integrations_enabled": { - "type": "boolean" - }, - "secret_storage_requirements_met": { - "type": "boolean" - }, - "ssl_secret_storage_requirements_met": { - "type": "boolean" - }, - "use_space_awareness_migration_started_at": { - "nullable": true, - "type": "string" - }, - "use_space_awareness_migration_status": { - "enum": [ - "pending", - "success", - "error" - ], - "type": "string" - }, - "version": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - }, - "404": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - } - } - }, - "description": "Not found." - } - }, - "summary": "Get settings", - "tags": [ - "Fleet internals" - ] - }, - "put": { - "description": "[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "put-fleet-settings", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "additional_yaml_config": { - "deprecated": true, - "type": "string" - }, - "delete_unenrolled_agents": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - } - }, - "required": [ - "enabled", - "is_preconfigured" - ], - "type": "object" - }, - "has_seen_add_data_notice": { - "deprecated": true, - "type": "boolean" - }, - "integration_knowledge_enabled": { - "type": "boolean" - }, - "kibana_ca_sha256": { - "deprecated": true, - "type": "string" - }, - "kibana_urls": { - "deprecated": true, - "items": { - "format": "uri", - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "prerelease_integrations_enabled": { - "type": "boolean" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "action_secret_storage_requirements_met": { - "type": "boolean" - }, - "delete_unenrolled_agents": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - } - }, - "required": [ - "enabled", - "is_preconfigured" - ], - "type": "object" - }, - "has_seen_add_data_notice": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "ilm_migration_status": { - "additionalProperties": false, - "properties": { - "logs": { - "enum": [ - "success" - ], - "nullable": true, - "type": "string" - }, - "metrics": { - "enum": [ - "success" - ], - "nullable": true, - "type": "string" - }, - "synthetics": { - "enum": [ - "success" - ], - "nullable": true, - "type": "string" - } - }, - "type": "object" - }, - "integration_knowledge_enabled": { - "type": "boolean" - }, - "output_secret_storage_requirements_met": { - "type": "boolean" - }, - "preconfigured_fields": { - "items": { - "enum": [ - "fleet_server_hosts" - ], - "type": "string" - }, - "maxItems": 1, - "type": "array" - }, - "prerelease_integrations_enabled": { - "type": "boolean" - }, - "secret_storage_requirements_met": { - "type": "boolean" - }, - "ssl_secret_storage_requirements_met": { - "type": "boolean" - }, - "use_space_awareness_migration_started_at": { - "nullable": true, - "type": "string" - }, - "use_space_awareness_migration_status": { - "enum": [ - "pending", - "success", - "error" - ], - "type": "string" - }, - "version": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - }, - "404": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - } - } - }, - "description": "Not found." - } - }, - "summary": "Update settings", - "tags": [ - "Fleet internals" - ] - } - }, - "/api/fleet/setup": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-read OR fleet-agent-policies-read OR fleet-settings-read OR fleet-setup.", - "operationId": "post-fleet-setup", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "A summary of the result of Fleet's `setup` lifecycle. If `isInitialized` is true, Fleet is ready to accept agent enrollment. `nonFatalErrors` may include useful insight into non-blocking issues with Fleet setup.", - "properties": { - "isInitialized": { - "type": "boolean" - }, - "nonFatalErrors": { - "items": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "message" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "isInitialized", - "nonFatalErrors" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - }, - "500": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Internal Server Error", - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - } - } - }, - "description": "An internal server error occurred." - } - }, - "summary": "Initiate Fleet setup", - "tags": [ - "Fleet internals" - ] - } - }, - "/api/fleet/space_settings": { - "get": { - "operationId": "get-fleet-space-settings", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "allowed_namespace_prefixes": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "managed_by": { - "type": "string" - } - }, - "required": [ - "allowed_namespace_prefixes" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - } - }, - "summary": "Get space settings", - "tags": [], - "x-state": "Generally available; added in 9.1.0" - }, - "put": { - "description": "[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "put-fleet-space-settings", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "allowed_namespace_prefixes": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "allowed_namespace_prefixes": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "managed_by": { - "type": "string" - } - }, - "required": [ - "allowed_namespace_prefixes" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - } - }, - "summary": "Create space settings", - "tags": [], - "x-state": "Generally available; added in 9.1.0" - } - }, - "/api/fleet/uninstall_tokens": { - "get": { - "description": "List the metadata for the latest uninstall tokens per agent policy.

[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "get-fleet-uninstall-tokens", - "parameters": [ - { - "description": "Partial match filtering for policy IDs", - "in": "query", - "name": "policyId", - "required": false, - "schema": { - "maxLength": 50, - "type": "string" - } - }, - { - "in": "query", - "name": "search", - "required": false, - "schema": { - "maxLength": 50, - "type": "string" - } - }, - { - "description": "The number of items to return", - "in": "query", - "name": "perPage", - "required": false, - "schema": { - "minimum": 5, - "type": "number" - } - }, - { - "in": "query", - "name": "page", - "required": false, - "schema": { - "minimum": 1, - "type": "number" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "created_at": { - "type": "string" - }, - "id": { - "type": "string" - }, - "namespaces": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "policy_id": { - "type": "string" - }, - "policy_name": { - "nullable": true, - "type": "string" - } - }, - "required": [ - "id", - "policy_id", - "created_at" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "page": { - "type": "number" - }, - "perPage": { - "type": "number" - }, - "total": { - "type": "number" - } - }, - "required": [ - "items", - "total", - "page", - "perPage" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get metadata for latest uninstall tokens", - "tags": [ - "Fleet uninstall tokens" - ] - } - }, - "/api/fleet/uninstall_tokens/{uninstallTokenId}": { - "get": { - "description": "Get one decrypted uninstall token by its ID.

[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "get-fleet-uninstall-tokens-uninstalltokenid", - "parameters": [ - { - "in": "path", - "name": "uninstallTokenId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "created_at": { - "type": "string" - }, - "id": { - "type": "string" - }, - "namespaces": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "policy_id": { - "type": "string" - }, - "policy_name": { - "nullable": true, - "type": "string" - }, - "token": { - "type": "string" - } - }, - "required": [ - "id", - "policy_id", - "created_at", - "token" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get a decrypted uninstall token", - "tags": [ - "Fleet uninstall tokens" - ] - } - }, - "/api/maintenance_window": { - "post": { - "description": "[Required authorization] Route required privileges: write-maintenance-window.", - "operationId": "post-maintenance-window", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Whether the current maintenance window is enabled. Disabled maintenance windows do not suppress notifications.", - "type": "boolean" - }, - "schedule": { - "additionalProperties": false, - "properties": { - "custom": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "The duration of the schedule. It allows values in `` format. `` is one of `d`, `h`, `m`, or `s` for hours, minutes, seconds. For example: `1d`, `5h`, `30m`, `5000s`.", - "type": "string" - }, - "recurring": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end date of a recurring schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-04-01T00:00:00.000Z`.", - "type": "string" - }, - "every": { - "description": "The interval and frequency of a recurring schedule. It allows values in `` format. `` is one of `d`, `w`, `M`, or `y` for days, weeks, months, years. For example: `15d`, `2w`, `3m`, `1y`.", - "type": "string" - }, - "occurrences": { - "description": "The total number of recurrences of the schedule.", - "minimum": 1, - "type": "number" - }, - "onMonth": { - "description": "The specific months for a recurring schedule. Valid values are 1-12.", - "items": { - "maximum": 12, - "minimum": 1, - "type": "number" - }, - "minItems": 1, - "type": "array" - }, - "onMonthDay": { - "description": "The specific days of the month for a recurring schedule. Valid values are 1-31.", - "items": { - "maximum": 31, - "minimum": 1, - "type": "number" - }, - "minItems": 1, - "type": "array" - }, - "onWeekDay": { - "description": "The specific days of the week (`[MO,TU,WE,TH,FR,SA,SU]`) or nth day of month (`[+1MO, -3FR, +2WE, -4SA, -5SU]`) for a recurring schedule.", - "items": { - "type": "string" - }, - "minItems": 1, - "type": "array" - } - }, - "type": "object" - }, - "start": { - "description": "The start date and time of the schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-03-12T12:00:00.000Z`.", - "type": "string" - }, - "timezone": { - "description": "The timezone of the schedule. The default timezone is UTC.", - "type": "string" - } - }, - "required": [ - "start", - "duration" - ], - "type": "object" - } - }, - "required": [ - "custom" - ], - "type": "object" - }, - "scope": { - "additionalProperties": false, - "properties": { - "alerting": { - "additionalProperties": false, - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "kql": { - "description": "A filter written in Kibana Query Language (KQL). Only alerts matching this query will be supressed by the maintenance window.", - "type": "string" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - }, - "required": [ - "query" - ], - "type": "object" - } - }, - "required": [ - "alerting" - ], - "type": "object" - }, - "title": { - "description": "The name of the maintenance window. While this name does not have to be unique, a distinctive name can help you identify a specific maintenance window.", - "type": "string" - } - }, - "required": [ - "title", - "schedule" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "created_at": { - "description": "The date and time when the maintenance window was created.", - "type": "string" - }, - "created_by": { - "description": "The identifier for the user that created the maintenance window.", - "nullable": true, - "type": "string" - }, - "enabled": { - "description": "Whether the current maintenance window is enabled. Disabled maintenance windows do not suppress notifications.", - "type": "boolean" - }, - "id": { - "description": "The identifier for the maintenance window.", - "type": "string" - }, - "schedule": { - "additionalProperties": false, - "properties": { - "custom": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "The duration of the schedule. It allows values in `` format. `` is one of `d`, `h`, `m`, or `s` for hours, minutes, seconds. For example: `1d`, `5h`, `30m`, `5000s`.", - "type": "string" - }, - "recurring": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end date of a recurring schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-04-01T00:00:00.000Z`.", - "type": "string" - }, - "every": { - "description": "The interval and frequency of a recurring schedule. It allows values in `` format. `` is one of `d`, `w`, `M`, or `y` for days, weeks, months, years. For example: `15d`, `2w`, `3m`, `1y`.", - "type": "string" - }, - "occurrences": { - "description": "The total number of recurrences of the schedule.", - "type": "number" - }, - "onMonth": { - "description": "The specific months for a recurring schedule. Valid values are 1-12.", - "items": { - "type": "number" - }, - "type": "array" - }, - "onMonthDay": { - "description": "The specific days of the month for a recurring schedule. Valid values are 1-31.", - "items": { - "type": "number" - }, - "type": "array" - }, - "onWeekDay": { - "description": "The specific days of the week (`[MO,TU,WE,TH,FR,SA,SU]`) or nth day of month (`[+1MO, -3FR, +2WE, -4SA, -5SU]`) for a recurring schedule.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "start": { - "description": "The start date and time of the schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-03-12T12:00:00.000Z`.", - "type": "string" - }, - "timezone": { - "description": "The timezone of the schedule. The default timezone is UTC.", - "type": "string" - } - }, - "required": [ - "start", - "duration" - ], - "type": "object" - } - }, - "required": [ - "custom" - ], - "type": "object" - }, - "scope": { - "additionalProperties": false, - "properties": { - "alerting": { - "additionalProperties": false, - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "kql": { - "description": "A filter written in Kibana Query Language (KQL).", - "type": "string" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - }, - "required": [ - "query" - ], - "type": "object" - } - }, - "required": [ - "alerting" - ], - "type": "object" - }, - "status": { - "description": "The current status of the maintenance window.", - "enum": [ - "running", - "upcoming", - "finished", - "archived", - "disabled" - ], - "type": "string" - }, - "title": { - "description": "The name of the maintenance window.", - "type": "string" - }, - "updated_at": { - "description": "The date and time when the maintenance window was last updated.", - "type": "string" - }, - "updated_by": { - "description": "The identifier for the user that last updated this maintenance window.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "id", - "title", - "enabled", - "created_by", - "updated_by", - "created_at", - "updated_at", - "status", - "schedule" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - } - }, - "summary": "Create a maintenance window.", - "tags": [ - "maintenance-window" - ], - "x-state": "Generally available; added in 9.1.0" - } - }, - "/api/maintenance_window/_find": { - "get": { - "description": "[Required authorization] Route required privileges: read-maintenance-window.", - "operationId": "get-maintenance-window-find", - "parameters": [ - { - "description": "The title of the maintenance window.", - "in": "query", - "name": "title", - "required": false, - "schema": { - "type": "string" - } - }, - { - "description": "The user who created the maintenance window.", - "in": "query", - "name": "created_by", - "required": false, - "schema": { - "type": "string" - } - }, - { - "description": "The status of the maintenance window. It can be \"running\", \"upcoming\", \"finished\", \"archived\", or \"disabled\".", - "in": "query", - "name": "status", - "required": false, - "schema": { - "anyOf": [ - { - "enum": [ - "running", - "finished", - "upcoming", - "archived", - "disabled" - ], - "type": "string" - }, - { - "items": { - "enum": [ - "running", - "finished", - "upcoming", - "archived", - "disabled" - ], - "type": "string" - }, - "type": "array" - } - ] - } - }, - { - "description": "The page number to return.", - "in": "query", - "name": "page", - "required": false, - "schema": { - "default": 1, - "maximum": 100, - "minimum": 1, - "type": "number" - } - }, - { - "description": "The number of maintenance windows to return per page.", - "in": "query", - "name": "per_page", - "required": false, - "schema": { - "default": 10, - "maximum": 100, - "minimum": 1, - "type": "number" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "maintenanceWindows": { - "items": { - "additionalProperties": false, - "properties": { - "created_at": { - "description": "The date and time when the maintenance window was created.", - "type": "string" - }, - "created_by": { - "description": "The identifier for the user that created the maintenance window.", - "nullable": true, - "type": "string" - }, - "enabled": { - "description": "Whether the current maintenance window is enabled. Disabled maintenance windows do not suppress notifications.", - "type": "boolean" - }, - "id": { - "description": "The identifier for the maintenance window.", - "type": "string" - }, - "schedule": { - "additionalProperties": false, - "properties": { - "custom": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "The duration of the schedule. It allows values in `` format. `` is one of `d`, `h`, `m`, or `s` for hours, minutes, seconds. For example: `1d`, `5h`, `30m`, `5000s`.", - "type": "string" - }, - "recurring": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end date of a recurring schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-04-01T00:00:00.000Z`.", - "type": "string" - }, - "every": { - "description": "The interval and frequency of a recurring schedule. It allows values in `` format. `` is one of `d`, `w`, `M`, or `y` for days, weeks, months, years. For example: `15d`, `2w`, `3m`, `1y`.", - "type": "string" - }, - "occurrences": { - "description": "The total number of recurrences of the schedule.", - "type": "number" - }, - "onMonth": { - "description": "The specific months for a recurring schedule. Valid values are 1-12.", - "items": { - "type": "number" - }, - "type": "array" - }, - "onMonthDay": { - "description": "The specific days of the month for a recurring schedule. Valid values are 1-31.", - "items": { - "type": "number" - }, - "type": "array" - }, - "onWeekDay": { - "description": "The specific days of the week (`[MO,TU,WE,TH,FR,SA,SU]`) or nth day of month (`[+1MO, -3FR, +2WE, -4SA, -5SU]`) for a recurring schedule.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "start": { - "description": "The start date and time of the schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-03-12T12:00:00.000Z`.", - "type": "string" - }, - "timezone": { - "description": "The timezone of the schedule. The default timezone is UTC.", - "type": "string" - } - }, - "required": [ - "start", - "duration" - ], - "type": "object" - } - }, - "required": [ - "custom" - ], - "type": "object" - }, - "scope": { - "additionalProperties": false, - "properties": { - "alerting": { - "additionalProperties": false, - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "kql": { - "description": "A filter written in Kibana Query Language (KQL).", - "type": "string" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - }, - "required": [ - "query" - ], - "type": "object" - } - }, - "required": [ - "alerting" - ], - "type": "object" - }, - "status": { - "description": "The current status of the maintenance window.", - "enum": [ - "running", - "upcoming", - "finished", - "archived", - "disabled" - ], - "type": "string" - }, - "title": { - "description": "The name of the maintenance window.", - "type": "string" - }, - "updated_at": { - "description": "The date and time when the maintenance window was last updated.", - "type": "string" - }, - "updated_by": { - "description": "The identifier for the user that last updated this maintenance window.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "id", - "title", - "enabled", - "created_by", - "updated_by", - "created_at", - "updated_at", - "status", - "schedule" - ], - "type": "object" - }, - "type": "array" - }, - "page": { - "type": "number" - }, - "per_page": { - "type": "number" - }, - "total": { - "type": "number" - } - }, - "required": [ - "page", - "per_page", - "total", - "maintenanceWindows" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - } - }, - "summary": "Search for a maintenance window.", - "tags": [ - "maintenance-window" - ], - "x-state": "Generally available; added in 9.2.0" - } - }, - "/api/maintenance_window/{id}": { - "delete": { - "description": "[Required authorization] Route required privileges: write-maintenance-window.", - "operationId": "delete-maintenance-window-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the maintenance window to be deleted.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a maintenance window with the given ID does not exist." - } - }, - "summary": "Delete a maintenance window.", - "tags": [ - "maintenance-window" - ], - "x-state": "Generally available; added in 9.1.0" - }, - "get": { - "description": "[Required authorization] Route required privileges: read-maintenance-window.", - "operationId": "get-maintenance-window-id", - "parameters": [ - { - "description": "The identifier for the maintenance window.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "created_at": { - "description": "The date and time when the maintenance window was created.", - "type": "string" - }, - "created_by": { - "description": "The identifier for the user that created the maintenance window.", - "nullable": true, - "type": "string" - }, - "enabled": { - "description": "Whether the current maintenance window is enabled. Disabled maintenance windows do not suppress notifications.", - "type": "boolean" - }, - "id": { - "description": "The identifier for the maintenance window.", - "type": "string" - }, - "schedule": { - "additionalProperties": false, - "properties": { - "custom": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "The duration of the schedule. It allows values in `` format. `` is one of `d`, `h`, `m`, or `s` for hours, minutes, seconds. For example: `1d`, `5h`, `30m`, `5000s`.", - "type": "string" - }, - "recurring": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end date of a recurring schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-04-01T00:00:00.000Z`.", - "type": "string" - }, - "every": { - "description": "The interval and frequency of a recurring schedule. It allows values in `` format. `` is one of `d`, `w`, `M`, or `y` for days, weeks, months, years. For example: `15d`, `2w`, `3m`, `1y`.", - "type": "string" - }, - "occurrences": { - "description": "The total number of recurrences of the schedule.", - "type": "number" - }, - "onMonth": { - "description": "The specific months for a recurring schedule. Valid values are 1-12.", - "items": { - "type": "number" - }, - "type": "array" - }, - "onMonthDay": { - "description": "The specific days of the month for a recurring schedule. Valid values are 1-31.", - "items": { - "type": "number" - }, - "type": "array" - }, - "onWeekDay": { - "description": "The specific days of the week (`[MO,TU,WE,TH,FR,SA,SU]`) or nth day of month (`[+1MO, -3FR, +2WE, -4SA, -5SU]`) for a recurring schedule.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "start": { - "description": "The start date and time of the schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-03-12T12:00:00.000Z`.", - "type": "string" - }, - "timezone": { - "description": "The timezone of the schedule. The default timezone is UTC.", - "type": "string" - } - }, - "required": [ - "start", - "duration" - ], - "type": "object" - } - }, - "required": [ - "custom" - ], - "type": "object" - }, - "scope": { - "additionalProperties": false, - "properties": { - "alerting": { - "additionalProperties": false, - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "kql": { - "description": "A filter written in Kibana Query Language (KQL).", - "type": "string" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - }, - "required": [ - "query" - ], - "type": "object" - } - }, - "required": [ - "alerting" - ], - "type": "object" - }, - "status": { - "description": "The current status of the maintenance window.", - "enum": [ - "running", - "upcoming", - "finished", - "archived", - "disabled" - ], - "type": "string" - }, - "title": { - "description": "The name of the maintenance window.", - "type": "string" - }, - "updated_at": { - "description": "The date and time when the maintenance window was last updated.", - "type": "string" - }, - "updated_by": { - "description": "The identifier for the user that last updated this maintenance window.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "id", - "title", - "enabled", - "created_by", - "updated_by", - "created_at", - "updated_at", - "status", - "schedule" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a maintenance window with the given ID does not exist." - } - }, - "summary": "Get maintenance window details.", - "tags": [ - "maintenance-window" - ], - "x-state": "Generally available; added in 9.1.0" - }, - "patch": { - "description": "[Required authorization] Route required privileges: write-maintenance-window.", - "operationId": "patch-maintenance-window-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Whether the current maintenance window is enabled. Disabled maintenance windows do not suppress notifications.", - "type": "boolean" - }, - "schedule": { - "additionalProperties": false, - "properties": { - "custom": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "The duration of the schedule. It allows values in `` format. `` is one of `d`, `h`, `m`, or `s` for hours, minutes, seconds. For example: `1d`, `5h`, `30m`, `5000s`.", - "type": "string" - }, - "recurring": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end date of a recurring schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-04-01T00:00:00.000Z`.", - "type": "string" - }, - "every": { - "description": "The interval and frequency of a recurring schedule. It allows values in `` format. `` is one of `d`, `w`, `M`, or `y` for days, weeks, months, years. For example: `15d`, `2w`, `3m`, `1y`.", - "type": "string" - }, - "occurrences": { - "description": "The total number of recurrences of the schedule.", - "minimum": 1, - "type": "number" - }, - "onMonth": { - "description": "The specific months for a recurring schedule. Valid values are 1-12.", - "items": { - "maximum": 12, - "minimum": 1, - "type": "number" - }, - "minItems": 1, - "type": "array" - }, - "onMonthDay": { - "description": "The specific days of the month for a recurring schedule. Valid values are 1-31.", - "items": { - "maximum": 31, - "minimum": 1, - "type": "number" - }, - "minItems": 1, - "type": "array" - }, - "onWeekDay": { - "description": "The specific days of the week (`[MO,TU,WE,TH,FR,SA,SU]`) or nth day of month (`[+1MO, -3FR, +2WE, -4SA, -5SU]`) for a recurring schedule.", - "items": { - "type": "string" - }, - "minItems": 1, - "type": "array" - } - }, - "type": "object" - }, - "start": { - "description": "The start date and time of the schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-03-12T12:00:00.000Z`.", - "type": "string" - }, - "timezone": { - "description": "The timezone of the schedule. The default timezone is UTC.", - "type": "string" - } - }, - "required": [ - "start", - "duration" - ], - "type": "object" - } - }, - "required": [ - "custom" - ], - "type": "object" - }, - "scope": { - "additionalProperties": false, - "properties": { - "alerting": { - "additionalProperties": false, - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "kql": { - "description": "A filter written in Kibana Query Language (KQL). Only alerts matching this query will be supressed by the maintenance window.", - "type": "string" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - }, - "required": [ - "query" - ], - "type": "object" - } - }, - "required": [ - "alerting" - ], - "type": "object" - }, - "title": { - "description": "The name of the maintenance window. While this name does not have to be unique, a distinctive name can help you identify a specific maintenance window.", - "type": "string" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "created_at": { - "description": "The date and time when the maintenance window was created.", - "type": "string" - }, - "created_by": { - "description": "The identifier for the user that created the maintenance window.", - "nullable": true, - "type": "string" - }, - "enabled": { - "description": "Whether the current maintenance window is enabled. Disabled maintenance windows do not suppress notifications.", - "type": "boolean" - }, - "id": { - "description": "The identifier for the maintenance window.", - "type": "string" - }, - "schedule": { - "additionalProperties": false, - "properties": { - "custom": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "The duration of the schedule. It allows values in `` format. `` is one of `d`, `h`, `m`, or `s` for hours, minutes, seconds. For example: `1d`, `5h`, `30m`, `5000s`.", - "type": "string" - }, - "recurring": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end date of a recurring schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-04-01T00:00:00.000Z`.", - "type": "string" - }, - "every": { - "description": "The interval and frequency of a recurring schedule. It allows values in `` format. `` is one of `d`, `w`, `M`, or `y` for days, weeks, months, years. For example: `15d`, `2w`, `3m`, `1y`.", - "type": "string" - }, - "occurrences": { - "description": "The total number of recurrences of the schedule.", - "type": "number" - }, - "onMonth": { - "description": "The specific months for a recurring schedule. Valid values are 1-12.", - "items": { - "type": "number" - }, - "type": "array" - }, - "onMonthDay": { - "description": "The specific days of the month for a recurring schedule. Valid values are 1-31.", - "items": { - "type": "number" - }, - "type": "array" - }, - "onWeekDay": { - "description": "The specific days of the week (`[MO,TU,WE,TH,FR,SA,SU]`) or nth day of month (`[+1MO, -3FR, +2WE, -4SA, -5SU]`) for a recurring schedule.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "start": { - "description": "The start date and time of the schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-03-12T12:00:00.000Z`.", - "type": "string" - }, - "timezone": { - "description": "The timezone of the schedule. The default timezone is UTC.", - "type": "string" - } - }, - "required": [ - "start", - "duration" - ], - "type": "object" - } - }, - "required": [ - "custom" - ], - "type": "object" - }, - "scope": { - "additionalProperties": false, - "properties": { - "alerting": { - "additionalProperties": false, - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "kql": { - "description": "A filter written in Kibana Query Language (KQL).", - "type": "string" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - }, - "required": [ - "query" - ], - "type": "object" - } - }, - "required": [ - "alerting" - ], - "type": "object" - }, - "status": { - "description": "The current status of the maintenance window.", - "enum": [ - "running", - "upcoming", - "finished", - "archived", - "disabled" - ], - "type": "string" - }, - "title": { - "description": "The name of the maintenance window.", - "type": "string" - }, - "updated_at": { - "description": "The date and time when the maintenance window was last updated.", - "type": "string" - }, - "updated_by": { - "description": "The identifier for the user that last updated this maintenance window.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "id", - "title", - "enabled", - "created_by", - "updated_by", - "created_at", - "updated_at", - "status", - "schedule" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a maintenance window with the given ID does not exist." - }, - "409": { - "description": "Indicates that the maintenance window has already been updated by another user." - } - }, - "summary": "Update a maintenance window.", - "tags": [ - "maintenance-window" - ], - "x-state": "Generally available; added in 9.1.0" - } - }, - "/api/maintenance_window/{id}/_archive": { - "post": { - "description": "[Required authorization] Route required privileges: write-maintenance-window.", - "operationId": "post-maintenance-window-id-archive", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the maintenance window to be archived.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "created_at": { - "description": "The date and time when the maintenance window was created.", - "type": "string" - }, - "created_by": { - "description": "The identifier for the user that created the maintenance window.", - "nullable": true, - "type": "string" - }, - "enabled": { - "description": "Whether the current maintenance window is enabled. Disabled maintenance windows do not suppress notifications.", - "type": "boolean" - }, - "id": { - "description": "The identifier for the maintenance window.", - "type": "string" - }, - "schedule": { - "additionalProperties": false, - "properties": { - "custom": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "The duration of the schedule. It allows values in `` format. `` is one of `d`, `h`, `m`, or `s` for hours, minutes, seconds. For example: `1d`, `5h`, `30m`, `5000s`.", - "type": "string" - }, - "recurring": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end date of a recurring schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-04-01T00:00:00.000Z`.", - "type": "string" - }, - "every": { - "description": "The interval and frequency of a recurring schedule. It allows values in `` format. `` is one of `d`, `w`, `M`, or `y` for days, weeks, months, years. For example: `15d`, `2w`, `3m`, `1y`.", - "type": "string" - }, - "occurrences": { - "description": "The total number of recurrences of the schedule.", - "type": "number" - }, - "onMonth": { - "description": "The specific months for a recurring schedule. Valid values are 1-12.", - "items": { - "type": "number" - }, - "type": "array" - }, - "onMonthDay": { - "description": "The specific days of the month for a recurring schedule. Valid values are 1-31.", - "items": { - "type": "number" - }, - "type": "array" - }, - "onWeekDay": { - "description": "The specific days of the week (`[MO,TU,WE,TH,FR,SA,SU]`) or nth day of month (`[+1MO, -3FR, +2WE, -4SA, -5SU]`) for a recurring schedule.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "start": { - "description": "The start date and time of the schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-03-12T12:00:00.000Z`.", - "type": "string" - }, - "timezone": { - "description": "The timezone of the schedule. The default timezone is UTC.", - "type": "string" - } - }, - "required": [ - "start", - "duration" - ], - "type": "object" - } - }, - "required": [ - "custom" - ], - "type": "object" - }, - "scope": { - "additionalProperties": false, - "properties": { - "alerting": { - "additionalProperties": false, - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "kql": { - "description": "A filter written in Kibana Query Language (KQL).", - "type": "string" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - }, - "required": [ - "query" - ], - "type": "object" - } - }, - "required": [ - "alerting" - ], - "type": "object" - }, - "status": { - "description": "The current status of the maintenance window.", - "enum": [ - "running", - "upcoming", - "finished", - "archived", - "disabled" - ], - "type": "string" - }, - "title": { - "description": "The name of the maintenance window.", - "type": "string" - }, - "updated_at": { - "description": "The date and time when the maintenance window was last updated.", - "type": "string" - }, - "updated_by": { - "description": "The identifier for the user that last updated this maintenance window.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "id", - "title", - "enabled", - "created_by", - "updated_by", - "created_at", - "updated_at", - "status", - "schedule" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a maintenance window with the given ID does not exist." - } - }, - "summary": "Archive a maintenance window.", - "tags": [ - "maintenance-window" - ], - "x-state": "Generally available; added in 9.1.0" - } - }, - "/api/maintenance_window/{id}/_unarchive": { - "post": { - "description": "[Required authorization] Route required privileges: write-maintenance-window.", - "operationId": "post-maintenance-window-id-unarchive", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the maintenance window to be unarchived.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "created_at": { - "description": "The date and time when the maintenance window was created.", - "type": "string" - }, - "created_by": { - "description": "The identifier for the user that created the maintenance window.", - "nullable": true, - "type": "string" - }, - "enabled": { - "description": "Whether the current maintenance window is enabled. Disabled maintenance windows do not suppress notifications.", - "type": "boolean" - }, - "id": { - "description": "The identifier for the maintenance window.", - "type": "string" - }, - "schedule": { - "additionalProperties": false, - "properties": { - "custom": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "The duration of the schedule. It allows values in `` format. `` is one of `d`, `h`, `m`, or `s` for hours, minutes, seconds. For example: `1d`, `5h`, `30m`, `5000s`.", - "type": "string" - }, - "recurring": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end date of a recurring schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-04-01T00:00:00.000Z`.", - "type": "string" - }, - "every": { - "description": "The interval and frequency of a recurring schedule. It allows values in `` format. `` is one of `d`, `w`, `M`, or `y` for days, weeks, months, years. For example: `15d`, `2w`, `3m`, `1y`.", - "type": "string" - }, - "occurrences": { - "description": "The total number of recurrences of the schedule.", - "type": "number" - }, - "onMonth": { - "description": "The specific months for a recurring schedule. Valid values are 1-12.", - "items": { - "type": "number" - }, - "type": "array" - }, - "onMonthDay": { - "description": "The specific days of the month for a recurring schedule. Valid values are 1-31.", - "items": { - "type": "number" - }, - "type": "array" - }, - "onWeekDay": { - "description": "The specific days of the week (`[MO,TU,WE,TH,FR,SA,SU]`) or nth day of month (`[+1MO, -3FR, +2WE, -4SA, -5SU]`) for a recurring schedule.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "start": { - "description": "The start date and time of the schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-03-12T12:00:00.000Z`.", - "type": "string" - }, - "timezone": { - "description": "The timezone of the schedule. The default timezone is UTC.", - "type": "string" - } - }, - "required": [ - "start", - "duration" - ], - "type": "object" - } - }, - "required": [ - "custom" - ], - "type": "object" - }, - "scope": { - "additionalProperties": false, - "properties": { - "alerting": { - "additionalProperties": false, - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "kql": { - "description": "A filter written in Kibana Query Language (KQL).", - "type": "string" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - }, - "required": [ - "query" - ], - "type": "object" - } - }, - "required": [ - "alerting" - ], - "type": "object" - }, - "status": { - "description": "The current status of the maintenance window.", - "enum": [ - "running", - "upcoming", - "finished", - "archived", - "disabled" - ], - "type": "string" - }, - "title": { - "description": "The name of the maintenance window.", - "type": "string" - }, - "updated_at": { - "description": "The date and time when the maintenance window was last updated.", - "type": "string" - }, - "updated_by": { - "description": "The identifier for the user that last updated this maintenance window.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "id", - "title", - "enabled", - "created_by", - "updated_by", - "created_at", - "updated_at", - "status", - "schedule" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a maintenance window with the given ID does not exist." - } - }, - "summary": "Unarchive a maintenance window.", - "tags": [ - "maintenance-window" - ], - "x-state": "Generally available; added in 9.1.0" - } - }, - "/api/saved_objects/_export": { - "post": { - "description": "Retrieve sets of saved objects that you want to import into Kibana. You must include `type` or `objects` in the request body. The output of exporting saved objects must be treated as opaque. Tampering with exported data risks introducing unspecified errors and data loss.\n\nExported saved objects are not backwards compatible and cannot be imported into an older version of Kibana.\n\nNOTE: The `savedObjects.maxImportExportSize` configuration setting limits the number of saved objects which may be exported.", - "operationId": "post-saved-objects-export", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "exportSavedObjectsRequest": { - "summary": "Export a specific saved object.", - "value": { - "excludeExportDetails": true, - "includeReferencesDeep": false, - "objects": [ - { - "id": "de71f4f0-1902-11e9-919b-ffe5949a18d2", - "type": "map" - } - ] - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "excludeExportDetails": { - "default": false, - "description": "Do not add export details entry at the end of the stream.", - "type": "boolean" - }, - "hasReference": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "type", - "id" - ], - "type": "object" - }, - { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "type", - "id" - ], - "type": "object" - }, - "type": "array" - } - ] - }, - "includeReferencesDeep": { - "default": false, - "description": "Includes all of the referenced objects in the exported objects.", - "type": "boolean" - }, - "objects": { - "description": "A list of objects to export. NOTE: this optional parameter cannot be combined with the `types` option", - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "type", - "id" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "search": { - "description": "Search for documents to export using the Elasticsearch Simple Query String syntax.", - "type": "string" - }, - "type": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ], - "description": "The saved object types to include in the export. Use `*` to export all the types. Valid options depend on enabled plugins, but may include `visualization`, `dashboard`, `search`, `index-pattern`, `tag`, `config`, `config-global`, `lens`, `map`, `event-annotation-group`, `query`, `url`, `action`, `alert`, `alerting_rule_template`, `apm-indices`, `cases-user-actions`, `cases`, `cases-comments`, `infrastructure-monitoring-log-view`, `ml-trained-model`, `osquery-saved-query`, `osquery-pack`, `osquery-pack-asset`." - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/x-ndjson": { - "examples": { - "exportSavedObjectsResponse": { - "summary": "The export objects API response contains a JSON record for each exported object.", - "value": { - "attributes": { - "description": "", - "layerListJSON": "[{\"id\":\"0hmz5\",\"alpha\":1,\"sourceDescriptor\":{\"type\":\"EMS_TMS\",\"isAutoSelect\":true,\"lightModeDefault\":\"road_map_desaturated\"},\"visible\":true,\"style\":{},\"type\":\"EMS_VECTOR_TILE\",\"minZoom\":0,\"maxZoom\":24},{\"id\":\"edh66\",\"label\":\"Total Requests by Destination\",\"minZoom\":0,\"maxZoom\":24,\"alpha\":0.5,\"sourceDescriptor\":{\"type\":\"EMS_FILE\",\"id\":\"world_countries\",\"tooltipProperties\":[\"name\",\"iso2\"]},\"visible\":true,\"style\":{\"type\":\"VECTOR\",\"properties\":{\"fillColor\":{\"type\":\"DYNAMIC\",\"options\":{\"field\":{\"name\":\"__kbnjoin__count__673ff994-fc75-4c67-909b-69fcb0e1060e\",\"origin\":\"join\"},\"color\":\"Greys\",\"fieldMetaOptions\":{\"isEnabled\":false,\"sigma\":3}}},\"lineColor\":{\"type\":\"STATIC\",\"options\":{\"color\":\"#FFFFFF\"}},\"lineWidth\":{\"type\":\"STATIC\",\"options\":{\"size\":1}},\"iconSize\":{\"type\":\"STATIC\",\"options\":{\"size\":10}},\"symbolizeAs\":{\"options\":{\"value\":\"circle\"}},\"icon\":{\"type\":\"STATIC\",\"options\":{\"value\":\"marker\"}}}},\"type\":\"GEOJSON_VECTOR\",\"joins\":[{\"leftField\":\"iso2\",\"right\":{\"type\":\"ES_TERM_SOURCE\",\"id\":\"673ff994-fc75-4c67-909b-69fcb0e1060e\",\"indexPatternTitle\":\"kibana_sample_data_logs\",\"term\":\"geo.dest\",\"indexPatternRefName\":\"layer_1_join_0_index_pattern\",\"metrics\":[{\"type\":\"count\",\"label\":\"web logs count\"}],\"applyGlobalQuery\":true}}]},{\"id\":\"gaxya\",\"label\":\"Actual Requests\",\"minZoom\":9,\"maxZoom\":24,\"alpha\":1,\"sourceDescriptor\":{\"id\":\"b7486535-171b-4d3b-bb2e-33c1a0a2854c\",\"type\":\"ES_SEARCH\",\"geoField\":\"geo.coordinates\",\"limit\":2048,\"filterByMapBounds\":true,\"tooltipProperties\":[\"clientip\",\"timestamp\",\"host\",\"request\",\"response\",\"machine.os\",\"agent\",\"bytes\"],\"indexPatternRefName\":\"layer_2_source_index_pattern\",\"applyGlobalQuery\":true,\"scalingType\":\"LIMIT\"},\"visible\":true,\"style\":{\"type\":\"VECTOR\",\"properties\":{\"fillColor\":{\"type\":\"STATIC\",\"options\":{\"color\":\"#2200ff\"}},\"lineColor\":{\"type\":\"STATIC\",\"options\":{\"color\":\"#FFFFFF\"}},\"lineWidth\":{\"type\":\"STATIC\",\"options\":{\"size\":2}},\"iconSize\":{\"type\":\"DYNAMIC\",\"options\":{\"field\":{\"name\":\"bytes\",\"origin\":\"source\"},\"minSize\":1,\"maxSize\":23,\"fieldMetaOptions\":{\"isEnabled\":false,\"sigma\":3}}},\"symbolizeAs\":{\"options\":{\"value\":\"circle\"}},\"icon\":{\"type\":\"STATIC\",\"options\":{\"value\":\"marker\"}}}},\"type\":\"GEOJSON_VECTOR\"},{\"id\":\"tfi3f\",\"label\":\"Total Requests and Bytes\",\"minZoom\":0,\"maxZoom\":9,\"alpha\":1,\"sourceDescriptor\":{\"type\":\"ES_GEO_GRID\",\"resolution\":\"COARSE\",\"id\":\"8aaa65b5-a4e9-448b-9560-c98cb1c5ac5b\",\"geoField\":\"geo.coordinates\",\"requestType\":\"point\",\"metrics\":[{\"type\":\"count\",\"label\":\"web logs count\"},{\"type\":\"sum\",\"field\":\"bytes\"}],\"indexPatternRefName\":\"layer_3_source_index_pattern\",\"applyGlobalQuery\":true},\"visible\":true,\"style\":{\"type\":\"VECTOR\",\"properties\":{\"fillColor\":{\"type\":\"DYNAMIC\",\"options\":{\"field\":{\"name\":\"doc_count\",\"origin\":\"source\"},\"color\":\"Blues\",\"fieldMetaOptions\":{\"isEnabled\":false,\"sigma\":3}}},\"lineColor\":{\"type\":\"STATIC\",\"options\":{\"color\":\"#cccccc\"}},\"lineWidth\":{\"type\":\"STATIC\",\"options\":{\"size\":1}},\"iconSize\":{\"type\":\"DYNAMIC\",\"options\":{\"field\":{\"name\":\"sum_of_bytes\",\"origin\":\"source\"},\"minSize\":7,\"maxSize\":25,\"fieldMetaOptions\":{\"isEnabled\":false,\"sigma\":3}}},\"labelText\":{\"type\":\"DYNAMIC\",\"options\":{\"field\":{\"name\":\"doc_count\",\"origin\":\"source\"},\"fieldMetaOptions\":{\"isEnabled\":false,\"sigma\":3}}},\"labelSize\":{\"type\":\"DYNAMIC\",\"options\":{\"field\":{\"name\":\"doc_count\",\"origin\":\"source\"},\"minSize\":12,\"maxSize\":24,\"fieldMetaOptions\":{\"isEnabled\":false,\"sigma\":3}}},\"symbolizeAs\":{\"options\":{\"value\":\"circle\"}},\"icon\":{\"type\":\"STATIC\",\"options\":{\"value\":\"marker\"}}}},\"type\":\"GEOJSON_VECTOR\"}]", - "mapStateJSON": "{\"zoom\":3.64,\"center\":{\"lon\":-88.92107,\"lat\":42.16337},\"timeFilters\":{\"from\":\"now-7d\",\"to\":\"now\"},\"refreshConfig\":{\"isPaused\":true,\"interval\":0},\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"settings\":{\"autoFitToDataBounds\":false}}", - "title": "[Logs] Total Requests and Bytes", - "uiStateJSON": "{\"isDarkMode\":false}" - }, - "coreMigrationVersion": "8.8.0", - "created_at": "2023-08-23T20:03:32.204Z", - "id": "de71f4f0-1902-11e9-919b-ffe5949a18d2", - "managed": false, - "references": [ - { - "id": "90943e30-9a47-11e8-b64d-95841ca0b247", - "name": "layer_1_join_0_index_pattern", - "type": "index-pattern" - }, - { - "id": "90943e30-9a47-11e8-b64d-95841ca0b247", - "name": "layer_2_source_index_pattern", - "type": "index-pattern" - }, - { - "id": "90943e30-9a47-11e8-b64d-95841ca0b247", - "name": "layer_3_source_index_pattern", - "type": "index-pattern" - } - ], - "type": "map", - "typeMigrationVersion": "8.4.0", - "updated_at": "2023-08-23T20:03:32.204Z", - "version": "WzEzLDFd" - } - } - }, - "schema": {} - } - }, - "description": "Indicates a successfull call." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Indicates an unsuccessful response.", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "enum": [ - 400 - ], - "type": "integer" - } - }, - "required": [ - "error", - "message", - "statusCode" - ], - "type": "object" - } - } - }, - "description": "Bad request." - } - }, - "summary": "Export saved objects", - "tags": [ - "saved objects" - ] - } - }, - "/api/saved_objects/_import": { - "post": { - "description": "Create sets of Kibana saved objects from a file created by the export API. Saved objects can only be imported into the same version, a newer minor on the same major, or the next major. Tampering with exported data risks introducing unspecified errors and data loss.\n\nExported saved objects are not backwards compatible and cannot be imported into an older version of Kibana.", - "operationId": "post-saved-objects-import", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "Overwrites saved objects when they already exist. When used, potential conflict errors are automatically resolved by overwriting the destination object. NOTE: This option cannot be used with the `createNewCopies` option.", - "in": "query", - "name": "overwrite", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - }, - { - "description": "Creates copies of saved objects, regenerates each object ID, and resets the origin. When used, potential conflict errors are avoided. NOTE: This option cannot be used with the `overwrite` and `compatibilityMode` options.", - "in": "query", - "name": "createNewCopies", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - }, - { - "description": "Applies various adjustments to the saved objects that are being imported to maintain compatibility between different Kibana versions. Use this option only if you encounter issues with imported saved objects. NOTE: This option cannot be used with the `createNewCopies` option.", - "in": "query", - "name": "compatibilityMode", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "examples": { - "importObjectsRequest": { - "value": { - "file": "file.ndjson" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "file": { - "description": "A file exported using the export API. Changing the contents of the exported file in any way before importing it can cause errors, crashes or data loss. NOTE: The `savedObjects.maxImportExportSize` configuration setting limits the number of saved objects which may be included in this file. Similarly, the `savedObjects.maxImportPayloadBytes` setting limits the overall size of the file that can be imported.", - "type": "object" - } - }, - "required": [ - "file" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "importObjectsResponse": { - "summary": "The import objects API response indicates a successful import and the objects are created. Since these objects are created as new copies, each entry in the successResults array includes a destinationId attribute.", - "value": { - "success": true, - "successCount": 1, - "successResults": [ - { - "destinationId": "82d2760c-468f-49cf-83aa-b9a35b6a8943", - "id": "90943e30-9a47-11e8-b64d-95841ca0b247", - "managed": false, - "meta": { - "icon": "indexPatternApp", - "title": "Kibana Sample Data Logs" - }, - "type": "index-pattern" - } - ] - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "errors": { - "description": "Indicates the import was unsuccessful and specifies the objects that failed to import.\n\nNOTE: One object may result in multiple errors, which requires separate steps to resolve. For instance, a `missing_references` error and conflict error.", - "items": { - "additionalProperties": true, - "properties": {}, - "type": "object" - }, - "type": "array" - }, - "success": { - "description": "Indicates when the import was successfully completed. When set to false, some objects may not have been created. For additional information, refer to the `errors` and `successResults` properties.", - "type": "boolean" - }, - "successCount": { - "description": "Indicates the number of successfully imported records.", - "type": "number" - }, - "successResults": { - "description": "Indicates the objects that are successfully imported, with any metadata if applicable.\n\nNOTE: Objects are created only when all resolvable errors are addressed, including conflicts and missing references. If objects are created as new copies, each entry in the `successResults` array includes a `destinationId` attribute.", - "items": { - "additionalProperties": true, - "properties": {}, - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "success", - "successCount", - "errors", - "successResults" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Indicates an unsuccessful response.", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "enum": [ - 400 - ], - "type": "integer" - } - }, - "required": [ - "error", - "message", - "statusCode" - ], - "type": "object" - } - } - }, - "description": "Bad request." - } - }, - "summary": "Import saved objects", - "tags": [ - "saved objects" - ], - "x-codeSamples": [ - { - "label": "Import with createNewCopies", - "lang": "cURL", - "source": "curl \\\n -X POST api/saved_objects/_import?createNewCopies=true\n -H \"kbn-xsrf: true\"\n --form file=@file.ndjson\n" - } - ] - } - }, - "/api/security/role": { - "get": { - "operationId": "get-security-role", - "parameters": [ - { - "description": "If `true` and the response contains any privileges that are associated with deprecated features, they are omitted in favor of details about the appropriate replacement feature privileges.", - "in": "query", - "name": "replaceDeprecatedPrivileges", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "description": "Indicates a successful call." - } - }, - "summary": "Get all roles", - "tags": [ - "roles" - ] - } - }, - "/api/security/role/_query": { - "post": { - "operationId": "post-security-role-query", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "filters": { - "additionalProperties": false, - "properties": { - "showReservedRoles": { - "type": "boolean" - } - }, - "type": "object" - }, - "from": { - "type": "number" - }, - "query": { - "type": "string" - }, - "size": { - "type": "number" - }, - "sort": { - "additionalProperties": false, - "properties": { - "direction": { - "enum": [ - "asc", - "desc" - ], - "type": "string" - }, - "field": { - "type": "string" - } - }, - "required": [ - "field", - "direction" - ], - "type": "object" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "description": "Indicates a successful call." - } - }, - "summary": "Query roles", - "tags": [] - } - }, - "/api/security/role/{name}": { - "delete": { - "operationId": "delete-security-role-name", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "minLength": 1, - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "Indicates a successful call." - } - }, - "summary": "Delete a role", - "tags": [ - "roles" - ] - }, - "get": { - "operationId": "get-security-role-name", - "parameters": [ - { - "description": "The role name.", - "in": "path", - "name": "name", - "required": true, - "schema": { - "minLength": 1, - "type": "string" - } - }, - { - "description": "If `true` and the response contains any privileges that are associated with deprecated features, they are omitted in favor of details about the appropriate replacement feature privileges.", - "in": "query", - "name": "replaceDeprecatedPrivileges", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "description": "Indicates a successful call." - } - }, - "summary": "Get a role", - "tags": [ - "roles" - ] - }, - "put": { - "description": "Create a new Kibana role or update the attributes of an existing role. Kibana roles are stored in the Elasticsearch native realm.", - "operationId": "put-security-role-name", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The role name.", - "in": "path", - "name": "name", - "required": true, - "schema": { - "maxLength": 1024, - "minLength": 1, - "type": "string" - } - }, - { - "description": "When true, a role is not overwritten if it already exists.", - "in": "query", - "name": "createOnly", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "description": { - "description": "A description for the role.", - "maxLength": 2048, - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "cluster": { - "items": { - "description": "Cluster privileges that define the cluster level actions that users can perform.", - "type": "string" - }, - "type": "array" - }, - "indices": { - "items": { - "additionalProperties": false, - "properties": { - "allow_restricted_indices": { - "description": "Restricted indices are a special category of indices that are used internally to store configuration data and should not be directly accessed. Only internal system roles should normally grant privileges over the restricted indices. Toggling this flag is very strongly discouraged because it could effectively grant unrestricted operations on critical data, making the entire system unstable or leaking sensitive information. If for administrative purposes you need to create a role with privileges covering restricted indices, however, you can set this property to true. In that case, the names field covers the restricted indices too.", - "type": "boolean" - }, - "field_security": { - "additionalProperties": { - "items": { - "description": "The document fields that the role members have read access to.", - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "names": { - "items": { - "description": "The data streams, indices, and aliases to which the permissions in this entry apply. It supports wildcards (*).", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "privileges": { - "items": { - "description": "The index level privileges that the role members have for the data streams and indices.", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "query": { - "description": "A search query that defines the documents the role members have read access to. A document within the specified data streams and indices must match this query in order for it to be accessible by the role members.", - "type": "string" - } - }, - "required": [ - "names", - "privileges" - ], - "type": "object" - }, - "type": "array" - }, - "remote_cluster": { - "items": { - "additionalProperties": false, - "properties": { - "clusters": { - "items": { - "description": "A list of remote cluster aliases. It supports literal strings as well as wildcards and regular expressions.", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "privileges": { - "items": { - "description": "The cluster level privileges for the remote cluster. The allowed values are a subset of the cluster privileges.", - "type": "string" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "privileges", - "clusters" - ], - "type": "object" - }, - "type": "array" - }, - "remote_indices": { - "items": { - "additionalProperties": false, - "properties": { - "allow_restricted_indices": { - "description": "Restricted indices are a special category of indices that are used internally to store configuration data and should not be directly accessed. Only internal system roles should normally grant privileges over the restricted indices. Toggling this flag is very strongly discouraged because it could effectively grant unrestricted operations on critical data, making the entire system unstable or leaking sensitive information. If for administrative purposes you need to create a role with privileges covering restricted indices, however, you can set this property to true. In that case, the names field will cover the restricted indices too.", - "type": "boolean" - }, - "clusters": { - "items": { - "description": "A list of remote cluster aliases. It supports literal strings as well as wildcards and regular expressions.", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "field_security": { - "additionalProperties": { - "items": { - "description": "The document fields that the role members have read access to.", - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "names": { - "items": { - "description": "A list of remote aliases, data streams, or indices to which the permissions apply. It supports wildcards (*).", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "privileges": { - "items": { - "description": "The index level privileges that role members have for the specified indices.", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "query": { - "description": "A search query that defines the documents the role members have read access to. A document within the specified data streams and indices must match this query in order for it to be accessible by the role members. ", - "type": "string" - } - }, - "required": [ - "clusters", - "names", - "privileges" - ], - "type": "object" - }, - "type": "array" - }, - "run_as": { - "items": { - "description": "A user name that the role member can impersonate.", - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "kibana": { - "items": { - "additionalProperties": false, - "properties": { - "base": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "items": { - "description": "A base privilege that grants applies to all spaces.", - "type": "string" - }, - "type": "array" - }, - { - "items": { - "description": "A base privilege that applies to specific spaces.", - "type": "string" - }, - "type": "array" - } - ] - }, - "feature": { - "additionalProperties": { - "items": { - "description": "The privileges that the role member has for the feature.", - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "spaces": { - "anyOf": [ - { - "items": { - "enum": [ - "*" - ], - "type": "string" - }, - "maxItems": 1, - "minItems": 1, - "type": "array" - }, - { - "items": { - "description": "A space that the privilege applies to.", - "type": "string" - }, - "type": "array" - } - ], - "default": [ - "*" - ] - } - }, - "required": [ - "base" - ], - "type": "object" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "elasticsearch" - ], - "type": "object" - } - } - } - }, - "responses": { - "204": { - "description": "Indicates a successful call." - } - }, - "summary": "Create or update a role", - "tags": [ - "roles" - ] - } - }, - "/api/security/roles": { - "post": { - "operationId": "post-security-roles", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "roles": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "description": { - "description": "A description for the role.", - "maxLength": 2048, - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "cluster": { - "items": { - "description": "Cluster privileges that define the cluster level actions that users can perform.", - "type": "string" - }, - "type": "array" - }, - "indices": { - "items": { - "additionalProperties": false, - "properties": { - "allow_restricted_indices": { - "description": "Restricted indices are a special category of indices that are used internally to store configuration data and should not be directly accessed. Only internal system roles should normally grant privileges over the restricted indices. Toggling this flag is very strongly discouraged because it could effectively grant unrestricted operations on critical data, making the entire system unstable or leaking sensitive information. If for administrative purposes you need to create a role with privileges covering restricted indices, however, you can set this property to true. In that case, the names field covers the restricted indices too.", - "type": "boolean" - }, - "field_security": { - "additionalProperties": { - "items": { - "description": "The document fields that the role members have read access to.", - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "names": { - "items": { - "description": "The data streams, indices, and aliases to which the permissions in this entry apply. It supports wildcards (*).", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "privileges": { - "items": { - "description": "The index level privileges that the role members have for the data streams and indices.", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "query": { - "description": "A search query that defines the documents the role members have read access to. A document within the specified data streams and indices must match this query in order for it to be accessible by the role members.", - "type": "string" - } - }, - "required": [ - "names", - "privileges" - ], - "type": "object" - }, - "type": "array" - }, - "remote_cluster": { - "items": { - "additionalProperties": false, - "properties": { - "clusters": { - "items": { - "description": "A list of remote cluster aliases. It supports literal strings as well as wildcards and regular expressions.", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "privileges": { - "items": { - "description": "The cluster level privileges for the remote cluster. The allowed values are a subset of the cluster privileges.", - "type": "string" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "privileges", - "clusters" - ], - "type": "object" - }, - "type": "array" - }, - "remote_indices": { - "items": { - "additionalProperties": false, - "properties": { - "allow_restricted_indices": { - "description": "Restricted indices are a special category of indices that are used internally to store configuration data and should not be directly accessed. Only internal system roles should normally grant privileges over the restricted indices. Toggling this flag is very strongly discouraged because it could effectively grant unrestricted operations on critical data, making the entire system unstable or leaking sensitive information. If for administrative purposes you need to create a role with privileges covering restricted indices, however, you can set this property to true. In that case, the names field will cover the restricted indices too.", - "type": "boolean" - }, - "clusters": { - "items": { - "description": "A list of remote cluster aliases. It supports literal strings as well as wildcards and regular expressions.", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "field_security": { - "additionalProperties": { - "items": { - "description": "The document fields that the role members have read access to.", - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "names": { - "items": { - "description": "A list of remote aliases, data streams, or indices to which the permissions apply. It supports wildcards (*).", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "privileges": { - "items": { - "description": "The index level privileges that role members have for the specified indices.", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "query": { - "description": "A search query that defines the documents the role members have read access to. A document within the specified data streams and indices must match this query in order for it to be accessible by the role members. ", - "type": "string" - } - }, - "required": [ - "clusters", - "names", - "privileges" - ], - "type": "object" - }, - "type": "array" - }, - "run_as": { - "items": { - "description": "A user name that the role member can impersonate.", - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "kibana": { - "items": { - "additionalProperties": false, - "properties": { - "base": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "items": { - "description": "A base privilege that grants applies to all spaces.", - "type": "string" - }, - "type": "array" - }, - { - "items": { - "description": "A base privilege that applies to specific spaces.", - "type": "string" - }, - "type": "array" - } - ] - }, - "feature": { - "additionalProperties": { - "items": { - "description": "The privileges that the role member has for the feature.", - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "spaces": { - "anyOf": [ - { - "items": { - "enum": [ - "*" - ], - "type": "string" - }, - "maxItems": 1, - "minItems": 1, - "type": "array" - }, - { - "items": { - "description": "A space that the privilege applies to.", - "type": "string" - }, - "type": "array" - } - ], - "default": [ - "*" - ] - } - }, - "required": [ - "base" - ], - "type": "object" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "elasticsearch" - ], - "type": "object" - }, - "type": "object" - } - }, - "required": [ - "roles" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "description": "Indicates a successful call." - } - }, - "summary": "Create or update roles", - "tags": [ - "roles" - ] - } - }, - "/api/spaces/_copy_saved_objects": { - "post": { - "description": "It also allows you to automatically copy related objects, so when you copy a dashboard, this can automatically copy over the associated visualizations, data views, and saved Discover sessions, as required. You can request to overwrite any objects that already exist in the target space if they share an identifier or you can use the resolve copy saved objects conflicts API to do this on a per-object basis.

[Required authorization] Route required privileges: copySavedObjectsToSpaces.", - "operationId": "post-spaces-copy-saved-objects", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "compatibilityMode": { - "default": false, - "description": "Apply various adjustments to the saved objects that are being copied to maintain compatibility between different Kibana versions. Use this option only if you encounter issues with copied saved objects. This option cannot be used with the `createNewCopies` option.", - "type": "boolean" - }, - "createNewCopies": { - "default": true, - "description": "Create new copies of saved objects, regenerate each object identifier, and reset the origin. When used, potential conflict errors are avoided. This option cannot be used with the `overwrite` and `compatibilityMode` options.", - "type": "boolean" - }, - "includeReferences": { - "default": false, - "description": "When set to true, all saved objects related to the specified saved objects will also be copied into the target spaces.", - "type": "boolean" - }, - "objects": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "description": "The identifier of the saved object to copy.", - "type": "string" - }, - "type": { - "description": "The type of the saved object to copy.", - "type": "string" - } - }, - "required": [ - "type", - "id" - ], - "type": "object" - }, - "type": "array" - }, - "overwrite": { - "default": false, - "description": "When set to true, all conflicts are automatically overridden. When a saved object with a matching type and identifier exists in the target space, that version is replaced with the version from the source space. This option cannot be used with the `createNewCopies` option.", - "type": "boolean" - }, - "spaces": { - "items": { - "description": "The identifiers of the spaces where you want to copy the specified objects.", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "spaces", - "objects" - ], - "type": "object" - } - } - } - }, - "responses": {}, - "summary": "Copy saved objects between spaces", - "tags": [ - "spaces" - ] - } - }, - "/api/spaces/_disable_legacy_url_aliases": { - "post": { - "operationId": "post-spaces-disable-legacy-url-aliases", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "aliases": { - "items": { - "additionalProperties": false, - "properties": { - "sourceId": { - "description": "The alias source object identifier. This is the legacy object identifier.", - "type": "string" - }, - "targetSpace": { - "description": "The space where the alias target object exists.", - "type": "string" - }, - "targetType": { - "description": "The type of alias target object. ", - "type": "string" - } - }, - "required": [ - "targetSpace", - "targetType", - "sourceId" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "aliases" - ], - "type": "object" - } - } - } - }, - "responses": {}, - "summary": "Disable legacy URL aliases", - "tags": [ - "spaces" - ] - } - }, - "/api/spaces/_get_shareable_references": { - "post": { - "description": "Collect references and space contexts for saved objects.", - "operationId": "post-spaces-get-shareable-references", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "objects": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "type", - "id" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "objects" - ], - "type": "object" - } - } - } - }, - "responses": {}, - "summary": "Get shareable references", - "tags": [ - "spaces" - ] - } - }, - "/api/spaces/_resolve_copy_saved_objects_errors": { - "post": { - "description": "Overwrite saved objects that are returned as errors from the copy saved objects to space API.

[Required authorization] Route required privileges: copySavedObjectsToSpaces.", - "operationId": "post-spaces-resolve-copy-saved-objects-errors", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "compatibilityMode": { - "default": false, - "type": "boolean" - }, - "createNewCopies": { - "default": true, - "type": "boolean" - }, - "includeReferences": { - "default": false, - "type": "boolean" - }, - "objects": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "type", - "id" - ], - "type": "object" - }, - "type": "array" - }, - "retries": { - "additionalProperties": { - "items": { - "additionalProperties": false, - "properties": { - "createNewCopy": { - "description": "Creates new copies of the saved objects, regenerates each object ID, and resets the origin.", - "type": "boolean" - }, - "destinationId": { - "description": "Specifies the destination identifier that the copied object should have, if different from the current identifier.", - "type": "string" - }, - "id": { - "description": "The saved object identifier.", - "type": "string" - }, - "ignoreMissingReferences": { - "description": "When set to true, any missing references errors are ignored.", - "type": "boolean" - }, - "overwrite": { - "default": false, - "description": "When set to true, the saved object from the source space overwrites the conflicting object in the destination space.", - "type": "boolean" - }, - "type": { - "description": "The saved object type.", - "type": "string" - } - }, - "required": [ - "type", - "id" - ], - "type": "object" - }, - "type": "array" - }, - "type": "object" - } - }, - "required": [ - "retries", - "objects" - ], - "type": "object" - } - } - } - }, - "responses": {}, - "summary": "Resolve conflicts copying saved objects", - "tags": [] - } - }, - "/api/spaces/_update_objects_spaces": { - "post": { - "description": "Update one or more saved objects to add or remove them from some spaces.", - "operationId": "post-spaces-update-objects-spaces", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "objects": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "description": "The identifier of the saved object to update.", - "type": "string" - }, - "type": { - "description": "The type of the saved object to update.", - "type": "string" - } - }, - "required": [ - "type", - "id" - ], - "type": "object" - }, - "type": "array" - }, - "spacesToAdd": { - "items": { - "description": "The identifiers of the spaces the saved objects should be added to or removed from.", - "type": "string" - }, - "type": "array" - }, - "spacesToRemove": { - "items": { - "description": "The identifiers of the spaces the saved objects should be added to or removed from.", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "objects", - "spacesToAdd", - "spacesToRemove" - ], - "type": "object" - } - } - } - }, - "responses": {}, - "summary": "Update saved objects in spaces", - "tags": [ - "spaces" - ] - } - }, - "/api/spaces/space": { - "get": { - "operationId": "get-spaces-space", - "parameters": [ - { - "description": "Specifies which authorization checks are applied to the API call. The default value is `any`.", - "in": "query", - "name": "purpose", - "required": false, - "schema": { - "enum": [ - "any", - "copySavedObjectsIntoSpace", - "shareSavedObjectsIntoSpace" - ], - "type": "string" - } - }, - { - "description": "When enabled, the API returns any spaces that the user is authorized to access in any capacity and each space will contain the purposes for which the user is authorized. This can be useful to determine which spaces a user can read but not take a specific action in. If the security plugin is not enabled, this parameter has no effect, since no authorization checks take place. This parameter cannot be used in with the `purpose` parameter.", - "in": "query", - "name": "include_authorized_purposes", - "required": true, - "schema": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "enum": [ - false - ], - "type": "boolean", - "x-oas-optional": true - }, - { - "type": "boolean", - "x-oas-optional": true - } - ] - } - } - ], - "responses": { - "200": { - "description": "Indicates a successful call." - } - }, - "summary": "Get all spaces", - "tags": [ - "spaces" - ] - }, - "post": { - "operationId": "post-spaces-space", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "_reserved": { - "type": "boolean" - }, - "color": { - "description": "The hexadecimal color code used in the space avatar. By default, the color is automatically generated from the space name.", - "type": "string" - }, - "description": { - "description": "A description for the space.", - "type": "string" - }, - "disabledFeatures": { - "default": [], - "items": { - "description": "The list of features that are turned off in the space.", - "type": "string" - }, - "type": "array" - }, - "id": { - "description": "The space ID that is part of the Kibana URL when inside the space. Space IDs are limited to lowercase alphanumeric, underscore, and hyphen characters (a-z, 0-9, _, and -). You are cannot change the ID with the update operation.", - "type": "string" - }, - "imageUrl": { - "description": "The data-URL encoded image to display in the space avatar. If specified, initials will not be displayed and the color will be visible as the background color for transparent images. For best results, your image should be 64x64. Images will not be optimized by this API call, so care should be taken when using custom images.", - "type": "string" - }, - "initials": { - "description": "One or two characters that are shown in the space avatar. By default, the initials are automatically generated from the space name.", - "maxLength": 2, - "type": "string" - }, - "name": { - "description": "The display name for the space. ", - "minLength": 1, - "type": "string" - }, - "solution": { - "enum": [ - "security", - "oblt", - "es", - "classic" - ], - "type": "string" - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "description": "Indicates a successful call." - } - }, - "summary": "Create a space", - "tags": [ - "spaces" - ] - } - }, - "/api/spaces/space/{id}": { - "delete": { - "description": "When you delete a space, all saved objects that belong to the space are automatically deleted, which is permanent and cannot be undone.", - "operationId": "delete-spaces-space-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The space identifier.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "Indicates a successful call." - }, - "404": { - "description": "Indicates that the request failed." - } - }, - "summary": "Delete a space", - "tags": [ - "spaces" - ] - }, - "get": { - "operationId": "get-spaces-space-id", - "parameters": [ - { - "description": "The space identifier.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Indicates a successful call." - } - }, - "summary": "Get a space", - "tags": [ - "spaces" - ] - }, - "put": { - "operationId": "put-spaces-space-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The space identifier. You are unable to change the ID with the update operation.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "_reserved": { - "type": "boolean" - }, - "color": { - "description": "The hexadecimal color code used in the space avatar. By default, the color is automatically generated from the space name.", - "type": "string" - }, - "description": { - "description": "A description for the space.", - "type": "string" - }, - "disabledFeatures": { - "default": [], - "items": { - "description": "The list of features that are turned off in the space.", - "type": "string" - }, - "type": "array" - }, - "id": { - "description": "The space ID that is part of the Kibana URL when inside the space. Space IDs are limited to lowercase alphanumeric, underscore, and hyphen characters (a-z, 0-9, _, and -). You are cannot change the ID with the update operation.", - "type": "string" - }, - "imageUrl": { - "description": "The data-URL encoded image to display in the space avatar. If specified, initials will not be displayed and the color will be visible as the background color for transparent images. For best results, your image should be 64x64. Images will not be optimized by this API call, so care should be taken when using custom images.", - "type": "string" - }, - "initials": { - "description": "One or two characters that are shown in the space avatar. By default, the initials are automatically generated from the space name.", - "maxLength": 2, - "type": "string" - }, - "name": { - "description": "The display name for the space. ", - "minLength": 1, - "type": "string" - }, - "solution": { - "enum": [ - "security", - "oblt", - "es", - "classic" - ], - "type": "string" - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "description": "Indicates a successful call." - } - }, - "summary": "Update a space", - "tags": [ - "spaces" - ] - } - }, - "/api/status": { - "get": { - "operationId": "get-status", - "parameters": [ - { - "description": "Set to \"true\" to get the response in v7 format.", - "in": "query", - "name": "v7format", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "description": "Set to \"true\" to get the response in v8 format.", - "in": "query", - "name": "v8format", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "$ref": "#/components/schemas/core_status_response" - }, - { - "$ref": "#/components/schemas/core_status_redactedResponse" - } - ], - "description": "Kibana's operational status. A minimal response is sent for unauthorized users." - } - } - }, - "description": "Overall status is OK and Kibana should be functioning normally." - }, - "503": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "$ref": "#/components/schemas/core_status_response" - }, - { - "$ref": "#/components/schemas/core_status_redactedResponse" - } - ], - "description": "Kibana's operational status. A minimal response is sent for unauthorized users." - } - } - }, - "description": "Kibana or some of it's essential services are unavailable. Kibana may be degraded or unavailable." - } - }, - "summary": "Get Kibana's current status", - "tags": [ - "system" - ] - } - }, - "/api/streams": { - "get": { - "description": "Fetches list of all streams

[Required authorization] Route required privileges: read_stream.", - "operationId": "get-streams", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - } - } - } - }, - "responses": {}, - "summary": "Get stream list", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - }, - "/api/streams/_disable": { - "post": { - "description": "Disables wired streams and deletes all existing stream definitions. The data of wired streams is deleted, but the data of classic streams is preserved.

[Required authorization] Route required privileges: manage_stream.", - "operationId": "post-streams-disable", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - } - } - } - }, - "responses": {}, - "summary": "Disable streams", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - }, - "/api/streams/_enable": { - "post": { - "description": "Enables wired streams

[Required authorization] Route required privileges: manage_stream.", - "operationId": "post-streams-enable", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - } - } - } - }, - "responses": {}, - "summary": "Enable streams", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - }, - "/api/streams/_resync": { - "post": { - "description": "Resyncs all streams, making sure that Elasticsearch assets are up to date

[Required authorization] Route required privileges: manage_stream.", - "operationId": "post-streams-resync", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - } - } - } - }, - "responses": {}, - "summary": "Resync streams", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - }, - "/api/streams/{name}": { - "delete": { - "description": "Deletes a stream definition and the underlying data stream

[Required authorization] Route required privileges: manage_stream.", - "operationId": "delete-streams-name", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - } - } - } - }, - "responses": {}, - "summary": "Delete a stream", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - }, - "get": { - "description": "Fetches a stream definition and associated dashboards

[Required authorization] Route required privileges: read_stream.", - "operationId": "get-streams-name", - "parameters": [ - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - } - } - } - }, - "responses": {}, - "summary": "Get a stream", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - }, - "put": { - "description": "Creates or updates a stream definition. Classic streams can not be created through this API, only updated

[Required authorization] Route required privileges: manage_stream.", - "operationId": "put-streams-name", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "anyOf": [ - { - "allOf": [ - { - "properties": {}, - "type": "object" - }, - { - "properties": { - "stream": { - "allOf": [ - { - "additionalProperties": true, - "properties": { - "ingest": { - "additionalProperties": true, - "properties": { - "processing": { - "additionalProperties": true, - "properties": { - "updated_at": { - "not": {} - } - }, - "type": "object" - } - }, - "required": [ - "processing" - ], - "type": "object" - }, - "name": { - "not": {} - }, - "updated_at": { - "not": {} - } - }, - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "updated_at": { - "format": "date-time", - "type": "string" - } - }, - "required": [ - "name", - "description", - "updated_at" - ], - "type": "object" - } - ] - } - }, - "required": [ - "stream" - ], - "type": "object" - }, - { - "properties": { - "dashboards": { - "items": { - "type": "string" - }, - "type": "array" - }, - "queries": { - "items": { - "allOf": [ - { - "properties": { - "id": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "title": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "id", - "title" - ], - "type": "object" - }, - { - "properties": { - "evidence": { - "items": { - "type": "string" - }, - "type": "array" - }, - "feature": { - "additionalProperties": false, - "properties": { - "filter": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - "name": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": { - "enum": [ - "system" - ], - "type": "string" - } - }, - "required": [ - "name", - "filter", - "type" - ], - "type": "object" - }, - "kql": { - "additionalProperties": false, - "properties": { - "query": { - "type": "string" - } - }, - "required": [ - "query" - ], - "type": "object" - }, - "severity_score": { - "type": "number" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - ] - }, - "type": "array" - }, - "rules": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "dashboards", - "rules", - "queries" - ], - "type": "object" - }, - { - "properties": { - "stream": { - "allOf": [ - { - "additionalProperties": true, - "properties": { - "ingest": { - "additionalProperties": true, - "properties": { - "processing": { - "additionalProperties": true, - "properties": { - "updated_at": { - "not": {} - } - }, - "type": "object" - } - }, - "required": [ - "processing" - ], - "type": "object" - }, - "name": { - "not": {} - }, - "updated_at": { - "not": {} - } - }, - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "ingest": { - "allOf": [ - { - "properties": { - "failure_store": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "inherit": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "inherit" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "disabled": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "disabled" - ], - "type": "object" - }, - { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "lifecycle": { - "additionalProperties": false, - "properties": { - "enabled": { - "additionalProperties": false, - "properties": { - "data_retention": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "enabled" - ], - "type": "object" - } - }, - "required": [ - "lifecycle" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "lifecycle": { - "additionalProperties": false, - "properties": { - "disabled": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "disabled" - ], - "type": "object" - } - }, - "required": [ - "lifecycle" - ], - "type": "object" - } - ] - } - ] - }, - "lifecycle": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "dsl": { - "additionalProperties": false, - "properties": { - "data_retention": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "dsl" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "ilm": { - "additionalProperties": false, - "properties": { - "policy": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "policy" - ], - "type": "object" - } - }, - "required": [ - "ilm" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "inherit": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "inherit" - ], - "type": "object" - } - ] - }, - "processing": { - "additionalProperties": false, - "properties": { - "steps": { - "items": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "Grok processor - Extract fields from text using grok patterns", - "properties": { - "action": { - "enum": [ - "grok" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to parse with grok patterns", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "pattern_definitions": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "patterns": { - "description": "Grok patterns applied in order to extract fields", - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "patterns" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Dissect processor - Extract fields from text using a lightweight, delimiter-based parser", - "properties": { - "action": { - "enum": [ - "dissect" - ], - "type": "string" - }, - "append_separator": { - "description": "Separator inserted when target fields are concatenated", - "minLength": 1, - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to parse with dissect pattern", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "pattern": { - "description": "Dissect pattern describing field boundaries", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "pattern" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Date processor - Parse dates from strings using one or more expected formats", - "properties": { - "action": { - "enum": [ - "date" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "formats": { - "description": "Accepted input date formats, tried in order", - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "from": { - "description": "Source field containing the date/time text", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "locale": { - "description": "Optional locale for date parsing", - "minLength": 1, - "type": "string" - }, - "output_format": { - "description": "Optional output format for storing the parsed date as text", - "minLength": 1, - "type": "string" - }, - "timezone": { - "description": "Optional timezone for date parsing", - "minLength": 1, - "type": "string" - }, - "to": { - "description": "Target field for the parsed date (defaults to source)", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "formats" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "drop_document" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "math" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "expression": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "expression", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Rename processor - Change a field name and optionally its location", - "properties": { - "action": { - "enum": [ - "rename" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Existing source field to rename or move", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip when source field is missing", - "type": "boolean" - }, - "override": { - "description": "Allow overwriting the target field if it already exists", - "type": "boolean" - }, - "to": { - "description": "New field name or destination path", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Set processor - Assign a literal or copied value to a field (mutually exclusive inputs)", - "properties": { - "action": { - "enum": [ - "set" - ], - "type": "string" - }, - "copy_from": { - "description": "Copy value from another field instead of providing a literal", - "minLength": 1, - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "override": { - "description": "Allow overwriting an existing target field", - "type": "boolean" - }, - "to": { - "description": "Target field to set or create", - "minLength": 1, - "type": "string" - }, - "value": { - "description": "Literal value to assign to the target field" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Append processor - Append one or more values to an existing or new array field", - "properties": { - "action": { - "enum": [ - "append" - ], - "type": "string" - }, - "allow_duplicates": { - "description": "If true, do not deduplicate appended values", - "type": "boolean" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "to": { - "description": "Array field to append values to", - "minLength": 1, - "type": "string" - }, - "value": { - "description": "Values to append (must be literal, no templates)", - "items": {}, - "minItems": 1, - "type": "array" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "to", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Remove by prefix processor - Remove a field and all nested fields matching the prefix", - "properties": { - "action": { - "enum": [ - "remove_by_prefix" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Field to remove along with all its nested fields", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Remove processor - Delete one or more fields from the document", - "properties": { - "action": { - "enum": [ - "remove" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Field to remove from the document", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "replace" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "pattern": { - "description": "A non-empty string or string with whitespace.", - "minLength": 1, - "type": "string" - }, - "replacement": { - "type": "string" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "pattern", - "replacement" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "uppercase" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "lowercase" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "trim" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "join" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "delimiter": { - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "delimiter", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Convert processor - Change the data type of a field value (integer, long, double, boolean, or string)", - "properties": { - "action": { - "enum": [ - "convert" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to convert to a different data type", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "to": { - "description": "Target field for the converted value (defaults to source)", - "minLength": 1, - "type": "string" - }, - "type": { - "description": "Target data type: integer, long, double, boolean, or string", - "enum": [ - "integer", - "long", - "double", - "boolean", - "string" - ], - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "concat" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "field" - ], - "type": "string" - }, - "value": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "literal" - ], - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - } - ] - }, - "minItems": 1, - "type": "array" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Manual ingest pipeline wrapper around native Elasticsearch processors", - "properties": { - "action": { - "description": "Manual ingest pipeline - executes raw Elasticsearch ingest processors", - "enum": [ - "manual_ingest_pipeline" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "on_failure": { - "description": "Fallback processors to run when a processor fails", - "items": { - "additionalProperties": {}, - "type": "object" - }, - "type": "array" - }, - "processors": { - "description": "List of raw Elasticsearch ingest processors to run", - "items": { - "additionalProperties": false, - "properties": { - "append": {}, - "attachment": {}, - "bytes": {}, - "circle": {}, - "community_id": {}, - "convert": {}, - "csv": {}, - "date": {}, - "date_index_name": {}, - "dissect": {}, - "dot_expander": {}, - "drop": {}, - "enrich": {}, - "fail": {}, - "fingerprint": {}, - "foreach": {}, - "geo_grid": {}, - "geoip": {}, - "grok": {}, - "gsub": {}, - "html_strip": {}, - "inference": {}, - "ip_location": {}, - "join": {}, - "json": {}, - "kv": {}, - "lowercase": {}, - "network_direction": {}, - "pipeline": {}, - "redact": {}, - "registered_domain": {}, - "remove": {}, - "rename": {}, - "reroute": {}, - "script": {}, - "set": {}, - "set_security_user": {}, - "sort": {}, - "split": {}, - "terminate": {}, - "trim": {}, - "uppercase": {}, - "uri_parts": {}, - "urldecode": {}, - "user_agent": {} - }, - "required": [ - "append", - "attachment", - "bytes", - "circle", - "community_id", - "convert", - "csv", - "date", - "date_index_name", - "dissect", - "dot_expander", - "drop", - "enrich", - "fail", - "fingerprint", - "foreach", - "ip_location", - "geo_grid", - "geoip", - "grok", - "gsub", - "html_strip", - "inference", - "join", - "json", - "kv", - "lowercase", - "network_direction", - "pipeline", - "redact", - "registered_domain", - "remove", - "rename", - "reroute", - "script", - "set", - "set_security_user", - "sort", - "split", - "terminate", - "trim", - "uppercase", - "urldecode", - "uri_parts", - "user_agent" - ], - "type": "object" - }, - "type": "array" - }, - "tag": { - "description": "Optional ingest processor tag for Elasticsearch", - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "processors" - ], - "type": "object" - } - ] - }, - { - "additionalProperties": false, - "properties": { - "condition": { - "allOf": [ - { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - { - "properties": { - "steps": { - "items": {}, - "type": "array" - } - }, - "required": [ - "steps" - ], - "type": "object" - } - ] - }, - "customIdentifier": { - "type": "string" - } - }, - "required": [ - "condition" - ], - "type": "object" - } - ] - }, - "type": "array" - }, - "updated_at": { - "format": "date-time", - "type": "string" - } - }, - "required": [ - "steps", - "updated_at" - ], - "type": "object" - }, - "settings": { - "additionalProperties": false, - "properties": { - "index.number_of_replicas": { - "additionalProperties": false, - "properties": { - "value": { - "type": "number" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "index.number_of_shards": { - "additionalProperties": false, - "properties": { - "value": { - "type": "number" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "index.refresh_interval": { - "additionalProperties": false, - "properties": { - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - -1 - ], - "type": "number" - } - ] - } - }, - "required": [ - "value" - ], - "type": "object" - } - }, - "type": "object" - } - }, - "required": [ - "lifecycle", - "processing", - "settings", - "failure_store" - ], - "type": "object" - }, - { - "properties": { - "wired": { - "additionalProperties": false, - "properties": { - "fields": { - "additionalProperties": { - "allOf": [ - { - "additionalProperties": { - "anyOf": [ - { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - }, - { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - }, - "type": "array" - }, - { - "items": {}, - "type": "array" - }, - {} - ] - }, - "type": "object" - }, - { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "format": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": { - "enum": [ - "keyword", - "match_only_text", - "long", - "double", - "date", - "boolean", - "ip", - "geo_point" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "system" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - } - ] - } - ] - }, - "type": "object" - }, - "routing": { - "items": { - "additionalProperties": false, - "properties": { - "destination": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "status": { - "enum": [ - "enabled", - "disabled" - ], - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - } - }, - "required": [ - "destination", - "where" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "fields", - "routing" - ], - "type": "object" - } - }, - "required": [ - "wired" - ], - "type": "object" - } - ] - } - }, - "required": [ - "ingest" - ], - "type": "object" - } - ] - } - }, - "required": [ - "stream" - ], - "type": "object" - }, - { - "properties": {}, - "type": "object" - }, - { - "properties": { - "stream": { - "allOf": [ - { - "additionalProperties": true, - "properties": { - "ingest": { - "additionalProperties": true, - "properties": { - "processing": { - "additionalProperties": true, - "properties": { - "updated_at": { - "not": {} - } - }, - "type": "object" - } - }, - "required": [ - "processing" - ], - "type": "object" - }, - "name": { - "not": {} - }, - "updated_at": { - "not": {} - } - }, - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "updated_at": { - "format": "date-time", - "type": "string" - } - }, - "required": [ - "name", - "description", - "updated_at" - ], - "type": "object" - } - ] - } - }, - "required": [ - "stream" - ], - "type": "object" - }, - { - "properties": { - "dashboards": { - "items": { - "type": "string" - }, - "type": "array" - }, - "queries": { - "items": { - "allOf": [ - { - "properties": { - "id": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "title": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "id", - "title" - ], - "type": "object" - }, - { - "properties": { - "evidence": { - "items": { - "type": "string" - }, - "type": "array" - }, - "feature": { - "additionalProperties": false, - "properties": { - "filter": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - "name": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": { - "enum": [ - "system" - ], - "type": "string" - } - }, - "required": [ - "name", - "filter", - "type" - ], - "type": "object" - }, - "kql": { - "additionalProperties": false, - "properties": { - "query": { - "type": "string" - } - }, - "required": [ - "query" - ], - "type": "object" - }, - "severity_score": { - "type": "number" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - ] - }, - "type": "array" - }, - "rules": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "dashboards", - "rules", - "queries" - ], - "type": "object" - }, - { - "properties": { - "stream": { - "allOf": [ - { - "additionalProperties": true, - "properties": { - "ingest": { - "additionalProperties": true, - "properties": { - "processing": { - "additionalProperties": true, - "properties": { - "updated_at": { - "not": {} - } - }, - "type": "object" - } - }, - "required": [ - "processing" - ], - "type": "object" - }, - "name": { - "not": {} - }, - "updated_at": { - "not": {} - } - }, - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "ingest": { - "additionalProperties": false, - "properties": { - "failure_store": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "inherit": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "inherit" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "disabled": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "disabled" - ], - "type": "object" - }, - { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "lifecycle": { - "additionalProperties": false, - "properties": { - "enabled": { - "additionalProperties": false, - "properties": { - "data_retention": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "enabled" - ], - "type": "object" - } - }, - "required": [ - "lifecycle" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "lifecycle": { - "additionalProperties": false, - "properties": { - "disabled": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "disabled" - ], - "type": "object" - } - }, - "required": [ - "lifecycle" - ], - "type": "object" - } - ] - } - ] - }, - "lifecycle": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "dsl": { - "additionalProperties": false, - "properties": { - "data_retention": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "dsl" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "ilm": { - "additionalProperties": false, - "properties": { - "policy": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "policy" - ], - "type": "object" - } - }, - "required": [ - "ilm" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "inherit": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "inherit" - ], - "type": "object" - } - ] - }, - "processing": { - "additionalProperties": false, - "properties": { - "steps": { - "items": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "Grok processor - Extract fields from text using grok patterns", - "properties": { - "action": { - "enum": [ - "grok" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to parse with grok patterns", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "pattern_definitions": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "patterns": { - "description": "Grok patterns applied in order to extract fields", - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "patterns" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Dissect processor - Extract fields from text using a lightweight, delimiter-based parser", - "properties": { - "action": { - "enum": [ - "dissect" - ], - "type": "string" - }, - "append_separator": { - "description": "Separator inserted when target fields are concatenated", - "minLength": 1, - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to parse with dissect pattern", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "pattern": { - "description": "Dissect pattern describing field boundaries", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "pattern" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Date processor - Parse dates from strings using one or more expected formats", - "properties": { - "action": { - "enum": [ - "date" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "formats": { - "description": "Accepted input date formats, tried in order", - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "from": { - "description": "Source field containing the date/time text", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "locale": { - "description": "Optional locale for date parsing", - "minLength": 1, - "type": "string" - }, - "output_format": { - "description": "Optional output format for storing the parsed date as text", - "minLength": 1, - "type": "string" - }, - "timezone": { - "description": "Optional timezone for date parsing", - "minLength": 1, - "type": "string" - }, - "to": { - "description": "Target field for the parsed date (defaults to source)", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "formats" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "drop_document" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "math" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "expression": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "expression", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Rename processor - Change a field name and optionally its location", - "properties": { - "action": { - "enum": [ - "rename" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Existing source field to rename or move", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip when source field is missing", - "type": "boolean" - }, - "override": { - "description": "Allow overwriting the target field if it already exists", - "type": "boolean" - }, - "to": { - "description": "New field name or destination path", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Set processor - Assign a literal or copied value to a field (mutually exclusive inputs)", - "properties": { - "action": { - "enum": [ - "set" - ], - "type": "string" - }, - "copy_from": { - "description": "Copy value from another field instead of providing a literal", - "minLength": 1, - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "override": { - "description": "Allow overwriting an existing target field", - "type": "boolean" - }, - "to": { - "description": "Target field to set or create", - "minLength": 1, - "type": "string" - }, - "value": { - "description": "Literal value to assign to the target field" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Append processor - Append one or more values to an existing or new array field", - "properties": { - "action": { - "enum": [ - "append" - ], - "type": "string" - }, - "allow_duplicates": { - "description": "If true, do not deduplicate appended values", - "type": "boolean" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "to": { - "description": "Array field to append values to", - "minLength": 1, - "type": "string" - }, - "value": { - "description": "Values to append (must be literal, no templates)", - "items": {}, - "minItems": 1, - "type": "array" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "to", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Remove by prefix processor - Remove a field and all nested fields matching the prefix", - "properties": { - "action": { - "enum": [ - "remove_by_prefix" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Field to remove along with all its nested fields", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Remove processor - Delete one or more fields from the document", - "properties": { - "action": { - "enum": [ - "remove" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Field to remove from the document", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "replace" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "pattern": { - "description": "A non-empty string or string with whitespace.", - "minLength": 1, - "type": "string" - }, - "replacement": { - "type": "string" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "pattern", - "replacement" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "uppercase" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "lowercase" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "trim" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "join" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "delimiter": { - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "delimiter", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Convert processor - Change the data type of a field value (integer, long, double, boolean, or string)", - "properties": { - "action": { - "enum": [ - "convert" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to convert to a different data type", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "to": { - "description": "Target field for the converted value (defaults to source)", - "minLength": 1, - "type": "string" - }, - "type": { - "description": "Target data type: integer, long, double, boolean, or string", - "enum": [ - "integer", - "long", - "double", - "boolean", - "string" - ], - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "concat" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "field" - ], - "type": "string" - }, - "value": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "literal" - ], - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - } - ] - }, - "minItems": 1, - "type": "array" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Manual ingest pipeline wrapper around native Elasticsearch processors", - "properties": { - "action": { - "description": "Manual ingest pipeline - executes raw Elasticsearch ingest processors", - "enum": [ - "manual_ingest_pipeline" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "on_failure": { - "description": "Fallback processors to run when a processor fails", - "items": { - "additionalProperties": {}, - "type": "object" - }, - "type": "array" - }, - "processors": { - "description": "List of raw Elasticsearch ingest processors to run", - "items": { - "additionalProperties": false, - "properties": { - "append": {}, - "attachment": {}, - "bytes": {}, - "circle": {}, - "community_id": {}, - "convert": {}, - "csv": {}, - "date": {}, - "date_index_name": {}, - "dissect": {}, - "dot_expander": {}, - "drop": {}, - "enrich": {}, - "fail": {}, - "fingerprint": {}, - "foreach": {}, - "geo_grid": {}, - "geoip": {}, - "grok": {}, - "gsub": {}, - "html_strip": {}, - "inference": {}, - "ip_location": {}, - "join": {}, - "json": {}, - "kv": {}, - "lowercase": {}, - "network_direction": {}, - "pipeline": {}, - "redact": {}, - "registered_domain": {}, - "remove": {}, - "rename": {}, - "reroute": {}, - "script": {}, - "set": {}, - "set_security_user": {}, - "sort": {}, - "split": {}, - "terminate": {}, - "trim": {}, - "uppercase": {}, - "uri_parts": {}, - "urldecode": {}, - "user_agent": {} - }, - "required": [ - "append", - "attachment", - "bytes", - "circle", - "community_id", - "convert", - "csv", - "date", - "date_index_name", - "dissect", - "dot_expander", - "drop", - "enrich", - "fail", - "fingerprint", - "foreach", - "ip_location", - "geo_grid", - "geoip", - "grok", - "gsub", - "html_strip", - "inference", - "join", - "json", - "kv", - "lowercase", - "network_direction", - "pipeline", - "redact", - "registered_domain", - "remove", - "rename", - "reroute", - "script", - "set", - "set_security_user", - "sort", - "split", - "terminate", - "trim", - "uppercase", - "urldecode", - "uri_parts", - "user_agent" - ], - "type": "object" - }, - "type": "array" - }, - "tag": { - "description": "Optional ingest processor tag for Elasticsearch", - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "processors" - ], - "type": "object" - } - ] - }, - { - "additionalProperties": false, - "properties": { - "condition": { - "allOf": [ - { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - { - "properties": { - "steps": { - "items": {}, - "type": "array" - } - }, - "required": [ - "steps" - ], - "type": "object" - } - ] - }, - "customIdentifier": { - "type": "string" - } - }, - "required": [ - "condition" - ], - "type": "object" - } - ] - }, - "type": "array" - }, - "updated_at": { - "format": "date-time", - "type": "string" - } - }, - "required": [ - "steps", - "updated_at" - ], - "type": "object" - }, - "settings": { - "additionalProperties": false, - "properties": { - "index.number_of_replicas": { - "additionalProperties": false, - "properties": { - "value": { - "type": "number" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "index.number_of_shards": { - "additionalProperties": false, - "properties": { - "value": { - "type": "number" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "index.refresh_interval": { - "additionalProperties": false, - "properties": { - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - -1 - ], - "type": "number" - } - ] - } - }, - "required": [ - "value" - ], - "type": "object" - } - }, - "type": "object" - } - }, - "required": [ - "lifecycle", - "processing", - "settings", - "failure_store" - ], - "type": "object" - } - }, - "required": [ - "ingest" - ], - "type": "object" - } - ] - } - }, - "required": [ - "stream" - ], - "type": "object" - }, - { - "properties": {}, - "type": "object" - }, - { - "properties": {}, - "type": "object" - } - ] - }, - { - "allOf": [ - { - "properties": {}, - "type": "object" - }, - { - "properties": { - "stream": { - "allOf": [ - { - "additionalProperties": true, - "properties": { - "ingest": { - "additionalProperties": true, - "properties": { - "processing": { - "additionalProperties": true, - "properties": { - "updated_at": { - "not": {} - } - }, - "type": "object" - } - }, - "required": [ - "processing" - ], - "type": "object" - }, - "name": { - "not": {} - }, - "updated_at": { - "not": {} - } - }, - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "updated_at": { - "format": "date-time", - "type": "string" - } - }, - "required": [ - "name", - "description", - "updated_at" - ], - "type": "object" - } - ] - } - }, - "required": [ - "stream" - ], - "type": "object" - }, - { - "properties": { - "dashboards": { - "items": { - "type": "string" - }, - "type": "array" - }, - "queries": { - "items": { - "allOf": [ - { - "properties": { - "id": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "title": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "id", - "title" - ], - "type": "object" - }, - { - "properties": { - "evidence": { - "items": { - "type": "string" - }, - "type": "array" - }, - "feature": { - "additionalProperties": false, - "properties": { - "filter": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - "name": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": { - "enum": [ - "system" - ], - "type": "string" - } - }, - "required": [ - "name", - "filter", - "type" - ], - "type": "object" - }, - "kql": { - "additionalProperties": false, - "properties": { - "query": { - "type": "string" - } - }, - "required": [ - "query" - ], - "type": "object" - }, - "severity_score": { - "type": "number" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - ] - }, - "type": "array" - }, - "rules": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "dashboards", - "rules", - "queries" - ], - "type": "object" - }, - { - "properties": { - "stream": { - "allOf": [ - { - "additionalProperties": true, - "properties": { - "ingest": { - "additionalProperties": true, - "properties": { - "processing": { - "additionalProperties": true, - "properties": { - "updated_at": { - "not": {} - } - }, - "type": "object" - } - }, - "required": [ - "processing" - ], - "type": "object" - }, - "name": { - "not": {} - }, - "updated_at": { - "not": {} - } - }, - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "ingest": { - "allOf": [ - { - "properties": { - "failure_store": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "inherit": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "inherit" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "disabled": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "disabled" - ], - "type": "object" - }, - { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "lifecycle": { - "additionalProperties": false, - "properties": { - "enabled": { - "additionalProperties": false, - "properties": { - "data_retention": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "enabled" - ], - "type": "object" - } - }, - "required": [ - "lifecycle" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "lifecycle": { - "additionalProperties": false, - "properties": { - "disabled": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "disabled" - ], - "type": "object" - } - }, - "required": [ - "lifecycle" - ], - "type": "object" - } - ] - } - ] - }, - "lifecycle": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "dsl": { - "additionalProperties": false, - "properties": { - "data_retention": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "dsl" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "ilm": { - "additionalProperties": false, - "properties": { - "policy": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "policy" - ], - "type": "object" - } - }, - "required": [ - "ilm" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "inherit": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "inherit" - ], - "type": "object" - } - ] - }, - "processing": { - "additionalProperties": false, - "properties": { - "steps": { - "items": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "Grok processor - Extract fields from text using grok patterns", - "properties": { - "action": { - "enum": [ - "grok" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to parse with grok patterns", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "pattern_definitions": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "patterns": { - "description": "Grok patterns applied in order to extract fields", - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "patterns" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Dissect processor - Extract fields from text using a lightweight, delimiter-based parser", - "properties": { - "action": { - "enum": [ - "dissect" - ], - "type": "string" - }, - "append_separator": { - "description": "Separator inserted when target fields are concatenated", - "minLength": 1, - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to parse with dissect pattern", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "pattern": { - "description": "Dissect pattern describing field boundaries", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "pattern" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Date processor - Parse dates from strings using one or more expected formats", - "properties": { - "action": { - "enum": [ - "date" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "formats": { - "description": "Accepted input date formats, tried in order", - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "from": { - "description": "Source field containing the date/time text", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "locale": { - "description": "Optional locale for date parsing", - "minLength": 1, - "type": "string" - }, - "output_format": { - "description": "Optional output format for storing the parsed date as text", - "minLength": 1, - "type": "string" - }, - "timezone": { - "description": "Optional timezone for date parsing", - "minLength": 1, - "type": "string" - }, - "to": { - "description": "Target field for the parsed date (defaults to source)", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "formats" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "drop_document" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "math" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "expression": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "expression", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Rename processor - Change a field name and optionally its location", - "properties": { - "action": { - "enum": [ - "rename" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Existing source field to rename or move", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip when source field is missing", - "type": "boolean" - }, - "override": { - "description": "Allow overwriting the target field if it already exists", - "type": "boolean" - }, - "to": { - "description": "New field name or destination path", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Set processor - Assign a literal or copied value to a field (mutually exclusive inputs)", - "properties": { - "action": { - "enum": [ - "set" - ], - "type": "string" - }, - "copy_from": { - "description": "Copy value from another field instead of providing a literal", - "minLength": 1, - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "override": { - "description": "Allow overwriting an existing target field", - "type": "boolean" - }, - "to": { - "description": "Target field to set or create", - "minLength": 1, - "type": "string" - }, - "value": { - "description": "Literal value to assign to the target field" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Append processor - Append one or more values to an existing or new array field", - "properties": { - "action": { - "enum": [ - "append" - ], - "type": "string" - }, - "allow_duplicates": { - "description": "If true, do not deduplicate appended values", - "type": "boolean" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "to": { - "description": "Array field to append values to", - "minLength": 1, - "type": "string" - }, - "value": { - "description": "Values to append (must be literal, no templates)", - "items": {}, - "minItems": 1, - "type": "array" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "to", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Remove by prefix processor - Remove a field and all nested fields matching the prefix", - "properties": { - "action": { - "enum": [ - "remove_by_prefix" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Field to remove along with all its nested fields", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Remove processor - Delete one or more fields from the document", - "properties": { - "action": { - "enum": [ - "remove" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Field to remove from the document", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "replace" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "pattern": { - "description": "A non-empty string or string with whitespace.", - "minLength": 1, - "type": "string" - }, - "replacement": { - "type": "string" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "pattern", - "replacement" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "uppercase" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "lowercase" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "trim" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "join" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "delimiter": { - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "delimiter", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Convert processor - Change the data type of a field value (integer, long, double, boolean, or string)", - "properties": { - "action": { - "enum": [ - "convert" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to convert to a different data type", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "to": { - "description": "Target field for the converted value (defaults to source)", - "minLength": 1, - "type": "string" - }, - "type": { - "description": "Target data type: integer, long, double, boolean, or string", - "enum": [ - "integer", - "long", - "double", - "boolean", - "string" - ], - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "concat" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "field" - ], - "type": "string" - }, - "value": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "literal" - ], - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - } - ] - }, - "minItems": 1, - "type": "array" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Manual ingest pipeline wrapper around native Elasticsearch processors", - "properties": { - "action": { - "description": "Manual ingest pipeline - executes raw Elasticsearch ingest processors", - "enum": [ - "manual_ingest_pipeline" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "on_failure": { - "description": "Fallback processors to run when a processor fails", - "items": { - "additionalProperties": {}, - "type": "object" - }, - "type": "array" - }, - "processors": { - "description": "List of raw Elasticsearch ingest processors to run", - "items": { - "additionalProperties": false, - "properties": { - "append": {}, - "attachment": {}, - "bytes": {}, - "circle": {}, - "community_id": {}, - "convert": {}, - "csv": {}, - "date": {}, - "date_index_name": {}, - "dissect": {}, - "dot_expander": {}, - "drop": {}, - "enrich": {}, - "fail": {}, - "fingerprint": {}, - "foreach": {}, - "geo_grid": {}, - "geoip": {}, - "grok": {}, - "gsub": {}, - "html_strip": {}, - "inference": {}, - "ip_location": {}, - "join": {}, - "json": {}, - "kv": {}, - "lowercase": {}, - "network_direction": {}, - "pipeline": {}, - "redact": {}, - "registered_domain": {}, - "remove": {}, - "rename": {}, - "reroute": {}, - "script": {}, - "set": {}, - "set_security_user": {}, - "sort": {}, - "split": {}, - "terminate": {}, - "trim": {}, - "uppercase": {}, - "uri_parts": {}, - "urldecode": {}, - "user_agent": {} - }, - "required": [ - "append", - "attachment", - "bytes", - "circle", - "community_id", - "convert", - "csv", - "date", - "date_index_name", - "dissect", - "dot_expander", - "drop", - "enrich", - "fail", - "fingerprint", - "foreach", - "ip_location", - "geo_grid", - "geoip", - "grok", - "gsub", - "html_strip", - "inference", - "join", - "json", - "kv", - "lowercase", - "network_direction", - "pipeline", - "redact", - "registered_domain", - "remove", - "rename", - "reroute", - "script", - "set", - "set_security_user", - "sort", - "split", - "terminate", - "trim", - "uppercase", - "urldecode", - "uri_parts", - "user_agent" - ], - "type": "object" - }, - "type": "array" - }, - "tag": { - "description": "Optional ingest processor tag for Elasticsearch", - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "processors" - ], - "type": "object" - } - ] - }, - { - "additionalProperties": false, - "properties": { - "condition": { - "allOf": [ - { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - { - "properties": { - "steps": { - "items": {}, - "type": "array" - } - }, - "required": [ - "steps" - ], - "type": "object" - } - ] - }, - "customIdentifier": { - "type": "string" - } - }, - "required": [ - "condition" - ], - "type": "object" - } - ] - }, - "type": "array" - }, - "updated_at": { - "format": "date-time", - "type": "string" - } - }, - "required": [ - "steps", - "updated_at" - ], - "type": "object" - }, - "settings": { - "additionalProperties": false, - "properties": { - "index.number_of_replicas": { - "additionalProperties": false, - "properties": { - "value": { - "type": "number" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "index.number_of_shards": { - "additionalProperties": false, - "properties": { - "value": { - "type": "number" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "index.refresh_interval": { - "additionalProperties": false, - "properties": { - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - -1 - ], - "type": "number" - } - ] - } - }, - "required": [ - "value" - ], - "type": "object" - } - }, - "type": "object" - } - }, - "required": [ - "lifecycle", - "processing", - "settings", - "failure_store" - ], - "type": "object" - }, - { - "properties": { - "classic": { - "additionalProperties": false, - "properties": { - "field_overrides": { - "additionalProperties": { - "allOf": [ - { - "additionalProperties": { - "anyOf": [ - { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - }, - { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - }, - "type": "array" - }, - { - "items": {}, - "type": "array" - }, - {} - ] - }, - "type": "object" - }, - { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "format": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": { - "enum": [ - "keyword", - "match_only_text", - "long", - "double", - "date", - "boolean", - "ip", - "geo_point" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "system" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - } - ] - } - ] - }, - "type": "object" - } - }, - "type": "object" - } - }, - "required": [ - "classic" - ], - "type": "object" - } - ] - } - }, - "required": [ - "ingest" - ], - "type": "object" - } - ] - } - }, - "required": [ - "stream" - ], - "type": "object" - }, - { - "properties": {}, - "type": "object" - }, - { - "properties": { - "stream": { - "allOf": [ - { - "additionalProperties": true, - "properties": { - "ingest": { - "additionalProperties": true, - "properties": { - "processing": { - "additionalProperties": true, - "properties": { - "updated_at": { - "not": {} - } - }, - "type": "object" - } - }, - "required": [ - "processing" - ], - "type": "object" - }, - "name": { - "not": {} - }, - "updated_at": { - "not": {} - } - }, - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "updated_at": { - "format": "date-time", - "type": "string" - } - }, - "required": [ - "name", - "description", - "updated_at" - ], - "type": "object" - } - ] - } - }, - "required": [ - "stream" - ], - "type": "object" - }, - { - "properties": { - "dashboards": { - "items": { - "type": "string" - }, - "type": "array" - }, - "queries": { - "items": { - "allOf": [ - { - "properties": { - "id": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "title": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "id", - "title" - ], - "type": "object" - }, - { - "properties": { - "evidence": { - "items": { - "type": "string" - }, - "type": "array" - }, - "feature": { - "additionalProperties": false, - "properties": { - "filter": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - "name": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": { - "enum": [ - "system" - ], - "type": "string" - } - }, - "required": [ - "name", - "filter", - "type" - ], - "type": "object" - }, - "kql": { - "additionalProperties": false, - "properties": { - "query": { - "type": "string" - } - }, - "required": [ - "query" - ], - "type": "object" - }, - "severity_score": { - "type": "number" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - ] - }, - "type": "array" - }, - "rules": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "dashboards", - "rules", - "queries" - ], - "type": "object" - }, - { - "properties": { - "stream": { - "allOf": [ - { - "additionalProperties": true, - "properties": { - "ingest": { - "additionalProperties": true, - "properties": { - "processing": { - "additionalProperties": true, - "properties": { - "updated_at": { - "not": {} - } - }, - "type": "object" - } - }, - "required": [ - "processing" - ], - "type": "object" - }, - "name": { - "not": {} - }, - "updated_at": { - "not": {} - } - }, - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "ingest": { - "additionalProperties": false, - "properties": { - "failure_store": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "inherit": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "inherit" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "disabled": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "disabled" - ], - "type": "object" - }, - { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "lifecycle": { - "additionalProperties": false, - "properties": { - "enabled": { - "additionalProperties": false, - "properties": { - "data_retention": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "enabled" - ], - "type": "object" - } - }, - "required": [ - "lifecycle" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "lifecycle": { - "additionalProperties": false, - "properties": { - "disabled": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "disabled" - ], - "type": "object" - } - }, - "required": [ - "lifecycle" - ], - "type": "object" - } - ] - } - ] - }, - "lifecycle": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "dsl": { - "additionalProperties": false, - "properties": { - "data_retention": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "dsl" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "ilm": { - "additionalProperties": false, - "properties": { - "policy": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "policy" - ], - "type": "object" - } - }, - "required": [ - "ilm" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "inherit": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "inherit" - ], - "type": "object" - } - ] - }, - "processing": { - "additionalProperties": false, - "properties": { - "steps": { - "items": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "Grok processor - Extract fields from text using grok patterns", - "properties": { - "action": { - "enum": [ - "grok" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to parse with grok patterns", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "pattern_definitions": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "patterns": { - "description": "Grok patterns applied in order to extract fields", - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "patterns" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Dissect processor - Extract fields from text using a lightweight, delimiter-based parser", - "properties": { - "action": { - "enum": [ - "dissect" - ], - "type": "string" - }, - "append_separator": { - "description": "Separator inserted when target fields are concatenated", - "minLength": 1, - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to parse with dissect pattern", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "pattern": { - "description": "Dissect pattern describing field boundaries", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "pattern" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Date processor - Parse dates from strings using one or more expected formats", - "properties": { - "action": { - "enum": [ - "date" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "formats": { - "description": "Accepted input date formats, tried in order", - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "from": { - "description": "Source field containing the date/time text", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "locale": { - "description": "Optional locale for date parsing", - "minLength": 1, - "type": "string" - }, - "output_format": { - "description": "Optional output format for storing the parsed date as text", - "minLength": 1, - "type": "string" - }, - "timezone": { - "description": "Optional timezone for date parsing", - "minLength": 1, - "type": "string" - }, - "to": { - "description": "Target field for the parsed date (defaults to source)", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "formats" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "drop_document" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "math" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "expression": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "expression", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Rename processor - Change a field name and optionally its location", - "properties": { - "action": { - "enum": [ - "rename" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Existing source field to rename or move", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip when source field is missing", - "type": "boolean" - }, - "override": { - "description": "Allow overwriting the target field if it already exists", - "type": "boolean" - }, - "to": { - "description": "New field name or destination path", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Set processor - Assign a literal or copied value to a field (mutually exclusive inputs)", - "properties": { - "action": { - "enum": [ - "set" - ], - "type": "string" - }, - "copy_from": { - "description": "Copy value from another field instead of providing a literal", - "minLength": 1, - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "override": { - "description": "Allow overwriting an existing target field", - "type": "boolean" - }, - "to": { - "description": "Target field to set or create", - "minLength": 1, - "type": "string" - }, - "value": { - "description": "Literal value to assign to the target field" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Append processor - Append one or more values to an existing or new array field", - "properties": { - "action": { - "enum": [ - "append" - ], - "type": "string" - }, - "allow_duplicates": { - "description": "If true, do not deduplicate appended values", - "type": "boolean" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "to": { - "description": "Array field to append values to", - "minLength": 1, - "type": "string" - }, - "value": { - "description": "Values to append (must be literal, no templates)", - "items": {}, - "minItems": 1, - "type": "array" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "to", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Remove by prefix processor - Remove a field and all nested fields matching the prefix", - "properties": { - "action": { - "enum": [ - "remove_by_prefix" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Field to remove along with all its nested fields", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Remove processor - Delete one or more fields from the document", - "properties": { - "action": { - "enum": [ - "remove" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Field to remove from the document", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "replace" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "pattern": { - "description": "A non-empty string or string with whitespace.", - "minLength": 1, - "type": "string" - }, - "replacement": { - "type": "string" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "pattern", - "replacement" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "uppercase" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "lowercase" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "trim" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "join" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "delimiter": { - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "delimiter", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Convert processor - Change the data type of a field value (integer, long, double, boolean, or string)", - "properties": { - "action": { - "enum": [ - "convert" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to convert to a different data type", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "to": { - "description": "Target field for the converted value (defaults to source)", - "minLength": 1, - "type": "string" - }, - "type": { - "description": "Target data type: integer, long, double, boolean, or string", - "enum": [ - "integer", - "long", - "double", - "boolean", - "string" - ], - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "concat" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "field" - ], - "type": "string" - }, - "value": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "literal" - ], - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - } - ] - }, - "minItems": 1, - "type": "array" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Manual ingest pipeline wrapper around native Elasticsearch processors", - "properties": { - "action": { - "description": "Manual ingest pipeline - executes raw Elasticsearch ingest processors", - "enum": [ - "manual_ingest_pipeline" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "on_failure": { - "description": "Fallback processors to run when a processor fails", - "items": { - "additionalProperties": {}, - "type": "object" - }, - "type": "array" - }, - "processors": { - "description": "List of raw Elasticsearch ingest processors to run", - "items": { - "additionalProperties": false, - "properties": { - "append": {}, - "attachment": {}, - "bytes": {}, - "circle": {}, - "community_id": {}, - "convert": {}, - "csv": {}, - "date": {}, - "date_index_name": {}, - "dissect": {}, - "dot_expander": {}, - "drop": {}, - "enrich": {}, - "fail": {}, - "fingerprint": {}, - "foreach": {}, - "geo_grid": {}, - "geoip": {}, - "grok": {}, - "gsub": {}, - "html_strip": {}, - "inference": {}, - "ip_location": {}, - "join": {}, - "json": {}, - "kv": {}, - "lowercase": {}, - "network_direction": {}, - "pipeline": {}, - "redact": {}, - "registered_domain": {}, - "remove": {}, - "rename": {}, - "reroute": {}, - "script": {}, - "set": {}, - "set_security_user": {}, - "sort": {}, - "split": {}, - "terminate": {}, - "trim": {}, - "uppercase": {}, - "uri_parts": {}, - "urldecode": {}, - "user_agent": {} - }, - "required": [ - "append", - "attachment", - "bytes", - "circle", - "community_id", - "convert", - "csv", - "date", - "date_index_name", - "dissect", - "dot_expander", - "drop", - "enrich", - "fail", - "fingerprint", - "foreach", - "ip_location", - "geo_grid", - "geoip", - "grok", - "gsub", - "html_strip", - "inference", - "join", - "json", - "kv", - "lowercase", - "network_direction", - "pipeline", - "redact", - "registered_domain", - "remove", - "rename", - "reroute", - "script", - "set", - "set_security_user", - "sort", - "split", - "terminate", - "trim", - "uppercase", - "urldecode", - "uri_parts", - "user_agent" - ], - "type": "object" - }, - "type": "array" - }, - "tag": { - "description": "Optional ingest processor tag for Elasticsearch", - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "processors" - ], - "type": "object" - } - ] - }, - { - "additionalProperties": false, - "properties": { - "condition": { - "allOf": [ - { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - { - "properties": { - "steps": { - "items": {}, - "type": "array" - } - }, - "required": [ - "steps" - ], - "type": "object" - } - ] - }, - "customIdentifier": { - "type": "string" - } - }, - "required": [ - "condition" - ], - "type": "object" - } - ] - }, - "type": "array" - }, - "updated_at": { - "format": "date-time", - "type": "string" - } - }, - "required": [ - "steps", - "updated_at" - ], - "type": "object" - }, - "settings": { - "additionalProperties": false, - "properties": { - "index.number_of_replicas": { - "additionalProperties": false, - "properties": { - "value": { - "type": "number" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "index.number_of_shards": { - "additionalProperties": false, - "properties": { - "value": { - "type": "number" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "index.refresh_interval": { - "additionalProperties": false, - "properties": { - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - -1 - ], - "type": "number" - } - ] - } - }, - "required": [ - "value" - ], - "type": "object" - } - }, - "type": "object" - } - }, - "required": [ - "lifecycle", - "processing", - "settings", - "failure_store" - ], - "type": "object" - } - }, - "required": [ - "ingest" - ], - "type": "object" - } - ] - } - }, - "required": [ - "stream" - ], - "type": "object" - }, - { - "properties": {}, - "type": "object" - }, - { - "properties": {}, - "type": "object" - } - ] - } - ] - } - ] - } - } - } - }, - "responses": {}, - "summary": "Create or update a stream", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - }, - "/api/streams/{name}/_fork": { - "post": { - "description": "Forks a wired stream and creates a child stream

[Required authorization] Route required privileges: manage_stream.", - "operationId": "post-streams-name-fork", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "status": { - "enum": [ - "enabled", - "disabled" - ], - "type": "string" - }, - "stream": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - } - }, - "required": [ - "stream", - "where" - ], - "type": "object" - } - } - } - }, - "responses": {}, - "summary": "Fork a stream", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - }, - "/api/streams/{name}/_ingest": { - "get": { - "description": "Fetches the ingest settings of an ingest stream definition

[Required authorization] Route required privileges: read_stream.", - "operationId": "get-streams-name-ingest", - "parameters": [ - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - } - } - } - }, - "responses": {}, - "summary": "Get ingest stream settings", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - }, - "put": { - "description": "Upserts the ingest settings of an ingest stream definition

[Required authorization] Route required privileges: manage_stream.", - "operationId": "put-streams-name-ingest", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "ingest": { - "anyOf": [ - { - "allOf": [ - { - "properties": { - "failure_store": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "inherit": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "inherit" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "disabled": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "disabled" - ], - "type": "object" - }, - { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "lifecycle": { - "additionalProperties": false, - "properties": { - "enabled": { - "additionalProperties": false, - "properties": { - "data_retention": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "enabled" - ], - "type": "object" - } - }, - "required": [ - "lifecycle" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "lifecycle": { - "additionalProperties": false, - "properties": { - "disabled": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "disabled" - ], - "type": "object" - } - }, - "required": [ - "lifecycle" - ], - "type": "object" - } - ] - } - ] - }, - "lifecycle": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "dsl": { - "additionalProperties": false, - "properties": { - "data_retention": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "dsl" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "ilm": { - "additionalProperties": false, - "properties": { - "policy": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "policy" - ], - "type": "object" - } - }, - "required": [ - "ilm" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "inherit": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "inherit" - ], - "type": "object" - } - ] - }, - "processing": { - "additionalProperties": false, - "properties": { - "steps": { - "items": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "Grok processor - Extract fields from text using grok patterns", - "properties": { - "action": { - "enum": [ - "grok" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to parse with grok patterns", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "pattern_definitions": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "patterns": { - "description": "Grok patterns applied in order to extract fields", - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "patterns" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Dissect processor - Extract fields from text using a lightweight, delimiter-based parser", - "properties": { - "action": { - "enum": [ - "dissect" - ], - "type": "string" - }, - "append_separator": { - "description": "Separator inserted when target fields are concatenated", - "minLength": 1, - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to parse with dissect pattern", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "pattern": { - "description": "Dissect pattern describing field boundaries", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "pattern" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Date processor - Parse dates from strings using one or more expected formats", - "properties": { - "action": { - "enum": [ - "date" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "formats": { - "description": "Accepted input date formats, tried in order", - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "from": { - "description": "Source field containing the date/time text", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "locale": { - "description": "Optional locale for date parsing", - "minLength": 1, - "type": "string" - }, - "output_format": { - "description": "Optional output format for storing the parsed date as text", - "minLength": 1, - "type": "string" - }, - "timezone": { - "description": "Optional timezone for date parsing", - "minLength": 1, - "type": "string" - }, - "to": { - "description": "Target field for the parsed date (defaults to source)", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "formats" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "drop_document" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "math" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "expression": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "expression", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Rename processor - Change a field name and optionally its location", - "properties": { - "action": { - "enum": [ - "rename" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Existing source field to rename or move", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip when source field is missing", - "type": "boolean" - }, - "override": { - "description": "Allow overwriting the target field if it already exists", - "type": "boolean" - }, - "to": { - "description": "New field name or destination path", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Set processor - Assign a literal or copied value to a field (mutually exclusive inputs)", - "properties": { - "action": { - "enum": [ - "set" - ], - "type": "string" - }, - "copy_from": { - "description": "Copy value from another field instead of providing a literal", - "minLength": 1, - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "override": { - "description": "Allow overwriting an existing target field", - "type": "boolean" - }, - "to": { - "description": "Target field to set or create", - "minLength": 1, - "type": "string" - }, - "value": { - "description": "Literal value to assign to the target field" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Append processor - Append one or more values to an existing or new array field", - "properties": { - "action": { - "enum": [ - "append" - ], - "type": "string" - }, - "allow_duplicates": { - "description": "If true, do not deduplicate appended values", - "type": "boolean" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "to": { - "description": "Array field to append values to", - "minLength": 1, - "type": "string" - }, - "value": { - "description": "Values to append (must be literal, no templates)", - "items": {}, - "minItems": 1, - "type": "array" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "to", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Remove by prefix processor - Remove a field and all nested fields matching the prefix", - "properties": { - "action": { - "enum": [ - "remove_by_prefix" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Field to remove along with all its nested fields", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Remove processor - Delete one or more fields from the document", - "properties": { - "action": { - "enum": [ - "remove" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Field to remove from the document", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "replace" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "pattern": { - "description": "A non-empty string or string with whitespace.", - "minLength": 1, - "type": "string" - }, - "replacement": { - "type": "string" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "pattern", - "replacement" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "uppercase" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "lowercase" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "trim" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "join" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "delimiter": { - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "delimiter", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Convert processor - Change the data type of a field value (integer, long, double, boolean, or string)", - "properties": { - "action": { - "enum": [ - "convert" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to convert to a different data type", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "to": { - "description": "Target field for the converted value (defaults to source)", - "minLength": 1, - "type": "string" - }, - "type": { - "description": "Target data type: integer, long, double, boolean, or string", - "enum": [ - "integer", - "long", - "double", - "boolean", - "string" - ], - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "concat" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "field" - ], - "type": "string" - }, - "value": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "literal" - ], - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - } - ] - }, - "minItems": 1, - "type": "array" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Manual ingest pipeline wrapper around native Elasticsearch processors", - "properties": { - "action": { - "description": "Manual ingest pipeline - executes raw Elasticsearch ingest processors", - "enum": [ - "manual_ingest_pipeline" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "on_failure": { - "description": "Fallback processors to run when a processor fails", - "items": { - "additionalProperties": {}, - "type": "object" - }, - "type": "array" - }, - "processors": { - "description": "List of raw Elasticsearch ingest processors to run", - "items": { - "additionalProperties": false, - "properties": { - "append": {}, - "attachment": {}, - "bytes": {}, - "circle": {}, - "community_id": {}, - "convert": {}, - "csv": {}, - "date": {}, - "date_index_name": {}, - "dissect": {}, - "dot_expander": {}, - "drop": {}, - "enrich": {}, - "fail": {}, - "fingerprint": {}, - "foreach": {}, - "geo_grid": {}, - "geoip": {}, - "grok": {}, - "gsub": {}, - "html_strip": {}, - "inference": {}, - "ip_location": {}, - "join": {}, - "json": {}, - "kv": {}, - "lowercase": {}, - "network_direction": {}, - "pipeline": {}, - "redact": {}, - "registered_domain": {}, - "remove": {}, - "rename": {}, - "reroute": {}, - "script": {}, - "set": {}, - "set_security_user": {}, - "sort": {}, - "split": {}, - "terminate": {}, - "trim": {}, - "uppercase": {}, - "uri_parts": {}, - "urldecode": {}, - "user_agent": {} - }, - "required": [ - "append", - "attachment", - "bytes", - "circle", - "community_id", - "convert", - "csv", - "date", - "date_index_name", - "dissect", - "dot_expander", - "drop", - "enrich", - "fail", - "fingerprint", - "foreach", - "ip_location", - "geo_grid", - "geoip", - "grok", - "gsub", - "html_strip", - "inference", - "join", - "json", - "kv", - "lowercase", - "network_direction", - "pipeline", - "redact", - "registered_domain", - "remove", - "rename", - "reroute", - "script", - "set", - "set_security_user", - "sort", - "split", - "terminate", - "trim", - "uppercase", - "urldecode", - "uri_parts", - "user_agent" - ], - "type": "object" - }, - "type": "array" - }, - "tag": { - "description": "Optional ingest processor tag for Elasticsearch", - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "processors" - ], - "type": "object" - } - ] - }, - { - "additionalProperties": false, - "properties": { - "condition": { - "allOf": [ - { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - { - "properties": { - "steps": { - "items": {}, - "type": "array" - } - }, - "required": [ - "steps" - ], - "type": "object" - } - ] - }, - "customIdentifier": { - "type": "string" - } - }, - "required": [ - "condition" - ], - "type": "object" - } - ] - }, - "type": "array" - }, - "updated_at": { - "not": {} - } - }, - "required": [ - "steps" - ], - "type": "object" - }, - "settings": { - "additionalProperties": false, - "properties": { - "index.number_of_replicas": { - "additionalProperties": false, - "properties": { - "value": { - "type": "number" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "index.number_of_shards": { - "additionalProperties": false, - "properties": { - "value": { - "type": "number" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "index.refresh_interval": { - "additionalProperties": false, - "properties": { - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - -1 - ], - "type": "number" - } - ] - } - }, - "required": [ - "value" - ], - "type": "object" - } - }, - "type": "object" - } - }, - "required": [ - "lifecycle", - "processing", - "settings", - "failure_store" - ], - "type": "object" - }, - { - "properties": { - "wired": { - "additionalProperties": false, - "properties": { - "fields": { - "additionalProperties": { - "allOf": [ - { - "additionalProperties": { - "anyOf": [ - { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - }, - { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - }, - "type": "array" - }, - { - "items": {}, - "type": "array" - }, - {} - ] - }, - "type": "object" - }, - { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "format": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": { - "enum": [ - "keyword", - "match_only_text", - "long", - "double", - "date", - "boolean", - "ip", - "geo_point" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "system" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - } - ] - } - ] - }, - "type": "object" - }, - "routing": { - "items": { - "additionalProperties": false, - "properties": { - "destination": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "status": { - "enum": [ - "enabled", - "disabled" - ], - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - } - }, - "required": [ - "destination", - "where" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "fields", - "routing" - ], - "type": "object" - } - }, - "required": [ - "wired" - ], - "type": "object" - } - ] - }, - { - "allOf": [ - { - "properties": { - "failure_store": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "inherit": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "inherit" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "disabled": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "disabled" - ], - "type": "object" - }, - { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "lifecycle": { - "additionalProperties": false, - "properties": { - "enabled": { - "additionalProperties": false, - "properties": { - "data_retention": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "enabled" - ], - "type": "object" - } - }, - "required": [ - "lifecycle" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "lifecycle": { - "additionalProperties": false, - "properties": { - "disabled": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "disabled" - ], - "type": "object" - } - }, - "required": [ - "lifecycle" - ], - "type": "object" - } - ] - } - ] - }, - "lifecycle": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "dsl": { - "additionalProperties": false, - "properties": { - "data_retention": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "dsl" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "ilm": { - "additionalProperties": false, - "properties": { - "policy": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "policy" - ], - "type": "object" - } - }, - "required": [ - "ilm" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "inherit": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "inherit" - ], - "type": "object" - } - ] - }, - "processing": { - "additionalProperties": false, - "properties": { - "steps": { - "items": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "Grok processor - Extract fields from text using grok patterns", - "properties": { - "action": { - "enum": [ - "grok" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to parse with grok patterns", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "pattern_definitions": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "patterns": { - "description": "Grok patterns applied in order to extract fields", - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "patterns" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Dissect processor - Extract fields from text using a lightweight, delimiter-based parser", - "properties": { - "action": { - "enum": [ - "dissect" - ], - "type": "string" - }, - "append_separator": { - "description": "Separator inserted when target fields are concatenated", - "minLength": 1, - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to parse with dissect pattern", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "pattern": { - "description": "Dissect pattern describing field boundaries", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "pattern" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Date processor - Parse dates from strings using one or more expected formats", - "properties": { - "action": { - "enum": [ - "date" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "formats": { - "description": "Accepted input date formats, tried in order", - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "from": { - "description": "Source field containing the date/time text", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "locale": { - "description": "Optional locale for date parsing", - "minLength": 1, - "type": "string" - }, - "output_format": { - "description": "Optional output format for storing the parsed date as text", - "minLength": 1, - "type": "string" - }, - "timezone": { - "description": "Optional timezone for date parsing", - "minLength": 1, - "type": "string" - }, - "to": { - "description": "Target field for the parsed date (defaults to source)", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "formats" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "drop_document" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "math" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "expression": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "expression", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Rename processor - Change a field name and optionally its location", - "properties": { - "action": { - "enum": [ - "rename" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Existing source field to rename or move", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip when source field is missing", - "type": "boolean" - }, - "override": { - "description": "Allow overwriting the target field if it already exists", - "type": "boolean" - }, - "to": { - "description": "New field name or destination path", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Set processor - Assign a literal or copied value to a field (mutually exclusive inputs)", - "properties": { - "action": { - "enum": [ - "set" - ], - "type": "string" - }, - "copy_from": { - "description": "Copy value from another field instead of providing a literal", - "minLength": 1, - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "override": { - "description": "Allow overwriting an existing target field", - "type": "boolean" - }, - "to": { - "description": "Target field to set or create", - "minLength": 1, - "type": "string" - }, - "value": { - "description": "Literal value to assign to the target field" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Append processor - Append one or more values to an existing or new array field", - "properties": { - "action": { - "enum": [ - "append" - ], - "type": "string" - }, - "allow_duplicates": { - "description": "If true, do not deduplicate appended values", - "type": "boolean" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "to": { - "description": "Array field to append values to", - "minLength": 1, - "type": "string" - }, - "value": { - "description": "Values to append (must be literal, no templates)", - "items": {}, - "minItems": 1, - "type": "array" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "to", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Remove by prefix processor - Remove a field and all nested fields matching the prefix", - "properties": { - "action": { - "enum": [ - "remove_by_prefix" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Field to remove along with all its nested fields", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Remove processor - Delete one or more fields from the document", - "properties": { - "action": { - "enum": [ - "remove" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Field to remove from the document", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "replace" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "pattern": { - "description": "A non-empty string or string with whitespace.", - "minLength": 1, - "type": "string" - }, - "replacement": { - "type": "string" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "pattern", - "replacement" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "uppercase" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "lowercase" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "trim" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "join" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "delimiter": { - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "delimiter", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Convert processor - Change the data type of a field value (integer, long, double, boolean, or string)", - "properties": { - "action": { - "enum": [ - "convert" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to convert to a different data type", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "to": { - "description": "Target field for the converted value (defaults to source)", - "minLength": 1, - "type": "string" - }, - "type": { - "description": "Target data type: integer, long, double, boolean, or string", - "enum": [ - "integer", - "long", - "double", - "boolean", - "string" - ], - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "concat" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "field" - ], - "type": "string" - }, - "value": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "literal" - ], - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - } - ] - }, - "minItems": 1, - "type": "array" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Manual ingest pipeline wrapper around native Elasticsearch processors", - "properties": { - "action": { - "description": "Manual ingest pipeline - executes raw Elasticsearch ingest processors", - "enum": [ - "manual_ingest_pipeline" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "on_failure": { - "description": "Fallback processors to run when a processor fails", - "items": { - "additionalProperties": {}, - "type": "object" - }, - "type": "array" - }, - "processors": { - "description": "List of raw Elasticsearch ingest processors to run", - "items": { - "additionalProperties": false, - "properties": { - "append": {}, - "attachment": {}, - "bytes": {}, - "circle": {}, - "community_id": {}, - "convert": {}, - "csv": {}, - "date": {}, - "date_index_name": {}, - "dissect": {}, - "dot_expander": {}, - "drop": {}, - "enrich": {}, - "fail": {}, - "fingerprint": {}, - "foreach": {}, - "geo_grid": {}, - "geoip": {}, - "grok": {}, - "gsub": {}, - "html_strip": {}, - "inference": {}, - "ip_location": {}, - "join": {}, - "json": {}, - "kv": {}, - "lowercase": {}, - "network_direction": {}, - "pipeline": {}, - "redact": {}, - "registered_domain": {}, - "remove": {}, - "rename": {}, - "reroute": {}, - "script": {}, - "set": {}, - "set_security_user": {}, - "sort": {}, - "split": {}, - "terminate": {}, - "trim": {}, - "uppercase": {}, - "uri_parts": {}, - "urldecode": {}, - "user_agent": {} - }, - "required": [ - "append", - "attachment", - "bytes", - "circle", - "community_id", - "convert", - "csv", - "date", - "date_index_name", - "dissect", - "dot_expander", - "drop", - "enrich", - "fail", - "fingerprint", - "foreach", - "ip_location", - "geo_grid", - "geoip", - "grok", - "gsub", - "html_strip", - "inference", - "join", - "json", - "kv", - "lowercase", - "network_direction", - "pipeline", - "redact", - "registered_domain", - "remove", - "rename", - "reroute", - "script", - "set", - "set_security_user", - "sort", - "split", - "terminate", - "trim", - "uppercase", - "urldecode", - "uri_parts", - "user_agent" - ], - "type": "object" - }, - "type": "array" - }, - "tag": { - "description": "Optional ingest processor tag for Elasticsearch", - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "processors" - ], - "type": "object" - } - ] - }, - { - "additionalProperties": false, - "properties": { - "condition": { - "allOf": [ - { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - { - "properties": { - "steps": { - "items": {}, - "type": "array" - } - }, - "required": [ - "steps" - ], - "type": "object" - } - ] - }, - "customIdentifier": { - "type": "string" - } - }, - "required": [ - "condition" - ], - "type": "object" - } - ] - }, - "type": "array" - }, - "updated_at": { - "not": {} - } - }, - "required": [ - "steps" - ], - "type": "object" - }, - "settings": { - "additionalProperties": false, - "properties": { - "index.number_of_replicas": { - "additionalProperties": false, - "properties": { - "value": { - "type": "number" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "index.number_of_shards": { - "additionalProperties": false, - "properties": { - "value": { - "type": "number" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "index.refresh_interval": { - "additionalProperties": false, - "properties": { - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - -1 - ], - "type": "number" - } - ] - } - }, - "required": [ - "value" - ], - "type": "object" - } - }, - "type": "object" - } - }, - "required": [ - "lifecycle", - "processing", - "settings", - "failure_store" - ], - "type": "object" - }, - { - "properties": { - "classic": { - "additionalProperties": false, - "properties": { - "field_overrides": { - "additionalProperties": { - "allOf": [ - { - "additionalProperties": { - "anyOf": [ - { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - }, - { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - }, - "type": "array" - }, - { - "items": {}, - "type": "array" - }, - {} - ] - }, - "type": "object" - }, - { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "format": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": { - "enum": [ - "keyword", - "match_only_text", - "long", - "double", - "date", - "boolean", - "ip", - "geo_point" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "system" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - } - ] - } - ] - }, - "type": "object" - } - }, - "type": "object" - } - }, - "required": [ - "classic" - ], - "type": "object" - } - ] - } - ] - } - }, - "required": [ - "ingest" - ], - "type": "object" - } - } - } - }, - "responses": {}, - "summary": "Update ingest stream settings", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - }, - "/api/streams/{name}/content/export": { - "post": { - "description": "Exports the content associated to a stream.

[Required authorization] Route required privileges: manage_stream.", - "operationId": "post-streams-name-content-export", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "description": { - "type": "string" - }, - "include": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "objects": { - "additionalProperties": false, - "properties": { - "all": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "all" - ], - "type": "object" - } - }, - "required": [ - "objects" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "objects": { - "additionalProperties": false, - "properties": { - "mappings": { - "type": "boolean" - }, - "queries": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "type": "array" - }, - "routing": { - "items": { - "allOf": [ - {}, - { - "properties": { - "destination": { - "type": "string" - } - }, - "required": [ - "destination" - ], - "type": "object" - } - ] - }, - "type": "array" - } - }, - "required": [ - "mappings", - "queries", - "routing" - ], - "type": "object" - } - }, - "required": [ - "objects" - ], - "type": "object" - } - ] - }, - "name": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "description", - "version", - "include" - ], - "type": "object" - } - } - } - }, - "responses": {}, - "summary": "Export stream content", - "tags": [ - "streams" - ] - } - }, - "/api/streams/{name}/content/import": { - "post": { - "description": "Links content objects to a stream.

[Required authorization] Route required privileges: manage_stream.", - "operationId": "post-streams-name-content-import", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "additionalProperties": false, - "properties": { - "content": {}, - "include": { - "type": "string" - } - }, - "required": [ - "include", - "content" - ], - "type": "object" - } - } - } - }, - "responses": {}, - "summary": "Import content into a stream", - "tags": [ - "streams" - ] - } - }, - "/api/streams/{name}/queries": { - "get": { - "description": "Fetches all queries linked to a stream that are visible to the current user in the current space.

[Required authorization] Route required privileges: read_stream.", - "operationId": "get-streams-name-queries", - "parameters": [ - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - } - } - } - }, - "responses": {}, - "summary": "Get stream queries", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - }, - "/api/streams/{name}/queries/_bulk": { - "post": { - "description": "Bulk update queries of a stream. Can add new queries and delete existing ones.

[Required authorization] Route required privileges: manage_stream.", - "operationId": "post-streams-name-queries-bulk", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "operations": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "index": { - "allOf": [ - { - "properties": { - "id": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "title": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "id", - "title" - ], - "type": "object" - }, - { - "properties": { - "evidence": { - "items": { - "type": "string" - }, - "type": "array" - }, - "feature": { - "additionalProperties": false, - "properties": { - "filter": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - "name": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": { - "enum": [ - "system" - ], - "type": "string" - } - }, - "required": [ - "name", - "filter", - "type" - ], - "type": "object" - }, - "kql": { - "additionalProperties": false, - "properties": { - "query": { - "type": "string" - } - }, - "required": [ - "query" - ], - "type": "object" - }, - "severity_score": { - "type": "number" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - ] - } - }, - "required": [ - "index" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "delete": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - } - }, - "required": [ - "delete" - ], - "type": "object" - } - ] - }, - "type": "array" - } - }, - "required": [ - "operations" - ], - "type": "object" - } - } - } - }, - "responses": {}, - "summary": "Bulk update queries", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - }, - "/api/streams/{name}/queries/{queryId}": { - "delete": { - "description": "Remove a query from a stream. Noop if the query is not found on the stream.

[Required authorization] Route required privileges: manage_stream.", - "operationId": "delete-streams-name-queries-queryid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "queryId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - } - } - } - }, - "responses": {}, - "summary": "Remove a query from a stream", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - }, - "put": { - "description": "Adds a query to a stream. Noop if the query is already present on the stream.

[Required authorization] Route required privileges: manage_stream.", - "operationId": "put-streams-name-queries-queryid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "queryId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "evidence": { - "items": { - "type": "string" - }, - "type": "array" - }, - "feature": { - "additionalProperties": false, - "properties": { - "filter": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - "name": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": { - "enum": [ - "system" - ], - "type": "string" - } - }, - "required": [ - "name", - "filter", - "type" - ], - "type": "object" - }, - "kql": { - "additionalProperties": false, - "properties": { - "query": { - "type": "string" - } - }, - "required": [ - "query" - ], - "type": "object" - }, - "severity_score": { - "type": "number" - }, - "title": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "title", - "kql" - ], - "type": "object" - } - } - } - }, - "responses": {}, - "summary": "Upsert a query to a stream", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - }, - "/api/streams/{name}/significant_events": { - "get": { - "description": "Read the significant events

[Required authorization] Route required privileges: read_stream.", - "operationId": "get-streams-name-significant-events", - "parameters": [ - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "from", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "to", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "bucketSize", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "Query string to filter significant events on metadata fields", - "in": "query", - "name": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - } - } - } - }, - "responses": {}, - "summary": "Read the significant events", - "tags": [ - "streams" - ], - "x-state": "Technical Preview; added in 9.1.0" - } - }, - "/api/streams/{name}/significant_events/_generate": { - "post": { - "description": "Generate significant events queries based on the stream data

[Required authorization] Route required privileges: read_stream.", - "operationId": "post-streams-name-significant-events-generate", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "Optional connector ID. If not provided, the default AI connector from settings will be used.", - "in": "query", - "name": "connectorId", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "from", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "to", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "Number of sample documents to use for generation from the current data of stream", - "in": "query", - "name": "sampleDocsSize", - "required": false, - "schema": { - "type": "number" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "system": { - "additionalProperties": false, - "properties": { - "description": { - "type": "string" - }, - "filter": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - "name": { - "type": "string" - }, - "type": { - "enum": [ - "system" - ], - "type": "string" - } - }, - "required": [ - "type", - "name", - "description", - "filter" - ], - "type": "object" - } - }, - "type": "object" - } - } - } - }, - "responses": {}, - "summary": "Generate significant events", - "tags": [ - "streams" - ], - "x-state": "Technical Preview; added in 9.2.0" - } - }, - "/api/streams/{name}/significant_events/_preview": { - "post": { - "description": "Preview significant event results based on a given query

[Required authorization] Route required privileges: read_stream.", - "operationId": "post-streams-name-significant-events-preview", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "from", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "to", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "bucketSize", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "feature": { - "additionalProperties": false, - "properties": { - "filter": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - "name": { - "type": "string" - }, - "type": { - "enum": [ - "system" - ], - "type": "string" - } - }, - "required": [ - "name", - "filter", - "type" - ], - "type": "object" - }, - "kql": { - "additionalProperties": false, - "properties": { - "query": { - "type": "string" - } - }, - "required": [ - "query" - ], - "type": "object" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - }, - "required": [ - "query" - ], - "type": "object" - } - } - } - }, - "responses": {}, - "summary": "Preview significant events", - "tags": [ - "streams" - ], - "x-state": "Technical Preview; added in 9.1.0" - } - }, - "/api/streams/{streamName}/attachments": { - "get": { - "description": "Fetches all attachments linked to a stream that are visible to the current user in the current space. Optionally filter by attachment types, search query, and tags.

[Required authorization] Route required privileges: read_stream.", - "operationId": "get-streams-streamname-attachments", - "parameters": [ - { - "description": "The name of the stream", - "in": "path", - "name": "streamName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "Search query to filter attachments by title", - "in": "query", - "name": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "description": "Filter by attachment types (single value or array)", - "in": "query", - "name": "attachmentTypes", - "required": false, - "schema": { - "anyOf": [ - { - "enum": [ - "dashboard", - "rule", - "slo" - ], - "type": "string" - }, - { - "items": { - "enum": [ - "dashboard", - "rule", - "slo" - ], - "type": "string" - }, - "type": "array" - } - ] - } - }, - { - "description": "Filter by tags (single value or array)", - "in": "query", - "name": "tags", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ] - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "listAttachmentsExample": { - "value": {} - } - }, - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "listAttachmentsResponse": { - "value": { - "attachments": [ - { - "createdAt": "2023-02-23T16:15:47.275Z", - "description": "Dashboard for monitoring production services", - "id": "dashboard-123", - "streamNames": [ - "logs.awsfirehose", - "logs.nginx" - ], - "tags": [ - "monitoring", - "production" - ], - "title": "My Dashboard", - "type": "dashboard", - "updatedAt": "2023-03-24T14:39:17.636Z" - } - ] - } - } - } - } - }, - "description": "Successfully retrieved attachments" - } - }, - "summary": "Get stream attachments", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - }, - "/api/streams/{streamName}/attachments/_bulk": { - "post": { - "description": "Bulk update attachments linked to a stream. Can link new attachments and delete existing ones. Supports mixed attachment types in a single request.

[Required authorization] Route required privileges: manage_stream.", - "operationId": "post-streams-streamname-attachments-bulk", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The name of the stream", - "in": "path", - "name": "streamName", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "bulkAttachmentsExample": { - "value": { - "operations": [ - { - "index": { - "id": "dashboard-123", - "type": "dashboard" - } - }, - { - "delete": { - "id": "rule-456", - "type": "rule" - } - } - ] - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "operations": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "index": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "type": { - "enum": [ - "dashboard", - "rule", - "slo" - ], - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - } - }, - "required": [ - "index" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "delete": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "type": { - "enum": [ - "dashboard", - "rule", - "slo" - ], - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - } - }, - "required": [ - "delete" - ], - "type": "object" - } - ] - }, - "type": "array" - } - }, - "required": [ - "operations" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "bulkAttachmentsResponse": { - "value": { - "acknowledged": true - } - } - } - } - }, - "description": "Successfully performed bulk operations" - } - }, - "summary": "Bulk update attachments", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - }, - "/api/streams/{streamName}/attachments/{attachmentType}/{attachmentId}": { - "delete": { - "description": "Unlinks an attachment from a stream. Noop if the attachment is not linked to the stream.

[Required authorization] Route required privileges: manage_stream.", - "operationId": "delete-streams-streamname-attachments-attachmenttype-attachmentid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The name of the stream", - "in": "path", - "name": "streamName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "The type of the attachment", - "in": "path", - "name": "attachmentType", - "required": true, - "schema": { - "enum": [ - "dashboard", - "rule", - "slo" - ], - "type": "string" - } - }, - { - "description": "The ID of the attachment", - "in": "path", - "name": "attachmentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "unlinkAttachmentExample": { - "value": {} - } - }, - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "unlinkAttachmentResponse": { - "value": { - "acknowledged": true - } - } - } - } - }, - "description": "Successfully unlinked attachment" - } - }, - "summary": "Unlink an attachment from a stream", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - }, - "put": { - "description": "Links an attachment to a stream. Noop if the attachment is already linked to the stream.

[Required authorization] Route required privileges: manage_stream.", - "operationId": "put-streams-streamname-attachments-attachmenttype-attachmentid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The name of the stream", - "in": "path", - "name": "streamName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "The type of the attachment", - "in": "path", - "name": "attachmentType", - "required": true, - "schema": { - "enum": [ - "dashboard", - "rule", - "slo" - ], - "type": "string" - } - }, - { - "description": "The ID of the attachment", - "in": "path", - "name": "attachmentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "linkAttachmentExample": { - "value": {} - } - }, - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "linkAttachmentResponse": { - "value": { - "acknowledged": true - } - } - } - } - }, - "description": "Successfully linked attachment" - } - }, - "summary": "Link an attachment to a stream", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - } - }, - "security": [ - { - "basicAuth": [] - } - ], - "servers": [ - { - "url": "http://localhost:5622" - } - ], - "tags": [ - { - "name": "agent builder" - }, - { - "name": "alerting" - }, - { - "name": "connectors" - }, - { - "name": "Data streams" - }, - { - "name": "Elastic Agent actions" - }, - { - "name": "Elastic Agent binary download sources" - }, - { - "name": "Elastic Agent policies" - }, - { - "name": "Elastic Agent status" - }, - { - "name": "Elastic Agents" - }, - { - "name": "Elastic Package Manager (EPM)" - }, - { - "name": "Fleet agentless policies" - }, - { - "name": "Fleet cloud connectors" - }, - { - "name": "Fleet enrollment API keys" - }, - { - "name": "Fleet internals" - }, - { - "name": "Fleet outputs" - }, - { - "name": "Fleet package policies" - }, - { - "name": "Fleet proxies" - }, - { - "name": "Fleet remote synced integrations" - }, - { - "name": "Fleet Server hosts" - }, - { - "name": "Fleet service tokens" - }, - { - "name": "Fleet uninstall tokens" - }, - { - "name": "maintenance-window" - }, - { - "name": "Message Signing Service" - }, - { - "name": "roles" - }, - { - "name": "saved objects" - }, - { - "name": "spaces" - }, - { - "name": "streams" - }, - { - "name": "system" - } - ] -} \ No newline at end of file diff --git a/oas_docs/bundle.serverless.json b/oas_docs/bundle.serverless.json deleted file mode 100644 index 694ea648ec493..0000000000000 --- a/oas_docs/bundle.serverless.json +++ /dev/null @@ -1,104065 +0,0 @@ -{ - "components": { - "schemas": { - "core_status_redactedResponse": { - "additionalProperties": false, - "description": "A minimal representation of Kibana's operational status.", - "properties": { - "status": { - "additionalProperties": false, - "properties": { - "overall": { - "additionalProperties": false, - "properties": { - "level": { - "description": "Service status levels as human and machine readable values.", - "enum": [ - "available", - "degraded", - "unavailable", - "critical" - ], - "type": "string" - } - }, - "required": [ - "level" - ], - "type": "object" - } - }, - "required": [ - "overall" - ], - "type": "object" - } - }, - "required": [ - "status" - ], - "type": "object" - }, - "core_status_response": { - "additionalProperties": false, - "description": "Kibana's operational status as well as a detailed breakdown of plugin statuses indication of various loads (like event loop utilization and network traffic) at time of request.", - "properties": { - "metrics": { - "additionalProperties": false, - "description": "Metric groups collected by Kibana.", - "properties": { - "collection_interval_in_millis": { - "description": "The interval at which metrics should be collected.", - "type": "number" - }, - "elasticsearch_client": { - "additionalProperties": false, - "description": "Current network metrics of Kibana's Elasticsearch client.", - "properties": { - "totalActiveSockets": { - "description": "Count of network sockets currently in use.", - "type": "number" - }, - "totalIdleSockets": { - "description": "Count of network sockets currently idle.", - "type": "number" - }, - "totalQueuedRequests": { - "description": "Count of requests not yet assigned to sockets.", - "type": "number" - } - }, - "required": [ - "totalActiveSockets", - "totalIdleSockets", - "totalQueuedRequests" - ], - "type": "object" - }, - "last_updated": { - "description": "The time metrics were collected.", - "type": "string" - } - }, - "required": [ - "elasticsearch_client", - "last_updated", - "collection_interval_in_millis" - ], - "type": "object" - }, - "name": { - "description": "Kibana instance name.", - "type": "string" - }, - "status": { - "additionalProperties": false, - "properties": { - "core": { - "additionalProperties": false, - "description": "Statuses of core Kibana services.", - "properties": { - "elasticsearch": { - "additionalProperties": false, - "properties": { - "detail": { - "description": "Human readable detail of the service status.", - "type": "string" - }, - "documentationUrl": { - "description": "A URL to further documentation regarding this service.", - "type": "string" - }, - "level": { - "description": "Service status levels as human and machine readable values.", - "enum": [ - "available", - "degraded", - "unavailable", - "critical" - ], - "type": "string" - }, - "meta": { - "additionalProperties": {}, - "description": "An unstructured set of extra metadata about this service.", - "type": "object" - }, - "summary": { - "description": "A human readable summary of the service status.", - "type": "string" - } - }, - "required": [ - "level", - "summary", - "meta" - ], - "type": "object" - }, - "http": { - "additionalProperties": false, - "properties": { - "detail": { - "description": "Human readable detail of the service status.", - "type": "string" - }, - "documentationUrl": { - "description": "A URL to further documentation regarding this service.", - "type": "string" - }, - "level": { - "description": "Service status levels as human and machine readable values.", - "enum": [ - "available", - "degraded", - "unavailable", - "critical" - ], - "type": "string" - }, - "meta": { - "additionalProperties": {}, - "description": "An unstructured set of extra metadata about this service.", - "type": "object" - }, - "summary": { - "description": "A human readable summary of the service status.", - "type": "string" - } - }, - "required": [ - "level", - "summary", - "meta" - ], - "type": "object" - }, - "savedObjects": { - "additionalProperties": false, - "properties": { - "detail": { - "description": "Human readable detail of the service status.", - "type": "string" - }, - "documentationUrl": { - "description": "A URL to further documentation regarding this service.", - "type": "string" - }, - "level": { - "description": "Service status levels as human and machine readable values.", - "enum": [ - "available", - "degraded", - "unavailable", - "critical" - ], - "type": "string" - }, - "meta": { - "additionalProperties": {}, - "description": "An unstructured set of extra metadata about this service.", - "type": "object" - }, - "summary": { - "description": "A human readable summary of the service status.", - "type": "string" - } - }, - "required": [ - "level", - "summary", - "meta" - ], - "type": "object" - } - }, - "required": [ - "elasticsearch", - "savedObjects" - ], - "type": "object" - }, - "overall": { - "additionalProperties": false, - "properties": { - "detail": { - "description": "Human readable detail of the service status.", - "type": "string" - }, - "documentationUrl": { - "description": "A URL to further documentation regarding this service.", - "type": "string" - }, - "level": { - "description": "Service status levels as human and machine readable values.", - "enum": [ - "available", - "degraded", - "unavailable", - "critical" - ], - "type": "string" - }, - "meta": { - "additionalProperties": {}, - "description": "An unstructured set of extra metadata about this service.", - "type": "object" - }, - "summary": { - "description": "A human readable summary of the service status.", - "type": "string" - } - }, - "required": [ - "level", - "summary", - "meta" - ], - "type": "object" - }, - "plugins": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "detail": { - "description": "Human readable detail of the service status.", - "type": "string" - }, - "documentationUrl": { - "description": "A URL to further documentation regarding this service.", - "type": "string" - }, - "level": { - "description": "Service status levels as human and machine readable values.", - "enum": [ - "available", - "degraded", - "unavailable", - "critical" - ], - "type": "string" - }, - "meta": { - "additionalProperties": {}, - "description": "An unstructured set of extra metadata about this service.", - "type": "object" - }, - "summary": { - "description": "A human readable summary of the service status.", - "type": "string" - } - }, - "required": [ - "level", - "summary", - "meta" - ], - "type": "object" - }, - "description": "A dynamic mapping of plugin ID to plugin status.", - "type": "object" - } - }, - "required": [ - "overall", - "core", - "plugins" - ], - "type": "object" - }, - "uuid": { - "description": "Unique, generated Kibana instance UUID. This UUID should persist even if the Kibana process restarts.", - "type": "string" - }, - "version": { - "additionalProperties": false, - "properties": { - "build_date": { - "description": "The date and time of this build.", - "type": "string" - }, - "build_flavor": { - "description": "The build flavour determines configuration and behavior of Kibana. On premise users will almost always run the \"traditional\" flavour, while other flavours are reserved for Elastic-specific use cases.", - "enum": [ - "serverless", - "traditional" - ], - "type": "string" - }, - "build_hash": { - "description": "A unique hash value representing the git commit of this Kibana build.", - "type": "string" - }, - "build_number": { - "description": "A monotonically increasing number, each subsequent build will have a higher number.", - "type": "number" - }, - "build_snapshot": { - "description": "Whether this build is a snapshot build.", - "type": "boolean" - }, - "number": { - "description": "A semantic version number.", - "type": "string" - } - }, - "required": [ - "number", - "build_hash", - "build_number", - "build_snapshot", - "build_flavor", - "build_date" - ], - "type": "object" - } - }, - "required": [ - "name", - "uuid", - "version", - "status", - "metrics" - ], - "type": "object" - } - }, - "securitySchemes": { - "apiKeyAuth": { - "in": "header", - "name": "Authorization", - "type": "apiKey" - }, - "basicAuth": { - "scheme": "basic", - "type": "http" - } - } - }, - "info": { - "title": "Kibana HTTP APIs", - "version": "0.0.0" - }, - "openapi": "3.0.0", - "paths": { - "/api/actions/connector/{id}": { - "delete": { - "description": "WARNING: When you delete a connector, it cannot be recovered.", - "operationId": "delete-actions-connector-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "An identifier for the connector.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "Indicates a successful call." - }, - "403": { - "description": "Indicates that this call is forbidden." - } - }, - "summary": "Delete a connector", - "tags": [ - "connectors" - ] - }, - "get": { - "operationId": "get-actions-connector-id", - "parameters": [ - { - "description": "An identifier for the connector.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "config": { - "additionalProperties": {}, - "type": "object" - }, - "connector_type_id": { - "description": "The connector type identifier.", - "type": "string" - }, - "id": { - "description": "The identifier for the connector.", - "type": "string" - }, - "is_connector_type_deprecated": { - "description": "Indicates whether the connector type is deprecated.", - "type": "boolean" - }, - "is_deprecated": { - "description": "Indicates whether the connector is deprecated.", - "type": "boolean" - }, - "is_missing_secrets": { - "description": "Indicates whether the connector is missing secrets.", - "type": "boolean" - }, - "is_preconfigured": { - "description": "Indicates whether the connector is preconfigured. If true, the `config` and `is_missing_secrets` properties are omitted from the response. ", - "type": "boolean" - }, - "is_system_action": { - "description": "Indicates whether the connector is used for system actions.", - "type": "boolean" - }, - "name": { - "description": " The name of the connector.", - "type": "string" - } - }, - "required": [ - "id", - "name", - "connector_type_id", - "is_preconfigured", - "is_deprecated", - "is_system_action", - "is_connector_type_deprecated" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "403": { - "description": "Indicates that this call is forbidden." - } - }, - "summary": "Get connector information", - "tags": [ - "connectors" - ] - }, - "post": { - "operationId": "post-actions-connector-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "An identifier for the connector.", - "in": "path", - "name": "id", - "required": false, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "config": { - "additionalProperties": {}, - "default": {}, - "type": "object" - }, - "connector_type_id": { - "description": "The type of connector.", - "type": "string" - }, - "name": { - "description": "The display name for the connector.", - "type": "string" - }, - "secrets": { - "additionalProperties": {}, - "default": {}, - "type": "object" - } - }, - "required": [ - "name", - "connector_type_id" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "config": { - "additionalProperties": {}, - "type": "object" - }, - "connector_type_id": { - "description": "The connector type identifier.", - "type": "string" - }, - "id": { - "description": "The identifier for the connector.", - "type": "string" - }, - "is_connector_type_deprecated": { - "description": "Indicates whether the connector type is deprecated.", - "type": "boolean" - }, - "is_deprecated": { - "description": "Indicates whether the connector is deprecated.", - "type": "boolean" - }, - "is_missing_secrets": { - "description": "Indicates whether the connector is missing secrets.", - "type": "boolean" - }, - "is_preconfigured": { - "description": "Indicates whether the connector is preconfigured. If true, the `config` and `is_missing_secrets` properties are omitted from the response. ", - "type": "boolean" - }, - "is_system_action": { - "description": "Indicates whether the connector is used for system actions.", - "type": "boolean" - }, - "name": { - "description": " The name of the connector.", - "type": "string" - } - }, - "required": [ - "id", - "name", - "connector_type_id", - "is_preconfigured", - "is_deprecated", - "is_system_action", - "is_connector_type_deprecated" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "403": { - "description": "Indicates that this call is forbidden." - } - }, - "summary": "Create a connector", - "tags": [ - "connectors" - ] - }, - "put": { - "operationId": "put-actions-connector-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "An identifier for the connector.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "config": { - "additionalProperties": {}, - "default": {}, - "type": "object" - }, - "name": { - "description": "The display name for the connector.", - "type": "string" - }, - "secrets": { - "additionalProperties": {}, - "default": {}, - "type": "object" - } - }, - "required": [ - "name" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "config": { - "additionalProperties": {}, - "type": "object" - }, - "connector_type_id": { - "description": "The connector type identifier.", - "type": "string" - }, - "id": { - "description": "The identifier for the connector.", - "type": "string" - }, - "is_connector_type_deprecated": { - "description": "Indicates whether the connector type is deprecated.", - "type": "boolean" - }, - "is_deprecated": { - "description": "Indicates whether the connector is deprecated.", - "type": "boolean" - }, - "is_missing_secrets": { - "description": "Indicates whether the connector is missing secrets.", - "type": "boolean" - }, - "is_preconfigured": { - "description": "Indicates whether the connector is preconfigured. If true, the `config` and `is_missing_secrets` properties are omitted from the response. ", - "type": "boolean" - }, - "is_system_action": { - "description": "Indicates whether the connector is used for system actions.", - "type": "boolean" - }, - "name": { - "description": " The name of the connector.", - "type": "string" - } - }, - "required": [ - "id", - "name", - "connector_type_id", - "is_preconfigured", - "is_deprecated", - "is_system_action", - "is_connector_type_deprecated" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "403": { - "description": "Indicates that this call is forbidden." - } - }, - "summary": "Update a connector", - "tags": [ - "connectors" - ] - } - }, - "/api/actions/connector/{id}/_execute": { - "post": { - "description": "You can use this API to test an action that involves interaction with Kibana services or integrations with third-party systems.", - "operationId": "post-actions-connector-id-execute", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "An identifier for the connector.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "params": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "params" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "config": { - "additionalProperties": {}, - "type": "object" - }, - "connector_type_id": { - "description": "The connector type identifier.", - "type": "string" - }, - "id": { - "description": "The identifier for the connector.", - "type": "string" - }, - "is_connector_type_deprecated": { - "description": "Indicates whether the connector type is deprecated.", - "type": "boolean" - }, - "is_deprecated": { - "description": "Indicates whether the connector is deprecated.", - "type": "boolean" - }, - "is_missing_secrets": { - "description": "Indicates whether the connector is missing secrets.", - "type": "boolean" - }, - "is_preconfigured": { - "description": "Indicates whether the connector is preconfigured. If true, the `config` and `is_missing_secrets` properties are omitted from the response. ", - "type": "boolean" - }, - "is_system_action": { - "description": "Indicates whether the connector is used for system actions.", - "type": "boolean" - }, - "name": { - "description": " The name of the connector.", - "type": "string" - } - }, - "required": [ - "id", - "name", - "connector_type_id", - "is_preconfigured", - "is_deprecated", - "is_system_action", - "is_connector_type_deprecated" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "403": { - "description": "Indicates that this call is forbidden." - } - }, - "summary": "Run a connector", - "tags": [ - "connectors" - ] - } - }, - "/api/actions/connector_types": { - "get": { - "description": "You do not need any Kibana feature privileges to run this API.", - "operationId": "get-actions-connector-types", - "parameters": [ - { - "description": "A filter to limit the retrieved connector types to those that support a specific feature (such as alerting or cases).", - "in": "query", - "name": "feature_id", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "items": { - "additionalProperties": false, - "properties": { - "allow_multiple_system_actions": { - "description": "Indicates whether multiple instances of the same system action connector can be used in a single rule.", - "type": "boolean" - }, - "enabled": { - "description": "Indicates whether the connector is enabled.", - "type": "boolean" - }, - "enabled_in_config": { - "description": "Indicates whether the connector is enabled in the Kibana configuration.", - "type": "boolean" - }, - "enabled_in_license": { - "description": "Indicates whether the connector is enabled through the license.", - "type": "boolean" - }, - "id": { - "description": "The identifier for the connector.", - "type": "string" - }, - "is_deprecated": { - "description": "Indicates whether the connector type is deprecated.", - "type": "boolean" - }, - "is_system_action_type": { - "description": "Indicates whether the action is a system action.", - "type": "boolean" - }, - "minimum_license_required": { - "description": "The minimum license required to enable the connector.", - "enum": [ - "basic", - "standard", - "gold", - "platinum", - "enterprise", - "trial" - ], - "type": "string" - }, - "name": { - "description": "The name of the connector type.", - "type": "string" - }, - "source": { - "description": "The source of the connector type definition.", - "enum": [ - "yml", - "spec", - "stack" - ], - "type": "string" - }, - "sub_feature": { - "description": "Indicates the sub-feature type the connector is grouped under.", - "enum": [ - "endpointSecurity" - ], - "type": "string" - }, - "supported_feature_ids": { - "description": "The list of supported features", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "id", - "name", - "enabled", - "enabled_in_config", - "enabled_in_license", - "minimum_license_required", - "supported_feature_ids", - "is_system_action_type", - "is_deprecated", - "source" - ], - "type": "object" - }, - "type": "array" - } - } - }, - "description": "Indicates a successful call." - }, - "403": { - "description": "Indicates that this call is forbidden." - } - }, - "summary": "Get connector types", - "tags": [ - "connectors" - ] - } - }, - "/api/actions/connectors": { - "get": { - "operationId": "get-actions-connectors", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "items": { - "additionalProperties": false, - "properties": { - "config": { - "additionalProperties": {}, - "type": "object" - }, - "connector_type_id": { - "description": "The connector type identifier.", - "type": "string" - }, - "id": { - "description": "The identifier for the connector.", - "type": "string" - }, - "is_connector_type_deprecated": { - "description": "Indicates whether the connector type is deprecated.", - "type": "boolean" - }, - "is_deprecated": { - "description": "Indicates whether the connector is deprecated.", - "type": "boolean" - }, - "is_missing_secrets": { - "description": "Indicates whether the connector is missing secrets.", - "type": "boolean" - }, - "is_preconfigured": { - "description": "Indicates whether the connector is preconfigured. If true, the `config` and `is_missing_secrets` properties are omitted from the response. ", - "type": "boolean" - }, - "is_system_action": { - "description": "Indicates whether the connector is used for system actions.", - "type": "boolean" - }, - "name": { - "description": " The name of the connector.", - "type": "string" - }, - "referenced_by_count": { - "description": "The number of saved objects that reference the connector. If is_preconfigured is true, this value is not calculated.", - "type": "number" - } - }, - "required": [ - "id", - "name", - "connector_type_id", - "is_preconfigured", - "is_deprecated", - "is_system_action", - "is_connector_type_deprecated", - "referenced_by_count" - ], - "type": "object" - }, - "type": "array" - } - } - }, - "description": "Indicates a successful call." - }, - "403": { - "description": "Indicates that this call is forbidden." - } - }, - "summary": "Get all connectors", - "tags": [ - "connectors" - ] - } - }, - "/api/agent_builder/a2a/{agentId}": { - "post": { - "description": "> warn\n> This endpoint is designed for A2A protocol clients and should not be used directly via REST APIs. Use an A2A SDK or A2A Inspector instead.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "post-agent-builder-a2a-agentid", - "parameters": [ - { - "description": "The unique identifier of the agent to send the A2A task to.", - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "a2aTaskRequestExample": { - "description": "WARNING: DO NOT USE THIS ENDPOINT VIA REST API. These examples are auto-generated and should not be run. Integrate with A2A using an A2A SDK or A2A Inspector instead.", - "value": { - "id": "task-123", - "jsonrpc": "2.0", - "method": "complete", - "params": { - "messages": [ - { - "content": "Hello from A2A protocol", - "role": "user" - } - ] - } - } - } - }, - "schema": {} - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "a2aTaskResponseExample": { - "description": "Example response from A2A Task Endpoint with results of task execution", - "value": { - "id": "task-123", - "jsonrpc": "2.0", - "result": { - "conversation_id": "conv-456", - "response": { - "message": "Hello! How can I help you today?" - }, - "type": "response" - } - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Send A2A task", - "tags": [ - "agent builder" - ], - "x-state": "Technical Preview" - } - }, - "/api/agent_builder/a2a/{agentId}.json": { - "get": { - "description": "Get agent discovery metadata in JSON format. Use this endpoint to provide agent information for A2A protocol integration and discovery.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "get-agent-builder-a2a-agentid.json", - "parameters": [ - { - "description": "The unique identifier of the agent to get A2A metadata for.", - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "a2aAgentCardResponseExample": { - "description": "Example response card of Elastic AI Agent", - "value": { - "capabilities": { - "pushNotifications": false, - "stateTransitionHistory": false, - "streaming": false - }, - "defaultInputModes": [ - "text/plain" - ], - "defaultOutputModes": [ - "text/plain" - ], - "description": "Elastic AI Agent", - "name": "Elastic AI Agent", - "protocolVersion": "0.3.0", - "provider": { - "organization": "Elastic", - "url": "https://elastic.co" - }, - "securitySchemes": { - "authorization": { - "description": "Authentication token", - "in": "header", - "name": "Authorization", - "type": "apiKey" - } - }, - "skills": [ - { - "description": "A powerful tool for searching and analyzing data within your Elasticsearch cluster.", - "examples": [], - "id": "platform.core.search", - "inputModes": [ - "text/plain", - "application/json" - ], - "name": "platform.core.search", - "outputModes": [ - "text/plain", - "application/json" - ], - "tags": [ - "tool" - ] - } - ], - "supportsAuthenticatedExtendedCard": false, - "url": "http://localhost:5601/api/agent_builder/a2a/elastic-ai-agent", - "version": "0.1.0" - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Get A2A agent card", - "tags": [ - "agent builder" - ], - "x-state": "Technical Preview" - } - }, - "/api/agent_builder/agents": { - "get": { - "description": "List all available agents. Use this endpoint to retrieve complete agent information including their current configuration and assigned tools.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "get-agent-builder-agents", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "listAgentsResponseExample": { - "description": "Example response that returns one built-in Elastic agent and one created by the user", - "value": { - "results": [ - { - "configuration": { - "tools": [ - { - "tool_ids": [ - "platform.core.search", - "platform.core.list_indices", - "platform.core.get_index_mapping", - "platform.core.get_document_by_id" - ] - } - ] - }, - "description": "Elastic AI Agent", - "id": "elastic-ai-agent", - "name": "Elastic AI Agent", - "type": "chat" - }, - { - "avatar_color": "#BFDBFF", - "avatar_symbol": "SI", - "configuration": { - "instructions": "You are a custom agent that wants to help searching data using all indices starting with prefix \"content-\".", - "tools": [ - { - "tool_ids": [ - "platform.core.search", - "platform.core.list_indices", - "platform.core.get_index_mapping", - "platform.core.get_document_by_id" - ] - } - ] - }, - "description": "Hi! I can help you search the data within the indices starting with \"content-\" prefix.", - "id": "created-agent-id", - "labels": [ - "custom-indices", - "department-search" - ], - "name": "Search Index Helper", - "type": "chat" - } - ] - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "List agents", - "tags": [ - "agent builder" - ], - "x-state": "" - }, - "post": { - "description": "Create a new agent. Use this endpoint to define the agent's behavior, appearance, and capabilities through comprehensive configuration options.

[Required authorization] Route required privileges: manage_agent_builder.", - "operationId": "post-agent-builder-agents", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "createAgentRequestExample": { - "description": "Example request for creating a custom agent with special prompt and tools", - "value": { - "avatar_color": "#BFDBFF", - "avatar_symbol": "SI", - "configuration": { - "instructions": "You are a custom agent that wants to help searching data using all indices starting with prefix \"content-\".", - "tools": [ - { - "tool_ids": [ - "platform.core.search", - "platform.core.list_indices", - "platform.core.get_index_mapping", - "platform.core.get_document_by_id" - ] - } - ] - }, - "description": "Hi! I can help you search the data within the indices starting with \"content-\" prefix.", - "id": "created-agent-id", - "labels": [ - "custom-indices", - "department-search" - ], - "name": "Search Index Helper" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "avatar_color": { - "description": "Optional hex color code for the agent avatar.", - "type": "string" - }, - "avatar_symbol": { - "description": "Optional symbol/initials for the agent avatar.", - "type": "string" - }, - "configuration": { - "additionalProperties": false, - "description": "Configuration settings for the agent.", - "properties": { - "instructions": { - "description": "Optional system instructions that define the agent behavior.", - "type": "string" - }, - "tools": { - "items": { - "additionalProperties": false, - "description": "Tool selection configuration for the agent.", - "properties": { - "tool_ids": { - "description": "Array of tool IDs that the agent can use.", - "items": { - "description": "Tool ID to be available to the agent.", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "tool_ids" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "tools" - ], - "type": "object" - }, - "description": { - "description": "Description of what the agent does.", - "type": "string" - }, - "id": { - "description": "Unique identifier for the agent.", - "type": "string" - }, - "labels": { - "description": "Optional labels for categorizing and organizing agents.", - "items": { - "description": "Label for categorizing the agent.", - "type": "string" - }, - "type": "array" - }, - "name": { - "description": "Display name for the agent.", - "type": "string" - } - }, - "required": [ - "id", - "name", - "description", - "configuration" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "createAgentResponseExample": { - "description": "Example response returning the definition of an agent created as a result of the request", - "value": { - "avatar_color": "#BFDBFF", - "avatar_symbol": "SI", - "configuration": { - "instructions": "You are a custom agent that wants to help searching data using all indices starting with prefix \"content-\".", - "tools": [ - { - "tool_ids": [ - "platform.core.search", - "platform.core.list_indices", - "platform.core.get_index_mapping", - "platform.core.get_document_by_id" - ] - } - ] - }, - "description": "Hi! I can help you search the data within the indices starting with \"content-\" prefix.", - "id": "created-agent-id", - "labels": [ - "custom-indices", - "department-search" - ], - "name": "Search Index Helper", - "type": "chat" - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Create an agent", - "tags": [ - "agent builder" - ], - "x-state": "" - } - }, - "/api/agent_builder/agents/{id}": { - "delete": { - "description": "Delete an agent by ID. This action cannot be undone.

[Required authorization] Route required privileges: manage_agent_builder.", - "operationId": "delete-agent-builder-agents-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The unique identifier of the agent to delete.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "deleteAgentResponseExample": { - "description": "Example response showing that deletion of the agent has been successful", - "value": { - "success": true - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Delete an agent", - "tags": [ - "agent builder" - ], - "x-state": "" - }, - "get": { - "description": "Get a specific agent by ID. Use this endpoint to retrieve the complete agent definition including all configuration details and tool assignments.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "get-agent-builder-agents-id", - "parameters": [ - { - "description": "The unique identifier of the agent to retrieve.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "getAgentByIdResponseExample": { - "description": "Example response that an agent created by the user that will query elasticsearch indices starting with 'content-' prefix to answer the questions.", - "value": { - "avatar_color": "#BFDBFF", - "avatar_symbol": "SI", - "configuration": { - "instructions": "You are a custom agent that wants to help searching data using all indices starting with prefix \"content-\".", - "tools": [ - { - "tool_ids": [ - "platform.core.search", - "platform.core.list_indices", - "platform.core.get_index_mapping", - "platform.core.get_document_by_id" - ] - } - ] - }, - "description": "Hi! I can help you search the data within the indices starting with \"content-\" prefix.", - "id": "created-agent-id", - "labels": [ - "custom-indices", - "department-search" - ], - "name": "Search Index Helper", - "type": "chat" - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Get an agent by ID", - "tags": [ - "agent builder" - ], - "x-state": "" - }, - "put": { - "description": "Update an existing agent configuration. Use this endpoint to modify any aspect of the agent's behavior, appearance, or capabilities.

[Required authorization] Route required privileges: manage_agent_builder.", - "operationId": "put-agent-builder-agents-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The unique identifier of the agent to update.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "createAgentRequestExample": { - "description": "Example request for updating custom agent", - "value": { - "avatar_color": "#BFDBFF", - "avatar_symbol": "SI", - "configuration": { - "instructions": "You are a custom agent that wants to help searching data using all indices starting with prefix \"content-\".", - "tools": [ - { - "tool_ids": [ - "platform.core.search", - "platform.core.list_indices", - "platform.core.get_index_mapping", - "platform.core.get_document_by_id" - ] - } - ] - }, - "description": "Updated description - Search for anything in \"content-*\" indices!", - "id": "created-agent-id", - "labels": [ - "custom-indices", - "department-search", - "elastic-employees" - ], - "name": "Search Index Helper" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "avatar_color": { - "description": "Updated hex color code for the agent avatar.", - "type": "string" - }, - "avatar_symbol": { - "description": "Updated symbol/initials for the agent avatar.", - "type": "string" - }, - "configuration": { - "additionalProperties": false, - "description": "Updated configuration settings for the agent.", - "properties": { - "instructions": { - "description": "Updated system instructions that define the agent behavior.", - "type": "string" - }, - "tools": { - "items": { - "additionalProperties": false, - "description": "Tool selection configuration for the agent.", - "properties": { - "tool_ids": { - "description": "Array of tool IDs that the agent can use.", - "items": { - "description": "Tool ID to be available to the agent.", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "tool_ids" - ], - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "description": { - "description": "Updated description of what the agent does.", - "type": "string" - }, - "labels": { - "description": "Updated labels for categorizing and organizing agents.", - "items": { - "description": "Updated label for categorizing the agent.", - "type": "string" - }, - "type": "array" - }, - "name": { - "description": "Updated display name for the agent.", - "type": "string" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "updateAgentResponseExample": { - "description": "Example response returning the agent definition with the changes applied from the request", - "value": { - "avatar_color": "#BFDBFF", - "avatar_symbol": "SI", - "configuration": { - "instructions": "You are a custom agent that wants to help searching data using all indices starting with prefix \"content-\".", - "tools": [ - { - "tool_ids": [ - "platform.core.search", - "platform.core.list_indices", - "platform.core.get_index_mapping", - "platform.core.get_document_by_id" - ] - } - ] - }, - "description": "Updated description - Search for anything in \"content-*\" indices!", - "id": "created-agent-id", - "labels": [ - "custom-indices", - "department-search", - "elastic-employees" - ], - "name": "Search Index Helper", - "type": "chat" - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Update an agent", - "tags": [ - "agent builder" - ], - "x-state": "" - } - }, - "/api/agent_builder/conversations": { - "get": { - "description": "List all conversations for a user. Use the optional agent ID to filter conversations by a specific agent.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "get-agent-builder-conversations", - "parameters": [ - { - "description": "Optional agent ID to filter conversations by a specific agent.", - "in": "query", - "name": "agent_id", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "listConversationsResponseExample": { - "description": "Example response containing the list of conversations with all agents", - "value": { - "results": [ - { - "agent_id": "elastic-ai-agent", - "created_at": "2025-09-19T17:45:39.554Z", - "id": "bcc176c5-38f6-40be-be0c-898e34fa1480", - "title": "General Greeting", - "updated_at": "2025-09-19T17:45:39.554Z", - "user": { - "username": "elastic" - } - } - ] - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "List conversations", - "tags": [ - "agent builder" - ], - "x-state": "" - } - }, - "/api/agent_builder/conversations/{conversation_id}": { - "delete": { - "description": "Delete a conversation by ID. This action cannot be undone.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "delete-agent-builder-conversations-conversation-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The unique identifier of the conversation to delete.", - "in": "path", - "name": "conversation_id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "deleteConversationResponseExample": { - "description": "Example response showing that deletion of conversation has been successful", - "value": { - "success": true - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Delete conversation by ID", - "tags": [ - "agent builder" - ], - "x-state": "" - }, - "get": { - "description": "Get a specific conversation by ID. Use this endpoint to retrieve the complete conversation history including all messages and metadata.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "get-agent-builder-conversations-conversation-id", - "parameters": [ - { - "description": "The unique identifier of the conversation to retrieve.", - "in": "path", - "name": "conversation_id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "getConversationByIdResponseExample": { - "description": "Example response containing the contents of a convesation with the chat agent", - "value": { - "agent_id": "elastic-ai-agent", - "created_at": "2025-09-19T17:45:39.554Z", - "id": "bcc176c5-38f6-40be-be0c-898e34fa1480", - "rounds": [ - { - "id": "170ec3b2-0f5a-4538-8b60-549572386d2a", - "input": { - "message": "Hello, how are you?" - }, - "response": { - "message": "Since this is a general greeting that doesn't require any organizational or product-specific information, I can respond without using tools.\n\nHello! I'm doing well, thank you for asking. I'm here to help you with any questions you may have. How can I assist you today?" - }, - "steps": [] - } - ], - "title": "General Greeting", - "updated_at": "2025-09-19T17:45:39.554Z", - "user": { - "username": "elastic" - } - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Get conversation by ID", - "tags": [ - "agent builder" - ], - "x-state": "" - } - }, - "/api/agent_builder/conversations/{conversation_id}/attachments": { - "get": { - "description": "List all attachments for a conversation. Use the optional include_deleted query parameter to include soft-deleted attachments.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "get-agent-builder-conversations-conversation-id-attachments", - "parameters": [ - { - "description": "The unique identifier of the conversation.", - "in": "path", - "name": "conversation_id", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "Whether to include deleted attachments in the list.", - "in": "query", - "name": "include_deleted", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "listAttachmentsResponseExample": { - "description": "Example response containing active attachments for a conversation", - "value": { - "results": [ - { - "active": true, - "current_version": 2, - "description": "My text file", - "id": "attachment-1", - "type": "text", - "versions": [ - { - "content_hash": "abc123", - "created_at": "2025-01-01T10:00:00.000Z", - "data": "Initial content", - "estimated_tokens": 3, - "version": 1 - }, - { - "content_hash": "def456", - "created_at": "2025-01-01T11:00:00.000Z", - "data": "Updated content", - "estimated_tokens": 3, - "version": 2 - } - ] - }, - { - "active": true, - "current_version": 1, - "description": "Configuration data", - "id": "attachment-2", - "type": "json", - "versions": [ - { - "content_hash": "ghi789", - "created_at": "2025-01-01T12:00:00.000Z", - "data": { - "key": "value", - "nested": { - "field": 123 - } - }, - "estimated_tokens": 15, - "version": 1 - } - ] - } - ], - "total_token_estimate": 21 - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "List conversation attachments", - "tags": [ - "agent builder" - ], - "x-state": "Technical Preview" - }, - "post": { - "description": "Create a new attachment for a conversation with version tracking.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "post-agent-builder-conversations-conversation-id-attachments", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The unique identifier of the conversation.", - "in": "path", - "name": "conversation_id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "createHiddenAttachmentExample": { - "description": "Example request for creating a hidden attachment", - "value": { - "data": "Internal system data", - "description": "System context", - "hidden": true, - "type": "text" - } - }, - "createJsonAttachmentExample": { - "description": "Example request for creating a JSON attachment with custom ID", - "value": { - "data": { - "configuration": { - "enabled": true, - "threshold": 50 - }, - "metadata": { - "source": "user_input" - } - }, - "description": "Application settings", - "id": "custom-attachment-id", - "type": "json" - } - }, - "createTextAttachmentExample": { - "description": "Example request for creating a text attachment", - "value": { - "data": "This is the content of my text attachment", - "description": "Meeting notes", - "type": "text" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "data": {}, - "description": { - "description": "Human-readable description of the attachment.", - "type": "string" - }, - "hidden": { - "description": "Whether the attachment should be hidden from the user.", - "type": "boolean" - }, - "id": { - "description": "Optional custom ID for the attachment.", - "type": "string" - }, - "type": { - "description": "The type of the attachment (e.g., text, json, visualization_ref).", - "type": "string" - } - }, - "required": [ - "type", - "data" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "createAttachmentResponseExample": { - "description": "Example response returning the created attachment", - "value": { - "attachment": { - "active": true, - "current_version": 1, - "description": "Meeting notes", - "id": "att-abc123", - "type": "text", - "versions": [ - { - "content_hash": "sha256-xyz", - "created_at": "2025-01-06T10:00:00.000Z", - "data": "This is the content of my text attachment", - "estimated_tokens": 12, - "version": 1 - } - ] - } - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Create conversation attachment", - "tags": [ - "agent builder" - ], - "x-state": "Technical Preview" - } - }, - "/api/agent_builder/conversations/{conversation_id}/attachments/{attachment_id}": { - "delete": { - "description": "Delete an attachment. By default performs a soft delete (can be restored). Use permanent=true to permanently remove unreferenced attachments.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "delete-agent-builder-conversations-conversation-id-attachments-attachment-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The unique identifier of the conversation.", - "in": "path", - "name": "conversation_id", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "The unique identifier of the attachment to delete.", - "in": "path", - "name": "attachment_id", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "If true, permanently removes the attachment (only for unreferenced attachments).", - "in": "query", - "name": "permanent", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "permanentDeleteAttachmentResponseExample": { - "description": "Example response for permanent delete (cannot be restored)", - "value": { - "permanent": true, - "success": true - } - }, - "softDeleteAttachmentResponseExample": { - "description": "Example response for soft delete (can be restored)", - "value": { - "permanent": false, - "success": true - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Delete conversation attachment", - "tags": [ - "agent builder" - ], - "x-state": "Technical Preview" - }, - "patch": { - "description": "Rename an attachment without creating a new version.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "patch-agent-builder-conversations-conversation-id-attachments-attachment-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The unique identifier of the conversation.", - "in": "path", - "name": "conversation_id", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "The unique identifier of the attachment to rename.", - "in": "path", - "name": "attachment_id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "renameAttachmentExample": { - "description": "Example request for renaming an attachment", - "value": { - "description": "Updated attachment name" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "description": { - "description": "The new description/name for the attachment.", - "type": "string" - } - }, - "required": [ - "description" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "renameAttachmentResponseExample": { - "description": "Example response returning the renamed attachment (version unchanged)", - "value": { - "attachment": { - "active": true, - "current_version": 1, - "description": "Updated attachment name", - "id": "att-abc123", - "type": "text", - "versions": [ - { - "content_hash": "sha256-xyz", - "created_at": "2025-01-06T10:00:00.000Z", - "data": "Content remains the same", - "estimated_tokens": 10, - "version": 1 - } - ] - }, - "success": true - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Rename attachment", - "tags": [ - "agent builder" - ], - "x-state": "Technical Preview" - }, - "put": { - "description": "Update an attachment content. Creates a new version if content changed.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "put-agent-builder-conversations-conversation-id-attachments-attachment-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The unique identifier of the conversation.", - "in": "path", - "name": "conversation_id", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "The unique identifier of the attachment to update.", - "in": "path", - "name": "attachment_id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "updateAttachmentContentExample": { - "description": "Example request for updating attachment content", - "value": { - "data": "This is the updated content" - } - }, - "updateAttachmentWithDescriptionExample": { - "description": "Example request for updating both content and description", - "value": { - "data": "New content version", - "description": "Updated meeting notes - v2" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "data": {}, - "description": { - "description": "Optional new description for the attachment.", - "type": "string" - } - }, - "required": [ - "data" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "updateAttachmentResponseExample": { - "description": "Example response returning the updated attachment with new version", - "value": { - "attachment": { - "active": true, - "current_version": 2, - "description": "Meeting notes", - "id": "att-abc123", - "type": "text", - "versions": [ - { - "content_hash": "sha256-abc", - "created_at": "2025-01-06T10:00:00.000Z", - "data": "Original content", - "estimated_tokens": 10, - "version": 1 - }, - { - "content_hash": "sha256-def", - "created_at": "2025-01-06T11:00:00.000Z", - "data": "This is the updated content", - "estimated_tokens": 12, - "version": 2 - } - ] - }, - "new_version": 2 - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Update conversation attachment", - "tags": [ - "agent builder" - ], - "x-state": "Technical Preview" - } - }, - "/api/agent_builder/conversations/{conversation_id}/attachments/{attachment_id}/_restore": { - "post": { - "description": "Restore a soft-deleted attachment.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "post-agent-builder-conversations-conversation-id-attachments-attachment-id-restore", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The unique identifier of the conversation.", - "in": "path", - "name": "conversation_id", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "The unique identifier of the attachment to restore.", - "in": "path", - "name": "attachment_id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "restoreAttachmentResponseExample": { - "description": "Example response returning the restored attachment", - "value": { - "attachment": { - "active": true, - "current_version": 1, - "description": "Restored attachment", - "id": "att-abc123", - "type": "text", - "versions": [ - { - "content_hash": "sha256-xyz", - "created_at": "2025-01-06T10:00:00.000Z", - "data": "Restored content", - "estimated_tokens": 10, - "version": 1 - } - ] - }, - "success": true - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Restore deleted attachment", - "tags": [ - "agent builder" - ], - "x-state": "Technical Preview" - } - }, - "/api/agent_builder/converse": { - "post": { - "description": "Send a message to an agent and receive a complete response. This synchronous endpoint waits for the agent to fully process your request before returning the final result. Use this for simple chat interactions where you need the complete response.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "post-agent-builder-converse", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "converseRequestExample": { - "description": "Example request to send a message to the agent as a part of the conversation", - "value": { - "agent_id": "elastic-ai-agent", - "connector_id": "my-connector-id", - "input": "What is Elasticsearch?" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "agent_id": { - "default": "elastic-ai-agent", - "description": "The ID of the agent to chat with. Defaults to the default Elastic AI agent.", - "type": "string" - }, - "attachments": { - "description": "**Technical Preview; added in 9.3.0.** Optional attachments to send with the message.", - "items": { - "additionalProperties": false, - "properties": { - "data": { - "additionalProperties": {}, - "description": "Payload of the attachment.", - "type": "object" - }, - "hidden": { - "description": "When true, the attachment will not be displayed in the UI.", - "type": "boolean" - }, - "id": { - "description": "Optional id for the attachment.", - "type": "string" - }, - "type": { - "description": "Type of the attachment.", - "type": "string" - } - }, - "required": [ - "type", - "data" - ], - "type": "object" - }, - "type": "array" - }, - "browser_api_tools": { - "description": "Optional browser API tools to be registered as LLM tools with browser.* namespace. These tools execute on the client side.", - "items": { - "additionalProperties": false, - "properties": { - "description": { - "description": "Description of what the browser API tool does.", - "type": "string" - }, - "id": { - "description": "Unique identifier for the browser API tool.", - "type": "string" - }, - "schema": {} - }, - "required": [ - "id", - "description", - "schema" - ], - "type": "object" - }, - "type": "array" - }, - "capabilities": { - "additionalProperties": false, - "description": "Controls agent capabilities during conversation. Currently supports visualization rendering for tabular tool results.", - "properties": { - "visualizations": { - "description": "When true, allows the agent to render tabular data from tool results as interactive visualizations using custom XML elements in responses.", - "type": "boolean" - } - }, - "type": "object" - }, - "configuration_overrides": { - "additionalProperties": false, - "description": "Runtime configuration overrides. These override the stored agent configuration for this execution only.", - "properties": { - "instructions": { - "description": "Custom instructions for the agent.", - "type": "string" - }, - "tools": { - "description": "Tool selection to enable for this execution.", - "items": { - "additionalProperties": false, - "properties": { - "tool_ids": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "tool_ids" - ], - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "connector_id": { - "description": "Optional connector ID for the agent to use for external integrations.", - "type": "string" - }, - "conversation_id": { - "description": "Optional existing conversation ID to continue a previous conversation.", - "type": "string" - }, - "input": { - "description": "The user input message to send to the agent.", - "type": "string" - }, - "prompts": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "allow": { - "type": "boolean" - } - }, - "required": [ - "allow" - ], - "type": "object" - }, - "description": "Can be used to respond to a confirmation prompt.", - "type": "object" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "converseResponseExample": { - "description": "Example response containing the chain of events representing a conversation with the agent", - "value": { - "conversation_id": "696ccd6d-4bff-4b26-a62e-522ccf2dcd16", - "response": { - "message": "Elasticsearch is a distributed, RESTful search and analytics engine capable of addressing a growing number of use cases. As the heart of the Elastic Stack, it centrally stores your data for lightning fast search, fine‑tuned relevancy, and powerful analytics that scale with ease." - }, - "steps": [ - { - "reasoning": "Searching for official documentation or content that explains what Elasticsearch is", - "type": "reasoning" - }, - { - "params": { - "query": "what is elasticsearch definition overview introduction" - }, - "progression": [ - { - "message": "Selecting the best target for this query" - } - ], - "results": [ - { - "data": { - "message": "Could not figure out which index to use" - }, - "type": "error" - } - ], - "tool_call_id": "tooluse_shOdUwKIRwC9YhqGzeg0cQ", - "tool_id": "platform.core.search", - "type": "tool_call" - } - ] - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Send chat message", - "tags": [ - "agent builder" - ], - "x-state": "" - } - }, - "/api/agent_builder/converse/async": { - "post": { - "description": "Send a message to an agent and receive real-time streaming events. This asynchronous endpoint provides live updates as the agent processes your request, allowing you to see intermediate steps and progress. Use this for interactive experiences where you want to monitor the agent's thinking process.\n\n## Event types\n\nThe endpoint emits Server-Sent Events (SSE) with the following custom event types:\n\n`conversation_id_set`\n\nSets the conversation ID.\n\nSchema:\n```json\n{\n \"conversation_id\": \"uuid\"\n}\n```\n\n---\n\n`conversation_created`\n\nFires when a new conversation is persisted and assigned an ID.\n\nSchema:\n```json\n{\n \"conversation_id\": \"uuid\",\n \"title\": \"conversation title\"\n}\n```\n\n---\n\n`conversation_updated`\n\nFires when a conversation is updated.\n\nSchema:\n```json\n{\n \"conversation_id\": \"uuid\",\n \"title\": \"updated conversation title\"\n}\n```\n\n---\n\n`reasoning`\n\nHandles reasoning-related data.\n\nSchema:\n```json\n{\n \"reasoning\": \"plain text reasoning content\",\n \"transient\": false\n}\n```\n\n---\n\n`tool_call`\n\nTriggers when a tool is invoked.\n\nSchema:\n```json\n{\n \"tool_call_id\": \"uuid\",\n \"tool_id\": \"tool_name\",\n \"params\": {}\n}\n```\n\n---\n\n`tool_progress`\n\nReports progress of a running tool.\n\nSchema:\n```json\n{\n \"tool_call_id\": \"uuid\",\n \"message\": \"progress message\"\n}\n```\n\n---\n\n`tool_result`\n\nReturns results from a completed tool call.\n\nSchema:\n```json\n{\n \"tool_call_id\": \"uuid\",\n \"tool_id\": \"tool_name\",\n \"results\": []\n}\n```\n\n**Note:** `results` is an array of `ToolResult` objects.\n\n---\n\n`message_chunk`\n\nStreams partial text chunks.\n\nSchema:\n```json\n{\n \"message_id\": \"uuid\",\n \"text_chunk\": \"partial text\"\n}\n```\n\n---\n\n`message_complete`\n\nIndicates message stream is finished.\n\nSchema:\n```json\n{\n \"message_id\": \"uuid\",\n \"message_content\": \"full text content of the message\"\n}\n```\n\n---\n\n`thinking_complete`\n\nMarks the end of the thinking/reasoning phase.\n\nSchema:\n```json\n{\n \"time_to_first_token\": 0\n}\n```\n\n**Note:** `time_to_first_token` is in milliseconds.\n\n---\n\n`round_complete`\n\nMarks end of one conversation round.\n\nSchema:\n```json\n{\n \"round\": {}\n}\n```\n\n**Note:** `round` contains the full round json object.\n\n---\n\n## Event flow\n\nA typical conversation round emits events in this sequence:\n\n1. `reasoning` (potentially multiple, some transient)\n2. `tool_call` (if tools are used)\n3. `tool_progress` (zero or more progress updates)\n4. `tool_result` (when tool completes)\n5. `thinking_complete`\n6. `message_chunk` (multiple, as text streams)\n7. `message_complete`\n8. `round_complete`\n\n

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "post-agent-builder-converse-async", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "converseAsyncRequestExample": { - "description": "Example request to send a message to the agent as a part of the conversation", - "value": { - "agent_id": "elastic-ai-agent", - "conversation_id": "c250305b-1929-4248-b568-b9e3f065fda5", - "input": "Hello" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "agent_id": { - "default": "elastic-ai-agent", - "description": "The ID of the agent to chat with. Defaults to the default Elastic AI agent.", - "type": "string" - }, - "attachments": { - "description": "**Technical Preview; added in 9.3.0.** Optional attachments to send with the message.", - "items": { - "additionalProperties": false, - "properties": { - "data": { - "additionalProperties": {}, - "description": "Payload of the attachment.", - "type": "object" - }, - "hidden": { - "description": "When true, the attachment will not be displayed in the UI.", - "type": "boolean" - }, - "id": { - "description": "Optional id for the attachment.", - "type": "string" - }, - "type": { - "description": "Type of the attachment.", - "type": "string" - } - }, - "required": [ - "type", - "data" - ], - "type": "object" - }, - "type": "array" - }, - "browser_api_tools": { - "description": "Optional browser API tools to be registered as LLM tools with browser.* namespace. These tools execute on the client side.", - "items": { - "additionalProperties": false, - "properties": { - "description": { - "description": "Description of what the browser API tool does.", - "type": "string" - }, - "id": { - "description": "Unique identifier for the browser API tool.", - "type": "string" - }, - "schema": {} - }, - "required": [ - "id", - "description", - "schema" - ], - "type": "object" - }, - "type": "array" - }, - "capabilities": { - "additionalProperties": false, - "description": "Controls agent capabilities during conversation. Currently supports visualization rendering for tabular tool results.", - "properties": { - "visualizations": { - "description": "When true, allows the agent to render tabular data from tool results as interactive visualizations using custom XML elements in responses.", - "type": "boolean" - } - }, - "type": "object" - }, - "configuration_overrides": { - "additionalProperties": false, - "description": "Runtime configuration overrides. These override the stored agent configuration for this execution only.", - "properties": { - "instructions": { - "description": "Custom instructions for the agent.", - "type": "string" - }, - "tools": { - "description": "Tool selection to enable for this execution.", - "items": { - "additionalProperties": false, - "properties": { - "tool_ids": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "tool_ids" - ], - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "connector_id": { - "description": "Optional connector ID for the agent to use for external integrations.", - "type": "string" - }, - "conversation_id": { - "description": "Optional existing conversation ID to continue a previous conversation.", - "type": "string" - }, - "input": { - "description": "The user input message to send to the agent.", - "type": "string" - }, - "prompts": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "allow": { - "type": "boolean" - } - }, - "required": [ - "allow" - ], - "type": "object" - }, - "description": "Can be used to respond to a confirmation prompt.", - "type": "object" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "text/event-stream": { - "examples": { - "converseAsyncResponseExample": { - "description": "Example stream containing the chain of events representing a conversation with the agent", - "value": [ - { - "data": { - "data": { - "conversation_id": "c250305b-1929-4248-b568-b9e3f065fda5" - } - }, - "event": "conversation_id_set" - }, - { - "data": { - "data": { - "reasoning": "Starting with a general search to understand what content is available." - } - }, - "event": "reasoning" - }, - { - "data": { - "data": { - "params": { - "query": "latest documents" - }, - "tool_call_id": "tooluse__2aJELgyRYqD8SDOKSiwtg", - "tool_id": "platform.core.search" - } - }, - "event": "tool_call" - }, - { - "data": { - "data": { - "results": [ - { - "data": { - "message": "Could not figure out which index to use" - }, - "type": "error" - } - ], - "tool_call_id": "tooluse__2aJELgyRYqD8SDOKSiwtg" - } - }, - "event": "tool_result" - }, - { - "data": { - "data": { - "round": { - "id": "a5692d54-bc06-4a6e-aea1-412779c73f66", - "input": { - "message": "Hello" - }, - "response": { - "message": "Hello! How can I help you today?" - } - } - } - }, - "event": "round_complete" - } - ] - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Send chat message (streaming)", - "tags": [ - "agent builder" - ], - "x-state": "" - } - }, - "/api/agent_builder/mcp": { - "post": { - "description": "> warn\n> This endpoint is designed for MCP clients (Claude Desktop, Cursor, VS Code, etc.) and should not be used directly via REST APIs. Use MCP Inspector or native MCP clients instead.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "post-agent-builder-mcp", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "examples": { - "mcpInitializeRequestExample": { - "description": "WARNING: DO NOT USE THIS ENDPOINT VIA REST API. These examples are auto-generated and should not be run. Integrate with MCP using MCP Inspector or native MCP clients (Claude Desktop, Cursor, VS Code) instead.", - "value": { - "id": 1, - "jsonrpc": "2.0", - "method": "initialize", - "params": { - "capabilities": {}, - "clientInfo": { - "name": "test-client", - "version": "1.0.0" - }, - "protocolVersion": "2024-11-05" - } - } - } - }, - "schema": {} - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "mcpInitializeResponseExample": { - "description": "Example response showing the successful result of communication initialisation over MCP protocol", - "value": { - "id": 1, - "jsonrpc": "2.0", - "result": { - "capabilities": { - "tools": { - "listChanged": true - } - }, - "protocolVersion": "2024-11-05", - "serverInfo": { - "name": "elastic-mcp-server", - "version": "0.0.1" - } - } - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "MCP server", - "tags": [ - "agent builder" - ], - "x-state": "" - } - }, - "/api/agent_builder/tools": { - "get": { - "description": "List all available tools. Use this endpoint to retrieve complete tool definitions including their schemas and configuration requirements.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "get-agent-builder-tools", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "listToolsResponseExample": { - "description": "Example response returning a list of existing tools", - "value": { - "results": [ - { - "configuration": {}, - "description": "A powerful tool for searching and analyzing data within your Elasticsearch cluster.\nIt supports both full-text relevance searches and structured analytical queries.\n\nUse this tool for any query that involves finding documents, counting, aggregating, or summarizing data from a known index.\n\nExamples of queries:\n- \"find articles about serverless architecture\"\n- \"search for support tickets mentioning 'billing issue' or 'refund request'\"\n- \"what is our policy on parental leave?\"\n- \"list all products where the category is 'electronics'\"\n- \"show me the last 5 documents from that index\"\n- \"show me the sales over the last year break down by month\"\n\nNote:\n- The 'index' parameter can be used to specify which index to search against.\n If not provided, the tool will decide itself which is the best index to use.\n- It is perfectly fine not to specify the 'index' parameter. It should only be specified when you already\n know about the index and fields you want to search on, e.g. if the user explicitly specified it.", - "id": "platform.core.search", - "readonly": true, - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "index": { - "description": "(optional) Index to search against. If not provided, will automatically select the best index to use based on the query.", - "type": "string" - }, - "query": { - "description": "A natural language query expressing the search request", - "type": "string" - } - }, - "required": [ - "query" - ], - "type": "object" - }, - "tags": [], - "type": "builtin" - }, - { - "configuration": {}, - "description": "Retrieve the full content (source) of an Elasticsearch document based on its ID and index name.", - "id": "platform.core.get_document_by_id", - "readonly": true, - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "id": { - "description": "ID of the document to retrieve", - "type": "string" - }, - "index": { - "description": "Name of the index to retrieve the document from", - "type": "string" - } - }, - "required": [ - "id", - "index" - ], - "type": "object" - }, - "tags": [], - "type": "builtin" - }, - { - "configuration": {}, - "description": "Execute an ES|QL query and return the results in a tabular format.\n\n**IMPORTANT**: This tool only **runs** queries; it does not write them.\nThink of this as the final step after a query has been prepared.\n\nYou **must** get the query from one of two sources before calling this tool:\n1. The output of the `platform.core.generate_esql` tool (if the tool is available).\n2. A verbatim query provided directly by the user.\n\nUnder no circumstances should you invent, guess, or modify a query yourself for this tool.\nIf you need a query, use the `platform.core.generate_esql` tool first.", - "id": "platform.core.execute_esql", - "readonly": true, - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "query": { - "description": "The ES|QL query to execute", - "type": "string" - } - }, - "required": [ - "query" - ], - "type": "object" - }, - "tags": [], - "type": "builtin" - }, - { - "configuration": { - "params": { - "limit": { - "description": "Maximum number of results to return", - "type": "integer" - }, - "startTime": { - "description": "Start time for the analysis in ISO format", - "type": "date" - } - }, - "query": "FROM financial_trades | WHERE execution_timestamp >= ?startTime | STATS trade_count=COUNT(*), avg_price=AVG(execution_price) BY symbol | SORT trade_count DESC | LIMIT ?limit" - }, - "description": "Example ES|QL query tool for analyzing financial trades with time filtering", - "id": "example-esql-tool", - "readonly": false, - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "description": "Parameters needed to execute the query", - "properties": { - "limit": { - "description": "Maximum number of results to return", - "type": "integer" - }, - "startTime": { - "description": "Start time for the analysis in ISO format", - "format": "date-time", - "type": "string" - } - }, - "required": [ - "startTime", - "limit" - ], - "type": "object" - }, - "tags": [ - "analytics", - "finance" - ], - "type": "esql" - }, - { - "configuration": { - "pattern": "financial_*" - }, - "description": "Search tool specifically for financial data analysis and reporting", - "id": "example-index-search-tool", - "readonly": false, - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "nlQuery": { - "description": "A natural language query expressing the search request", - "type": "string" - } - }, - "required": [ - "nlQuery" - ], - "type": "object" - }, - "tags": [ - "search", - "finance" - ], - "type": "index_search" - } - ] - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "List tools", - "tags": [ - "agent builder" - ], - "x-state": "" - }, - "post": { - "description": "Create a new tool. Use this endpoint to define a custom tool with specific functionality and configuration for use by agents.

[Required authorization] Route required privileges: manage_agent_builder.", - "operationId": "post-agent-builder-tools", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "createEsqlToolRequest": { - "description": "Example request to create an ESQL query tool with a pre-defined query", - "value": { - "configuration": { - "params": { - "limit": { - "description": "Maximum number of results to return", - "type": "integer" - }, - "startTime": { - "description": "Start time for the analysis in ISO format", - "type": "date" - } - }, - "query": "FROM financial_trades | WHERE execution_timestamp >= ?startTime | STATS trade_count=COUNT(*), avg_price=AVG(execution_price) BY symbol | SORT trade_count DESC | LIMIT ?limit" - }, - "description": "Example ES|QL query tool for analyzing financial trades with time filtering", - "id": "example-esql-tool", - "tags": [ - "analytics", - "finance" - ], - "type": "esql" - } - }, - "createIndexSearchToolRequest": { - "description": "Example request to create an index_search tool with a pre-defined index pattern", - "value": { - "configuration": { - "pattern": "financial_*" - }, - "description": "Search tool specifically for financial data analysis and reporting", - "id": "example-index-search-tool", - "tags": [ - "search", - "finance" - ], - "type": "index_search" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "configuration": { - "additionalProperties": {}, - "description": "Tool-specific configuration parameters. See examples for details.", - "type": "object" - }, - "description": { - "default": "", - "description": "Description of what the tool does.", - "type": "string" - }, - "id": { - "description": "Unique identifier for the tool.", - "type": "string" - }, - "tags": { - "default": [], - "description": "Optional tags for categorizing and organizing tools.", - "items": { - "description": "Tag for categorizing the tool.", - "type": "string" - }, - "type": "array" - }, - "type": { - "description": "The type of tool to create (e.g., esql, index_search).", - "enum": [ - "esql", - "index_search", - "workflow", - "mcp" - ], - "type": "string" - } - }, - "required": [ - "id", - "type", - "configuration" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "createEsqlToolExample": { - "description": "Example response returning a definition of ESQL tool created", - "value": { - "configuration": { - "params": { - "limit": { - "description": "Maximum number of results to return", - "type": "integer" - }, - "startTime": { - "description": "Start time for the analysis in ISO format", - "type": "date" - } - }, - "query": "FROM financial_trades | WHERE execution_timestamp >= ?startTime | STATS trade_count=COUNT(*), avg_price=AVG(execution_price) BY symbol | SORT trade_count DESC | LIMIT ?limit" - }, - "description": "Example ES|QL query tool for analyzing financial trades with time filtering", - "id": "example-esql-tool", - "readonly": false, - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "description": "Parameters needed to execute the query", - "properties": { - "limit": { - "description": "Maximum number of results to return", - "type": "integer" - }, - "startTime": { - "description": "Start time for the analysis in ISO format", - "format": "date-time", - "type": "string" - } - }, - "required": [ - "startTime", - "limit" - ], - "type": "object" - }, - "tags": [ - "analytics", - "finance" - ], - "type": "esql" - } - }, - "createIndexSearchToolExample": { - "description": "Example response returning a definition of search tool tool created", - "value": { - "configuration": { - "pattern": "financial_*" - }, - "description": "Search tool specifically for financial data analysis and reporting", - "id": "example-index-search-tool", - "readonly": false, - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "nlQuery": { - "description": "A natural language query expressing the search request", - "type": "string" - } - }, - "required": [ - "nlQuery" - ], - "type": "object" - }, - "tags": [ - "search", - "finance" - ], - "type": "index_search" - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Create a tool", - "tags": [ - "agent builder" - ], - "x-state": "" - } - }, - "/api/agent_builder/tools/_execute": { - "post": { - "description": "Execute a tool with parameters. Use this endpoint to run a tool directly with specified inputs and optional external connector integration.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "post-agent-builder-tools-execute", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "executeBuiltinEsqlToolRequest": { - "description": "Example request executing platform.core.execute_esql tool", - "value": { - "tool_id": "platform.core.execute_esql", - "tool_params": { - "query": "FROM financial_trades | LIMIT 3" - } - } - }, - "executeBuiltinToolRequest": { - "description": "Example request executing platform.core.get_document_by_id tool", - "value": { - "tool_id": "platform.core.get_document_by_id", - "tool_params": { - "id": "TRD-20250805-0820a89f", - "index": "financial_trades" - } - } - }, - "executeCustomEsqlToolRequest": { - "description": "Example request executing custom example-esql-tool tool", - "value": { - "tool_id": "example-esql-tool", - "tool_params": { - "limit": 3, - "startTime": "2024-01-01T00:00:00Z" - } - } - }, - "executeIndexSearchToolRequest": { - "description": "Example request executing custom example-index-search-tool tool", - "value": { - "tool_id": "example-index-search-tool", - "tool_params": { - "nlQuery": "find trades with high execution prices above 100" - } - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "connector_id": { - "description": "Optional connector ID for tools that require external integrations.", - "type": "string" - }, - "tool_id": { - "description": "The ID of the tool to execute.", - "type": "string" - }, - "tool_params": { - "additionalProperties": {}, - "description": "Parameters to pass to the tool execution. See examples for details", - "type": "object" - } - }, - "required": [ - "tool_id", - "tool_params" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "executeBuiltinEsqlToolExample": { - "description": "Example response calling built-in platform.core.execute_esql tool", - "value": { - "results": [ - { - "data": { - "esql": "FROM financial_trades | LIMIT 3" - }, - "type": "query" - }, - { - "data": { - "columns": [ - { - "name": "account_id", - "type": "keyword" - }, - { - "name": "execution_price", - "type": "double" - }, - { - "name": "symbol", - "type": "keyword" - }, - { - "name": "trade_type", - "type": "keyword" - } - ], - "query": "FROM financial_trades | LIMIT 3", - "source": "esql", - "values": [ - [ - "ACC00179-1f91", - 43.77000045776367, - "CVX", - "sell" - ], - [ - "ACC00407-0bbb", - 660.4199829101562, - "V", - "buy" - ], - [ - "ACC00179-1f91", - 440.3599853515625, - "KO", - "buy" - ] - ] - }, - "tool_result_id": "xTpT", - "type": "tabular_data" - } - ] - } - }, - "executeBuiltinToolExample": { - "description": "Example response calling built-in platform.core.get_document_by_id tool", - "value": { - "results": [ - { - "data": { - "content": { - "account_id": "ACC00271-fb5c", - "execution_price": 488.54, - "execution_timestamp": "2025-08-05T08:04:11.649855", - "last_updated": "2025-09-15T13:23:36", - "order_status": "executed", - "order_type": "market", - "quantity": 131, - "status_reason": "fully_filled", - "symbol": "EWL", - "trade_cost": 63998.74, - "trade_id": "TRD-20250805-0820a89f", - "trade_type": "sell" - }, - "partial": false, - "reference": { - "id": "TRD-20250805-0820a89f", - "index": "financial_trades" - } - }, - "type": "resource" - } - ] - } - }, - "executeCustomEsqlToolExample": { - "description": "Example response calling custom example-esql-tool tool", - "value": { - "results": [ - { - "data": { - "columns": [ - { - "name": "trade_count", - "type": "long" - }, - { - "name": "avg_price", - "type": "double" - }, - { - "name": "symbol", - "type": "keyword" - } - ], - "query": "FROM financial_trades | WHERE execution_timestamp >= ?startTime | STATS trade_count=COUNT(*), avg_price=AVG(execution_price) BY symbol | SORT trade_count DESC | LIMIT ?limit", - "source": "esql", - "values": [ - [ - 2115, - 89.33911587329621, - "US_T_BOND_20YR" - ], - [ - 2112, - 104.20854155945055, - "INTL_CORP_ASIA_D" - ], - [ - 2105, - 89.93244177666526, - "INTL_CORP_EU_B" - ] - ] - }, - "tool_result_id": "Voy8", - "type": "tabular_data" - } - ] - } - }, - "executeIndexSearchToolExample": { - "description": "Example response calling custom example-index-search-tool tool", - "value": { - "results": [ - { - "data": { - "esql": "FROM financial_trades\n| WHERE execution_price > 100\n| LIMIT 100" - }, - "type": "query" - }, - { - "data": { - "columns": [ - { - "name": "account_id", - "type": "keyword" - }, - { - "name": "execution_price", - "type": "double" - }, - { - "name": "execution_timestamp", - "type": "date" - }, - { - "name": "symbol", - "type": "keyword" - }, - { - "name": "trade_type", - "type": "keyword" - } - ], - "query": "FROM financial_trades\n| WHERE execution_price > 100\n| LIMIT 100", - "source": "esql", - "values": [ - [ - "ACC00407-0bbb", - 660.4199829101562, - "2020-09-25T11:06:08.687Z", - "V", - "buy" - ], - [ - "ACC00179-1f91", - 440.3599853515625, - "2025-08-07T21:56:45.377Z", - "KO", - "buy" - ], - [ - "ACC00407-0bbb", - 132.8800048828125, - "2020-11-19T04:39:13.655Z", - "JAP_JGB_10YR", - "sell" - ] - ] - }, - "tool_result_id": "uE8y", - "type": "tabular_data" - } - ] - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Execute a Tool", - "tags": [ - "agent builder" - ], - "x-state": "" - } - }, - "/api/agent_builder/tools/{toolId}": { - "delete": { - "description": "Delete a tool by ID. This action cannot be undone.

[Required authorization] Route required privileges: manage_agent_builder.", - "operationId": "delete-agent-builder-tools-toolid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The unique identifier of the tool to delete.", - "in": "path", - "name": "toolId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "deleteAgentResponseExample": { - "description": "Example response showing that the deletion operation was successful", - "value": { - "success": true - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Delete a tool", - "tags": [ - "agent builder" - ], - "x-state": "" - }, - "get": { - "description": "Get a specific tool by ID. Use this endpoint to retrieve the complete tool definition including its schema and configuration requirements.

[Required authorization] Route required privileges: read_agent_builder.", - "operationId": "get-agent-builder-tools-toolid", - "parameters": [ - { - "description": "The unique identifier of the tool to retrieve.", - "in": "path", - "name": "toolId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "getBuiltinToolExample": { - "description": "Example response returning built-in platform.core.search tool", - "value": { - "configuration": {}, - "description": "A powerful tool for searching and analyzing data within your Elasticsearch cluster.\nIt supports both full-text relevance searches and structured analytical queries.\n\nUse this tool for any query that involves finding documents, counting, aggregating, or summarizing data from a known index.\n\nExamples of queries:\n- \"find articles about serverless architecture\"\n- \"search for support tickets mentioning 'billing issue' or 'refund request'\"\n- \"what is our policy on parental leave?\"\n- \"list all products where the category is 'electronics'\"\n- \"show me the last 5 documents from that index\"\n- \"show me the sales over the last year break down by month\"\n\nNote:\n- The 'index' parameter can be used to specify which index to search against.\n If not provided, the tool will decide itself which is the best index to use.\n- It is perfectly fine not to specify the 'index' parameter. It should only be specified when you already\n know about the index and fields you want to search on, e.g. if the user explicitly specified it.", - "id": "platform.core.search", - "readonly": true, - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "index": { - "description": "(optional) Index to search against. If not provided, will automatically select the best index to use based on the query.", - "type": "string" - }, - "query": { - "description": "A natural language query expressing the search request", - "type": "string" - } - }, - "required": [ - "query" - ], - "type": "object" - }, - "tags": [], - "type": "builtin" - } - }, - "getEsqlToolExample": { - "description": "Example response returning custom example-esql-tool tool", - "value": { - "configuration": { - "params": { - "limit": { - "description": "Maximum number of results to return", - "type": "integer" - }, - "startTime": { - "description": "Start time for the analysis in ISO format", - "type": "date" - } - }, - "query": "FROM financial_trades | WHERE execution_timestamp >= ?startTime | STATS trade_count=COUNT(*), avg_price=AVG(execution_price) BY symbol | SORT trade_count DESC | LIMIT ?limit" - }, - "description": "Example ES|QL query tool for analyzing financial trades with time filtering", - "id": "example-esql-tool", - "readonly": false, - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "description": "Parameters needed to execute the query", - "properties": { - "limit": { - "description": "Maximum number of results to return", - "type": "integer" - }, - "startTime": { - "description": "Start time for the analysis in ISO format", - "format": "date-time", - "type": "string" - } - }, - "required": [ - "startTime", - "limit" - ], - "type": "object" - }, - "tags": [ - "analytics", - "finance" - ], - "type": "esql" - } - }, - "getIndexSearchToolExample": { - "description": "Example response returning custom example-index-search-tool tool", - "value": { - "configuration": { - "pattern": "financial_*" - }, - "description": "Search tool specifically for financial data analysis and reporting", - "id": "example-index-search-tool", - "readonly": false, - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "nlQuery": { - "description": "A natural language query expressing the search request", - "type": "string" - } - }, - "required": [ - "nlQuery" - ], - "type": "object" - }, - "tags": [ - "search", - "finance" - ], - "type": "index_search" - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Get a tool by id", - "tags": [ - "agent builder" - ], - "x-state": "" - }, - "put": { - "description": "Update an existing tool. Use this endpoint to modify any aspect of the tool's configuration or metadata.

[Required authorization] Route required privileges: manage_agent_builder.", - "operationId": "put-agent-builder-tools-toolid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The unique identifier of the tool to update.", - "in": "path", - "name": "toolId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "updateEsqlToolRequest": { - "description": "Example request to update the custom ESQL tool", - "value": { - "configuration": { - "params": { - "limit": { - "description": "Maximum number of results to return", - "type": "integer" - }, - "startTime": { - "description": "Start time for the analysis in ISO format", - "type": "date" - }, - "symbolPattern": { - "description": "Pattern to filter symbols (e.g., 'US_*' for US instruments)", - "type": "keyword" - } - }, - "query": "FROM financial_trades | WHERE execution_timestamp >= ?startTime AND symbol LIKE ?symbolPattern | STATS trade_count=COUNT(*), avg_price=AVG(execution_price), total_volume=SUM(quantity) BY symbol | SORT trade_count DESC | LIMIT ?limit" - }, - "description": "Updated ES|QL query tool for comprehensive financial analysis with enhanced filtering", - "tags": [ - "analytics", - "finance", - "reporting" - ] - } - }, - "updateIndexSearchToolRequest": { - "description": "Example request to update the custom Search tool", - "value": { - "description": "Updated search tool for comprehensive financial data analysis, reporting, and compliance monitoring", - "tags": [ - "search", - "finance", - "compliance", - "reporting" - ] - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "configuration": { - "additionalProperties": {}, - "description": "Updated tool-specific configuration parameters. See examples for details.", - "type": "object" - }, - "description": { - "description": "Updated description of what the tool does.", - "type": "string" - }, - "tags": { - "description": "Updated tags for categorizing and organizing tools.", - "items": { - "description": "Updated tag for categorizing the tool.", - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "updateEsqlToolExample": { - "description": "Example response showing the updated ESQL tool", - "value": { - "configuration": { - "params": { - "limit": { - "description": "Maximum number of results to return", - "type": "integer" - }, - "startTime": { - "description": "Start time for the analysis in ISO format", - "type": "date" - }, - "symbolPattern": { - "description": "Pattern to filter symbols (e.g., 'US_*' for US instruments)", - "type": "keyword" - } - }, - "query": "FROM financial_trades | WHERE execution_timestamp >= ?startTime AND symbol LIKE ?symbolPattern | STATS trade_count=COUNT(*), avg_price=AVG(execution_price), total_volume=SUM(quantity) BY symbol | SORT trade_count DESC | LIMIT ?limit" - }, - "description": "Updated ES|QL query tool for comprehensive financial analysis with enhanced filtering", - "id": "example-esql-tool", - "readonly": false, - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "description": "Parameters needed to execute the enhanced query", - "properties": { - "limit": { - "description": "Maximum number of results to return", - "type": "integer" - }, - "startTime": { - "description": "Start time for the analysis in ISO format", - "format": "date-time", - "type": "string" - }, - "symbolPattern": { - "description": "Pattern to filter symbols (e.g., 'US_*' for US instruments)", - "type": "string" - } - }, - "required": [ - "startTime", - "symbolPattern", - "limit" - ], - "type": "object" - }, - "tags": [ - "analytics", - "finance", - "reporting" - ], - "type": "esql" - } - }, - "updateIndexSearchToolExample": { - "description": "Example response showing the updated Search tool", - "value": { - "configuration": { - "pattern": "financial_*" - }, - "description": "Updated search tool for comprehensive financial data analysis, reporting, and compliance monitoring", - "id": "example-index-search-tool", - "readonly": false, - "schema": { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "properties": { - "nlQuery": { - "description": "A natural language query expressing the search request", - "type": "string" - } - }, - "required": [ - "nlQuery" - ], - "type": "object" - }, - "tags": [ - "search", - "finance", - "compliance", - "reporting" - ], - "type": "index_search" - } - } - } - } - }, - "description": "Indicates a successful response" - } - }, - "summary": "Update a tool", - "tags": [ - "agent builder" - ], - "x-state": "" - } - }, - "/api/alerting/rule/{id}": { - "delete": { - "operationId": "delete-alerting-rule-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the rule.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a rule with the given ID does not exist." - } - }, - "summary": "Delete a rule", - "tags": [ - "alerting" - ] - }, - "get": { - "operationId": "get-alerting-rule-id", - "parameters": [ - { - "description": "The identifier for the rule.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "actions": { - "items": { - "additionalProperties": false, - "properties": { - "alerts_filter": { - "additionalProperties": false, - "description": "Defines a period that limits whether the action runs.", - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "dsl": { - "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL).", - "type": "string" - }, - "filters": { - "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL) as defined in the `kbn-es-query` package.", - "items": { - "additionalProperties": false, - "properties": { - "$state": { - "additionalProperties": false, - "properties": { - "store": { - "description": "A filter can be either specific to an application context or applied globally.", - "enum": [ - "appState", - "globalState" - ], - "type": "string" - } - }, - "required": [ - "store" - ], - "type": "object" - }, - "meta": { - "additionalProperties": {}, - "type": "object" - }, - "query": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "meta" - ], - "type": "object" - }, - "type": "array" - }, - "kql": { - "description": "A filter written in Kibana Query Language (KQL).", - "type": "string" - } - }, - "required": [ - "kql", - "filters" - ], - "type": "object" - }, - "timeframe": { - "additionalProperties": false, - "properties": { - "days": { - "description": "Defines the days of the week that the action can run, represented as an array of numbers. For example, `1` represents Monday. An empty array is equivalent to specifying all the days of the week.", - "items": { - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "type": "integer" - }, - "type": "array" - }, - "hours": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end of the time frame in 24-hour notation (`hh:mm`).", - "type": "string" - }, - "start": { - "description": "The start of the time frame in 24-hour notation (`hh:mm`).", - "type": "string" - } - }, - "required": [ - "start", - "end" - ], - "type": "object" - }, - "timezone": { - "description": "The ISO time zone for the `hours` values. Values such as `UTC` and `UTC+1` also work but lack built-in daylight savings time support and are not recommended.", - "type": "string" - } - }, - "required": [ - "days", - "hours", - "timezone" - ], - "type": "object" - } - }, - "type": "object" - }, - "connector_type_id": { - "description": "The type of connector. This property appears in responses but cannot be set in requests.", - "type": "string" - }, - "frequency": { - "additionalProperties": false, - "properties": { - "notify_when": { - "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "enum": [ - "onActionGroupChange", - "onActiveAlert", - "onThrottleInterval" - ], - "type": "string" - }, - "summary": { - "description": "Indicates whether the action is a summary.", - "type": "boolean" - }, - "throttle": { - "description": "The throttle interval, which defines how often an alert generates repeated actions. It is specified in seconds, minutes, hours, or days and is applicable only if 'notify_when' is set to 'onThrottleInterval'. NOTE: You cannot specify the throttle interval at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "summary", - "notify_when", - "throttle" - ], - "type": "object" - }, - "group": { - "description": "The group name, which affects when the action runs (for example, when the threshold is met or when the alert is recovered). Each rule type has a list of valid action group names. If you don't need to group actions, set to `default`.", - "type": "string" - }, - "id": { - "description": "The identifier for the connector saved object.", - "type": "string" - }, - "params": { - "additionalProperties": {}, - "description": "The parameters for the action, which are sent to the connector. The `params` are handled as Mustache templates and passed a default set of context.", - "type": "object" - }, - "use_alert_data_for_template": { - "description": "Indicates whether to use alert data as a template.", - "type": "boolean" - }, - "uuid": { - "description": "A universally unique identifier (UUID) for the action.", - "type": "string" - } - }, - "required": [ - "id", - "connector_type_id", - "params" - ], - "type": "object" - }, - "type": "array" - }, - "active_snoozes": { - "items": { - "description": "List of active snoozes for the rule.", - "type": "string" - }, - "type": "array" - }, - "alert_delay": { - "additionalProperties": false, - "description": "Indicates that an alert occurs only when the specified number of consecutive runs met the rule conditions.", - "properties": { - "active": { - "description": "The number of consecutive runs that must meet the rule conditions.", - "type": "number" - } - }, - "required": [ - "active" - ], - "type": "object" - }, - "api_key_created_by_user": { - "description": "Indicates whether the API key that is associated with the rule was created by the user.", - "nullable": true, - "type": "boolean" - }, - "api_key_owner": { - "description": "The owner of the API key that is associated with the rule and used to run background tasks.", - "nullable": true, - "type": "string" - }, - "artifacts": { - "additionalProperties": false, - "properties": { - "dashboards": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "type": "array" - }, - "investigation_guide": { - "additionalProperties": false, - "properties": { - "blob": { - "description": "User-created content that describes alert causes and remdiation.", - "type": "string" - } - }, - "required": [ - "blob" - ], - "type": "object" - } - }, - "type": "object" - }, - "consumer": { - "description": "The name of the application or feature that owns the rule. For example: `alerts`, `apm`, `discover`, `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, `securitySolution`, `siem`, `stackAlerts`, or `uptime`.", - "type": "string" - }, - "created_at": { - "description": "The date and time that the rule was created.", - "type": "string" - }, - "created_by": { - "description": "The identifier for the user that created the rule.", - "nullable": true, - "type": "string" - }, - "enabled": { - "description": "Indicates whether you want to run the rule on an interval basis after it is created.", - "type": "boolean" - }, - "execution_status": { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "message": { - "description": "Error message.", - "type": "string" - }, - "reason": { - "description": "Reason for error.", - "enum": [ - "read", - "decrypt", - "execute", - "unknown", - "license", - "timeout", - "disabled", - "validate" - ], - "type": "string" - } - }, - "required": [ - "reason", - "message" - ], - "type": "object" - }, - "last_duration": { - "description": "Duration of last execution of the rule.", - "type": "number" - }, - "last_execution_date": { - "description": "The date and time when rule was executed last.", - "type": "string" - }, - "status": { - "description": "Status of rule execution.", - "enum": [ - "ok", - "active", - "error", - "warning", - "pending", - "unknown" - ], - "type": "string" - }, - "warning": { - "additionalProperties": false, - "properties": { - "message": { - "description": "Warning message.", - "type": "string" - }, - "reason": { - "description": "Reason for warning.", - "enum": [ - "maxExecutableActions", - "maxAlerts", - "maxQueuedActions", - "ruleExecution" - ], - "type": "string" - } - }, - "required": [ - "reason", - "message" - ], - "type": "object" - } - }, - "required": [ - "status", - "last_execution_date" - ], - "type": "object" - }, - "flapping": { - "additionalProperties": false, - "description": "When flapping detection is turned on, alerts that switch quickly between active and recovered states are identified as “flapping” and notifications are reduced.", - "nullable": true, - "properties": { - "enabled": { - "description": "Determines whether the rule can enter the flapping state. By default, rules can enter the flapping state.", - "type": "boolean" - }, - "look_back_window": { - "description": "The minimum number of runs in which the threshold must be met.", - "maximum": 20, - "minimum": 2, - "type": "number" - }, - "status_change_threshold": { - "description": "The minimum number of times an alert must switch states in the look back window.", - "maximum": 20, - "minimum": 2, - "type": "number" - } - }, - "required": [ - "look_back_window", - "status_change_threshold" - ], - "type": "object" - }, - "id": { - "description": "The identifier for the rule.", - "type": "string" - }, - "is_snoozed_until": { - "description": "The date when the rule will no longer be snoozed.", - "nullable": true, - "type": "string" - }, - "last_run": { - "additionalProperties": false, - "nullable": true, - "properties": { - "alerts_count": { - "additionalProperties": false, - "properties": { - "active": { - "description": "Number of active alerts during last run.", - "nullable": true, - "type": "number" - }, - "ignored": { - "description": "Number of ignored alerts during last run.", - "nullable": true, - "type": "number" - }, - "new": { - "description": "Number of new alerts during last run.", - "nullable": true, - "type": "number" - }, - "recovered": { - "description": "Number of recovered alerts during last run.", - "nullable": true, - "type": "number" - } - }, - "type": "object" - }, - "outcome": { - "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", - "enum": [ - "succeeded", - "warning", - "failed" - ], - "type": "string" - }, - "outcome_msg": { - "items": { - "description": "Outcome message generated during last rule run.", - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "outcome_order": { - "description": "Order of the outcome.", - "type": "number" - }, - "warning": { - "description": "Warning of last rule execution.", - "enum": [ - "read", - "decrypt", - "execute", - "unknown", - "license", - "timeout", - "disabled", - "validate", - "maxExecutableActions", - "maxAlerts", - "maxQueuedActions", - "ruleExecution" - ], - "nullable": true, - "type": "string" - } - }, - "required": [ - "outcome", - "alerts_count" - ], - "type": "object" - }, - "mapped_params": { - "additionalProperties": {}, - "type": "object" - }, - "monitoring": { - "additionalProperties": false, - "description": "Monitoring details of the rule.", - "properties": { - "run": { - "additionalProperties": false, - "description": "Rule run details.", - "properties": { - "calculated_metrics": { - "additionalProperties": false, - "description": "Calculation of different percentiles and success ratio.", - "properties": { - "p50": { - "type": "number" - }, - "p95": { - "type": "number" - }, - "p99": { - "type": "number" - }, - "success_ratio": { - "type": "number" - } - }, - "required": [ - "success_ratio" - ], - "type": "object" - }, - "history": { - "description": "History of the rule run.", - "items": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "Duration of the rule run.", - "type": "number" - }, - "outcome": { - "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", - "enum": [ - "succeeded", - "warning", - "failed" - ], - "type": "string" - }, - "success": { - "description": "Indicates whether the rule run was successful.", - "type": "boolean" - }, - "timestamp": { - "description": "Time of rule run.", - "type": "number" - } - }, - "required": [ - "success", - "timestamp" - ], - "type": "object" - }, - "type": "array" - }, - "last_run": { - "additionalProperties": false, - "properties": { - "metrics": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "Duration of most recent rule run.", - "type": "number" - }, - "gap_duration_s": { - "description": "Duration in seconds of rule run gap.", - "nullable": true, - "type": "number" - }, - "gap_range": { - "additionalProperties": false, - "nullable": true, - "properties": { - "gte": { - "description": "End of the gap range.", - "type": "string" - }, - "lte": { - "description": "Start of the gap range.", - "type": "string" - } - }, - "required": [ - "lte", - "gte" - ], - "type": "object" - }, - "total_alerts_created": { - "description": "Total number of alerts created during last rule run.", - "nullable": true, - "type": "number" - }, - "total_alerts_detected": { - "description": "Total number of alerts detected during last rule run.", - "nullable": true, - "type": "number" - }, - "total_indexing_duration_ms": { - "description": "Total time spent indexing documents during last rule run in milliseconds.", - "nullable": true, - "type": "number" - }, - "total_search_duration_ms": { - "description": "Total time spent performing Elasticsearch searches as measured by Kibana; includes network latency and time spent serializing or deserializing the request and response.", - "nullable": true, - "type": "number" - } - }, - "type": "object" - }, - "timestamp": { - "description": "Time of the most recent rule run.", - "type": "string" - } - }, - "required": [ - "timestamp", - "metrics" - ], - "type": "object" - } - }, - "required": [ - "history", - "calculated_metrics", - "last_run" - ], - "type": "object" - } - }, - "required": [ - "run" - ], - "type": "object" - }, - "mute_all": { - "description": "Indicates whether all alerts are muted.", - "type": "boolean" - }, - "muted_alert_ids": { - "items": { - "description": "List of identifiers of muted alerts. ", - "type": "string" - }, - "type": "array" - }, - "name": { - "description": " The name of the rule.", - "type": "string" - }, - "next_run": { - "description": "Date and time of the next run of the rule.", - "nullable": true, - "type": "string" - }, - "notify_when": { - "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "enum": [ - "onActionGroupChange", - "onActiveAlert", - "onThrottleInterval" - ], - "nullable": true, - "type": "string" - }, - "params": { - "additionalProperties": {}, - "description": "The parameters for the rule.", - "type": "object" - }, - "revision": { - "description": "The rule revision number.", - "type": "number" - }, - "rule_type_id": { - "description": "The rule type identifier.", - "type": "string" - }, - "running": { - "description": "Indicates whether the rule is running.", - "nullable": true, - "type": "boolean" - }, - "schedule": { - "additionalProperties": false, - "properties": { - "interval": { - "description": "The interval is specified in seconds, minutes, hours, or days.", - "type": "string" - } - }, - "required": [ - "interval" - ], - "type": "object" - }, - "scheduled_task_id": { - "description": "Identifier of the scheduled task.", - "type": "string" - }, - "snooze_schedule": { - "items": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "Duration of the rule snooze schedule.", - "type": "number" - }, - "id": { - "description": "Identifier of the rule snooze schedule.", - "type": "string" - }, - "rRule": { - "additionalProperties": false, - "properties": { - "byhour": { - "items": { - "description": "Indicates hours of the day to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "byminute": { - "items": { - "description": "Indicates minutes of the hour to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bymonth": { - "items": { - "description": "Indicates months of the year that this rule should recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bymonthday": { - "items": { - "description": "Indicates the days of the month to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bysecond": { - "items": { - "description": "Indicates seconds of the day to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bysetpos": { - "items": { - "description": "A positive or negative integer affecting the nth day of the month. For example, -2 combined with `byweekday` of FR is 2nd to last Friday of the month. It is recommended to not set this manually and just use `byweekday`.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "byweekday": { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ], - "description": "Indicates the days of the week to recur or else nth-day-of-month strings. For example, \"+2TU\" second Tuesday of month, \"-1FR\" last Friday of the month, which are internally converted to a `byweekday/bysetpos` combination." - }, - "nullable": true, - "type": "array" - }, - "byweekno": { - "items": { - "description": "Indicates number of the week hours to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "byyearday": { - "items": { - "description": "Indicates the days of the year that this rule should recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "count": { - "description": "Number of times the rule should recur until it stops.", - "type": "number" - }, - "dtstart": { - "description": "Rule start date in Coordinated Universal Time (UTC).", - "type": "string" - }, - "freq": { - "description": "Indicates frequency of the rule. Options are YEARLY, MONTHLY, WEEKLY, DAILY.", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ], - "type": "integer" - }, - "interval": { - "description": "Indicates the interval of frequency. For example, 1 and YEARLY is every 1 year, 2 and WEEKLY is every 2 weeks.", - "type": "number" - }, - "tzid": { - "description": "Indicates timezone abbreviation.", - "type": "string" - }, - "until": { - "description": "Recur the rule until this date.", - "type": "string" - }, - "wkst": { - "description": "Indicates the start of week, defaults to Monday.", - "enum": [ - "MO", - "TU", - "WE", - "TH", - "FR", - "SA", - "SU" - ], - "type": "string" - } - }, - "required": [ - "dtstart", - "tzid" - ], - "type": "object" - }, - "skipRecurrences": { - "items": { - "description": "Skips recurrence of rule on this date.", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "duration", - "rRule" - ], - "type": "object" - }, - "type": "array" - }, - "tags": { - "items": { - "description": "The tags for the rule.", - "type": "string" - }, - "type": "array" - }, - "throttle": { - "deprecated": true, - "description": "Deprecated in 8.13.0. Use the `throttle` property in the action `frequency` object instead. The throttle interval, which defines how often an alert generates repeated actions. NOTE: You cannot specify the throttle interval at both the rule and action level. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "nullable": true, - "type": "string" - }, - "updated_at": { - "description": "The date and time that the rule was updated most recently.", - "type": "string" - }, - "updated_by": { - "description": "The identifier for the user that updated this rule most recently.", - "nullable": true, - "type": "string" - }, - "view_in_app_relative_url": { - "description": "Relative URL to view rule in the app.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "id", - "enabled", - "name", - "tags", - "rule_type_id", - "consumer", - "schedule", - "actions", - "params", - "created_by", - "updated_by", - "created_at", - "updated_at", - "api_key_owner", - "mute_all", - "muted_alert_ids", - "execution_status", - "revision" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a rule with the given ID does not exist." - } - }, - "summary": "Get rule details", - "tags": [ - "alerting" - ] - }, - "post": { - "operationId": "post-alerting-rule-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the rule. If it is omitted, an ID is randomly generated.", - "in": "path", - "name": "id", - "required": false, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "createEsQueryEsqlRuleRequest": { - "description": "Create an Elasticsearch query rule that uses Elasticsearch Query Language (ES|QL) to define its query and a server log connector to send notifications.\n", - "summary": "Elasticsearch query rule (ES|QL)", - "value": { - "actions": [ - { - "frequency": { - "notify_when": "onActiveAlert", - "summary": false - }, - "group": "query matched", - "id": "d0db1fe0-78d6-11ee-9177-f7d404c8c945", - "params": { - "level": "info", - "message": "Elasticsearch query rule '{{rule.name}}' is active:\n- Value: {{context.value}} - Conditions Met: {{context.conditions}} over {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}} - Timestamp: {{context.date}} - Link: {{context.link}}" - } - } - ], - "consumer": "stackAlerts", - "name": "my Elasticsearch query ESQL rule", - "params": { - "esqlQuery": { - "esql": "FROM kibana_sample_data_logs | KEEP bytes, clientip, host, geo.dest | where geo.dest != \"GB\" | STATS sumbytes = sum(bytes) by clientip, host | WHERE sumbytes > 5000 | SORT sumbytes desc | LIMIT 10" - }, - "searchType": "esqlQuery", - "size": 0, - "threshold": [ - 0 - ], - "thresholdComparator": ">", - "timeField": "@timestamp", - "timeWindowSize": 1, - "timeWindowUnit": "d" - }, - "rule_type_id": ".es-query", - "schedule": { - "interval": "1d" - } - } - }, - "createEsQueryKqlRuleRequest": { - "description": "Create an Elasticsearch query rule that uses Kibana query language (KQL).", - "summary": "Elasticsearch query rule (KQL)", - "value": { - "consumer": "alerts", - "name": "my Elasticsearch query KQL rule", - "params": { - "aggType": "count", - "excludeHitsFromPreviousRun": true, - "groupBy": "all", - "searchConfiguration": { - "index": "90943e30-9a47-11e8-b64d-95841ca0b247", - "query": { - "language": "kuery", - "query": "\"\"geo.src : \"US\" \"\"" - } - }, - "searchType": "searchSource", - "size": 100, - "threshold": [ - 1000 - ], - "thresholdComparator": ">", - "timeWindowSize": 5, - "timeWindowUnit": "m" - }, - "rule_type_id": ".es-query", - "schedule": { - "interval": "1m" - } - } - }, - "createEsQueryRuleRequest": { - "description": "Create an Elasticsearch query rule that uses Elasticsearch query domain specific language (DSL) to define its query and a server log connector to send notifications.\n", - "summary": "Elasticsearch query rule (DSL)", - "value": { - "actions": [ - { - "frequency": { - "notify_when": "onThrottleInterval", - "summary": true, - "throttle": "1d" - }, - "group": "query matched", - "id": "fdbece50-406c-11ee-850e-c71febc4ca7f", - "params": { - "level": "info", - "message": "The system has detected {{alerts.new.count}} new, {{alerts.ongoing.count}} ongoing, and {{alerts.recovered.count}} recovered alerts." - } - }, - { - "frequency": { - "notify_when": "onActionGroupChange", - "summary": false - }, - "group": "recovered", - "id": "fdbece50-406c-11ee-850e-c71febc4ca7f", - "params": { - "level": "info", - "message": "Recovered" - } - } - ], - "consumer": "alerts", - "name": "my Elasticsearch query rule", - "params": { - "esQuery": "\"\"\"{\"query\":{\"match_all\" : {}}}\"\"\"", - "index": [ - "kibana_sample_data_logs" - ], - "size": 100, - "threshold": [ - 100 - ], - "thresholdComparator": ">", - "timeField": "@timestamp", - "timeWindowSize": 1, - "timeWindowUnit": "d" - }, - "rule_type_id": ".es-query", - "schedule": { - "interval": "1d" - } - } - }, - "createIndexThresholdRuleRequest": { - "description": "Create an index threshold rule that uses a server log connector to send notifications when the threshold is met.\n", - "summary": "Index threshold rule", - "value": { - "actions": [ - { - "frequency": { - "notify_when": "onActionGroupChange", - "summary": false - }, - "group": "threshold met", - "id": "48de3460-f401-11ed-9f8e-399c75a2deeb", - "params": { - "level": "info", - "message": "Rule '{{rule.name}}' is active for group '{{context.group}}':\n\n- Value: {{context.value}}\n- Conditions Met: {{context.conditions}} over {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}}\n- Timestamp: {{context.date}}" - } - } - ], - "alert_delay": { - "active": 3 - }, - "consumer": "alerts", - "name": "my rule", - "params": { - "aggField": "sheet.version", - "aggType": "avg", - "groupBy": "top", - "index": [ - ".test-index" - ], - "termField": "name.keyword", - "termSize": 6, - "threshold": [ - 1000 - ], - "thresholdComparator": ">", - "timeField": "@timestamp", - "timeWindowSize": 5, - "timeWindowUnit": "m" - }, - "rule_type_id": ".index-threshold", - "schedule": { - "interval": "1m" - }, - "tags": [ - "cpu" - ] - } - }, - "createTrackingContainmentRuleRequest": { - "description": "Create a tracking containment rule that checks when an entity is contained or no longer contained within a boundary.\n", - "summary": "Tracking containment rule", - "value": { - "consumer": "alerts", - "name": "my tracking rule", - "params": { - "boundaryGeoField": "location", - "boundaryIndexId": "0cd90abf-abe7-44c7-909a-f621bbbcfefc", - "boundaryIndexTitle": "boundary*", - "boundaryNameField": "name", - "boundaryType": "entireIndex", - "dateField\"": "@timestamp", - "entity": "agent.keyword", - "geoField": "geo.coordinates", - "index": "kibana_sample_data_logs", - "indexId": "90943e30-9a47-11e8-b64d-95841ca0b247" - }, - "rule_type_id": ".geo-containment", - "schedule": { - "interval": "1h" - } - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "actions": { - "default": [], - "items": { - "additionalProperties": false, - "description": "An action that runs under defined conditions.", - "properties": { - "alerts_filter": { - "additionalProperties": false, - "description": "Conditions that affect whether the action runs. If you specify multiple conditions, all conditions must be met for the action to run. For example, if an alert occurs within the specified time frame and matches the query, the action runs.", - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "dsl": { - "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL).", - "type": "string" - }, - "filters": { - "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL) as defined in the `kbn-es-query` package.", - "items": { - "additionalProperties": false, - "properties": { - "$state": { - "additionalProperties": false, - "properties": { - "store": { - "description": "A filter can be either specific to an application context or applied globally.", - "enum": [ - "appState", - "globalState" - ], - "type": "string" - } - }, - "required": [ - "store" - ], - "type": "object" - }, - "meta": { - "additionalProperties": {}, - "type": "object" - }, - "query": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "meta" - ], - "type": "object" - }, - "type": "array" - }, - "kql": { - "description": "A filter written in Kibana Query Language (KQL).", - "type": "string" - } - }, - "required": [ - "kql", - "filters" - ], - "type": "object" - }, - "timeframe": { - "additionalProperties": false, - "description": "Defines a period that limits whether the action runs.", - "properties": { - "days": { - "description": "Defines the days of the week that the action can run, represented as an array of numbers. For example, `1` represents Monday. An empty array is equivalent to specifying all the days of the week.", - "items": { - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "type": "integer" - }, - "type": "array" - }, - "hours": { - "additionalProperties": false, - "description": "Defines the range of time in a day that the action can run. If the `start` value is `00:00` and the `end` value is `24:00`, actions be generated all day.", - "properties": { - "end": { - "description": "The end of the time frame in 24-hour notation (`hh:mm`).", - "type": "string" - }, - "start": { - "description": "The start of the time frame in 24-hour notation (`hh:mm`).", - "type": "string" - } - }, - "required": [ - "start", - "end" - ], - "type": "object" - }, - "timezone": { - "description": "The ISO time zone for the `hours` values. Values such as `UTC` and `UTC+1` also work but lack built-in daylight savings time support and are not recommended.", - "type": "string" - } - }, - "required": [ - "days", - "hours", - "timezone" - ], - "type": "object" - } - }, - "type": "object" - }, - "frequency": { - "additionalProperties": false, - "properties": { - "notify_when": { - "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "enum": [ - "onActionGroupChange", - "onActiveAlert", - "onThrottleInterval" - ], - "type": "string" - }, - "summary": { - "description": "Indicates whether the action is a summary.", - "type": "boolean" - }, - "throttle": { - "description": "The throttle interval, which defines how often an alert generates repeated actions. It is specified in seconds, minutes, hours, or days and is applicable only if `notify_when` is set to `onThrottleInterval`. NOTE: You cannot specify the throttle interval at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "summary", - "notify_when", - "throttle" - ], - "type": "object" - }, - "group": { - "description": "The group name, which affects when the action runs (for example, when the threshold is met or when the alert is recovered). Each rule type has a list of valid action group names. If you don't need to group actions, set to `default`.", - "type": "string" - }, - "id": { - "description": "The identifier for the connector saved object.", - "type": "string" - }, - "params": { - "additionalProperties": {}, - "default": {}, - "description": "The parameters for the action, which are sent to the connector. The `params` are handled as Mustache templates and passed a default set of context.", - "type": "object" - }, - "use_alert_data_for_template": { - "description": "Indicates whether to use alert data as a template.", - "type": "boolean" - }, - "uuid": { - "description": "A universally unique identifier (UUID) for the action.", - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "type": "array" - }, - "alert_delay": { - "additionalProperties": false, - "description": "Indicates that an alert occurs only when the specified number of consecutive runs met the rule conditions.", - "properties": { - "active": { - "description": "The number of consecutive runs that must meet the rule conditions.", - "type": "number" - } - }, - "required": [ - "active" - ], - "type": "object" - }, - "artifacts": { - "additionalProperties": false, - "properties": { - "dashboards": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "investigation_guide": { - "additionalProperties": false, - "properties": { - "blob": { - "maxLength": 10000, - "type": "string" - } - }, - "required": [ - "blob" - ], - "type": "object" - } - }, - "type": "object" - }, - "consumer": { - "description": "The name of the application or feature that owns the rule. For example: `alerts`, `apm`, `discover`, `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, `securitySolution`, `siem`, `stackAlerts`, or `uptime`.", - "type": "string" - }, - "enabled": { - "default": true, - "description": "Indicates whether you want to run the rule on an interval basis after it is created.", - "type": "boolean" - }, - "flapping": { - "additionalProperties": false, - "description": "When flapping detection is turned on, alerts that switch quickly between active and recovered states are identified as “flapping” and notifications are reduced.", - "nullable": true, - "properties": { - "enabled": { - "description": "Determines whether the rule can enter the flapping state. By default, rules can enter the flapping state.", - "type": "boolean" - }, - "look_back_window": { - "description": "The minimum number of runs in which the threshold must be met.", - "maximum": 20, - "minimum": 2, - "type": "number" - }, - "status_change_threshold": { - "description": "The minimum number of times an alert must switch states in the look back window.", - "maximum": 20, - "minimum": 2, - "type": "number" - } - }, - "required": [ - "look_back_window", - "status_change_threshold" - ], - "type": "object" - }, - "name": { - "description": "The name of the rule. While this name does not have to be unique, a distinctive name can help you identify a rule.", - "type": "string" - }, - "notify_when": { - "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "enum": [ - "onActionGroupChange", - "onActiveAlert", - "onThrottleInterval" - ], - "nullable": true, - "type": "string" - }, - "params": { - "additionalProperties": {}, - "default": {}, - "description": "The parameters for the rule.", - "type": "object" - }, - "rule_type_id": { - "description": "The rule type identifier.", - "type": "string" - }, - "schedule": { - "additionalProperties": false, - "description": "The check interval, which specifies how frequently the rule conditions are checked.", - "properties": { - "interval": { - "description": "The interval is specified in seconds, minutes, hours, or days.", - "type": "string" - } - }, - "required": [ - "interval" - ], - "type": "object" - }, - "tags": { - "default": [], - "description": "The tags for the rule.", - "items": { - "type": "string" - }, - "type": "array" - }, - "throttle": { - "description": "Use the `throttle` property in the action `frequency` object instead. The throttle interval, which defines how often an alert generates repeated actions. NOTE: You cannot specify the throttle interval at both the rule and action level. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "name", - "rule_type_id", - "consumer", - "schedule" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "createEsQueryEsqlRuleResponse": { - "description": "The response for successfully creating an Elasticsearch query rule that uses Elasticsearch Query Language (ES|QL).", - "summary": "Elasticsearch query rule (ES|QL)", - "value": { - "actions": [ - { - "connector_type_id": ".server-log", - "frequency": { - "notify_when": "onActiveAlert", - "summary": false, - "throttle": null - }, - "group": "query matched", - "id": "d0db1fe0-78d6-11ee-9177-f7d404c8c945", - "params": { - "level": "info", - "message": "Elasticsearch query rule '{{rule.name}}' is active:\n- Value: {{context.value}} - Conditions Met: {{context.conditions}} over {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}} - Timestamp: {{context.date}} - Link: {{context.link}}" - }, - "uuid": "bfe370a3-531b-4855-bbe6-ad739f578844" - } - ], - "api_key_created_by_user": false, - "api_key_owner": "elastic", - "consumer": "stackAlerts", - "created_at": "2023-11-01T19:00:10.453Z", - "created_by": "elastic", - "enabled": true, - "execution_status": { - "last_execution_date": "2023-11-01T19:00:10.453Z", - "status": "pending" - }, - "id": "e0d62360-78e8-11ee-9177-f7d404c8c945", - "mute_all": false, - "muted_alert_ids": [], - "name": "my Elasticsearch query ESQL rule", - "notify_when": null, - "params": { - "aggType": "count", - "esqlQuery": { - "esql": "FROM kibana_sample_data_logs | keep bytes, clientip, host, geo.dest | WHERE geo.dest != \"GB\" | stats sumbytes = sum(bytes) by clientip, host | WHERE sumbytes > 5000 | sort sumbytes desc | limit 10" - }, - "excludeHitsFromPreviousRun\"": "true,", - "groupBy": "all", - "searchType": "esqlQuery", - "size": 0, - "threshold": [ - 0 - ], - "thresholdComparator": ">", - "timeField": "@timestamp", - "timeWindowSize": 1, - "timeWindowUnit": "d" - }, - "revision": 0, - "rule_type_id": ".es-query", - "running": false, - "schedule": { - "interval": "1d" - }, - "scheduled_task_id": "e0d62360-78e8-11ee-9177-f7d404c8c945", - "tags": [], - "throttle": null, - "updated_at": "2023-11-01T19:00:10.453Z", - "updated_by": "elastic\"," - } - }, - "createEsQueryKqlRuleResponse": { - "description": "The response for successfully creating an Elasticsearch query rule that uses Kibana query language (KQL).", - "summary": "Elasticsearch query rule (KQL)", - "value": { - "actions": [], - "api_key_created_by_user": false, - "api_key_owner": "elastic", - "consumer": "alerts", - "created_at": "2023-07-14T20:24:50.729Z", - "created_by": "elastic", - "enabled": true, - "execution_status": { - "last_execution_date": "2023-07-14T20:24:50.729Z", - "status": "pending" - }, - "id": "7bd506d0-2284-11ee-8fad-6101956ced88", - "mute_all": false, - "muted_alert_ids": [], - "name": "my Elasticsearch query KQL rule\"", - "notify_when": null, - "params": { - "aggType": "count", - "excludeHitsFromPreviousRun": true, - "groupBy": "all", - "searchConfiguration": { - "index": "90943e30-9a47-11e8-b64d-95841ca0b247", - "query": { - "language": "kuery", - "query": "\"\"geo.src : \"US\" \"\"" - } - }, - "searchType": "searchSource", - "size": 100, - "threshold": [ - 1000 - ], - "thresholdComparator": ">", - "timeWindowSize": 5, - "timeWindowUnit": "m" - }, - "revision": 0, - "rule_type_id": ".es-query", - "running": false, - "schedule": { - "interval": "1m" - }, - "scheduled_task_id": "7bd506d0-2284-11ee-8fad-6101956ced88", - "tags": [], - "throttle": null, - "updated_at": "2023-07-14T20:24:50.729Z", - "updated_by": "elastic" - } - }, - "createEsQueryRuleResponse": { - "description": "The response for successfully creating an Elasticsearch query rule that uses Elasticsearch query domain specific language (DSL).", - "summary": "Elasticsearch query rule (DSL)", - "value": { - "actions": [ - { - "connector_type_id": ".server-log", - "frequency": { - "notify_when": "onThrottleInterval", - "summary": true, - "throttle": "1d" - }, - "group": "query matched", - "id": "fdbece50-406c-11ee-850e-c71febc4ca7f", - "params": { - "level": "info", - "message": "The system has detected {{alerts.new.count}} new, {{alerts.ongoing.count}} ongoing, and {{alerts.recovered.count}} recovered alerts." - }, - "uuid": "53f3c2a3-e5d0-4cfa-af3b-6f0881385e78" - }, - { - "connector_type_id": ".server-log", - "frequency": { - "notify_when": "onActionGroupChange", - "summary": false, - "throttle": null - }, - "group": "recovered", - "id": "fdbece50-406c-11ee-850e-c71febc4ca7f", - "params": { - "level": "info", - "message": "Recovered" - }, - "uuid": "2324e45b-c0df-45c7-9d70-4993e30be758" - } - ], - "api_key_created_by_user": false, - "api_key_owner": "elastic", - "consumer": "alerts", - "created_at": "2023-08-22T00:03:38.263Z", - "created_by": "elastic", - "enabled": true, - "execution_status": { - "last_execution_date": "2023-08-22T00:03:38.263Z", - "status": "pending" - }, - "id": "58148c70-407f-11ee-850e-c71febc4ca7f", - "mute_all": false, - "muted_alert_ids": [], - "name": "my Elasticsearch query rule", - "notify_when": null, - "params": { - "aggType": "count", - "esQuery": "\"\"\"{\"query\":{\"match_all\" : {}}}\"\"\"", - "excludeHitsFromPreviousRun": true, - "groupBy": "all", - "index": [ - "kibana_sample_data_logs" - ], - "searchType": "esQuery", - "size": 100, - "threshold": [ - 100 - ], - "thresholdComparator": ">", - "timeField": "@timestamp", - "timeWindowSize": 1, - "timeWindowUnit": "d" - }, - "revision": 0, - "rule_type_id": ".es-query", - "running": false, - "schedule": { - "interval": "1d" - }, - "scheduled_task_id": "58148c70-407f-11ee-850e-c71febc4ca7f", - "tags": [], - "throttle": null, - "updated_at": "2023-08-22T00:03:38.263Z", - "updated_by": "elastic" - } - }, - "createIndexThresholdRuleResponse": { - "description": "The response for successfully creating an index threshold rule.", - "summary": "Index threshold rule", - "value": { - "actions": [ - { - "connector_type_id": ".server-log", - "frequency": { - "notify_when": "onActionGroupChange", - "summary": false, - "throttle": null - }, - "group": "threshold met", - "id": "dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2", - "params": { - "level": "info", - "message": "Rule {{rule.name}} is active for group {{context.group} :\n\n- Value: {{context.value}}\n- Conditions Met: {{context.conditions}} over {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}}\n- Timestamp: {{context.date}}" - }, - "uuid": "07aef2a0-9eed-4ef9-94ec-39ba58eb609d" - } - ], - "alert_delay": { - "active": 3 - }, - "api_key_created_by_user": false, - "api_key_owner": "elastic", - "consumer": "alerts", - "created_at": "2022-06-08T17:20:31.632Z", - "created_by": "elastic", - "enabled": true, - "execution_status": { - "last_execution_date": "2022-06-08T17:20:31.632Z", - "status": "pending" - }, - "id": "41893910-6bca-11eb-9e0d-85d233e3ee35", - "mute_all": false, - "muted_alert_ids": [], - "name": "my rule", - "notify_when": null, - "params": { - "aggField": "sheet.version", - "aggType": "avg", - "groupBy": "top", - "index": [ - ".test-index" - ], - "termField": "name.keyword", - "termSize": 6, - "threshold": [ - 1000 - ], - "thresholdComparator": ">", - "timeField": "@timestamp", - "timeWindowSize": 5, - "timeWindowUnit": "m" - }, - "revision": 0, - "rule_type_id": ".index-threshold", - "running": false, - "schedule": { - "interval": "1m" - }, - "scheduled_task_id": "425b0800-6bca-11eb-9e0d-85d233e3ee35", - "tags": [ - "cpu" - ], - "throttle": null, - "updated_at": "2022-06-08T17:20:31.632Z", - "updated_by": "elastic" - } - }, - "createTrackingContainmentRuleResponse": { - "description": "The response for successfully creating a tracking containment rule.", - "summary": "Tracking containment rule", - "value": { - "actions": [], - "api_key_created_by_user": false, - "api_key_owner": "elastic", - "consumer": "alerts", - "created_at": "2024-02-14T19:52:55.920Z", - "created_by": "elastic", - "enabled": true, - "execution_status": { - "last_duration": 74, - "last_execution_date": "2024-02-15T03:25:38.125Z", - "status": "ok" - }, - "id": "b6883f9d-5f70-4758-a66e-369d7c26012f", - "last_run": { - "alerts_count": { - "active": 0, - "ignored": 0, - "new": 0, - "recovered": 0 - }, - "outcome": "succeeded", - "outcome_msg": null, - "outcome_order": 0, - "warning": null - }, - "mute_all": false, - "muted_alert_ids": [], - "name": "my tracking rule", - "next_run": "2024-02-15T03:26:38.033Z", - "notify_when": null, - "params": { - "boundaryGeoField": "location", - "boundaryIndexId": "0cd90abf-abe7-44c7-909a-f621bbbcfefc", - "boundaryIndexTitle": "boundary*", - "boundaryNameField": "name", - "boundaryType": "entireIndex", - "dateField": "@timestamp", - "entity": "agent.keyword", - "geoField": "geo.coordinates", - "index": "kibana_sample_data_logs", - "indexId": "90943e30-9a47-11e8-b64d-95841ca0b247" - }, - "revision": 1, - "rule_type_id": ".geo-containment", - "running": false, - "schedule": { - "interval": "1h" - }, - "scheduled_task_id": "b6883f9d-5f70-4758-a66e-369d7c26012f", - "tags": [], - "throttle": null, - "updated_at": "2024-02-15T03:24:32.574Z", - "updated_by": "elastic" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "actions": { - "items": { - "additionalProperties": false, - "properties": { - "alerts_filter": { - "additionalProperties": false, - "description": "Defines a period that limits whether the action runs.", - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "dsl": { - "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL).", - "type": "string" - }, - "filters": { - "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL) as defined in the `kbn-es-query` package.", - "items": { - "additionalProperties": false, - "properties": { - "$state": { - "additionalProperties": false, - "properties": { - "store": { - "description": "A filter can be either specific to an application context or applied globally.", - "enum": [ - "appState", - "globalState" - ], - "type": "string" - } - }, - "required": [ - "store" - ], - "type": "object" - }, - "meta": { - "additionalProperties": {}, - "type": "object" - }, - "query": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "meta" - ], - "type": "object" - }, - "type": "array" - }, - "kql": { - "description": "A filter written in Kibana Query Language (KQL).", - "type": "string" - } - }, - "required": [ - "kql", - "filters" - ], - "type": "object" - }, - "timeframe": { - "additionalProperties": false, - "properties": { - "days": { - "description": "Defines the days of the week that the action can run, represented as an array of numbers. For example, `1` represents Monday. An empty array is equivalent to specifying all the days of the week.", - "items": { - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "type": "integer" - }, - "type": "array" - }, - "hours": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end of the time frame in 24-hour notation (`hh:mm`).", - "type": "string" - }, - "start": { - "description": "The start of the time frame in 24-hour notation (`hh:mm`).", - "type": "string" - } - }, - "required": [ - "start", - "end" - ], - "type": "object" - }, - "timezone": { - "description": "The ISO time zone for the `hours` values. Values such as `UTC` and `UTC+1` also work but lack built-in daylight savings time support and are not recommended.", - "type": "string" - } - }, - "required": [ - "days", - "hours", - "timezone" - ], - "type": "object" - } - }, - "type": "object" - }, - "connector_type_id": { - "description": "The type of connector. This property appears in responses but cannot be set in requests.", - "type": "string" - }, - "frequency": { - "additionalProperties": false, - "properties": { - "notify_when": { - "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "enum": [ - "onActionGroupChange", - "onActiveAlert", - "onThrottleInterval" - ], - "type": "string" - }, - "summary": { - "description": "Indicates whether the action is a summary.", - "type": "boolean" - }, - "throttle": { - "description": "The throttle interval, which defines how often an alert generates repeated actions. It is specified in seconds, minutes, hours, or days and is applicable only if 'notify_when' is set to 'onThrottleInterval'. NOTE: You cannot specify the throttle interval at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "summary", - "notify_when", - "throttle" - ], - "type": "object" - }, - "group": { - "description": "The group name, which affects when the action runs (for example, when the threshold is met or when the alert is recovered). Each rule type has a list of valid action group names. If you don't need to group actions, set to `default`.", - "type": "string" - }, - "id": { - "description": "The identifier for the connector saved object.", - "type": "string" - }, - "params": { - "additionalProperties": {}, - "description": "The parameters for the action, which are sent to the connector. The `params` are handled as Mustache templates and passed a default set of context.", - "type": "object" - }, - "use_alert_data_for_template": { - "description": "Indicates whether to use alert data as a template.", - "type": "boolean" - }, - "uuid": { - "description": "A universally unique identifier (UUID) for the action.", - "type": "string" - } - }, - "required": [ - "id", - "connector_type_id", - "params" - ], - "type": "object" - }, - "type": "array" - }, - "active_snoozes": { - "items": { - "description": "List of active snoozes for the rule.", - "type": "string" - }, - "type": "array" - }, - "alert_delay": { - "additionalProperties": false, - "description": "Indicates that an alert occurs only when the specified number of consecutive runs met the rule conditions.", - "properties": { - "active": { - "description": "The number of consecutive runs that must meet the rule conditions.", - "type": "number" - } - }, - "required": [ - "active" - ], - "type": "object" - }, - "api_key_created_by_user": { - "description": "Indicates whether the API key that is associated with the rule was created by the user.", - "nullable": true, - "type": "boolean" - }, - "api_key_owner": { - "description": "The owner of the API key that is associated with the rule and used to run background tasks.", - "nullable": true, - "type": "string" - }, - "artifacts": { - "additionalProperties": false, - "properties": { - "dashboards": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "type": "array" - }, - "investigation_guide": { - "additionalProperties": false, - "properties": { - "blob": { - "description": "User-created content that describes alert causes and remdiation.", - "type": "string" - } - }, - "required": [ - "blob" - ], - "type": "object" - } - }, - "type": "object" - }, - "consumer": { - "description": "The name of the application or feature that owns the rule. For example: `alerts`, `apm`, `discover`, `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, `securitySolution`, `siem`, `stackAlerts`, or `uptime`.", - "type": "string" - }, - "created_at": { - "description": "The date and time that the rule was created.", - "type": "string" - }, - "created_by": { - "description": "The identifier for the user that created the rule.", - "nullable": true, - "type": "string" - }, - "enabled": { - "description": "Indicates whether you want to run the rule on an interval basis after it is created.", - "type": "boolean" - }, - "execution_status": { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "message": { - "description": "Error message.", - "type": "string" - }, - "reason": { - "description": "Reason for error.", - "enum": [ - "read", - "decrypt", - "execute", - "unknown", - "license", - "timeout", - "disabled", - "validate" - ], - "type": "string" - } - }, - "required": [ - "reason", - "message" - ], - "type": "object" - }, - "last_duration": { - "description": "Duration of last execution of the rule.", - "type": "number" - }, - "last_execution_date": { - "description": "The date and time when rule was executed last.", - "type": "string" - }, - "status": { - "description": "Status of rule execution.", - "enum": [ - "ok", - "active", - "error", - "warning", - "pending", - "unknown" - ], - "type": "string" - }, - "warning": { - "additionalProperties": false, - "properties": { - "message": { - "description": "Warning message.", - "type": "string" - }, - "reason": { - "description": "Reason for warning.", - "enum": [ - "maxExecutableActions", - "maxAlerts", - "maxQueuedActions", - "ruleExecution" - ], - "type": "string" - } - }, - "required": [ - "reason", - "message" - ], - "type": "object" - } - }, - "required": [ - "status", - "last_execution_date" - ], - "type": "object" - }, - "flapping": { - "additionalProperties": false, - "description": "When flapping detection is turned on, alerts that switch quickly between active and recovered states are identified as “flapping” and notifications are reduced.", - "nullable": true, - "properties": { - "enabled": { - "description": "Determines whether the rule can enter the flapping state. By default, rules can enter the flapping state.", - "type": "boolean" - }, - "look_back_window": { - "description": "The minimum number of runs in which the threshold must be met.", - "maximum": 20, - "minimum": 2, - "type": "number" - }, - "status_change_threshold": { - "description": "The minimum number of times an alert must switch states in the look back window.", - "maximum": 20, - "minimum": 2, - "type": "number" - } - }, - "required": [ - "look_back_window", - "status_change_threshold" - ], - "type": "object" - }, - "id": { - "description": "The identifier for the rule.", - "type": "string" - }, - "is_snoozed_until": { - "description": "The date when the rule will no longer be snoozed.", - "nullable": true, - "type": "string" - }, - "last_run": { - "additionalProperties": false, - "nullable": true, - "properties": { - "alerts_count": { - "additionalProperties": false, - "properties": { - "active": { - "description": "Number of active alerts during last run.", - "nullable": true, - "type": "number" - }, - "ignored": { - "description": "Number of ignored alerts during last run.", - "nullable": true, - "type": "number" - }, - "new": { - "description": "Number of new alerts during last run.", - "nullable": true, - "type": "number" - }, - "recovered": { - "description": "Number of recovered alerts during last run.", - "nullable": true, - "type": "number" - } - }, - "type": "object" - }, - "outcome": { - "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", - "enum": [ - "succeeded", - "warning", - "failed" - ], - "type": "string" - }, - "outcome_msg": { - "items": { - "description": "Outcome message generated during last rule run.", - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "outcome_order": { - "description": "Order of the outcome.", - "type": "number" - }, - "warning": { - "description": "Warning of last rule execution.", - "enum": [ - "read", - "decrypt", - "execute", - "unknown", - "license", - "timeout", - "disabled", - "validate", - "maxExecutableActions", - "maxAlerts", - "maxQueuedActions", - "ruleExecution" - ], - "nullable": true, - "type": "string" - } - }, - "required": [ - "outcome", - "alerts_count" - ], - "type": "object" - }, - "mapped_params": { - "additionalProperties": {}, - "type": "object" - }, - "monitoring": { - "additionalProperties": false, - "description": "Monitoring details of the rule.", - "properties": { - "run": { - "additionalProperties": false, - "description": "Rule run details.", - "properties": { - "calculated_metrics": { - "additionalProperties": false, - "description": "Calculation of different percentiles and success ratio.", - "properties": { - "p50": { - "type": "number" - }, - "p95": { - "type": "number" - }, - "p99": { - "type": "number" - }, - "success_ratio": { - "type": "number" - } - }, - "required": [ - "success_ratio" - ], - "type": "object" - }, - "history": { - "description": "History of the rule run.", - "items": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "Duration of the rule run.", - "type": "number" - }, - "outcome": { - "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", - "enum": [ - "succeeded", - "warning", - "failed" - ], - "type": "string" - }, - "success": { - "description": "Indicates whether the rule run was successful.", - "type": "boolean" - }, - "timestamp": { - "description": "Time of rule run.", - "type": "number" - } - }, - "required": [ - "success", - "timestamp" - ], - "type": "object" - }, - "type": "array" - }, - "last_run": { - "additionalProperties": false, - "properties": { - "metrics": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "Duration of most recent rule run.", - "type": "number" - }, - "gap_duration_s": { - "description": "Duration in seconds of rule run gap.", - "nullable": true, - "type": "number" - }, - "gap_range": { - "additionalProperties": false, - "nullable": true, - "properties": { - "gte": { - "description": "End of the gap range.", - "type": "string" - }, - "lte": { - "description": "Start of the gap range.", - "type": "string" - } - }, - "required": [ - "lte", - "gte" - ], - "type": "object" - }, - "total_alerts_created": { - "description": "Total number of alerts created during last rule run.", - "nullable": true, - "type": "number" - }, - "total_alerts_detected": { - "description": "Total number of alerts detected during last rule run.", - "nullable": true, - "type": "number" - }, - "total_indexing_duration_ms": { - "description": "Total time spent indexing documents during last rule run in milliseconds.", - "nullable": true, - "type": "number" - }, - "total_search_duration_ms": { - "description": "Total time spent performing Elasticsearch searches as measured by Kibana; includes network latency and time spent serializing or deserializing the request and response.", - "nullable": true, - "type": "number" - } - }, - "type": "object" - }, - "timestamp": { - "description": "Time of the most recent rule run.", - "type": "string" - } - }, - "required": [ - "timestamp", - "metrics" - ], - "type": "object" - } - }, - "required": [ - "history", - "calculated_metrics", - "last_run" - ], - "type": "object" - } - }, - "required": [ - "run" - ], - "type": "object" - }, - "mute_all": { - "description": "Indicates whether all alerts are muted.", - "type": "boolean" - }, - "muted_alert_ids": { - "items": { - "description": "List of identifiers of muted alerts. ", - "type": "string" - }, - "type": "array" - }, - "name": { - "description": " The name of the rule.", - "type": "string" - }, - "next_run": { - "description": "Date and time of the next run of the rule.", - "nullable": true, - "type": "string" - }, - "notify_when": { - "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "enum": [ - "onActionGroupChange", - "onActiveAlert", - "onThrottleInterval" - ], - "nullable": true, - "type": "string" - }, - "params": { - "additionalProperties": {}, - "description": "The parameters for the rule.", - "type": "object" - }, - "revision": { - "description": "The rule revision number.", - "type": "number" - }, - "rule_type_id": { - "description": "The rule type identifier.", - "type": "string" - }, - "running": { - "description": "Indicates whether the rule is running.", - "nullable": true, - "type": "boolean" - }, - "schedule": { - "additionalProperties": false, - "properties": { - "interval": { - "description": "The interval is specified in seconds, minutes, hours, or days.", - "type": "string" - } - }, - "required": [ - "interval" - ], - "type": "object" - }, - "scheduled_task_id": { - "description": "Identifier of the scheduled task.", - "type": "string" - }, - "snooze_schedule": { - "items": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "Duration of the rule snooze schedule.", - "type": "number" - }, - "id": { - "description": "Identifier of the rule snooze schedule.", - "type": "string" - }, - "rRule": { - "additionalProperties": false, - "properties": { - "byhour": { - "items": { - "description": "Indicates hours of the day to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "byminute": { - "items": { - "description": "Indicates minutes of the hour to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bymonth": { - "items": { - "description": "Indicates months of the year that this rule should recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bymonthday": { - "items": { - "description": "Indicates the days of the month to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bysecond": { - "items": { - "description": "Indicates seconds of the day to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bysetpos": { - "items": { - "description": "A positive or negative integer affecting the nth day of the month. For example, -2 combined with `byweekday` of FR is 2nd to last Friday of the month. It is recommended to not set this manually and just use `byweekday`.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "byweekday": { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ], - "description": "Indicates the days of the week to recur or else nth-day-of-month strings. For example, \"+2TU\" second Tuesday of month, \"-1FR\" last Friday of the month, which are internally converted to a `byweekday/bysetpos` combination." - }, - "nullable": true, - "type": "array" - }, - "byweekno": { - "items": { - "description": "Indicates number of the week hours to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "byyearday": { - "items": { - "description": "Indicates the days of the year that this rule should recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "count": { - "description": "Number of times the rule should recur until it stops.", - "type": "number" - }, - "dtstart": { - "description": "Rule start date in Coordinated Universal Time (UTC).", - "type": "string" - }, - "freq": { - "description": "Indicates frequency of the rule. Options are YEARLY, MONTHLY, WEEKLY, DAILY.", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ], - "type": "integer" - }, - "interval": { - "description": "Indicates the interval of frequency. For example, 1 and YEARLY is every 1 year, 2 and WEEKLY is every 2 weeks.", - "type": "number" - }, - "tzid": { - "description": "Indicates timezone abbreviation.", - "type": "string" - }, - "until": { - "description": "Recur the rule until this date.", - "type": "string" - }, - "wkst": { - "description": "Indicates the start of week, defaults to Monday.", - "enum": [ - "MO", - "TU", - "WE", - "TH", - "FR", - "SA", - "SU" - ], - "type": "string" - } - }, - "required": [ - "dtstart", - "tzid" - ], - "type": "object" - }, - "skipRecurrences": { - "items": { - "description": "Skips recurrence of rule on this date.", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "duration", - "rRule" - ], - "type": "object" - }, - "type": "array" - }, - "tags": { - "items": { - "description": "The tags for the rule.", - "type": "string" - }, - "type": "array" - }, - "throttle": { - "deprecated": true, - "description": "Deprecated in 8.13.0. Use the `throttle` property in the action `frequency` object instead. The throttle interval, which defines how often an alert generates repeated actions. NOTE: You cannot specify the throttle interval at both the rule and action level. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "nullable": true, - "type": "string" - }, - "updated_at": { - "description": "The date and time that the rule was updated most recently.", - "type": "string" - }, - "updated_by": { - "description": "The identifier for the user that updated this rule most recently.", - "nullable": true, - "type": "string" - }, - "view_in_app_relative_url": { - "description": "Relative URL to view rule in the app.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "id", - "enabled", - "name", - "tags", - "rule_type_id", - "consumer", - "schedule", - "actions", - "params", - "created_by", - "updated_by", - "created_at", - "updated_at", - "api_key_owner", - "mute_all", - "muted_alert_ids", - "execution_status", - "revision" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "409": { - "description": "Indicates that the rule id is already in use." - } - }, - "summary": "Create a rule", - "tags": [ - "alerting" - ] - }, - "put": { - "operationId": "put-alerting-rule-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the rule.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "updateRuleRequest": { - "description": "Update an index threshold rule that uses a server log connector to send notifications when the threshold is met.", - "summary": "Index threshold rule", - "value": { - "actions": [ - { - "frequency": { - "notify_when": "onActionGroupChange", - "summary": false - }, - "group": "threshold met", - "id": "96b668d0-a1b6-11ed-afdf-d39a49596974", - "params": { - "level": "info", - "message": "Rule {{rule.name}} is active for group {{context.group}}:\n\n- Value: {{context.value}}\n- Conditions Met: {{context.conditions}} over {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}}\n- Timestamp: {{context.date}}" - } - } - ], - "name": "new name", - "params": { - "aggField": "sheet.version", - "aggType": "avg", - "groupBy": "top", - "index": [ - ".updated-index" - ], - "termField": "name.keyword", - "termSize": 6, - "threshold": [ - 1000 - ], - "thresholdComparator": ">", - "timeField": "@timestamp", - "timeWindowSize": 5, - "timeWindowUnit": "m" - }, - "schedule": { - "interval": "1m" - }, - "tags": [] - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "actions": { - "default": [], - "items": { - "additionalProperties": false, - "description": "An action that runs under defined conditions.", - "properties": { - "alerts_filter": { - "additionalProperties": false, - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "dsl": { - "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL).", - "type": "string" - }, - "filters": { - "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL) as defined in the `kbn-es-query` package.", - "items": { - "additionalProperties": false, - "properties": { - "$state": { - "additionalProperties": false, - "properties": { - "store": { - "description": "A filter can be either specific to an application context or applied globally.", - "enum": [ - "appState", - "globalState" - ], - "type": "string" - } - }, - "required": [ - "store" - ], - "type": "object" - }, - "meta": { - "additionalProperties": {}, - "type": "object" - }, - "query": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "meta" - ], - "type": "object" - }, - "type": "array" - }, - "kql": { - "description": "A filter written in Kibana Query Language (KQL).", - "type": "string" - } - }, - "required": [ - "kql", - "filters" - ], - "type": "object" - }, - "timeframe": { - "additionalProperties": false, - "description": "Defines a period that limits whether the action runs.", - "properties": { - "days": { - "description": "Defines the days of the week that the action can run, represented as an array of numbers. For example, `1` represents Monday. An empty array is equivalent to specifying all the days of the week.", - "items": { - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "type": "integer" - }, - "type": "array" - }, - "hours": { - "additionalProperties": false, - "description": "Defines the range of time in a day that the action can run. If the `start` value is `00:00` and the `end` value is `24:00`, actions be generated all day.", - "properties": { - "end": { - "description": "The end of the time frame in 24-hour notation (`hh:mm`).", - "type": "string" - }, - "start": { - "description": "The start of the time frame in 24-hour notation (`hh:mm`).", - "type": "string" - } - }, - "required": [ - "start", - "end" - ], - "type": "object" - }, - "timezone": { - "description": "The ISO time zone for the `hours` values. Values such as `UTC` and `UTC+1` also work but lack built-in daylight savings time support and are not recommended.", - "type": "string" - } - }, - "required": [ - "days", - "hours", - "timezone" - ], - "type": "object" - } - }, - "type": "object" - }, - "frequency": { - "additionalProperties": false, - "properties": { - "notify_when": { - "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "enum": [ - "onActionGroupChange", - "onActiveAlert", - "onThrottleInterval" - ], - "type": "string" - }, - "summary": { - "description": "Indicates whether the action is a summary.", - "type": "boolean" - }, - "throttle": { - "description": "The throttle interval, which defines how often an alert generates repeated actions. It is specified in seconds, minutes, hours, or days and is applicable only if `notify_when` is set to `onThrottleInterval`. NOTE: You cannot specify the throttle interval at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "summary", - "notify_when", - "throttle" - ], - "type": "object" - }, - "group": { - "description": "The group name, which affects when the action runs (for example, when the threshold is met or when the alert is recovered). Each rule type has a list of valid action group names. If you don't need to group actions, set to `default`.", - "type": "string" - }, - "id": { - "description": "The identifier for the connector saved object.", - "type": "string" - }, - "params": { - "additionalProperties": {}, - "default": {}, - "description": "The parameters for the action, which are sent to the connector. The `params` are handled as Mustache templates and passed a default set of context.", - "type": "object" - }, - "use_alert_data_for_template": { - "description": "Indicates whether to use alert data as a template.", - "type": "boolean" - }, - "uuid": { - "description": "A universally unique identifier (UUID) for the action.", - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "type": "array" - }, - "alert_delay": { - "additionalProperties": false, - "description": "Indicates that an alert occurs only when the specified number of consecutive runs met the rule conditions.", - "properties": { - "active": { - "description": "The number of consecutive runs that must meet the rule conditions.", - "type": "number" - } - }, - "required": [ - "active" - ], - "type": "object" - }, - "artifacts": { - "additionalProperties": false, - "properties": { - "dashboards": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "investigation_guide": { - "additionalProperties": false, - "properties": { - "blob": { - "maxLength": 10000, - "type": "string" - } - }, - "required": [ - "blob" - ], - "type": "object" - } - }, - "type": "object" - }, - "flapping": { - "additionalProperties": false, - "description": "When flapping detection is turned on, alerts that switch quickly between active and recovered states are identified as “flapping” and notifications are reduced.", - "nullable": true, - "properties": { - "enabled": { - "description": "Determines whether the rule can enter the flapping state. By default, rules can enter the flapping state.", - "type": "boolean" - }, - "look_back_window": { - "description": "The minimum number of runs in which the threshold must be met.", - "maximum": 20, - "minimum": 2, - "type": "number" - }, - "status_change_threshold": { - "description": "The minimum number of times an alert must switch states in the look back window.", - "maximum": 20, - "minimum": 2, - "type": "number" - } - }, - "required": [ - "look_back_window", - "status_change_threshold" - ], - "type": "object" - }, - "name": { - "description": "The name of the rule. While this name does not have to be unique, a distinctive name can help you identify a rule.", - "type": "string" - }, - "notify_when": { - "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "enum": [ - "onActionGroupChange", - "onActiveAlert", - "onThrottleInterval" - ], - "nullable": true, - "type": "string" - }, - "params": { - "additionalProperties": {}, - "default": {}, - "description": "The parameters for the rule.", - "type": "object" - }, - "schedule": { - "additionalProperties": false, - "properties": { - "interval": { - "description": "The interval is specified in seconds, minutes, hours, or days.", - "type": "string" - } - }, - "required": [ - "interval" - ], - "type": "object" - }, - "tags": { - "default": [], - "items": { - "description": "The tags for the rule.", - "type": "string" - }, - "type": "array" - }, - "throttle": { - "description": "Use the `throttle` property in the action `frequency` object instead. The throttle interval, which defines how often an alert generates repeated actions. NOTE: You cannot specify the throttle interval at both the rule and action level. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "name", - "schedule" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "updateRuleResponse": { - "description": "The response for successfully updating an index threshold rule.", - "summary": "Index threshold rule", - "value": { - "actions": [ - { - "connector_type_id": ".server-log", - "frequency": { - "notify_when": "onActionGroupChange", - "summary": false, - "throttle": null - }, - "group": "threshold met", - "id": "96b668d0-a1b6-11ed-afdf-d39a49596974", - "params": { - "level": "info", - "message": "Rule {{rule.name}} is active for group {{context.group}}:\n\n- Value: {{context.value}}\n- Conditions Met: {{context.conditions}} over {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}}\n- Timestamp: {{context.date}" - }, - "uuid": "07aef2a0-9eed-4ef9-94ec-39ba58eb609d" - } - ], - "api_key_created_by_user": false, - "api_key_owner": "elastic", - "consumer": "alerts", - "created_at": "2024-03-26T23:13:20.985Z", - "created_by": "elastic", - "enabled": true, - "execution_status": { - "last_duration": 52, - "last_execution_date": "2024-03-26T23:22:51.390Z", - "status": "ok" - }, - "id": "ac4e6b90-6be7-11eb-ba0d-9b1c1f912d74", - "last_run": { - "alerts_count": { - "active": 0, - "ignored": 0, - "new": 0, - "recovered": 0 - }, - "outcome": "succeeded", - "outcome_msg": null, - "warning": null - }, - "mute_all": false, - "muted_alert_ids": [], - "name": "new name", - "next_run": "2024-03-26T23:23:51.316Z", - "params": { - "aggField": "sheet.version", - "aggType": "avg", - "groupBy": "top", - "index": [ - ".updated-index" - ], - "termField": "name.keyword", - "termSize": 6, - "threshold": [ - 1000 - ], - "thresholdComparator": ">", - "timeField": "@timestamp", - "timeWindowSize": 5, - "timeWindowUnit": "m" - }, - "revision": 1, - "rule_type_id": ".index-threshold", - "running": false, - "schedule": { - "interval": "1m" - }, - "scheduled_task_id": "4c5eda00-e74f-11ec-b72f-5b18752ff9ea", - "tags": [], - "throttle": null, - "updated_at": "2024-03-26T23:22:59.949Z", - "updated_by": "elastic" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "actions": { - "items": { - "additionalProperties": false, - "properties": { - "alerts_filter": { - "additionalProperties": false, - "description": "Defines a period that limits whether the action runs.", - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "dsl": { - "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL).", - "type": "string" - }, - "filters": { - "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL) as defined in the `kbn-es-query` package.", - "items": { - "additionalProperties": false, - "properties": { - "$state": { - "additionalProperties": false, - "properties": { - "store": { - "description": "A filter can be either specific to an application context or applied globally.", - "enum": [ - "appState", - "globalState" - ], - "type": "string" - } - }, - "required": [ - "store" - ], - "type": "object" - }, - "meta": { - "additionalProperties": {}, - "type": "object" - }, - "query": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "meta" - ], - "type": "object" - }, - "type": "array" - }, - "kql": { - "description": "A filter written in Kibana Query Language (KQL).", - "type": "string" - } - }, - "required": [ - "kql", - "filters" - ], - "type": "object" - }, - "timeframe": { - "additionalProperties": false, - "properties": { - "days": { - "description": "Defines the days of the week that the action can run, represented as an array of numbers. For example, `1` represents Monday. An empty array is equivalent to specifying all the days of the week.", - "items": { - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "type": "integer" - }, - "type": "array" - }, - "hours": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end of the time frame in 24-hour notation (`hh:mm`).", - "type": "string" - }, - "start": { - "description": "The start of the time frame in 24-hour notation (`hh:mm`).", - "type": "string" - } - }, - "required": [ - "start", - "end" - ], - "type": "object" - }, - "timezone": { - "description": "The ISO time zone for the `hours` values. Values such as `UTC` and `UTC+1` also work but lack built-in daylight savings time support and are not recommended.", - "type": "string" - } - }, - "required": [ - "days", - "hours", - "timezone" - ], - "type": "object" - } - }, - "type": "object" - }, - "connector_type_id": { - "description": "The type of connector. This property appears in responses but cannot be set in requests.", - "type": "string" - }, - "frequency": { - "additionalProperties": false, - "properties": { - "notify_when": { - "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "enum": [ - "onActionGroupChange", - "onActiveAlert", - "onThrottleInterval" - ], - "type": "string" - }, - "summary": { - "description": "Indicates whether the action is a summary.", - "type": "boolean" - }, - "throttle": { - "description": "The throttle interval, which defines how often an alert generates repeated actions. It is specified in seconds, minutes, hours, or days and is applicable only if 'notify_when' is set to 'onThrottleInterval'. NOTE: You cannot specify the throttle interval at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "summary", - "notify_when", - "throttle" - ], - "type": "object" - }, - "group": { - "description": "The group name, which affects when the action runs (for example, when the threshold is met or when the alert is recovered). Each rule type has a list of valid action group names. If you don't need to group actions, set to `default`.", - "type": "string" - }, - "id": { - "description": "The identifier for the connector saved object.", - "type": "string" - }, - "params": { - "additionalProperties": {}, - "description": "The parameters for the action, which are sent to the connector. The `params` are handled as Mustache templates and passed a default set of context.", - "type": "object" - }, - "use_alert_data_for_template": { - "description": "Indicates whether to use alert data as a template.", - "type": "boolean" - }, - "uuid": { - "description": "A universally unique identifier (UUID) for the action.", - "type": "string" - } - }, - "required": [ - "id", - "connector_type_id", - "params" - ], - "type": "object" - }, - "type": "array" - }, - "active_snoozes": { - "items": { - "description": "List of active snoozes for the rule.", - "type": "string" - }, - "type": "array" - }, - "alert_delay": { - "additionalProperties": false, - "description": "Indicates that an alert occurs only when the specified number of consecutive runs met the rule conditions.", - "properties": { - "active": { - "description": "The number of consecutive runs that must meet the rule conditions.", - "type": "number" - } - }, - "required": [ - "active" - ], - "type": "object" - }, - "api_key_created_by_user": { - "description": "Indicates whether the API key that is associated with the rule was created by the user.", - "nullable": true, - "type": "boolean" - }, - "api_key_owner": { - "description": "The owner of the API key that is associated with the rule and used to run background tasks.", - "nullable": true, - "type": "string" - }, - "artifacts": { - "additionalProperties": false, - "properties": { - "dashboards": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "type": "array" - }, - "investigation_guide": { - "additionalProperties": false, - "properties": { - "blob": { - "description": "User-created content that describes alert causes and remdiation.", - "type": "string" - } - }, - "required": [ - "blob" - ], - "type": "object" - } - }, - "type": "object" - }, - "consumer": { - "description": "The name of the application or feature that owns the rule. For example: `alerts`, `apm`, `discover`, `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, `securitySolution`, `siem`, `stackAlerts`, or `uptime`.", - "type": "string" - }, - "created_at": { - "description": "The date and time that the rule was created.", - "type": "string" - }, - "created_by": { - "description": "The identifier for the user that created the rule.", - "nullable": true, - "type": "string" - }, - "enabled": { - "description": "Indicates whether you want to run the rule on an interval basis after it is created.", - "type": "boolean" - }, - "execution_status": { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "message": { - "description": "Error message.", - "type": "string" - }, - "reason": { - "description": "Reason for error.", - "enum": [ - "read", - "decrypt", - "execute", - "unknown", - "license", - "timeout", - "disabled", - "validate" - ], - "type": "string" - } - }, - "required": [ - "reason", - "message" - ], - "type": "object" - }, - "last_duration": { - "description": "Duration of last execution of the rule.", - "type": "number" - }, - "last_execution_date": { - "description": "The date and time when rule was executed last.", - "type": "string" - }, - "status": { - "description": "Status of rule execution.", - "enum": [ - "ok", - "active", - "error", - "warning", - "pending", - "unknown" - ], - "type": "string" - }, - "warning": { - "additionalProperties": false, - "properties": { - "message": { - "description": "Warning message.", - "type": "string" - }, - "reason": { - "description": "Reason for warning.", - "enum": [ - "maxExecutableActions", - "maxAlerts", - "maxQueuedActions", - "ruleExecution" - ], - "type": "string" - } - }, - "required": [ - "reason", - "message" - ], - "type": "object" - } - }, - "required": [ - "status", - "last_execution_date" - ], - "type": "object" - }, - "flapping": { - "additionalProperties": false, - "description": "When flapping detection is turned on, alerts that switch quickly between active and recovered states are identified as “flapping” and notifications are reduced.", - "nullable": true, - "properties": { - "enabled": { - "description": "Determines whether the rule can enter the flapping state. By default, rules can enter the flapping state.", - "type": "boolean" - }, - "look_back_window": { - "description": "The minimum number of runs in which the threshold must be met.", - "maximum": 20, - "minimum": 2, - "type": "number" - }, - "status_change_threshold": { - "description": "The minimum number of times an alert must switch states in the look back window.", - "maximum": 20, - "minimum": 2, - "type": "number" - } - }, - "required": [ - "look_back_window", - "status_change_threshold" - ], - "type": "object" - }, - "id": { - "description": "The identifier for the rule.", - "type": "string" - }, - "is_snoozed_until": { - "description": "The date when the rule will no longer be snoozed.", - "nullable": true, - "type": "string" - }, - "last_run": { - "additionalProperties": false, - "nullable": true, - "properties": { - "alerts_count": { - "additionalProperties": false, - "properties": { - "active": { - "description": "Number of active alerts during last run.", - "nullable": true, - "type": "number" - }, - "ignored": { - "description": "Number of ignored alerts during last run.", - "nullable": true, - "type": "number" - }, - "new": { - "description": "Number of new alerts during last run.", - "nullable": true, - "type": "number" - }, - "recovered": { - "description": "Number of recovered alerts during last run.", - "nullable": true, - "type": "number" - } - }, - "type": "object" - }, - "outcome": { - "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", - "enum": [ - "succeeded", - "warning", - "failed" - ], - "type": "string" - }, - "outcome_msg": { - "items": { - "description": "Outcome message generated during last rule run.", - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "outcome_order": { - "description": "Order of the outcome.", - "type": "number" - }, - "warning": { - "description": "Warning of last rule execution.", - "enum": [ - "read", - "decrypt", - "execute", - "unknown", - "license", - "timeout", - "disabled", - "validate", - "maxExecutableActions", - "maxAlerts", - "maxQueuedActions", - "ruleExecution" - ], - "nullable": true, - "type": "string" - } - }, - "required": [ - "outcome", - "alerts_count" - ], - "type": "object" - }, - "mapped_params": { - "additionalProperties": {}, - "type": "object" - }, - "monitoring": { - "additionalProperties": false, - "description": "Monitoring details of the rule.", - "properties": { - "run": { - "additionalProperties": false, - "description": "Rule run details.", - "properties": { - "calculated_metrics": { - "additionalProperties": false, - "description": "Calculation of different percentiles and success ratio.", - "properties": { - "p50": { - "type": "number" - }, - "p95": { - "type": "number" - }, - "p99": { - "type": "number" - }, - "success_ratio": { - "type": "number" - } - }, - "required": [ - "success_ratio" - ], - "type": "object" - }, - "history": { - "description": "History of the rule run.", - "items": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "Duration of the rule run.", - "type": "number" - }, - "outcome": { - "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", - "enum": [ - "succeeded", - "warning", - "failed" - ], - "type": "string" - }, - "success": { - "description": "Indicates whether the rule run was successful.", - "type": "boolean" - }, - "timestamp": { - "description": "Time of rule run.", - "type": "number" - } - }, - "required": [ - "success", - "timestamp" - ], - "type": "object" - }, - "type": "array" - }, - "last_run": { - "additionalProperties": false, - "properties": { - "metrics": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "Duration of most recent rule run.", - "type": "number" - }, - "gap_duration_s": { - "description": "Duration in seconds of rule run gap.", - "nullable": true, - "type": "number" - }, - "gap_range": { - "additionalProperties": false, - "nullable": true, - "properties": { - "gte": { - "description": "End of the gap range.", - "type": "string" - }, - "lte": { - "description": "Start of the gap range.", - "type": "string" - } - }, - "required": [ - "lte", - "gte" - ], - "type": "object" - }, - "total_alerts_created": { - "description": "Total number of alerts created during last rule run.", - "nullable": true, - "type": "number" - }, - "total_alerts_detected": { - "description": "Total number of alerts detected during last rule run.", - "nullable": true, - "type": "number" - }, - "total_indexing_duration_ms": { - "description": "Total time spent indexing documents during last rule run in milliseconds.", - "nullable": true, - "type": "number" - }, - "total_search_duration_ms": { - "description": "Total time spent performing Elasticsearch searches as measured by Kibana; includes network latency and time spent serializing or deserializing the request and response.", - "nullable": true, - "type": "number" - } - }, - "type": "object" - }, - "timestamp": { - "description": "Time of the most recent rule run.", - "type": "string" - } - }, - "required": [ - "timestamp", - "metrics" - ], - "type": "object" - } - }, - "required": [ - "history", - "calculated_metrics", - "last_run" - ], - "type": "object" - } - }, - "required": [ - "run" - ], - "type": "object" - }, - "mute_all": { - "description": "Indicates whether all alerts are muted.", - "type": "boolean" - }, - "muted_alert_ids": { - "items": { - "description": "List of identifiers of muted alerts. ", - "type": "string" - }, - "type": "array" - }, - "name": { - "description": " The name of the rule.", - "type": "string" - }, - "next_run": { - "description": "Date and time of the next run of the rule.", - "nullable": true, - "type": "string" - }, - "notify_when": { - "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "enum": [ - "onActionGroupChange", - "onActiveAlert", - "onThrottleInterval" - ], - "nullable": true, - "type": "string" - }, - "params": { - "additionalProperties": {}, - "description": "The parameters for the rule.", - "type": "object" - }, - "revision": { - "description": "The rule revision number.", - "type": "number" - }, - "rule_type_id": { - "description": "The rule type identifier.", - "type": "string" - }, - "running": { - "description": "Indicates whether the rule is running.", - "nullable": true, - "type": "boolean" - }, - "schedule": { - "additionalProperties": false, - "properties": { - "interval": { - "description": "The interval is specified in seconds, minutes, hours, or days.", - "type": "string" - } - }, - "required": [ - "interval" - ], - "type": "object" - }, - "scheduled_task_id": { - "description": "Identifier of the scheduled task.", - "type": "string" - }, - "snooze_schedule": { - "items": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "Duration of the rule snooze schedule.", - "type": "number" - }, - "id": { - "description": "Identifier of the rule snooze schedule.", - "type": "string" - }, - "rRule": { - "additionalProperties": false, - "properties": { - "byhour": { - "items": { - "description": "Indicates hours of the day to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "byminute": { - "items": { - "description": "Indicates minutes of the hour to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bymonth": { - "items": { - "description": "Indicates months of the year that this rule should recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bymonthday": { - "items": { - "description": "Indicates the days of the month to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bysecond": { - "items": { - "description": "Indicates seconds of the day to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bysetpos": { - "items": { - "description": "A positive or negative integer affecting the nth day of the month. For example, -2 combined with `byweekday` of FR is 2nd to last Friday of the month. It is recommended to not set this manually and just use `byweekday`.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "byweekday": { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ], - "description": "Indicates the days of the week to recur or else nth-day-of-month strings. For example, \"+2TU\" second Tuesday of month, \"-1FR\" last Friday of the month, which are internally converted to a `byweekday/bysetpos` combination." - }, - "nullable": true, - "type": "array" - }, - "byweekno": { - "items": { - "description": "Indicates number of the week hours to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "byyearday": { - "items": { - "description": "Indicates the days of the year that this rule should recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "count": { - "description": "Number of times the rule should recur until it stops.", - "type": "number" - }, - "dtstart": { - "description": "Rule start date in Coordinated Universal Time (UTC).", - "type": "string" - }, - "freq": { - "description": "Indicates frequency of the rule. Options are YEARLY, MONTHLY, WEEKLY, DAILY.", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ], - "type": "integer" - }, - "interval": { - "description": "Indicates the interval of frequency. For example, 1 and YEARLY is every 1 year, 2 and WEEKLY is every 2 weeks.", - "type": "number" - }, - "tzid": { - "description": "Indicates timezone abbreviation.", - "type": "string" - }, - "until": { - "description": "Recur the rule until this date.", - "type": "string" - }, - "wkst": { - "description": "Indicates the start of week, defaults to Monday.", - "enum": [ - "MO", - "TU", - "WE", - "TH", - "FR", - "SA", - "SU" - ], - "type": "string" - } - }, - "required": [ - "dtstart", - "tzid" - ], - "type": "object" - }, - "skipRecurrences": { - "items": { - "description": "Skips recurrence of rule on this date.", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "duration", - "rRule" - ], - "type": "object" - }, - "type": "array" - }, - "tags": { - "items": { - "description": "The tags for the rule.", - "type": "string" - }, - "type": "array" - }, - "throttle": { - "deprecated": true, - "description": "Deprecated in 8.13.0. Use the `throttle` property in the action `frequency` object instead. The throttle interval, which defines how often an alert generates repeated actions. NOTE: You cannot specify the throttle interval at both the rule and action level. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "nullable": true, - "type": "string" - }, - "updated_at": { - "description": "The date and time that the rule was updated most recently.", - "type": "string" - }, - "updated_by": { - "description": "The identifier for the user that updated this rule most recently.", - "nullable": true, - "type": "string" - }, - "view_in_app_relative_url": { - "description": "Relative URL to view rule in the app.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "id", - "enabled", - "name", - "tags", - "rule_type_id", - "consumer", - "schedule", - "actions", - "params", - "created_by", - "updated_by", - "created_at", - "updated_at", - "api_key_owner", - "mute_all", - "muted_alert_ids", - "execution_status", - "revision" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a rule with the given ID does not exist." - }, - "409": { - "description": "Indicates that the rule has already been updated by another user." - } - }, - "summary": "Update a rule", - "tags": [ - "alerting" - ] - } - }, - "/api/alerting/rule/{id}/_disable": { - "post": { - "operationId": "post-alerting-rule-id-disable", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the rule.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "nullable": true, - "properties": { - "untrack": { - "description": "Defines whether this rule's alerts should be untracked.", - "type": "boolean" - } - }, - "type": "object", - "x-oas-optional": true - } - } - } - }, - "responses": { - "204": { - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a rule with the given ID does not exist." - } - }, - "summary": "Disable a rule", - "tags": [ - "alerting" - ] - } - }, - "/api/alerting/rule/{id}/_enable": { - "post": { - "operationId": "post-alerting-rule-id-enable", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the rule.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a rule with the given ID does not exist." - } - }, - "summary": "Enable a rule", - "tags": [ - "alerting" - ] - } - }, - "/api/alerting/rule/{id}/_mute_all": { - "post": { - "operationId": "post-alerting-rule-id-mute-all", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the rule.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a rule with the given ID does not exist." - } - }, - "summary": "Mute all alerts", - "tags": [ - "alerting" - ] - } - }, - "/api/alerting/rule/{id}/_unmute_all": { - "post": { - "operationId": "post-alerting-rule-id-unmute-all", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the rule.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a rule with the given ID does not exist." - } - }, - "summary": "Unmute all alerts", - "tags": [ - "alerting" - ] - } - }, - "/api/alerting/rule/{id}/_update_api_key": { - "post": { - "operationId": "post-alerting-rule-id-update-api-key", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the rule.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a rule with the given ID does not exist." - }, - "409": { - "description": "Indicates that the rule has already been updated by another user." - } - }, - "summary": "Update the API key for a rule", - "tags": [ - "alerting" - ] - } - }, - "/api/alerting/rule/{id}/snooze_schedule": { - "post": { - "description": "When you snooze a rule, the rule checks continue to run but alerts will not generate actions. You can snooze for a specified period of time and schedule single or recurring downtimes.", - "operationId": "post-alerting-rule-id-snooze-schedule", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "Identifier of the rule.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "schedule": { - "additionalProperties": false, - "properties": { - "custom": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "The duration of the schedule. It allows values in `` format. `` is one of `d`, `h`, `m`, or `s` for hours, minutes, seconds. For example: `1d`, `5h`, `30m`, `5000s`.", - "type": "string" - }, - "recurring": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end date of a recurring schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-04-01T00:00:00.000Z`.", - "type": "string" - }, - "every": { - "description": "The interval and frequency of a recurring schedule. It allows values in `` format. `` is one of `d`, `w`, `M`, or `y` for days, weeks, months, years. For example: `15d`, `2w`, `3m`, `1y`.", - "type": "string" - }, - "occurrences": { - "description": "The total number of recurrences of the schedule.", - "minimum": 1, - "type": "number" - }, - "onMonth": { - "description": "The specific months for a recurring schedule. Valid values are 1-12.", - "items": { - "maximum": 12, - "minimum": 1, - "type": "number" - }, - "minItems": 1, - "type": "array" - }, - "onMonthDay": { - "description": "The specific days of the month for a recurring schedule. Valid values are 1-31.", - "items": { - "maximum": 31, - "minimum": 1, - "type": "number" - }, - "minItems": 1, - "type": "array" - }, - "onWeekDay": { - "description": "The specific days of the week (`[MO,TU,WE,TH,FR,SA,SU]`) or nth day of month (`[+1MO, -3FR, +2WE, -4SA, -5SU]`) for a recurring schedule.", - "items": { - "type": "string" - }, - "minItems": 1, - "type": "array" - } - }, - "type": "object" - }, - "start": { - "description": "The start date and time of the schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-03-12T12:00:00.000Z`.", - "type": "string" - }, - "timezone": { - "description": "The timezone of the schedule. The default timezone is UTC.", - "type": "string" - } - }, - "required": [ - "start", - "duration" - ], - "type": "object" - } - }, - "type": "object" - } - }, - "required": [ - "schedule" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "body": { - "additionalProperties": false, - "properties": { - "schedule": { - "additionalProperties": false, - "properties": { - "custom": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "The duration of the schedule. It allows values in `` format. `` is one of `d`, `h`, `m`, or `s` for hours, minutes, seconds. For example: `1d`, `5h`, `30m`, `5000s`.", - "type": "string" - }, - "recurring": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end date of a recurring schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-04-01T00:00:00.000Z`.", - "type": "string" - }, - "every": { - "description": "The interval and frequency of a recurring schedule. It allows values in `` format. `` is one of `d`, `w`, `M`, or `y` for days, weeks, months, years. For example: `15d`, `2w`, `3m`, `1y`.", - "type": "string" - }, - "occurrences": { - "description": "The total number of recurrences of the schedule.", - "minimum": 1, - "type": "number" - }, - "onMonth": { - "description": "The specific months for a recurring schedule. Valid values are 1-12.", - "items": { - "maximum": 12, - "minimum": 1, - "type": "number" - }, - "minItems": 1, - "type": "array" - }, - "onMonthDay": { - "description": "The specific days of the month for a recurring schedule. Valid values are 1-31.", - "items": { - "maximum": 31, - "minimum": 1, - "type": "number" - }, - "minItems": 1, - "type": "array" - }, - "onWeekDay": { - "description": "The specific days of the week (`[MO,TU,WE,TH,FR,SA,SU]`) or nth day of month (`[+1MO, -3FR, +2WE, -4SA, -5SU]`) for a recurring schedule.", - "items": { - "type": "string" - }, - "minItems": 1, - "type": "array" - } - }, - "type": "object" - }, - "start": { - "description": "The start date and time of the schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-03-12T12:00:00.000Z`.", - "type": "string" - }, - "timezone": { - "description": "The timezone of the schedule. The default timezone is UTC.", - "type": "string" - } - }, - "required": [ - "start", - "duration" - ], - "type": "object" - }, - "id": { - "description": "Identifier of the snooze schedule.", - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - } - }, - "required": [ - "schedule" - ], - "type": "object" - } - }, - "required": [ - "body" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a rule with the given id does not exist." - } - }, - "summary": "Schedule a snooze for the rule", - "tags": [ - "alerting" - ], - "x-state": "Generally available" - } - }, - "/api/alerting/rule/{ruleId}/snooze_schedule/{scheduleId}": { - "delete": { - "operationId": "delete-alerting-rule-ruleid-snooze-schedule-scheduleid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the rule.", - "in": "path", - "name": "ruleId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "The identifier for the snooze schedule.", - "in": "path", - "name": "scheduleId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a rule with the given id does not exist." - } - }, - "summary": "Delete a snooze schedule for a rule", - "tags": [ - "alerting" - ], - "x-state": "Generally available" - } - }, - "/api/alerting/rule/{rule_id}/alert/{alert_id}/_mute": { - "post": { - "operationId": "post-alerting-rule-rule-id-alert-alert-id-mute", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the rule.", - "in": "path", - "name": "rule_id", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "The identifier for the alert.", - "in": "path", - "name": "alert_id", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "Whether to validate the existence of the alert.", - "in": "query", - "name": "validate_alerts_existence", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "204": { - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a rule or alert with the given ID does not exist." - } - }, - "summary": "Mute an alert", - "tags": [ - "alerting" - ] - } - }, - "/api/alerting/rule/{rule_id}/alert/{alert_id}/_unmute": { - "post": { - "operationId": "post-alerting-rule-rule-id-alert-alert-id-unmute", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the rule.", - "in": "path", - "name": "rule_id", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "The identifier for the alert.", - "in": "path", - "name": "alert_id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a rule or alert with the given ID does not exist." - } - }, - "summary": "Unmute an alert", - "tags": [ - "alerting" - ] - } - }, - "/api/alerting/rules/_find": { - "get": { - "operationId": "get-alerting-rules-find", - "parameters": [ - { - "description": "The number of rules to return per page.", - "in": "query", - "name": "per_page", - "required": false, - "schema": { - "default": 10, - "minimum": 0, - "type": "number" - } - }, - { - "description": "The page number to return.", - "in": "query", - "name": "page", - "required": false, - "schema": { - "default": 1, - "minimum": 1, - "type": "number" - } - }, - { - "description": "An Elasticsearch simple_query_string query that filters the objects in the response.", - "in": "query", - "name": "search", - "required": false, - "schema": { - "type": "string" - } - }, - { - "description": "The default operator to use for the simple_query_string.", - "in": "query", - "name": "default_search_operator", - "required": false, - "schema": { - "default": "OR", - "enum": [ - "OR", - "AND" - ], - "type": "string" - } - }, - { - "description": "The fields to perform the simple_query_string parsed query against.", - "in": "query", - "name": "search_fields", - "required": false, - "schema": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ] - } - }, - { - "description": "Determines which field is used to sort the results. The field must exist in the `attributes` key of the response.", - "in": "query", - "name": "sort_field", - "required": false, - "schema": { - "type": "string" - } - }, - { - "description": "Determines the sort order.", - "in": "query", - "name": "sort_order", - "required": false, - "schema": { - "enum": [ - "asc", - "desc" - ], - "type": "string" - } - }, - { - "description": "Filters the rules that have a relation with the reference objects with a specific type and identifier.", - "in": "query", - "name": "has_reference", - "required": false, - "schema": { - "additionalProperties": false, - "nullable": true, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "type", - "id" - ], - "type": "object" - } - }, - { - "description": "The fields to return in the `attributes` key of the response.", - "in": "query", - "name": "fields", - "required": false, - "schema": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ] - } - }, - { - "description": "A KQL string that you filter with an attribute from your saved object. It should look like `savedObjectType.attributes.title: \"myTitle\"`. However, if you used a direct attribute of a saved object, such as `updatedAt`, you must define your filter, for example, `savedObjectType.updatedAt > 2018-12-22`.", - "in": "query", - "name": "filter", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "filter_consumers", - "required": false, - "schema": { - "items": { - "description": "List of consumers to filter.", - "type": "string" - }, - "type": "array" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "findConditionalActionRulesResponse": { - "description": "A response that contains information about an index threshold rule.", - "summary": "Index threshold rule", - "value": { - "data": [ - { - "actions": [ - { - "frequency": { - "notify_when": "onActionGroupChange", - "summary": false, - "throttle": null - }, - "group": "threshold met", - "id": "9dca3e00-74f5-11ed-9801-35303b735aef", - "params": { - "connector_type_id": ".server-log", - "level": "info", - "message": "Rule {{rule.name}} is active for group {{context.group}}:\n\n- Value: {{context.value}}\n- Conditions Met: {{context.conditions}} over {{rule.params.timeWindowSize}}{{rule.params.timeWindowUnit}}\n- Timestamp: {{context.date}}" - }, - "uuid": "1c7a1280-f28c-4e06-96b2-e4e5f05d1d61" - } - ], - "api_key_created_by_user": false, - "api_key_owner": "elastic", - "consumer": "alerts", - "created_at": "2022-12-05T23:40:33.132Z", - "created_by": "elastic", - "enabled": true, - "execution_status": { - "last_duration": 48, - "last_execution_date": "2022-12-06T01:44:23.983Z", - "status": "ok" - }, - "id": "3583a470-74f6-11ed-9801-35303b735aef", - "last_run": { - "alerts_count": { - "active": 0, - "ignored": 0, - "new": 0, - "recovered": 0 - }, - "outcome": "succeeded", - "outcome_msg": null, - "warning": null - }, - "mute_all": false, - "muted_alert_ids": [], - "name": "my alert", - "next_run": "2022-12-06T01:45:23.912Z", - "params": { - "aggField": "sheet.version", - "aggType": "avg", - "groupBy": "top", - "index": [ - "test-index" - ], - "termField": "name.keyword", - "termSize": 6, - "threshold": [ - 1000 - ], - "thresholdComparator": ">", - "timeField": "@timestamp", - "timeWindowSize": 5, - "timeWindowUnit": "m" - }, - "revision": 1, - "rule_type_id": ".index-threshold", - "schedule": { - "interval": "1m" - }, - "scheduled_task_id": "3583a470-74f6-11ed-9801-35303b735aef", - "tags": [ - "cpu" - ], - "throttle": null, - "updated_at": "2022-12-05T23:40:33.132Z", - "updated_by": "elastic" - } - ], - "page": 1, - "per_page": 10, - "total": 1 - } - }, - "findRulesResponse": { - "description": "A response that contains information about a security rule that has conditional actions.", - "summary": "Security rule", - "value": { - "data": [ - { - "actions": [ - { - "alerts_filter": { - "query": { - "filters": [ - { - "$state": { - "store": "appState" - }, - "meta": { - "alias": null, - "disabled": false, - "field": "client.geo.region_iso_code", - "index": "c4bdca79-e69e-4d80-82a1-e5192c621bea", - "key": "client.geo.region_iso_code", - "negate": false, - "params": { - "query": "CA-QC", - "type": "phrase" - } - }, - "query": { - "match_phrase": { - "client.geo.region_iso_code": "CA-QC" - } - } - } - ], - "kql": "" - }, - "timeframe": { - "days": [ - 7 - ], - "hours": { - "end": "17:00", - "start": "08:00" - }, - "timezone": "UTC" - } - }, - "connector_type_id": ".index", - "frequency": { - "notify_when": "onActiveAlert", - "summary": true, - "throttle": null - }, - "group": "default", - "id": "49eae970-f401-11ed-9f8e-399c75a2deeb", - "params": { - "documents": [ - { - "alert_id": { - "[object Object]": null - }, - "context_message": { - "[object Object]": null - }, - "rule_id": { - "[object Object]": null - }, - "rule_name": { - "[object Object]": null - } - } - ] - }, - "uuid": "1c7a1280-f28c-4e06-96b2-e4e5f05d1d61" - } - ], - "api_key_created_by_user": false, - "api_key_owner": "elastic", - "consumer": "siem", - "created_at": "2023-05-16T15:50:28.358Z", - "created_by": "elastic", - "enabled": true, - "execution_status": { - "last_duration": 166, - "last_execution_date": "2023-05-16T20:26:49.590Z", - "status": "ok" - }, - "id": "6107a8f0-f401-11ed-9f8e-399c75a2deeb", - "last_run": { - "alerts_count": { - "active": 0, - "ignored": 0, - "new": 0, - "recovered": 0 - }, - "outcome": "succeeded", - "outcome_msg": [ - "Rule execution completed successfully" - ], - "outcome_order": 0, - "warning": null - }, - "mute_all": false, - "muted_alert_ids": [], - "name": "security_rule", - "next_run": "2023-05-16T20:27:49.507Z", - "notify_when": null, - "params": { - "author": [], - "description": "A security threshold rule.", - "exceptionsList": [], - "falsePositives": [], - "filters": [], - "from": "now-3660s", - "immutable": false, - "index": [ - "kibana_sample_data_logs" - ], - "language": "kuery", - "license": "", - "maxSignals": 100, - "meta": { - "from": "1h", - "kibana_siem_app_url": "https://localhost:5601/app/security" - }, - "outputIndex": "", - "query": "*", - "references": [], - "riskScore": 21, - "riskScoreMapping": [], - "ruleId": "an_internal_rule_id", - "severity": "low", - "severityMapping": [], - "threat": [], - "threshold": { - "cardinality": [], - "field": [ - "bytes" - ], - "value": 1 - }, - "to": "now", - "type": "threshold", - "version": 1 - }, - "revision": 1, - "rule_type_id": "siem.thresholdRule", - "running": false, - "schedule": { - "interval": "1m" - }, - "scheduled_task_id": "6107a8f0-f401-11ed-9f8e-399c75a2deeb", - "tags": [], - "throttle": null, - "updated_at": "2023-05-16T20:25:42.559Z", - "updated_by": "elastic" - } - ], - "page": 1, - "per_page": 10, - "total": 1 - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "actions": { - "items": { - "additionalProperties": false, - "properties": { - "alerts_filter": { - "additionalProperties": false, - "description": "Defines a period that limits whether the action runs.", - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "dsl": { - "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL).", - "type": "string" - }, - "filters": { - "description": "A filter written in Elasticsearch Query Domain Specific Language (DSL) as defined in the `kbn-es-query` package.", - "items": { - "additionalProperties": false, - "properties": { - "$state": { - "additionalProperties": false, - "properties": { - "store": { - "description": "A filter can be either specific to an application context or applied globally.", - "enum": [ - "appState", - "globalState" - ], - "type": "string" - } - }, - "required": [ - "store" - ], - "type": "object" - }, - "meta": { - "additionalProperties": {}, - "type": "object" - }, - "query": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "meta" - ], - "type": "object" - }, - "type": "array" - }, - "kql": { - "description": "A filter written in Kibana Query Language (KQL).", - "type": "string" - } - }, - "required": [ - "kql", - "filters" - ], - "type": "object" - }, - "timeframe": { - "additionalProperties": false, - "properties": { - "days": { - "description": "Defines the days of the week that the action can run, represented as an array of numbers. For example, `1` represents Monday. An empty array is equivalent to specifying all the days of the week.", - "items": { - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "type": "integer" - }, - "type": "array" - }, - "hours": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end of the time frame in 24-hour notation (`hh:mm`).", - "type": "string" - }, - "start": { - "description": "The start of the time frame in 24-hour notation (`hh:mm`).", - "type": "string" - } - }, - "required": [ - "start", - "end" - ], - "type": "object" - }, - "timezone": { - "description": "The ISO time zone for the `hours` values. Values such as `UTC` and `UTC+1` also work but lack built-in daylight savings time support and are not recommended.", - "type": "string" - } - }, - "required": [ - "days", - "hours", - "timezone" - ], - "type": "object" - } - }, - "type": "object" - }, - "connector_type_id": { - "description": "The type of connector. This property appears in responses but cannot be set in requests.", - "type": "string" - }, - "frequency": { - "additionalProperties": false, - "properties": { - "notify_when": { - "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "enum": [ - "onActionGroupChange", - "onActiveAlert", - "onThrottleInterval" - ], - "type": "string" - }, - "summary": { - "description": "Indicates whether the action is a summary.", - "type": "boolean" - }, - "throttle": { - "description": "The throttle interval, which defines how often an alert generates repeated actions. It is specified in seconds, minutes, hours, or days and is applicable only if 'notify_when' is set to 'onThrottleInterval'. NOTE: You cannot specify the throttle interval at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "summary", - "notify_when", - "throttle" - ], - "type": "object" - }, - "group": { - "description": "The group name, which affects when the action runs (for example, when the threshold is met or when the alert is recovered). Each rule type has a list of valid action group names. If you don't need to group actions, set to `default`.", - "type": "string" - }, - "id": { - "description": "The identifier for the connector saved object.", - "type": "string" - }, - "params": { - "additionalProperties": {}, - "description": "The parameters for the action, which are sent to the connector. The `params` are handled as Mustache templates and passed a default set of context.", - "type": "object" - }, - "use_alert_data_for_template": { - "description": "Indicates whether to use alert data as a template.", - "type": "boolean" - }, - "uuid": { - "description": "A universally unique identifier (UUID) for the action.", - "type": "string" - } - }, - "required": [ - "id", - "connector_type_id", - "params" - ], - "type": "object" - }, - "type": "array" - }, - "active_snoozes": { - "items": { - "description": "List of active snoozes for the rule.", - "type": "string" - }, - "type": "array" - }, - "alert_delay": { - "additionalProperties": false, - "description": "Indicates that an alert occurs only when the specified number of consecutive runs met the rule conditions.", - "properties": { - "active": { - "description": "The number of consecutive runs that must meet the rule conditions.", - "type": "number" - } - }, - "required": [ - "active" - ], - "type": "object" - }, - "api_key_created_by_user": { - "description": "Indicates whether the API key that is associated with the rule was created by the user.", - "nullable": true, - "type": "boolean" - }, - "api_key_owner": { - "description": "The owner of the API key that is associated with the rule and used to run background tasks.", - "nullable": true, - "type": "string" - }, - "artifacts": { - "additionalProperties": false, - "properties": { - "dashboards": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "type": "array" - }, - "investigation_guide": { - "additionalProperties": false, - "properties": { - "blob": { - "description": "User-created content that describes alert causes and remdiation.", - "type": "string" - } - }, - "required": [ - "blob" - ], - "type": "object" - } - }, - "type": "object" - }, - "consumer": { - "description": "The name of the application or feature that owns the rule. For example: `alerts`, `apm`, `discover`, `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, `securitySolution`, `siem`, `stackAlerts`, or `uptime`.", - "type": "string" - }, - "created_at": { - "description": "The date and time that the rule was created.", - "type": "string" - }, - "created_by": { - "description": "The identifier for the user that created the rule.", - "nullable": true, - "type": "string" - }, - "enabled": { - "description": "Indicates whether you want to run the rule on an interval basis after it is created.", - "type": "boolean" - }, - "execution_status": { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "message": { - "description": "Error message.", - "type": "string" - }, - "reason": { - "description": "Reason for error.", - "enum": [ - "read", - "decrypt", - "execute", - "unknown", - "license", - "timeout", - "disabled", - "validate" - ], - "type": "string" - } - }, - "required": [ - "reason", - "message" - ], - "type": "object" - }, - "last_duration": { - "description": "Duration of last execution of the rule.", - "type": "number" - }, - "last_execution_date": { - "description": "The date and time when rule was executed last.", - "type": "string" - }, - "status": { - "description": "Status of rule execution.", - "enum": [ - "ok", - "active", - "error", - "warning", - "pending", - "unknown" - ], - "type": "string" - }, - "warning": { - "additionalProperties": false, - "properties": { - "message": { - "description": "Warning message.", - "type": "string" - }, - "reason": { - "description": "Reason for warning.", - "enum": [ - "maxExecutableActions", - "maxAlerts", - "maxQueuedActions", - "ruleExecution" - ], - "type": "string" - } - }, - "required": [ - "reason", - "message" - ], - "type": "object" - } - }, - "required": [ - "status", - "last_execution_date" - ], - "type": "object" - }, - "flapping": { - "additionalProperties": false, - "description": "When flapping detection is turned on, alerts that switch quickly between active and recovered states are identified as “flapping” and notifications are reduced.", - "nullable": true, - "properties": { - "enabled": { - "description": "Determines whether the rule can enter the flapping state. By default, rules can enter the flapping state.", - "type": "boolean" - }, - "look_back_window": { - "description": "The minimum number of runs in which the threshold must be met.", - "maximum": 20, - "minimum": 2, - "type": "number" - }, - "status_change_threshold": { - "description": "The minimum number of times an alert must switch states in the look back window.", - "maximum": 20, - "minimum": 2, - "type": "number" - } - }, - "required": [ - "look_back_window", - "status_change_threshold" - ], - "type": "object" - }, - "id": { - "description": "The identifier for the rule.", - "type": "string" - }, - "is_snoozed_until": { - "description": "The date when the rule will no longer be snoozed.", - "nullable": true, - "type": "string" - }, - "last_run": { - "additionalProperties": false, - "nullable": true, - "properties": { - "alerts_count": { - "additionalProperties": false, - "properties": { - "active": { - "description": "Number of active alerts during last run.", - "nullable": true, - "type": "number" - }, - "ignored": { - "description": "Number of ignored alerts during last run.", - "nullable": true, - "type": "number" - }, - "new": { - "description": "Number of new alerts during last run.", - "nullable": true, - "type": "number" - }, - "recovered": { - "description": "Number of recovered alerts during last run.", - "nullable": true, - "type": "number" - } - }, - "type": "object" - }, - "outcome": { - "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", - "enum": [ - "succeeded", - "warning", - "failed" - ], - "type": "string" - }, - "outcome_msg": { - "items": { - "description": "Outcome message generated during last rule run.", - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "outcome_order": { - "description": "Order of the outcome.", - "type": "number" - }, - "warning": { - "description": "Warning of last rule execution.", - "enum": [ - "read", - "decrypt", - "execute", - "unknown", - "license", - "timeout", - "disabled", - "validate", - "maxExecutableActions", - "maxAlerts", - "maxQueuedActions", - "ruleExecution" - ], - "nullable": true, - "type": "string" - } - }, - "required": [ - "outcome", - "alerts_count" - ], - "type": "object" - }, - "mapped_params": { - "additionalProperties": {}, - "type": "object" - }, - "monitoring": { - "additionalProperties": false, - "description": "Monitoring details of the rule.", - "properties": { - "run": { - "additionalProperties": false, - "description": "Rule run details.", - "properties": { - "calculated_metrics": { - "additionalProperties": false, - "description": "Calculation of different percentiles and success ratio.", - "properties": { - "p50": { - "type": "number" - }, - "p95": { - "type": "number" - }, - "p99": { - "type": "number" - }, - "success_ratio": { - "type": "number" - } - }, - "required": [ - "success_ratio" - ], - "type": "object" - }, - "history": { - "description": "History of the rule run.", - "items": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "Duration of the rule run.", - "type": "number" - }, - "outcome": { - "description": "Outcome of last run of the rule. Value could be succeeded, warning or failed.", - "enum": [ - "succeeded", - "warning", - "failed" - ], - "type": "string" - }, - "success": { - "description": "Indicates whether the rule run was successful.", - "type": "boolean" - }, - "timestamp": { - "description": "Time of rule run.", - "type": "number" - } - }, - "required": [ - "success", - "timestamp" - ], - "type": "object" - }, - "type": "array" - }, - "last_run": { - "additionalProperties": false, - "properties": { - "metrics": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "Duration of most recent rule run.", - "type": "number" - }, - "gap_duration_s": { - "description": "Duration in seconds of rule run gap.", - "nullable": true, - "type": "number" - }, - "gap_range": { - "additionalProperties": false, - "nullable": true, - "properties": { - "gte": { - "description": "End of the gap range.", - "type": "string" - }, - "lte": { - "description": "Start of the gap range.", - "type": "string" - } - }, - "required": [ - "lte", - "gte" - ], - "type": "object" - }, - "total_alerts_created": { - "description": "Total number of alerts created during last rule run.", - "nullable": true, - "type": "number" - }, - "total_alerts_detected": { - "description": "Total number of alerts detected during last rule run.", - "nullable": true, - "type": "number" - }, - "total_indexing_duration_ms": { - "description": "Total time spent indexing documents during last rule run in milliseconds.", - "nullable": true, - "type": "number" - }, - "total_search_duration_ms": { - "description": "Total time spent performing Elasticsearch searches as measured by Kibana; includes network latency and time spent serializing or deserializing the request and response.", - "nullable": true, - "type": "number" - } - }, - "type": "object" - }, - "timestamp": { - "description": "Time of the most recent rule run.", - "type": "string" - } - }, - "required": [ - "timestamp", - "metrics" - ], - "type": "object" - } - }, - "required": [ - "history", - "calculated_metrics", - "last_run" - ], - "type": "object" - } - }, - "required": [ - "run" - ], - "type": "object" - }, - "mute_all": { - "description": "Indicates whether all alerts are muted.", - "type": "boolean" - }, - "muted_alert_ids": { - "items": { - "description": "List of identifiers of muted alerts. ", - "type": "string" - }, - "type": "array" - }, - "name": { - "description": " The name of the rule.", - "type": "string" - }, - "next_run": { - "description": "Date and time of the next run of the rule.", - "nullable": true, - "type": "string" - }, - "notify_when": { - "description": "Indicates how often alerts generate actions. Valid values include: `onActionGroupChange`: Actions run when the alert status changes; `onActiveAlert`: Actions run when the alert becomes active and at each check interval while the rule conditions are met; `onThrottleInterval`: Actions run when the alert becomes active and at the interval specified in the throttle property while the rule conditions are met. NOTE: You cannot specify `notify_when` at both the rule and action level. The recommended method is to set it for each action. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "enum": [ - "onActionGroupChange", - "onActiveAlert", - "onThrottleInterval" - ], - "nullable": true, - "type": "string" - }, - "params": { - "additionalProperties": {}, - "description": "The parameters for the rule.", - "type": "object" - }, - "revision": { - "description": "The rule revision number.", - "type": "number" - }, - "rule_type_id": { - "description": "The rule type identifier.", - "type": "string" - }, - "running": { - "description": "Indicates whether the rule is running.", - "nullable": true, - "type": "boolean" - }, - "schedule": { - "additionalProperties": false, - "properties": { - "interval": { - "description": "The interval is specified in seconds, minutes, hours, or days.", - "type": "string" - } - }, - "required": [ - "interval" - ], - "type": "object" - }, - "scheduled_task_id": { - "description": "Identifier of the scheduled task.", - "type": "string" - }, - "snooze_schedule": { - "items": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "Duration of the rule snooze schedule.", - "type": "number" - }, - "id": { - "description": "Identifier of the rule snooze schedule.", - "type": "string" - }, - "rRule": { - "additionalProperties": false, - "properties": { - "byhour": { - "items": { - "description": "Indicates hours of the day to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "byminute": { - "items": { - "description": "Indicates minutes of the hour to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bymonth": { - "items": { - "description": "Indicates months of the year that this rule should recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bymonthday": { - "items": { - "description": "Indicates the days of the month to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bysecond": { - "items": { - "description": "Indicates seconds of the day to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "bysetpos": { - "items": { - "description": "A positive or negative integer affecting the nth day of the month. For example, -2 combined with `byweekday` of FR is 2nd to last Friday of the month. It is recommended to not set this manually and just use `byweekday`.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "byweekday": { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ], - "description": "Indicates the days of the week to recur or else nth-day-of-month strings. For example, \"+2TU\" second Tuesday of month, \"-1FR\" last Friday of the month, which are internally converted to a `byweekday/bysetpos` combination." - }, - "nullable": true, - "type": "array" - }, - "byweekno": { - "items": { - "description": "Indicates number of the week hours to recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "byyearday": { - "items": { - "description": "Indicates the days of the year that this rule should recur.", - "type": "number" - }, - "nullable": true, - "type": "array" - }, - "count": { - "description": "Number of times the rule should recur until it stops.", - "type": "number" - }, - "dtstart": { - "description": "Rule start date in Coordinated Universal Time (UTC).", - "type": "string" - }, - "freq": { - "description": "Indicates frequency of the rule. Options are YEARLY, MONTHLY, WEEKLY, DAILY.", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ], - "type": "integer" - }, - "interval": { - "description": "Indicates the interval of frequency. For example, 1 and YEARLY is every 1 year, 2 and WEEKLY is every 2 weeks.", - "type": "number" - }, - "tzid": { - "description": "Indicates timezone abbreviation.", - "type": "string" - }, - "until": { - "description": "Recur the rule until this date.", - "type": "string" - }, - "wkst": { - "description": "Indicates the start of week, defaults to Monday.", - "enum": [ - "MO", - "TU", - "WE", - "TH", - "FR", - "SA", - "SU" - ], - "type": "string" - } - }, - "required": [ - "dtstart", - "tzid" - ], - "type": "object" - }, - "skipRecurrences": { - "items": { - "description": "Skips recurrence of rule on this date.", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "duration", - "rRule" - ], - "type": "object" - }, - "type": "array" - }, - "tags": { - "items": { - "description": "The tags for the rule.", - "type": "string" - }, - "type": "array" - }, - "throttle": { - "deprecated": true, - "description": "Deprecated in 8.13.0. Use the `throttle` property in the action `frequency` object instead. The throttle interval, which defines how often an alert generates repeated actions. NOTE: You cannot specify the throttle interval at both the rule and action level. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values.", - "nullable": true, - "type": "string" - }, - "updated_at": { - "description": "The date and time that the rule was updated most recently.", - "type": "string" - }, - "updated_by": { - "description": "The identifier for the user that updated this rule most recently.", - "nullable": true, - "type": "string" - }, - "view_in_app_relative_url": { - "description": "Relative URL to view rule in the app.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "id", - "enabled", - "name", - "tags", - "rule_type_id", - "consumer", - "schedule", - "actions", - "params", - "created_by", - "updated_by", - "created_at", - "updated_at", - "api_key_owner", - "mute_all", - "muted_alert_ids", - "execution_status", - "revision" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - } - }, - "summary": "Get information about rules", - "tags": [ - "alerting" - ] - } - }, - "/api/fleet/agent_download_sources": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-read OR fleet-settings-read.", - "operationId": "get-fleet-agent-download-sources", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "host": { - "format": "uri", - "type": "string" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "description": "The ID of the proxy to use for this download source. See the proxies API for more information.", - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "id", - "name", - "host" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "page": { - "type": "number" - }, - "perPage": { - "type": "number" - }, - "total": { - "type": "number" - } - }, - "required": [ - "items", - "total", - "page", - "perPage" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get agent binary download sources", - "tags": [ - "Elastic Agent binary download sources" - ] - }, - "post": { - "description": "[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "post-fleet-agent-download-sources", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "host": { - "format": "uri", - "type": "string" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "description": "The ID of the proxy to use for this download source. See the proxies API for more information.", - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "name", - "host" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "host": { - "format": "uri", - "type": "string" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "description": "The ID of the proxy to use for this download source. See the proxies API for more information.", - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "id", - "name", - "host" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Create an agent binary download source", - "tags": [ - "Elastic Agent binary download sources" - ] - } - }, - "/api/fleet/agent_download_sources/{sourceId}": { - "delete": { - "description": "Delete an agent binary download source by ID.

[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "delete-fleet-agent-download-sources-sourceid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "sourceId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Delete an agent binary download source", - "tags": [ - "Elastic Agent binary download sources" - ] - }, - "get": { - "description": "Get an agent binary download source by ID.

[Required authorization] Route required privileges: fleet-agent-policies-read OR fleet-settings-read.", - "operationId": "get-fleet-agent-download-sources-sourceid", - "parameters": [ - { - "in": "path", - "name": "sourceId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "host": { - "format": "uri", - "type": "string" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "description": "The ID of the proxy to use for this download source. See the proxies API for more information.", - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "id", - "name", - "host" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get an agent binary download source", - "tags": [ - "Elastic Agent binary download sources" - ] - }, - "put": { - "description": "Update an agent binary download source by ID.

[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "put-fleet-agent-download-sources-sourceid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "sourceId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "host": { - "format": "uri", - "type": "string" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "description": "The ID of the proxy to use for this download source. See the proxies API for more information.", - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "name", - "host" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "host": { - "format": "uri", - "type": "string" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "description": "The ID of the proxy to use for this download source. See the proxies API for more information.", - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "id", - "name", - "host" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Update an agent binary download source", - "tags": [ - "Elastic Agent binary download sources" - ] - } - }, - "/api/fleet/agent_policies": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-read OR fleet-agents-read OR fleet-setup.", - "operationId": "get-fleet-agent-policies", - "parameters": [ - { - "in": "query", - "name": "page", - "required": false, - "schema": { - "type": "number" - } - }, - { - "in": "query", - "name": "perPage", - "required": false, - "schema": { - "type": "number" - } - }, - { - "in": "query", - "name": "sortField", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "sortOrder", - "required": false, - "schema": { - "enum": [ - "desc", - "asc" - ], - "type": "string" - } - }, - { - "in": "query", - "name": "showUpgradeable", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "kuery", - "required": false, - "schema": { - "type": "string" - } - }, - { - "description": "use withAgentCount instead", - "in": "query", - "name": "noAgentCount", - "required": false, - "schema": { - "deprecated": true, - "type": "boolean" - } - }, - { - "description": "get policies with agent count", - "in": "query", - "name": "withAgentCount", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "description": "get full policies with package policies populated", - "in": "query", - "name": "full", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "format", - "required": false, - "schema": { - "enum": [ - "simplified", - "legacy" - ], - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "advanced_settings": { - "additionalProperties": false, - "properties": { - "agent_download_target_directory": { - "nullable": true - }, - "agent_download_timeout": { - "nullable": true - }, - "agent_internal": { - "nullable": true - }, - "agent_limits_go_max_procs": { - "nullable": true - }, - "agent_logging_files_interval": { - "nullable": true - }, - "agent_logging_files_keepfiles": { - "nullable": true - }, - "agent_logging_files_rotateeverybytes": { - "nullable": true - }, - "agent_logging_level": { - "nullable": true - }, - "agent_logging_metrics_period": { - "nullable": true - }, - "agent_logging_to_files": { - "nullable": true - }, - "agent_monitoring_runtime_experimental": { - "nullable": true - } - }, - "type": "object" - }, - "agent_features": { - "items": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "enabled" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "agentless": { - "additionalProperties": false, - "properties": { - "cloud_connectors": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "target_csp": { - "enum": [ - "aws", - "azure", - "gcp" - ], - "type": "string" - } - }, - "required": [ - "enabled" - ], - "type": "object" - }, - "resources": { - "additionalProperties": false, - "properties": { - "requests": { - "additionalProperties": false, - "properties": { - "cpu": { - "type": "string" - }, - "memory": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "agents": { - "type": "number" - }, - "data_output_id": { - "nullable": true, - "type": "string" - }, - "description": { - "type": "string" - }, - "download_source_id": { - "nullable": true, - "type": "string" - }, - "fips_agents": { - "type": "number" - }, - "fleet_server_host_id": { - "nullable": true, - "type": "string" - }, - "global_data_tags": { - "description": "User defined data tags that are added to all of the inputs. The values can be strings or numbers.", - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "required": [ - "name", - "value" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "has_agent_version_conditions": { - "type": "boolean" - }, - "has_fleet_server": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "inactivity_timeout": { - "default": 1209600, - "minimum": 0, - "type": "number" - }, - "is_default": { - "type": "boolean" - }, - "is_default_fleet_server": { - "type": "boolean" - }, - "is_managed": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "is_protected": { - "description": "Indicates whether the agent policy has tamper protection enabled. Default false.", - "type": "boolean" - }, - "keep_monitoring_alive": { - "default": false, - "description": "When set to true, monitoring will be enabled but logs/metrics collection will be disabled", - "nullable": true, - "type": "boolean" - }, - "monitoring_diagnostics": { - "additionalProperties": false, - "properties": { - "limit": { - "additionalProperties": false, - "properties": { - "burst": { - "type": "number" - }, - "interval": { - "type": "string" - } - }, - "type": "object" - }, - "uploader": { - "additionalProperties": false, - "properties": { - "init_dur": { - "type": "string" - }, - "max_dur": { - "type": "string" - }, - "max_retries": { - "type": "number" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "monitoring_enabled": { - "items": { - "enum": [ - "logs", - "metrics", - "traces" - ], - "type": "string" - }, - "maxItems": 3, - "type": "array" - }, - "monitoring_http": { - "additionalProperties": false, - "properties": { - "buffer": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "host": { - "type": "string" - }, - "port": { - "maximum": 65353, - "minimum": 0, - "type": "number" - } - }, - "type": "object" - }, - "monitoring_output_id": { - "nullable": true, - "type": "string" - }, - "monitoring_pprof_enabled": { - "type": "boolean" - }, - "name": { - "minLength": 1, - "type": "string" - }, - "namespace": { - "minLength": 1, - "type": "string" - }, - "overrides": { - "additionalProperties": {}, - "description": "Override settings that are defined in the agent policy. Input settings cannot be overridden. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "type": "object" - }, - "package_policies": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "description": "This field is present only when retrieving a single agent policy, or when retrieving a list of agent policies with the ?full=true parameter", - "items": { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "agents": { - "type": "number" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "description": "Package policy unique identifier.", - "type": "string" - }, - "inputs": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package policy inputs." - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "description": "Package policy revision.", - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "anyOf": [ - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package level variable." - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs", - "id", - "revision", - "updated_at", - "updated_by", - "created_at", - "created_by" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - ] - }, - "required_versions": { - "items": { - "additionalProperties": false, - "properties": { - "percentage": { - "description": "Target percentage of agents to auto upgrade", - "maximum": 100, - "minimum": 0, - "type": "number" - }, - "version": { - "description": "Target version for automatic agent upgrade", - "type": "string" - } - }, - "required": [ - "version", - "percentage" - ], - "type": "object" - }, - "maxItems": 100, - "nullable": true, - "type": "array" - }, - "revision": { - "type": "number" - }, - "schema_version": { - "type": "string" - }, - "space_ids": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "status": { - "enum": [ - "active", - "inactive" - ], - "type": "string" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the agent policy supports agentless integrations.", - "nullable": true, - "type": "boolean" - }, - "unenroll_timeout": { - "minimum": 0, - "type": "number" - }, - "unprivileged_agents": { - "type": "number" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "namespace", - "is_protected", - "status", - "updated_at", - "updated_by", - "revision" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "page": { - "type": "number" - }, - "perPage": { - "type": "number" - }, - "total": { - "type": "number" - } - }, - "required": [ - "items", - "total", - "page", - "perPage" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get agent policies", - "tags": [ - "Elastic Agent policies" - ] - }, - "post": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-all.", - "operationId": "post-fleet-agent-policies", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "query", - "name": "sys_monitoring", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "advanced_settings": { - "additionalProperties": false, - "properties": { - "agent_download_target_directory": { - "nullable": true - }, - "agent_download_timeout": { - "nullable": true - }, - "agent_internal": { - "nullable": true - }, - "agent_limits_go_max_procs": { - "nullable": true - }, - "agent_logging_files_interval": { - "nullable": true - }, - "agent_logging_files_keepfiles": { - "nullable": true - }, - "agent_logging_files_rotateeverybytes": { - "nullable": true - }, - "agent_logging_level": { - "nullable": true - }, - "agent_logging_metrics_period": { - "nullable": true - }, - "agent_logging_to_files": { - "nullable": true - }, - "agent_monitoring_runtime_experimental": { - "nullable": true - } - }, - "type": "object" - }, - "agent_features": { - "items": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "enabled" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "agentless": { - "additionalProperties": false, - "properties": { - "cloud_connectors": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "target_csp": { - "enum": [ - "aws", - "azure", - "gcp" - ], - "type": "string" - } - }, - "required": [ - "enabled" - ], - "type": "object" - }, - "resources": { - "additionalProperties": false, - "properties": { - "requests": { - "additionalProperties": false, - "properties": { - "cpu": { - "type": "string" - }, - "memory": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "data_output_id": { - "nullable": true, - "type": "string" - }, - "description": { - "type": "string" - }, - "download_source_id": { - "nullable": true, - "type": "string" - }, - "fleet_server_host_id": { - "nullable": true, - "type": "string" - }, - "force": { - "type": "boolean" - }, - "global_data_tags": { - "description": "User defined data tags that are added to all of the inputs. The values can be strings or numbers.", - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "required": [ - "name", - "value" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "has_agent_version_conditions": { - "type": "boolean" - }, - "has_fleet_server": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "inactivity_timeout": { - "default": 1209600, - "minimum": 0, - "type": "number" - }, - "is_default": { - "type": "boolean" - }, - "is_default_fleet_server": { - "type": "boolean" - }, - "is_managed": { - "type": "boolean" - }, - "is_protected": { - "type": "boolean" - }, - "keep_monitoring_alive": { - "default": false, - "description": "When set to true, monitoring will be enabled but logs/metrics collection will be disabled", - "nullable": true, - "type": "boolean" - }, - "monitoring_diagnostics": { - "additionalProperties": false, - "properties": { - "limit": { - "additionalProperties": false, - "properties": { - "burst": { - "type": "number" - }, - "interval": { - "type": "string" - } - }, - "type": "object" - }, - "uploader": { - "additionalProperties": false, - "properties": { - "init_dur": { - "type": "string" - }, - "max_dur": { - "type": "string" - }, - "max_retries": { - "type": "number" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "monitoring_enabled": { - "items": { - "enum": [ - "logs", - "metrics", - "traces" - ], - "type": "string" - }, - "maxItems": 3, - "type": "array" - }, - "monitoring_http": { - "additionalProperties": false, - "properties": { - "buffer": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "host": { - "type": "string" - }, - "port": { - "maximum": 65353, - "minimum": 0, - "type": "number" - } - }, - "type": "object" - }, - "monitoring_output_id": { - "nullable": true, - "type": "string" - }, - "monitoring_pprof_enabled": { - "type": "boolean" - }, - "name": { - "minLength": 1, - "type": "string" - }, - "namespace": { - "minLength": 1, - "type": "string" - }, - "overrides": { - "additionalProperties": {}, - "description": "Override settings that are defined in the agent policy. Input settings cannot be overridden. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "type": "object" - }, - "required_versions": { - "items": { - "additionalProperties": false, - "properties": { - "percentage": { - "description": "Target percentage of agents to auto upgrade", - "maximum": 100, - "minimum": 0, - "type": "number" - }, - "version": { - "description": "Target version for automatic agent upgrade", - "type": "string" - } - }, - "required": [ - "version", - "percentage" - ], - "type": "object" - }, - "maxItems": 100, - "nullable": true, - "type": "array" - }, - "space_ids": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "deprecated": true, - "description": "Indicates whether the agent policy supports agentless integrations. Deprecated in favor of the Fleet agentless policies API.", - "nullable": true, - "type": "boolean" - }, - "unenroll_timeout": { - "minimum": 0, - "type": "number" - } - }, - "required": [ - "name", - "namespace" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "advanced_settings": { - "additionalProperties": false, - "properties": { - "agent_download_target_directory": { - "nullable": true - }, - "agent_download_timeout": { - "nullable": true - }, - "agent_internal": { - "nullable": true - }, - "agent_limits_go_max_procs": { - "nullable": true - }, - "agent_logging_files_interval": { - "nullable": true - }, - "agent_logging_files_keepfiles": { - "nullable": true - }, - "agent_logging_files_rotateeverybytes": { - "nullable": true - }, - "agent_logging_level": { - "nullable": true - }, - "agent_logging_metrics_period": { - "nullable": true - }, - "agent_logging_to_files": { - "nullable": true - }, - "agent_monitoring_runtime_experimental": { - "nullable": true - } - }, - "type": "object" - }, - "agent_features": { - "items": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "enabled" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "agentless": { - "additionalProperties": false, - "properties": { - "cloud_connectors": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "target_csp": { - "enum": [ - "aws", - "azure", - "gcp" - ], - "type": "string" - } - }, - "required": [ - "enabled" - ], - "type": "object" - }, - "resources": { - "additionalProperties": false, - "properties": { - "requests": { - "additionalProperties": false, - "properties": { - "cpu": { - "type": "string" - }, - "memory": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "agents": { - "type": "number" - }, - "data_output_id": { - "nullable": true, - "type": "string" - }, - "description": { - "type": "string" - }, - "download_source_id": { - "nullable": true, - "type": "string" - }, - "fips_agents": { - "type": "number" - }, - "fleet_server_host_id": { - "nullable": true, - "type": "string" - }, - "global_data_tags": { - "description": "User defined data tags that are added to all of the inputs. The values can be strings or numbers.", - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "required": [ - "name", - "value" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "has_agent_version_conditions": { - "type": "boolean" - }, - "has_fleet_server": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "inactivity_timeout": { - "default": 1209600, - "minimum": 0, - "type": "number" - }, - "is_default": { - "type": "boolean" - }, - "is_default_fleet_server": { - "type": "boolean" - }, - "is_managed": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "is_protected": { - "description": "Indicates whether the agent policy has tamper protection enabled. Default false.", - "type": "boolean" - }, - "keep_monitoring_alive": { - "default": false, - "description": "When set to true, monitoring will be enabled but logs/metrics collection will be disabled", - "nullable": true, - "type": "boolean" - }, - "monitoring_diagnostics": { - "additionalProperties": false, - "properties": { - "limit": { - "additionalProperties": false, - "properties": { - "burst": { - "type": "number" - }, - "interval": { - "type": "string" - } - }, - "type": "object" - }, - "uploader": { - "additionalProperties": false, - "properties": { - "init_dur": { - "type": "string" - }, - "max_dur": { - "type": "string" - }, - "max_retries": { - "type": "number" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "monitoring_enabled": { - "items": { - "enum": [ - "logs", - "metrics", - "traces" - ], - "type": "string" - }, - "maxItems": 3, - "type": "array" - }, - "monitoring_http": { - "additionalProperties": false, - "properties": { - "buffer": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "host": { - "type": "string" - }, - "port": { - "maximum": 65353, - "minimum": 0, - "type": "number" - } - }, - "type": "object" - }, - "monitoring_output_id": { - "nullable": true, - "type": "string" - }, - "monitoring_pprof_enabled": { - "type": "boolean" - }, - "name": { - "minLength": 1, - "type": "string" - }, - "namespace": { - "minLength": 1, - "type": "string" - }, - "overrides": { - "additionalProperties": {}, - "description": "Override settings that are defined in the agent policy. Input settings cannot be overridden. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "type": "object" - }, - "package_policies": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "description": "This field is present only when retrieving a single agent policy, or when retrieving a list of agent policies with the ?full=true parameter", - "items": { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "agents": { - "type": "number" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "description": "Package policy unique identifier.", - "type": "string" - }, - "inputs": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package policy inputs." - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "description": "Package policy revision.", - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "anyOf": [ - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package level variable." - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs", - "id", - "revision", - "updated_at", - "updated_by", - "created_at", - "created_by" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - ] - }, - "required_versions": { - "items": { - "additionalProperties": false, - "properties": { - "percentage": { - "description": "Target percentage of agents to auto upgrade", - "maximum": 100, - "minimum": 0, - "type": "number" - }, - "version": { - "description": "Target version for automatic agent upgrade", - "type": "string" - } - }, - "required": [ - "version", - "percentage" - ], - "type": "object" - }, - "maxItems": 100, - "nullable": true, - "type": "array" - }, - "revision": { - "type": "number" - }, - "schema_version": { - "type": "string" - }, - "space_ids": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "status": { - "enum": [ - "active", - "inactive" - ], - "type": "string" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the agent policy supports agentless integrations.", - "nullable": true, - "type": "boolean" - }, - "unenroll_timeout": { - "minimum": 0, - "type": "number" - }, - "unprivileged_agents": { - "type": "number" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "namespace", - "is_protected", - "status", - "updated_at", - "updated_by", - "revision" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Create an agent policy", - "tags": [ - "Elastic Agent policies" - ] - } - }, - "/api/fleet/agent_policies/_bulk_get": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-read OR fleet-agents-read OR fleet-setup.", - "operationId": "post-fleet-agent-policies-bulk-get", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "query", - "name": "format", - "required": false, - "schema": { - "enum": [ - "simplified", - "legacy" - ], - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "full": { - "description": "get full policies with package policies populated", - "type": "boolean" - }, - "ids": { - "description": "list of package policy ids", - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ignoreMissing": { - "type": "boolean" - } - }, - "required": [ - "ids" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "advanced_settings": { - "additionalProperties": false, - "properties": { - "agent_download_target_directory": { - "nullable": true - }, - "agent_download_timeout": { - "nullable": true - }, - "agent_internal": { - "nullable": true - }, - "agent_limits_go_max_procs": { - "nullable": true - }, - "agent_logging_files_interval": { - "nullable": true - }, - "agent_logging_files_keepfiles": { - "nullable": true - }, - "agent_logging_files_rotateeverybytes": { - "nullable": true - }, - "agent_logging_level": { - "nullable": true - }, - "agent_logging_metrics_period": { - "nullable": true - }, - "agent_logging_to_files": { - "nullable": true - }, - "agent_monitoring_runtime_experimental": { - "nullable": true - } - }, - "type": "object" - }, - "agent_features": { - "items": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "enabled" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "agentless": { - "additionalProperties": false, - "properties": { - "cloud_connectors": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "target_csp": { - "enum": [ - "aws", - "azure", - "gcp" - ], - "type": "string" - } - }, - "required": [ - "enabled" - ], - "type": "object" - }, - "resources": { - "additionalProperties": false, - "properties": { - "requests": { - "additionalProperties": false, - "properties": { - "cpu": { - "type": "string" - }, - "memory": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "agents": { - "type": "number" - }, - "data_output_id": { - "nullable": true, - "type": "string" - }, - "description": { - "type": "string" - }, - "download_source_id": { - "nullable": true, - "type": "string" - }, - "fips_agents": { - "type": "number" - }, - "fleet_server_host_id": { - "nullable": true, - "type": "string" - }, - "global_data_tags": { - "description": "User defined data tags that are added to all of the inputs. The values can be strings or numbers.", - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "required": [ - "name", - "value" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "has_agent_version_conditions": { - "type": "boolean" - }, - "has_fleet_server": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "inactivity_timeout": { - "default": 1209600, - "minimum": 0, - "type": "number" - }, - "is_default": { - "type": "boolean" - }, - "is_default_fleet_server": { - "type": "boolean" - }, - "is_managed": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "is_protected": { - "description": "Indicates whether the agent policy has tamper protection enabled. Default false.", - "type": "boolean" - }, - "keep_monitoring_alive": { - "default": false, - "description": "When set to true, monitoring will be enabled but logs/metrics collection will be disabled", - "nullable": true, - "type": "boolean" - }, - "monitoring_diagnostics": { - "additionalProperties": false, - "properties": { - "limit": { - "additionalProperties": false, - "properties": { - "burst": { - "type": "number" - }, - "interval": { - "type": "string" - } - }, - "type": "object" - }, - "uploader": { - "additionalProperties": false, - "properties": { - "init_dur": { - "type": "string" - }, - "max_dur": { - "type": "string" - }, - "max_retries": { - "type": "number" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "monitoring_enabled": { - "items": { - "enum": [ - "logs", - "metrics", - "traces" - ], - "type": "string" - }, - "maxItems": 3, - "type": "array" - }, - "monitoring_http": { - "additionalProperties": false, - "properties": { - "buffer": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "host": { - "type": "string" - }, - "port": { - "maximum": 65353, - "minimum": 0, - "type": "number" - } - }, - "type": "object" - }, - "monitoring_output_id": { - "nullable": true, - "type": "string" - }, - "monitoring_pprof_enabled": { - "type": "boolean" - }, - "name": { - "minLength": 1, - "type": "string" - }, - "namespace": { - "minLength": 1, - "type": "string" - }, - "overrides": { - "additionalProperties": {}, - "description": "Override settings that are defined in the agent policy. Input settings cannot be overridden. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "type": "object" - }, - "package_policies": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "description": "This field is present only when retrieving a single agent policy, or when retrieving a list of agent policies with the ?full=true parameter", - "items": { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "agents": { - "type": "number" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "description": "Package policy unique identifier.", - "type": "string" - }, - "inputs": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package policy inputs." - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "description": "Package policy revision.", - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "anyOf": [ - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package level variable." - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs", - "id", - "revision", - "updated_at", - "updated_by", - "created_at", - "created_by" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - ] - }, - "required_versions": { - "items": { - "additionalProperties": false, - "properties": { - "percentage": { - "description": "Target percentage of agents to auto upgrade", - "maximum": 100, - "minimum": 0, - "type": "number" - }, - "version": { - "description": "Target version for automatic agent upgrade", - "type": "string" - } - }, - "required": [ - "version", - "percentage" - ], - "type": "object" - }, - "maxItems": 100, - "nullable": true, - "type": "array" - }, - "revision": { - "type": "number" - }, - "schema_version": { - "type": "string" - }, - "space_ids": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "status": { - "enum": [ - "active", - "inactive" - ], - "type": "string" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the agent policy supports agentless integrations.", - "nullable": true, - "type": "boolean" - }, - "unenroll_timeout": { - "minimum": 0, - "type": "number" - }, - "unprivileged_agents": { - "type": "number" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "namespace", - "is_protected", - "status", - "updated_at", - "updated_by", - "revision" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk get agent policies", - "tags": [ - "Elastic Agent policies" - ] - } - }, - "/api/fleet/agent_policies/delete": { - "post": { - "description": "Delete an agent policy by ID.

[Required authorization] Route required privileges: fleet-agent-policies-all.", - "operationId": "post-fleet-agent-policies-delete", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "agentPolicyId": { - "type": "string" - }, - "force": { - "description": "bypass validation checks that can prevent agent policy deletion", - "type": "boolean" - } - }, - "required": [ - "agentPolicyId" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Delete an agent policy", - "tags": [ - "Elastic Agent policies" - ] - } - }, - "/api/fleet/agent_policies/outputs": { - "post": { - "description": "Get a list of outputs associated with agent policies.

[Required authorization] Route required privileges: fleet-agent-policies-read AND fleet-settings-read.", - "operationId": "post-fleet-agent-policies-outputs", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "ids": { - "description": "list of package policy ids", - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - } - }, - "required": [ - "ids" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "agentPolicyId": { - "type": "string" - }, - "data": { - "additionalProperties": false, - "properties": { - "integrations": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "integrationPolicyName": { - "type": "string" - }, - "name": { - "type": "string" - }, - "pkgName": { - "type": "string" - } - }, - "type": "object" - }, - "maxItems": 1000, - "type": "array" - }, - "output": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - } - }, - "required": [ - "output" - ], - "type": "object" - }, - "monitoring": { - "additionalProperties": false, - "properties": { - "output": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - } - }, - "required": [ - "output" - ], - "type": "object" - } - }, - "required": [ - "monitoring", - "data" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get outputs for agent policies", - "tags": [ - "Elastic Agent policies" - ] - } - }, - "/api/fleet/agent_policies/{agentPolicyId}": { - "get": { - "description": "Get an agent policy by ID.

[Required authorization] Route required privileges: fleet-agent-policies-read OR fleet-agents-read OR fleet-setup.", - "operationId": "get-fleet-agent-policies-agentpolicyid", - "parameters": [ - { - "in": "path", - "name": "agentPolicyId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "format", - "required": false, - "schema": { - "enum": [ - "simplified", - "legacy" - ], - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "advanced_settings": { - "additionalProperties": false, - "properties": { - "agent_download_target_directory": { - "nullable": true - }, - "agent_download_timeout": { - "nullable": true - }, - "agent_internal": { - "nullable": true - }, - "agent_limits_go_max_procs": { - "nullable": true - }, - "agent_logging_files_interval": { - "nullable": true - }, - "agent_logging_files_keepfiles": { - "nullable": true - }, - "agent_logging_files_rotateeverybytes": { - "nullable": true - }, - "agent_logging_level": { - "nullable": true - }, - "agent_logging_metrics_period": { - "nullable": true - }, - "agent_logging_to_files": { - "nullable": true - }, - "agent_monitoring_runtime_experimental": { - "nullable": true - } - }, - "type": "object" - }, - "agent_features": { - "items": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "enabled" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "agentless": { - "additionalProperties": false, - "properties": { - "cloud_connectors": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "target_csp": { - "enum": [ - "aws", - "azure", - "gcp" - ], - "type": "string" - } - }, - "required": [ - "enabled" - ], - "type": "object" - }, - "resources": { - "additionalProperties": false, - "properties": { - "requests": { - "additionalProperties": false, - "properties": { - "cpu": { - "type": "string" - }, - "memory": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "agents": { - "type": "number" - }, - "data_output_id": { - "nullable": true, - "type": "string" - }, - "description": { - "type": "string" - }, - "download_source_id": { - "nullable": true, - "type": "string" - }, - "fips_agents": { - "type": "number" - }, - "fleet_server_host_id": { - "nullable": true, - "type": "string" - }, - "global_data_tags": { - "description": "User defined data tags that are added to all of the inputs. The values can be strings or numbers.", - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "required": [ - "name", - "value" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "has_agent_version_conditions": { - "type": "boolean" - }, - "has_fleet_server": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "inactivity_timeout": { - "default": 1209600, - "minimum": 0, - "type": "number" - }, - "is_default": { - "type": "boolean" - }, - "is_default_fleet_server": { - "type": "boolean" - }, - "is_managed": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "is_protected": { - "description": "Indicates whether the agent policy has tamper protection enabled. Default false.", - "type": "boolean" - }, - "keep_monitoring_alive": { - "default": false, - "description": "When set to true, monitoring will be enabled but logs/metrics collection will be disabled", - "nullable": true, - "type": "boolean" - }, - "monitoring_diagnostics": { - "additionalProperties": false, - "properties": { - "limit": { - "additionalProperties": false, - "properties": { - "burst": { - "type": "number" - }, - "interval": { - "type": "string" - } - }, - "type": "object" - }, - "uploader": { - "additionalProperties": false, - "properties": { - "init_dur": { - "type": "string" - }, - "max_dur": { - "type": "string" - }, - "max_retries": { - "type": "number" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "monitoring_enabled": { - "items": { - "enum": [ - "logs", - "metrics", - "traces" - ], - "type": "string" - }, - "maxItems": 3, - "type": "array" - }, - "monitoring_http": { - "additionalProperties": false, - "properties": { - "buffer": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "host": { - "type": "string" - }, - "port": { - "maximum": 65353, - "minimum": 0, - "type": "number" - } - }, - "type": "object" - }, - "monitoring_output_id": { - "nullable": true, - "type": "string" - }, - "monitoring_pprof_enabled": { - "type": "boolean" - }, - "name": { - "minLength": 1, - "type": "string" - }, - "namespace": { - "minLength": 1, - "type": "string" - }, - "overrides": { - "additionalProperties": {}, - "description": "Override settings that are defined in the agent policy. Input settings cannot be overridden. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "type": "object" - }, - "package_policies": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "description": "This field is present only when retrieving a single agent policy, or when retrieving a list of agent policies with the ?full=true parameter", - "items": { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "agents": { - "type": "number" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "description": "Package policy unique identifier.", - "type": "string" - }, - "inputs": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package policy inputs." - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "description": "Package policy revision.", - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "anyOf": [ - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package level variable." - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs", - "id", - "revision", - "updated_at", - "updated_by", - "created_at", - "created_by" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - ] - }, - "required_versions": { - "items": { - "additionalProperties": false, - "properties": { - "percentage": { - "description": "Target percentage of agents to auto upgrade", - "maximum": 100, - "minimum": 0, - "type": "number" - }, - "version": { - "description": "Target version for automatic agent upgrade", - "type": "string" - } - }, - "required": [ - "version", - "percentage" - ], - "type": "object" - }, - "maxItems": 100, - "nullable": true, - "type": "array" - }, - "revision": { - "type": "number" - }, - "schema_version": { - "type": "string" - }, - "space_ids": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "status": { - "enum": [ - "active", - "inactive" - ], - "type": "string" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the agent policy supports agentless integrations.", - "nullable": true, - "type": "boolean" - }, - "unenroll_timeout": { - "minimum": 0, - "type": "number" - }, - "unprivileged_agents": { - "type": "number" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "namespace", - "is_protected", - "status", - "updated_at", - "updated_by", - "revision" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get an agent policy", - "tags": [ - "Elastic Agent policies" - ] - }, - "put": { - "description": "Update an agent policy by ID.

[Required authorization] Route required privileges: fleet-agent-policies-all.", - "operationId": "put-fleet-agent-policies-agentpolicyid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "agentPolicyId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "format", - "required": false, - "schema": { - "enum": [ - "simplified", - "legacy" - ], - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "advanced_settings": { - "additionalProperties": false, - "properties": { - "agent_download_target_directory": { - "nullable": true - }, - "agent_download_timeout": { - "nullable": true - }, - "agent_internal": { - "nullable": true - }, - "agent_limits_go_max_procs": { - "nullable": true - }, - "agent_logging_files_interval": { - "nullable": true - }, - "agent_logging_files_keepfiles": { - "nullable": true - }, - "agent_logging_files_rotateeverybytes": { - "nullable": true - }, - "agent_logging_level": { - "nullable": true - }, - "agent_logging_metrics_period": { - "nullable": true - }, - "agent_logging_to_files": { - "nullable": true - }, - "agent_monitoring_runtime_experimental": { - "nullable": true - } - }, - "type": "object" - }, - "agent_features": { - "items": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "enabled" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "agentless": { - "additionalProperties": false, - "properties": { - "cloud_connectors": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "target_csp": { - "enum": [ - "aws", - "azure", - "gcp" - ], - "type": "string" - } - }, - "required": [ - "enabled" - ], - "type": "object" - }, - "resources": { - "additionalProperties": false, - "properties": { - "requests": { - "additionalProperties": false, - "properties": { - "cpu": { - "type": "string" - }, - "memory": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "bumpRevision": { - "type": "boolean" - }, - "data_output_id": { - "nullable": true, - "type": "string" - }, - "description": { - "type": "string" - }, - "download_source_id": { - "nullable": true, - "type": "string" - }, - "fleet_server_host_id": { - "nullable": true, - "type": "string" - }, - "force": { - "type": "boolean" - }, - "global_data_tags": { - "description": "User defined data tags that are added to all of the inputs. The values can be strings or numbers.", - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "required": [ - "name", - "value" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "has_agent_version_conditions": { - "type": "boolean" - }, - "has_fleet_server": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "inactivity_timeout": { - "default": 1209600, - "minimum": 0, - "type": "number" - }, - "is_default": { - "type": "boolean" - }, - "is_default_fleet_server": { - "type": "boolean" - }, - "is_managed": { - "type": "boolean" - }, - "is_protected": { - "type": "boolean" - }, - "keep_monitoring_alive": { - "default": false, - "description": "When set to true, monitoring will be enabled but logs/metrics collection will be disabled", - "nullable": true, - "type": "boolean" - }, - "monitoring_diagnostics": { - "additionalProperties": false, - "properties": { - "limit": { - "additionalProperties": false, - "properties": { - "burst": { - "type": "number" - }, - "interval": { - "type": "string" - } - }, - "type": "object" - }, - "uploader": { - "additionalProperties": false, - "properties": { - "init_dur": { - "type": "string" - }, - "max_dur": { - "type": "string" - }, - "max_retries": { - "type": "number" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "monitoring_enabled": { - "items": { - "enum": [ - "logs", - "metrics", - "traces" - ], - "type": "string" - }, - "maxItems": 3, - "type": "array" - }, - "monitoring_http": { - "additionalProperties": false, - "properties": { - "buffer": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "host": { - "type": "string" - }, - "port": { - "maximum": 65353, - "minimum": 0, - "type": "number" - } - }, - "type": "object" - }, - "monitoring_output_id": { - "nullable": true, - "type": "string" - }, - "monitoring_pprof_enabled": { - "type": "boolean" - }, - "name": { - "minLength": 1, - "type": "string" - }, - "namespace": { - "minLength": 1, - "type": "string" - }, - "overrides": { - "additionalProperties": {}, - "description": "Override settings that are defined in the agent policy. Input settings cannot be overridden. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "type": "object" - }, - "required_versions": { - "items": { - "additionalProperties": false, - "properties": { - "percentage": { - "description": "Target percentage of agents to auto upgrade", - "maximum": 100, - "minimum": 0, - "type": "number" - }, - "version": { - "description": "Target version for automatic agent upgrade", - "type": "string" - } - }, - "required": [ - "version", - "percentage" - ], - "type": "object" - }, - "maxItems": 100, - "nullable": true, - "type": "array" - }, - "space_ids": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "deprecated": true, - "description": "Indicates whether the agent policy supports agentless integrations. Deprecated in favor of the Fleet agentless policies API.", - "nullable": true, - "type": "boolean" - }, - "unenroll_timeout": { - "minimum": 0, - "type": "number" - } - }, - "required": [ - "name", - "namespace" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "advanced_settings": { - "additionalProperties": false, - "properties": { - "agent_download_target_directory": { - "nullable": true - }, - "agent_download_timeout": { - "nullable": true - }, - "agent_internal": { - "nullable": true - }, - "agent_limits_go_max_procs": { - "nullable": true - }, - "agent_logging_files_interval": { - "nullable": true - }, - "agent_logging_files_keepfiles": { - "nullable": true - }, - "agent_logging_files_rotateeverybytes": { - "nullable": true - }, - "agent_logging_level": { - "nullable": true - }, - "agent_logging_metrics_period": { - "nullable": true - }, - "agent_logging_to_files": { - "nullable": true - }, - "agent_monitoring_runtime_experimental": { - "nullable": true - } - }, - "type": "object" - }, - "agent_features": { - "items": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "enabled" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "agentless": { - "additionalProperties": false, - "properties": { - "cloud_connectors": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "target_csp": { - "enum": [ - "aws", - "azure", - "gcp" - ], - "type": "string" - } - }, - "required": [ - "enabled" - ], - "type": "object" - }, - "resources": { - "additionalProperties": false, - "properties": { - "requests": { - "additionalProperties": false, - "properties": { - "cpu": { - "type": "string" - }, - "memory": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "agents": { - "type": "number" - }, - "data_output_id": { - "nullable": true, - "type": "string" - }, - "description": { - "type": "string" - }, - "download_source_id": { - "nullable": true, - "type": "string" - }, - "fips_agents": { - "type": "number" - }, - "fleet_server_host_id": { - "nullable": true, - "type": "string" - }, - "global_data_tags": { - "description": "User defined data tags that are added to all of the inputs. The values can be strings or numbers.", - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "required": [ - "name", - "value" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "has_agent_version_conditions": { - "type": "boolean" - }, - "has_fleet_server": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "inactivity_timeout": { - "default": 1209600, - "minimum": 0, - "type": "number" - }, - "is_default": { - "type": "boolean" - }, - "is_default_fleet_server": { - "type": "boolean" - }, - "is_managed": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "is_protected": { - "description": "Indicates whether the agent policy has tamper protection enabled. Default false.", - "type": "boolean" - }, - "keep_monitoring_alive": { - "default": false, - "description": "When set to true, monitoring will be enabled but logs/metrics collection will be disabled", - "nullable": true, - "type": "boolean" - }, - "monitoring_diagnostics": { - "additionalProperties": false, - "properties": { - "limit": { - "additionalProperties": false, - "properties": { - "burst": { - "type": "number" - }, - "interval": { - "type": "string" - } - }, - "type": "object" - }, - "uploader": { - "additionalProperties": false, - "properties": { - "init_dur": { - "type": "string" - }, - "max_dur": { - "type": "string" - }, - "max_retries": { - "type": "number" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "monitoring_enabled": { - "items": { - "enum": [ - "logs", - "metrics", - "traces" - ], - "type": "string" - }, - "maxItems": 3, - "type": "array" - }, - "monitoring_http": { - "additionalProperties": false, - "properties": { - "buffer": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "host": { - "type": "string" - }, - "port": { - "maximum": 65353, - "minimum": 0, - "type": "number" - } - }, - "type": "object" - }, - "monitoring_output_id": { - "nullable": true, - "type": "string" - }, - "monitoring_pprof_enabled": { - "type": "boolean" - }, - "name": { - "minLength": 1, - "type": "string" - }, - "namespace": { - "minLength": 1, - "type": "string" - }, - "overrides": { - "additionalProperties": {}, - "description": "Override settings that are defined in the agent policy. Input settings cannot be overridden. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "type": "object" - }, - "package_policies": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "description": "This field is present only when retrieving a single agent policy, or when retrieving a list of agent policies with the ?full=true parameter", - "items": { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "agents": { - "type": "number" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "description": "Package policy unique identifier.", - "type": "string" - }, - "inputs": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package policy inputs." - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "description": "Package policy revision.", - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "anyOf": [ - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package level variable." - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs", - "id", - "revision", - "updated_at", - "updated_by", - "created_at", - "created_by" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - ] - }, - "required_versions": { - "items": { - "additionalProperties": false, - "properties": { - "percentage": { - "description": "Target percentage of agents to auto upgrade", - "maximum": 100, - "minimum": 0, - "type": "number" - }, - "version": { - "description": "Target version for automatic agent upgrade", - "type": "string" - } - }, - "required": [ - "version", - "percentage" - ], - "type": "object" - }, - "maxItems": 100, - "nullable": true, - "type": "array" - }, - "revision": { - "type": "number" - }, - "schema_version": { - "type": "string" - }, - "space_ids": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "status": { - "enum": [ - "active", - "inactive" - ], - "type": "string" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the agent policy supports agentless integrations.", - "nullable": true, - "type": "boolean" - }, - "unenroll_timeout": { - "minimum": 0, - "type": "number" - }, - "unprivileged_agents": { - "type": "number" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "namespace", - "is_protected", - "status", - "updated_at", - "updated_by", - "revision" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Update an agent policy", - "tags": [ - "Elastic Agent policies" - ] - } - }, - "/api/fleet/agent_policies/{agentPolicyId}/auto_upgrade_agents_status": { - "get": { - "description": "Get auto upgrade agent status

[Required authorization] Route required privileges: fleet-agents-read.", - "operationId": "get-fleet-agent-policies-agentpolicyid-auto-upgrade-agents-status", - "parameters": [ - { - "in": "path", - "name": "agentPolicyId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "currentVersions": { - "items": { - "additionalProperties": false, - "properties": { - "agents": { - "description": "Number of agents that upgraded to this version", - "type": "number" - }, - "failedUpgradeActionIds": { - "description": "List of action IDs related to failed upgrades", - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "failedUpgradeAgents": { - "description": "Number of agents that failed to upgrade to this version", - "type": "number" - }, - "inProgressUpgradeActionIds": { - "description": "List of action IDs related to in-progress upgrades", - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "inProgressUpgradeAgents": { - "description": "Number of agents that are upgrading to this version", - "type": "number" - }, - "version": { - "description": "Agent version", - "type": "string" - } - }, - "required": [ - "version", - "agents", - "failedUpgradeAgents", - "inProgressUpgradeAgents" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "totalAgents": { - "type": "number" - } - }, - "required": [ - "currentVersions", - "totalAgents" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get auto upgrade agent status", - "tags": [ - "Elastic Agent policies" - ] - } - }, - "/api/fleet/agent_policies/{agentPolicyId}/copy": { - "post": { - "description": "Copy an agent policy by ID.

[Required authorization] Route required privileges: fleet-agent-policies-all.", - "operationId": "post-fleet-agent-policies-agentpolicyid-copy", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "agentPolicyId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "format", - "required": false, - "schema": { - "enum": [ - "simplified", - "legacy" - ], - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "description": { - "type": "string" - }, - "name": { - "minLength": 1, - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "advanced_settings": { - "additionalProperties": false, - "properties": { - "agent_download_target_directory": { - "nullable": true - }, - "agent_download_timeout": { - "nullable": true - }, - "agent_internal": { - "nullable": true - }, - "agent_limits_go_max_procs": { - "nullable": true - }, - "agent_logging_files_interval": { - "nullable": true - }, - "agent_logging_files_keepfiles": { - "nullable": true - }, - "agent_logging_files_rotateeverybytes": { - "nullable": true - }, - "agent_logging_level": { - "nullable": true - }, - "agent_logging_metrics_period": { - "nullable": true - }, - "agent_logging_to_files": { - "nullable": true - }, - "agent_monitoring_runtime_experimental": { - "nullable": true - } - }, - "type": "object" - }, - "agent_features": { - "items": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "enabled" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "agentless": { - "additionalProperties": false, - "properties": { - "cloud_connectors": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "target_csp": { - "enum": [ - "aws", - "azure", - "gcp" - ], - "type": "string" - } - }, - "required": [ - "enabled" - ], - "type": "object" - }, - "resources": { - "additionalProperties": false, - "properties": { - "requests": { - "additionalProperties": false, - "properties": { - "cpu": { - "type": "string" - }, - "memory": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "agents": { - "type": "number" - }, - "data_output_id": { - "nullable": true, - "type": "string" - }, - "description": { - "type": "string" - }, - "download_source_id": { - "nullable": true, - "type": "string" - }, - "fips_agents": { - "type": "number" - }, - "fleet_server_host_id": { - "nullable": true, - "type": "string" - }, - "global_data_tags": { - "description": "User defined data tags that are added to all of the inputs. The values can be strings or numbers.", - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - }, - "required": [ - "name", - "value" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "has_agent_version_conditions": { - "type": "boolean" - }, - "has_fleet_server": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "inactivity_timeout": { - "default": 1209600, - "minimum": 0, - "type": "number" - }, - "is_default": { - "type": "boolean" - }, - "is_default_fleet_server": { - "type": "boolean" - }, - "is_managed": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "is_protected": { - "description": "Indicates whether the agent policy has tamper protection enabled. Default false.", - "type": "boolean" - }, - "keep_monitoring_alive": { - "default": false, - "description": "When set to true, monitoring will be enabled but logs/metrics collection will be disabled", - "nullable": true, - "type": "boolean" - }, - "monitoring_diagnostics": { - "additionalProperties": false, - "properties": { - "limit": { - "additionalProperties": false, - "properties": { - "burst": { - "type": "number" - }, - "interval": { - "type": "string" - } - }, - "type": "object" - }, - "uploader": { - "additionalProperties": false, - "properties": { - "init_dur": { - "type": "string" - }, - "max_dur": { - "type": "string" - }, - "max_retries": { - "type": "number" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "monitoring_enabled": { - "items": { - "enum": [ - "logs", - "metrics", - "traces" - ], - "type": "string" - }, - "maxItems": 3, - "type": "array" - }, - "monitoring_http": { - "additionalProperties": false, - "properties": { - "buffer": { - "additionalProperties": false, - "properties": { - "enabled": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "host": { - "type": "string" - }, - "port": { - "maximum": 65353, - "minimum": 0, - "type": "number" - } - }, - "type": "object" - }, - "monitoring_output_id": { - "nullable": true, - "type": "string" - }, - "monitoring_pprof_enabled": { - "type": "boolean" - }, - "name": { - "minLength": 1, - "type": "string" - }, - "namespace": { - "minLength": 1, - "type": "string" - }, - "overrides": { - "additionalProperties": {}, - "description": "Override settings that are defined in the agent policy. Input settings cannot be overridden. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "type": "object" - }, - "package_policies": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "description": "This field is present only when retrieving a single agent policy, or when retrieving a list of agent policies with the ?full=true parameter", - "items": { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "agents": { - "type": "number" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "description": "Package policy unique identifier.", - "type": "string" - }, - "inputs": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package policy inputs." - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "description": "Package policy revision.", - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "anyOf": [ - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package level variable." - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs", - "id", - "revision", - "updated_at", - "updated_by", - "created_at", - "created_by" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - ] - }, - "required_versions": { - "items": { - "additionalProperties": false, - "properties": { - "percentage": { - "description": "Target percentage of agents to auto upgrade", - "maximum": 100, - "minimum": 0, - "type": "number" - }, - "version": { - "description": "Target version for automatic agent upgrade", - "type": "string" - } - }, - "required": [ - "version", - "percentage" - ], - "type": "object" - }, - "maxItems": 100, - "nullable": true, - "type": "array" - }, - "revision": { - "type": "number" - }, - "schema_version": { - "type": "string" - }, - "space_ids": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "status": { - "enum": [ - "active", - "inactive" - ], - "type": "string" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the agent policy supports agentless integrations.", - "nullable": true, - "type": "boolean" - }, - "unenroll_timeout": { - "minimum": 0, - "type": "number" - }, - "unprivileged_agents": { - "type": "number" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "namespace", - "is_protected", - "status", - "updated_at", - "updated_by", - "revision" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Copy an agent policy", - "tags": [ - "Elastic Agent policies" - ] - } - }, - "/api/fleet/agent_policies/{agentPolicyId}/download": { - "get": { - "description": "Download an agent policy by ID.

[Required authorization] Route required privileges: fleet-agent-policies-read OR fleet-setup.", - "operationId": "get-fleet-agent-policies-agentpolicyid-download", - "parameters": [ - { - "in": "path", - "name": "agentPolicyId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "download", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "standalone", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "kubernetes", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - }, - "404": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "Not found." - } - }, - "summary": "Download an agent policy", - "tags": [ - "Elastic Agent policies" - ] - } - }, - "/api/fleet/agent_policies/{agentPolicyId}/full": { - "get": { - "description": "Get a full agent policy by ID.

[Required authorization] Route required privileges: fleet-agent-policies-read.", - "operationId": "get-fleet-agent-policies-agentpolicyid-full", - "parameters": [ - { - "in": "path", - "name": "agentPolicyId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "download", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "standalone", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "kubernetes", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "anyOf": [ - { - "type": "string" - }, - { - "additionalProperties": false, - "properties": { - "agent": { - "additionalProperties": false, - "properties": { - "download": { - "additionalProperties": false, - "properties": { - "proxy_headers": { - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, - "nullable": true, - "type": "object" - }, - "proxy_url": { - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "additionalProperties": true, - "properties": { - "id": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "key" - ], - "type": "object" - } - }, - "type": "object" - }, - "sourceURI": { - "type": "string" - }, - "ssl": { - "additionalProperties": false, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "renegotiation": { - "type": "string" - }, - "verification_mode": { - "type": "string" - } - }, - "type": "object" - }, - "target_directory": { - "type": "string" - }, - "timeout": { - "type": "string" - } - }, - "required": [ - "sourceURI" - ], - "type": "object" - }, - "features": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "type": "object" - }, - "type": "object" - }, - "internal": {}, - "limits": { - "additionalProperties": false, - "properties": { - "go_max_procs": { - "type": "number" - } - }, - "type": "object" - }, - "logging": { - "additionalProperties": false, - "properties": { - "files": { - "additionalProperties": false, - "properties": { - "interval": { - "type": "string" - }, - "keepfiles": { - "type": "number" - }, - "rotateeverybytes": { - "type": "number" - } - }, - "type": "object" - }, - "level": { - "type": "string" - }, - "metrics": { - "additionalProperties": false, - "properties": { - "period": { - "type": "string" - } - }, - "type": "object" - }, - "to_files": { - "type": "boolean" - } - }, - "type": "object" - }, - "monitoring": { - "additionalProperties": false, - "properties": { - "_runtime_experimental": { - "type": "string" - }, - "apm": {}, - "diagnostics": { - "additionalProperties": false, - "properties": { - "limit": { - "additionalProperties": false, - "properties": { - "burst": { - "type": "number" - }, - "interval": { - "type": "string" - } - }, - "type": "object" - }, - "uploader": { - "additionalProperties": false, - "properties": { - "init_dur": { - "type": "string" - }, - "max_dur": { - "type": "string" - }, - "max_retries": { - "type": "number" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "http": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "host": { - "type": "string" - }, - "port": { - "type": "number" - } - }, - "type": "object" - }, - "logs": { - "type": "boolean" - }, - "metrics": { - "type": "boolean" - }, - "namespace": { - "type": "string" - }, - "pprof": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "type": "object" - }, - "traces": { - "type": "boolean" - }, - "use_output": { - "type": "string" - } - }, - "required": [ - "enabled", - "metrics", - "logs", - "traces", - "apm" - ], - "type": "object" - }, - "protection": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "signing_key": { - "type": "string" - }, - "uninstall_token_hash": { - "type": "string" - } - }, - "required": [ - "enabled", - "uninstall_token_hash", - "signing_key" - ], - "type": "object" - } - }, - "required": [ - "monitoring", - "download", - "features", - "internal" - ], - "type": "object" - }, - "connectors": { - "additionalProperties": {}, - "type": "object" - }, - "exporters": { - "additionalProperties": {}, - "type": "object" - }, - "extensions": { - "additionalProperties": {}, - "type": "object" - }, - "fleet": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "proxy_headers": { - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, - "nullable": true, - "type": "object" - }, - "proxy_url": { - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "additionalProperties": true, - "properties": { - "id": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "key" - ], - "type": "object" - } - }, - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "renegotiation": { - "type": "string" - }, - "verification_mode": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kibana": { - "additionalProperties": false, - "properties": { - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "path": { - "type": "string" - }, - "protocol": { - "type": "string" - } - }, - "required": [ - "hosts", - "protocol" - ], - "type": "object" - } - }, - "required": [ - "kibana" - ], - "type": "object" - } - ] - }, - "id": { - "type": "string" - }, - "inputs": { - "items": { - "additionalProperties": true, - "properties": { - "data_stream": { - "additionalProperties": true, - "properties": { - "namespace": { - "type": "string" - } - }, - "required": [ - "namespace" - ], - "type": "object" - }, - "id": { - "type": "string" - }, - "meta": { - "additionalProperties": true, - "properties": { - "package": { - "additionalProperties": true, - "properties": { - "name": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - } - }, - "type": "object" - }, - "name": { - "type": "string" - }, - "package_policy_id": { - "type": "string" - }, - "processors": { - "items": { - "additionalProperties": true, - "properties": { - "add_fields": { - "additionalProperties": true, - "properties": { - "fields": { - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "type": "object" - }, - "target": { - "type": "string" - } - }, - "required": [ - "target", - "fields" - ], - "type": "object" - } - }, - "required": [ - "add_fields" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "revision": { - "type": "number" - }, - "streams": { - "items": { - "additionalProperties": true, - "properties": { - "data_stream": { - "additionalProperties": true, - "properties": { - "dataset": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset" - ], - "type": "object" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id", - "data_stream" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "type": { - "type": "string" - }, - "use_output": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "revision", - "type", - "data_stream", - "use_output", - "package_policy_id" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "namespaces": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "output_permissions": { - "additionalProperties": { - "additionalProperties": {}, - "type": "object" - }, - "type": "object" - }, - "outputs": { - "additionalProperties": { - "additionalProperties": true, - "properties": { - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "proxy_headers": { - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, - "nullable": true, - "type": "object" - }, - "proxy_url": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - "type": "object" - }, - "processors": { - "additionalProperties": {}, - "type": "object" - }, - "receivers": { - "additionalProperties": {}, - "type": "object" - }, - "revision": { - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "service": { - "additionalProperties": false, - "properties": { - "extensions": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "pipelines": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "exporters": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "processors": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "receivers": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - } - }, - "type": "object", - "x-oas-optional": true - }, - "type": "object" - } - }, - "type": "object" - }, - "signed": { - "additionalProperties": false, - "properties": { - "data": { - "type": "string" - }, - "signature": { - "type": "string" - } - }, - "required": [ - "data", - "signature" - ], - "type": "object" - } - }, - "required": [ - "id", - "outputs", - "inputs" - ], - "type": "object" - } - ] - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get a full agent policy", - "tags": [ - "Elastic Agent policies" - ] - } - }, - "/api/fleet/agent_policies/{agentPolicyId}/outputs": { - "get": { - "description": "Get a list of outputs associated with agent policy by policy id.

[Required authorization] Route required privileges: fleet-agent-policies-read AND fleet-settings-read.", - "operationId": "get-fleet-agent-policies-agentpolicyid-outputs", - "parameters": [ - { - "in": "path", - "name": "agentPolicyId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "agentPolicyId": { - "type": "string" - }, - "data": { - "additionalProperties": false, - "properties": { - "integrations": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "integrationPolicyName": { - "type": "string" - }, - "name": { - "type": "string" - }, - "pkgName": { - "type": "string" - } - }, - "type": "object" - }, - "maxItems": 1000, - "type": "array" - }, - "output": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - } - }, - "required": [ - "output" - ], - "type": "object" - }, - "monitoring": { - "additionalProperties": false, - "properties": { - "output": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - } - }, - "required": [ - "output" - ], - "type": "object" - } - }, - "required": [ - "monitoring", - "data" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get outputs for an agent policy", - "tags": [ - "Elastic Agent policies" - ] - } - }, - "/api/fleet/agent_status": { - "get": { - "operationId": "get-fleet-agent-status", - "parameters": [ - { - "in": "query", - "name": "policyId", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "policyIds", - "required": false, - "schema": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - { - "type": "string" - } - ] - } - }, - { - "in": "query", - "name": "kuery", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "results": { - "additionalProperties": false, - "properties": { - "active": { - "type": "number" - }, - "all": { - "type": "number" - }, - "error": { - "type": "number" - }, - "events": { - "type": "number" - }, - "inactive": { - "type": "number" - }, - "offline": { - "type": "number" - }, - "online": { - "type": "number" - }, - "orphaned": { - "type": "number" - }, - "other": { - "type": "number" - }, - "unenrolled": { - "type": "number" - }, - "uninstalled": { - "type": "number" - }, - "updating": { - "type": "number" - } - }, - "required": [ - "events", - "online", - "error", - "offline", - "other", - "updating", - "inactive", - "unenrolled", - "all", - "active" - ], - "type": "object" - } - }, - "required": [ - "results" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get an agent status summary", - "tags": [ - "Elastic Agent status" - ] - } - }, - "/api/fleet/agent_status/data": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agents-read.", - "operationId": "get-fleet-agent-status-data", - "parameters": [ - { - "in": "query", - "name": "agentsIds", - "required": true, - "schema": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "type": "string" - } - ] - } - }, - { - "in": "query", - "name": "pkgName", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "pkgVersion", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "previewData", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "dataPreview": { - "items": {}, - "maxItems": 10000, - "type": "array" - }, - "items": { - "items": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "data": { - "type": "boolean" - } - }, - "required": [ - "data" - ], - "type": "object" - }, - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items", - "dataPreview" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get incoming agent data", - "tags": [ - "Elastic Agents" - ] - } - }, - "/api/fleet/agentless_policies": { - "post": { - "description": "Create an agentless policy", - "operationId": "post-fleet-agentless-policies", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The format of the response package policy.", - "in": "query", - "name": "format", - "required": false, - "schema": { - "default": "simplified", - "enum": [ - "legacy", - "simplified" - ], - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "createAgentlessPoliciesRequestExample": { - "description": "Example request to create agentless policies", - "value": { - "description": "test", - "inputs": { - "ESS Billing-cel": { - "enabled": true, - "streams": { - "ess_billing.billing": { - "enabled": true, - "vars": { - "hide_sensitive": true, - "http_client_timeout": "30s", - "lookbehind": 365, - "tags": [ - "forwarded", - "billing" - ] - } - }, - "ess_billing.credits": { - "enabled": false - } - }, - "vars": { - "api_key": "", - "organization_id": "1234" - } - } - }, - "name": "ess_billing-1", - "namespace": "default", - "package": { - "name": "ess_billing", - "version": "1.6.0" - } - } - }, - "createAgentlessPoliciesReuseAWSCloudConnectorExample": { - "description": "Example request to create agentless policy reusing an existing AWS cloud connector", - "value": { - "cloud_connector": { - "cloud_connector_id": "existing-aws-connector-id", - "target_csp": "aws" - }, - "description": "CSPM integration for AWS reusing existing cloud connector", - "inputs": { - "cspm-cloudbeat/cis_aws": { - "enabled": true, - "streams": { - "cloud_security_posture.findings": { - "enabled": true, - "vars": { - "aws.account_type": "organization-account", - "aws.credentials.type": "cloud_connector", - "aws.supports_cloud_connectors": true, - "external_id": { - "id": "ABCDEFGHIJKLMNOPQRST", - "isSecretRef": true - }, - "role_arn": "arn:aws:iam::123456789012:role/TestRole" - } - } - }, - "vars": { - "cloud_formation_template": "https://console.aws.amazon.com/cloudformation/home#/stacks/quickcreate?templateURL=https://elastic-cspm-cft.s3.eu-central-1.amazonaws.com/cloudformation-cspm-ACCOUNT_TYPE-9.2.0.yml" - } - }, - "cspm-cloudbeat/cis_azure": { - "enabled": false - }, - "cspm-cloudbeat/cis_gcp": { - "enabled": false - } - }, - "name": "cspm-aws-reuse-policy", - "namespace": "default", - "package": { - "name": "cloud_security_posture", - "version": "3.1.1" - }, - "vars": { - "deployment": "aws", - "posture": "cspm" - } - } - }, - "createAgentlessPoliciesWithAWSCloudConnectorExample": { - "description": "Example request to create agentless policy with AWS cloud connector", - "value": { - "cloud_connector": { - "target_csp": "aws" - }, - "description": "CSPM integration for AWS with cloud connector", - "inputs": { - "cspm-cloudbeat/cis_aws": { - "enabled": true, - "streams": { - "cloud_security_posture.findings": { - "enabled": true, - "vars": { - "aws.account_type": "organization-account", - "aws.credentials.type": "cloud_connector", - "aws.supports_cloud_connectors": true, - "external_id": { - "id": "ABCDEFGHIJKLMNOPQRST", - "isSecretRef": true - }, - "role_arn": "arn:aws:iam::123456789012:role/TestRole" - } - } - }, - "vars": { - "cloud_formation_template": "https://console.aws.amazon.com/cloudformation/home#/stacks/quickcreate?templateURL=https://elastic-cspm-cft.s3.eu-central-1.amazonaws.com/cloudformation-cspm-ACCOUNT_TYPE-9.2.0.yml" - } - }, - "cspm-cloudbeat/cis_azure": { - "enabled": false - }, - "cspm-cloudbeat/cis_gcp": { - "enabled": false - } - }, - "name": "cspm-aws-policy", - "namespace": "default", - "package": { - "name": "cloud_security_posture", - "version": "3.1.1" - }, - "vars": { - "deployment": "aws", - "posture": "cspm" - } - } - }, - "createAgentlessPoliciesWithAzureCloudConnectorExample": { - "description": "Example request to create agentless policy with Azure cloud connector", - "value": { - "cloud_connector": { - "target_csp": "azure" - }, - "description": "CSPM integration for Azure with cloud connector", - "inputs": { - "cspm-cloudbeat/cis_aws": { - "enabled": false - }, - "cspm-cloudbeat/cis_azure": { - "enabled": true, - "streams": { - "cloud_security_posture.findings": { - "enabled": true, - "vars": { - "azure.account_type": "organization-account", - "azure_credentials_cloud_connector_id": { - "type": "text", - "value": "existing-azure-credentials-connector-id" - }, - "client_id": { - "id": "client-secret-id", - "isSecretRef": true - }, - "tenant_id": { - "id": "tenant-secret-id", - "isSecretRef": true - } - } - } - } - }, - "cspm-cloudbeat/cis_gcp": { - "enabled": false - } - }, - "name": "cspm-azure-policy", - "namespace": "default", - "package": { - "name": "cloud_security_posture", - "version": "3.1.1" - }, - "vars": { - "deployment": "azure", - "posture": "cspm" - } - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 100, - "nullable": true, - "type": "array" - }, - "cloud_connector": { - "additionalProperties": false, - "properties": { - "cloud_connector_id": { - "description": "ID of an existing cloud connector to reuse. If not provided, a new connector will be created.", - "type": "string" - }, - "enabled": { - "default": false, - "description": "Whether cloud connectors are enabled for this policy.", - "type": "boolean" - }, - "name": { - "description": "Optional name for the cloud connector. If not provided, will be auto-generated from credentials.", - "maxLength": 255, - "minLength": 1, - "type": "string" - } - }, - "type": "object" - }, - "description": { - "description": "Policy description.", - "type": "string" - }, - "force": { - "description": "Force package policy creation even if the package is not verified, or if the agent policy is managed.", - "type": "boolean" - }, - "id": { - "description": "Policy unique identifier.", - "type": "string" - }, - "inputs": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object" - }, - "name": { - "description": "Unique name for the policy.", - "type": "string" - }, - "namespace": { - "description": "Policy namespace. When not specified, it inherits the agent policy namespace.", - "type": "string" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_template": { - "description": "The policy template to use for the agentless package policy. If not provided, the default policy template will be used.", - "type": "string" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "required": [ - "name", - "package" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "createAgentlessPoliciesResponseExample": { - "description": "Example response showing the successful result of communication initialisation over MCP protocol", - "value": { - "item": { - "created_at": "2025-11-06T18:27:43.541Z", - "created_by": "test_user", - "description": "test", - "enabled": true, - "id": "d52a7812-5736-4fdc-aed8-72152afa1ffa", - "inputs": { - "ESS Billing-cel": { - "enabled": true, - "streams": { - "ess_billing.billing": { - "enabled": true, - "vars": { - "hide_sensitive": true, - "http_client_timeout": "30s", - "lookbehind": 365, - "tags": [ - "forwarded", - "billing" - ] - } - }, - "ess_billing.credits": { - "enabled": false - } - }, - "vars": { - "api_key": { - "id": "QY1sWpoBbWcMW-edr0Ee", - "isSecretRef": true - }, - "organization_id": "1234", - "url": "https://billing.elastic-cloud.com" - } - } - }, - "name": "ess_billing-1", - "namespace": "default", - "package": { - "name": "ess_billing", - "title": "Elasticsearch Service Billing", - "version": "1.6.0" - }, - "revision": 1, - "secret_references": [ - { - "id": "QY1sWpoBbWcMW-edr0Ee" - } - ], - "supports_agentless": true, - "updated_at": "2025-11-06T18:27:43.541Z", - "updated_by": "test_user", - "version": "WzE0OTgsMV0=" - } - } - }, - "createAgentlessPoliciesWithAWSCloudConnectorResponseExample": { - "description": "Example response for AWS cloud connector integration", - "value": { - "item": { - "cloud_connector_id": "aws-connector-67890", - "created_at": "2025-11-06T18:27:43.541Z", - "created_by": "test_user", - "description": "CSPM integration for AWS with cloud connector", - "enabled": true, - "id": "aws-policy-12345", - "inputs": { - "cspm-cloudbeat/cis_aws": { - "enabled": true, - "streams": { - "cloud_security_posture.findings": { - "enabled": true, - "vars": { - "aws.account_type": "organization-account", - "aws.credentials.type": "cloud_connector", - "external_id": { - "id": "secret-external-id-123", - "isSecretRef": true - }, - "role_arn": "arn:aws:iam::123456789012:role/TestRole" - } - } - }, - "vars": { - "cloud_formation_template": "https://console.aws.amazon.com/cloudformation/home#/stacks/quickcreate?templateURL=https://elastic-cspm-cft.s3.eu-central-1.amazonaws.com/cloudformation-cspm-ACCOUNT_TYPE-9.2.0.yml" - } - }, - "cspm-cloudbeat/cis_azure": { - "enabled": false - }, - "cspm-cloudbeat/cis_gcp": { - "enabled": false - } - }, - "name": "cspm-aws-policy", - "namespace": "default", - "package": { - "name": "cloud_security_posture", - "title": "Cloud Security Posture Management", - "version": "3.1.1" - }, - "revision": 1, - "secret_references": [ - { - "id": "secret-external-id-123" - } - ], - "supports_agentless": true, - "supports_cloud_connector": true, - "updated_at": "2025-11-06T18:27:43.541Z", - "updated_by": "test_user", - "vars": { - "deployment": "aws", - "posture": "cspm" - }, - "version": "WzE0OTgsMV0=" - } - } - }, - "createAgentlessPoliciesWithAzureCloudConnectorResponseExample": { - "description": "Example response for Azure cloud connector integration", - "value": { - "item": { - "cloud_connector_id": "azure-connector-67890", - "created_at": "2025-11-06T18:27:43.541Z", - "created_by": "test_user", - "description": "CSPM integration for Azure with cloud connector", - "enabled": true, - "id": "azure-policy-12345", - "inputs": { - "cspm-cloudbeat/cis_aws": { - "enabled": false - }, - "cspm-cloudbeat/cis_azure": { - "enabled": true, - "streams": { - "cloud_security_posture.findings": { - "enabled": true, - "vars": { - "azure.account_type": "organization-account", - "azure_credentials_cloud_connector_id": { - "type": "text", - "value": "existing-azure-credentials-connector-id" - }, - "client_id": { - "id": "client-secret-id-456", - "isSecretRef": true - }, - "tenant_id": { - "id": "tenant-secret-id-123", - "isSecretRef": true - } - } - } - } - }, - "cspm-cloudbeat/cis_gcp": { - "enabled": false - } - }, - "name": "cspm-azure-policy", - "namespace": "default", - "package": { - "name": "cloud_security_posture", - "title": "Cloud Security Posture Management", - "version": "3.1.1" - }, - "revision": 1, - "secret_references": [ - { - "id": "tenant-secret-id-123" - }, - { - "id": "client-secret-id-456" - } - ], - "supports_agentless": true, - "supports_cloud_connector": true, - "updated_at": "2025-11-06T18:27:43.541Z", - "updated_by": "test_user", - "vars": { - "deployment": "azure", - "posture": "cspm" - }, - "version": "WzE0OTgsMV0=" - } - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "description": "The created agentless package policy.", - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "agents": { - "type": "number" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "description": "Package policy unique identifier.", - "type": "string" - }, - "inputs": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package policy inputs." - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "description": "Package policy revision.", - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "anyOf": [ - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package level variable." - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs", - "id", - "revision", - "updated_at", - "updated_by", - "created_at", - "created_by" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful response" - }, - "400": { - "content": { - "application/json": { - "examples": { - "genericErrorResponseExample": { - "description": "Example of a generic error response", - "value": { - "error": "Bad Request", - "message": "An error message describing what went wrong", - "statusCode": 400 - } - } - }, - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "Bad Request" - }, - "409": { - "content": { - "application/json": { - "examples": { - "conflictErrorResponseExample": { - "description": "Example of a conflict error response", - "value": { - "error": "Conflict", - "message": "An error message describing what went wrong", - "statusCode": 409 - } - } - }, - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "Conflict" - } - }, - "summary": "Create an agentless policy", - "tags": [ - "Fleet agentless policies" - ], - "x-state": "Technical Preview" - } - }, - "/api/fleet/agentless_policies/{policyId}": { - "delete": { - "description": "Delete an agentless policy", - "operationId": "delete-fleet-agentless-policies-policyid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The ID of the policy to delete.", - "in": "path", - "name": "policyId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "Force delete the policy even if the policy is managed.", - "in": "query", - "name": "force", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "createAgentlessPoliciesResponseExample": { - "description": "Example response showing the successful result of communication initialisation over MCP protocol", - "value": { - "item": { - "id": "d52a7812-5736-4fdc-aed8-72152afa1ffa" - } - } - } - }, - "schema": { - "additionalProperties": false, - "description": "Response for deleting an agentless package policy.", - "properties": { - "id": { - "description": "The ID of the deleted agentless package policy.", - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful response" - }, - "400": { - "content": { - "application/json": { - "examples": { - "genericErrorResponseExample": { - "description": "Example of a generic error response", - "value": { - "error": "Bad Request", - "message": "An error message describing what went wrong", - "statusCode": 400 - } - } - }, - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "Bad Request" - }, - "409": { - "content": { - "application/json": { - "examples": { - "conflictErrorResponseExample": { - "description": "Example of a conflict error response", - "value": { - "error": "Conflict", - "message": "An error message describing what went wrong", - "statusCode": 409 - } - } - }, - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "Conflict" - } - }, - "summary": "Delete an agentless policy", - "tags": [ - "Fleet agentless policies" - ], - "x-state": "Technical Preview" - } - }, - "/api/fleet/agents": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agents-read.", - "operationId": "get-fleet-agents", - "parameters": [ - { - "in": "query", - "name": "page", - "required": false, - "schema": { - "type": "number" - } - }, - { - "in": "query", - "name": "perPage", - "required": false, - "schema": { - "default": 20, - "type": "number" - } - }, - { - "in": "query", - "name": "kuery", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "showAgentless", - "required": false, - "schema": { - "default": true, - "type": "boolean" - } - }, - { - "in": "query", - "name": "showInactive", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - }, - { - "in": "query", - "name": "withMetrics", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - }, - { - "in": "query", - "name": "showUpgradeable", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - }, - { - "in": "query", - "name": "getStatusSummary", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - }, - { - "in": "query", - "name": "sortField", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "sortOrder", - "required": false, - "schema": { - "enum": [ - "asc", - "desc" - ], - "type": "string" - } - }, - { - "in": "query", - "name": "searchAfter", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "openPit", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "pitId", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "pitKeepAlive", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "access_api_key": { - "type": "string" - }, - "access_api_key_id": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "agent": { - "additionalProperties": true, - "properties": { - "id": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "version" - ], - "type": "object" - }, - "audit_unenrolled_reason": { - "type": "string" - }, - "components": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "status": { - "enum": [ - "STARTING", - "CONFIGURING", - "HEALTHY", - "DEGRADED", - "FAILED", - "STOPPING", - "STOPPED" - ], - "type": "string" - }, - "type": { - "type": "string" - }, - "units": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "payload": { - "additionalProperties": {}, - "type": "object" - }, - "status": { - "enum": [ - "STARTING", - "CONFIGURING", - "HEALTHY", - "DEGRADED", - "FAILED", - "STOPPING", - "STOPPED" - ], - "type": "string" - }, - "type": { - "enum": [ - "input", - "output", - "" - ], - "type": "string" - } - }, - "required": [ - "id", - "type", - "status", - "message" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "id", - "type", - "status", - "message" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "default_api_key": { - "type": "string" - }, - "default_api_key_history": { - "items": { - "additionalProperties": false, - "deprecated": true, - "properties": { - "id": { - "type": "string" - }, - "retired_at": { - "type": "string" - } - }, - "required": [ - "id", - "retired_at" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "default_api_key_id": { - "type": "string" - }, - "enrolled_at": { - "type": "string" - }, - "id": { - "type": "string" - }, - "last_checkin": { - "type": "string" - }, - "last_checkin_message": { - "type": "string" - }, - "last_checkin_status": { - "enum": [ - "error", - "online", - "degraded", - "updating", - "starting" - ], - "type": "string" - }, - "last_known_status": { - "enum": [ - "offline", - "error", - "online", - "inactive", - "enrolling", - "unenrolling", - "unenrolled", - "updating", - "degraded", - "uninstalled", - "orphaned" - ], - "type": "string" - }, - "local_metadata": { - "additionalProperties": {}, - "type": "object" - }, - "metrics": { - "additionalProperties": false, - "properties": { - "cpu_avg": { - "type": "number" - }, - "memory_size_byte_avg": { - "type": "number" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "outputs": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "api_key_id": { - "type": "string" - }, - "to_retire_api_key_ids": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "retired_at": { - "type": "string" - } - }, - "required": [ - "id", - "retired_at" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "type": "object" - }, - "packages": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - "policy_id": { - "type": "string" - }, - "policy_revision": { - "nullable": true, - "type": "number" - }, - "sort": { - "items": {}, - "maxItems": 10, - "type": "array" - }, - "status": { - "enum": [ - "offline", - "error", - "online", - "inactive", - "enrolling", - "unenrolling", - "unenrolled", - "updating", - "degraded", - "uninstalled", - "orphaned" - ], - "type": "string" - }, - "tags": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "enum": [ - "PERMANENT", - "EPHEMERAL", - "TEMPORARY" - ], - "type": "string" - }, - "unenrolled_at": { - "type": "string" - }, - "unenrollment_started_at": { - "type": "string" - }, - "unhealthy_reason": { - "items": { - "enum": [ - "input", - "output", - "other" - ], - "type": "string" - }, - "maxItems": 3, - "nullable": true, - "type": "array" - }, - "upgrade": { - "additionalProperties": false, - "properties": { - "rollbacks": { - "items": { - "additionalProperties": false, - "properties": { - "valid_until": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "valid_until", - "version" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - }, - "upgrade_attempts": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "nullable": true, - "type": "array" - }, - "upgrade_details": { - "additionalProperties": false, - "nullable": true, - "properties": { - "action_id": { - "type": "string" - }, - "metadata": { - "additionalProperties": false, - "properties": { - "download_percent": { - "type": "number" - }, - "download_rate": { - "type": "number" - }, - "error_msg": { - "type": "string" - }, - "failed_state": { - "enum": [ - "UPG_REQUESTED", - "UPG_SCHEDULED", - "UPG_DOWNLOADING", - "UPG_EXTRACTING", - "UPG_REPLACING", - "UPG_RESTARTING", - "UPG_FAILED", - "UPG_WATCHING", - "UPG_ROLLBACK" - ], - "type": "string" - }, - "retry_error_msg": { - "type": "string" - }, - "retry_until": { - "type": "string" - }, - "scheduled_at": { - "type": "string" - } - }, - "type": "object" - }, - "state": { - "enum": [ - "UPG_REQUESTED", - "UPG_SCHEDULED", - "UPG_DOWNLOADING", - "UPG_EXTRACTING", - "UPG_REPLACING", - "UPG_RESTARTING", - "UPG_FAILED", - "UPG_WATCHING", - "UPG_ROLLBACK" - ], - "type": "string" - }, - "target_version": { - "type": "string" - } - }, - "required": [ - "target_version", - "action_id", - "state" - ], - "type": "object" - }, - "upgrade_started_at": { - "nullable": true, - "type": "string" - }, - "upgraded_at": { - "nullable": true, - "type": "string" - }, - "user_provided_metadata": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "id", - "packages", - "type", - "active", - "enrolled_at", - "local_metadata" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "nextSearchAfter": { - "type": "string" - }, - "page": { - "type": "number" - }, - "perPage": { - "type": "number" - }, - "pit": { - "type": "string" - }, - "statusSummary": { - "additionalProperties": { - "type": "number" - }, - "type": "object" - }, - "total": { - "type": "number" - } - }, - "required": [ - "items", - "total", - "page", - "perPage" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get agents", - "tags": [ - "Elastic Agents" - ] - }, - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-read.", - "operationId": "post-fleet-agents", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "actionIds": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - } - }, - "required": [ - "actionIds" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get agents by action ids", - "tags": [ - "Elastic Agents" - ] - } - }, - "/api/fleet/agents/action_status": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agents-read.", - "operationId": "get-fleet-agents-action-status", - "parameters": [ - { - "in": "query", - "name": "page", - "required": false, - "schema": { - "default": 0, - "type": "number" - } - }, - { - "in": "query", - "name": "perPage", - "required": false, - "schema": { - "default": 20, - "type": "number" - } - }, - { - "in": "query", - "name": "date", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "latest", - "required": false, - "schema": { - "type": "number" - } - }, - { - "in": "query", - "name": "errorSize", - "required": false, - "schema": { - "default": 5, - "type": "number" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "actionId": { - "type": "string" - }, - "cancellationTime": { - "type": "string" - }, - "completionTime": { - "type": "string" - }, - "creationTime": { - "description": "creation time of action", - "type": "string" - }, - "expiration": { - "type": "string" - }, - "hasRolloutPeriod": { - "type": "boolean" - }, - "is_automatic": { - "type": "boolean" - }, - "latestErrors": { - "items": { - "additionalProperties": false, - "description": "latest errors that happened when the agents executed the action", - "properties": { - "agentId": { - "type": "string" - }, - "error": { - "type": "string" - }, - "hostname": { - "type": "string" - }, - "timestamp": { - "type": "string" - } - }, - "required": [ - "agentId", - "error", - "timestamp" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "nbAgentsAck": { - "description": "number of agents that acknowledged the action", - "type": "number" - }, - "nbAgentsActionCreated": { - "description": "number of agents included in action from kibana", - "type": "number" - }, - "nbAgentsActioned": { - "description": "number of agents actioned", - "type": "number" - }, - "nbAgentsFailed": { - "description": "number of agents that failed to execute the action", - "type": "number" - }, - "newPolicyId": { - "description": "new policy id (POLICY_REASSIGN action)", - "type": "string" - }, - "policyId": { - "description": "policy id (POLICY_CHANGE action)", - "type": "string" - }, - "revision": { - "description": "new policy revision (POLICY_CHANGE action)", - "type": "number" - }, - "startTime": { - "description": "start time of action (scheduled actions)", - "type": "string" - }, - "status": { - "enum": [ - "COMPLETE", - "EXPIRED", - "CANCELLED", - "FAILED", - "IN_PROGRESS", - "ROLLOUT_PASSED" - ], - "type": "string" - }, - "type": { - "enum": [ - "UPGRADE", - "UNENROLL", - "SETTINGS", - "POLICY_REASSIGN", - "CANCEL", - "FORCE_UNENROLL", - "REQUEST_DIAGNOSTICS", - "UPDATE_TAGS", - "POLICY_CHANGE", - "INPUT_ACTION", - "MIGRATE", - "PRIVILEGE_LEVEL_CHANGE" - ], - "type": "string" - }, - "version": { - "description": "agent version number (UPGRADE action)", - "type": "string" - } - }, - "required": [ - "actionId", - "nbAgentsActionCreated", - "nbAgentsAck", - "nbAgentsFailed", - "type", - "nbAgentsActioned", - "status", - "creationTime" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get an agent action status", - "tags": [ - "Elastic Agent actions" - ] - } - }, - "/api/fleet/agents/actions/{actionId}/cancel": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-actions-actionid-cancel", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "actionId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "ack_data": {}, - "agents": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - "created_at": { - "type": "string" - }, - "data": {}, - "expiration": { - "type": "string" - }, - "id": { - "type": "string" - }, - "minimum_execution_duration": { - "type": "number" - }, - "namespaces": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "rollout_duration_seconds": { - "type": "number" - }, - "sent_at": { - "type": "string" - }, - "source_uri": { - "type": "string" - }, - "start_time": { - "type": "string" - }, - "total": { - "type": "number" - }, - "type": { - "type": "string" - } - }, - "required": [ - "id", - "type", - "data", - "created_at", - "ack_data" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Cancel an agent action", - "tags": [ - "Elastic Agent actions" - ] - } - }, - "/api/fleet/agents/available_versions": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agents-read.", - "operationId": "get-fleet-agents-available-versions", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get available agent versions", - "tags": [ - "Elastic Agents" - ] - } - }, - "/api/fleet/agents/bulk_migrate": { - "post": { - "description": "Bulk migrate agents to another cluster.

[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-bulk-migrate", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "agents": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "batchSize": { - "type": "number" - }, - "enrollment_token": { - "type": "string" - }, - "settings": { - "additionalProperties": false, - "properties": { - "ca_sha256": { - "type": "string" - }, - "certificate_authorities": { - "type": "string" - }, - "elastic_agent_cert": { - "type": "string" - }, - "elastic_agent_cert_key": { - "type": "string" - }, - "elastic_agent_cert_key_passphrase": { - "type": "string" - }, - "headers": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "insecure": { - "type": "boolean" - }, - "proxy_disabled": { - "type": "boolean" - }, - "proxy_headers": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "proxy_url": { - "type": "string" - }, - "staging": { - "type": "string" - }, - "tags": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - } - }, - "type": "object" - }, - "uri": { - "format": "uri", - "type": "string" - } - }, - "required": [ - "agents", - "uri", - "enrollment_token" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "actionId": { - "type": "string" - } - }, - "required": [ - "actionId" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Migrate multiple agents", - "tags": [ - "Elastic Agents" - ] - } - }, - "/api/fleet/agents/bulk_privilege_level_change": { - "post": { - "description": "Change multiple agents' privilege level to unprivileged.

[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-bulk-privilege-level-change", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "bulkChangeAgentPrivilegeLevelRequest": { - "value": { - "agents": "agent", - "user_info": { - "groupname": "groupname", - "password": "password", - "username": "username" - } - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "agents": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "batchSize": { - "type": "number" - }, - "user_info": { - "additionalProperties": false, - "properties": { - "groupname": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "agents" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "successResponse": { - "value": { - "actionId": "actionId" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "actionId": { - "type": "string" - } - }, - "required": [ - "actionId" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "examples": { - "badRequestResponse": { - "value": { - "message": "Bad Request" - } - } - }, - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk change agent privilege level", - "tags": [ - "Elastic Agents" - ], - "x-state": "Technical Preview" - } - }, - "/api/fleet/agents/bulk_reassign": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-bulk-reassign", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "agents": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "batchSize": { - "type": "number" - }, - "includeInactive": { - "default": false, - "type": "boolean" - }, - "policy_id": { - "type": "string" - } - }, - "required": [ - "policy_id", - "agents" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "actionId": { - "type": "string" - } - }, - "required": [ - "actionId" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk reassign agents", - "tags": [ - "Elastic Agent actions" - ] - } - }, - "/api/fleet/agents/bulk_request_diagnostics": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-read.", - "operationId": "post-fleet-agents-bulk-request-diagnostics", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "additional_metrics": { - "items": { - "enum": [ - "CPU" - ], - "type": "string" - }, - "maxItems": 1, - "type": "array" - }, - "agents": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "batchSize": { - "type": "number" - } - }, - "required": [ - "agents" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "actionId": { - "type": "string" - } - }, - "required": [ - "actionId" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk request diagnostics from agents", - "tags": [ - "Elastic Agent actions" - ] - } - }, - "/api/fleet/agents/bulk_rollback": { - "post": { - "description": "Rollback multiple agents to the previous version.

[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-bulk-rollback", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "bulkRollbackAgentsRequest": { - "value": { - "agents": [ - "agent-1", - "agent-2" - ], - "batchSize": 100, - "includeInactive": false - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "agents": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "batchSize": { - "type": "number" - }, - "includeInactive": { - "default": false, - "type": "boolean" - } - }, - "required": [ - "agents" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "successResponse": { - "value": { - "actionIds": [ - "actionId1", - "actionId2" - ] - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "actionIds": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "actionIds" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "examples": { - "badRequestResponse": { - "value": { - "message": "Bad Request" - } - } - }, - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk rollback agents", - "tags": [ - "Elastic Agent actions" - ], - "x-state": "Technical Preview" - } - }, - "/api/fleet/agents/bulk_unenroll": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-bulk-unenroll", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "agents": { - "anyOf": [ - { - "items": { - "description": "list of agent IDs", - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "description": "KQL query string, leave empty to action all agents", - "type": "string" - } - ] - }, - "batchSize": { - "type": "number" - }, - "force": { - "description": "Unenrolls hosted agents too", - "type": "boolean" - }, - "includeInactive": { - "description": "When passing agents by KQL query, unenrolls inactive agents too", - "type": "boolean" - }, - "revoke": { - "description": "Revokes API keys of agents", - "type": "boolean" - } - }, - "required": [ - "agents" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "actionId": { - "type": "string" - } - }, - "required": [ - "actionId" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk unenroll agents", - "tags": [ - "Elastic Agent actions" - ] - } - }, - "/api/fleet/agents/bulk_update_agent_tags": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-bulk-update-agent-tags", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "agents": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "batchSize": { - "type": "number" - }, - "includeInactive": { - "default": false, - "type": "boolean" - }, - "tagsToAdd": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "tagsToRemove": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - } - }, - "required": [ - "agents" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "actionId": { - "type": "string" - } - }, - "required": [ - "actionId" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk update agent tags", - "tags": [ - "Elastic Agent actions" - ] - } - }, - "/api/fleet/agents/bulk_upgrade": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-bulk-upgrade", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "agents": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "batchSize": { - "type": "number" - }, - "force": { - "type": "boolean" - }, - "includeInactive": { - "default": false, - "type": "boolean" - }, - "rollout_duration_seconds": { - "minimum": 600, - "type": "number" - }, - "skipRateLimitCheck": { - "type": "boolean" - }, - "source_uri": { - "type": "string" - }, - "start_time": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "agents", - "version" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "actionId": { - "type": "string" - } - }, - "required": [ - "actionId" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk upgrade agents", - "tags": [ - "Elastic Agent actions" - ] - } - }, - "/api/fleet/agents/files/{fileId}": { - "delete": { - "description": "Delete a file uploaded by an agent.

[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "delete-fleet-agents-files-fileid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "fileId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "deleted": { - "type": "boolean" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id", - "deleted" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Delete an uploaded file", - "tags": [ - "Elastic Agents" - ] - } - }, - "/api/fleet/agents/files/{fileId}/{fileName}": { - "get": { - "description": "Get a file uploaded by an agent.

[Required authorization] Route required privileges: fleet-agents-read.", - "operationId": "get-fleet-agents-files-fileid-filename", - "parameters": [ - { - "in": "path", - "name": "fileId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "fileName", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get an uploaded file", - "tags": [ - "Elastic Agents" - ] - } - }, - "/api/fleet/agents/setup": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agents-read OR fleet-agent-policies-read OR fleet-settings-read OR fleet-setup.", - "operationId": "get-fleet-agents-setup", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "A summary of the agent setup status. `isReady` indicates whether the setup is ready. If the setup is not ready, `missing_requirements` lists which requirements are missing.", - "properties": { - "isReady": { - "type": "boolean" - }, - "is_action_secrets_storage_enabled": { - "type": "boolean" - }, - "is_secrets_storage_enabled": { - "type": "boolean" - }, - "is_space_awareness_enabled": { - "type": "boolean" - }, - "is_ssl_secrets_storage_enabled": { - "type": "boolean" - }, - "missing_optional_features": { - "items": { - "enum": [ - "encrypted_saved_object_encryption_key_required" - ], - "type": "string" - }, - "maxItems": 1, - "type": "array" - }, - "missing_requirements": { - "items": { - "enum": [ - "security_required", - "tls_required", - "api_keys", - "fleet_admin_user", - "fleet_server" - ], - "type": "string" - }, - "maxItems": 5, - "type": "array" - }, - "package_verification_key_id": { - "type": "string" - } - }, - "required": [ - "isReady", - "missing_requirements", - "missing_optional_features" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get agent setup info", - "tags": [ - "Elastic Agents" - ] - }, - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-read OR fleet-agent-policies-read OR fleet-settings-read OR fleet-setup.", - "operationId": "post-fleet-agents-setup", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "A summary of the result of Fleet's `setup` lifecycle. If `isInitialized` is true, Fleet is ready to accept agent enrollment. `nonFatalErrors` may include useful insight into non-blocking issues with Fleet setup.", - "properties": { - "isInitialized": { - "type": "boolean" - }, - "nonFatalErrors": { - "items": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "message" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "isInitialized", - "nonFatalErrors" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Initiate agent setup", - "tags": [ - "Elastic Agents" - ] - } - }, - "/api/fleet/agents/tags": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agents-read.", - "operationId": "get-fleet-agents-tags", - "parameters": [ - { - "in": "query", - "name": "kuery", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "showInactive", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get agent tags", - "tags": [ - "Elastic Agents" - ] - } - }, - "/api/fleet/agents/{agentId}": { - "delete": { - "description": "Delete an agent by ID.

[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "delete-fleet-agents-agentid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "action": { - "enum": [ - "deleted" - ], - "type": "string" - } - }, - "required": [ - "action" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Delete an agent", - "tags": [ - "Elastic Agents" - ] - }, - "get": { - "description": "Get an agent by ID.

[Required authorization] Route required privileges: fleet-agents-read.", - "operationId": "get-fleet-agents-agentid", - "parameters": [ - { - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "withMetrics", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "access_api_key": { - "type": "string" - }, - "access_api_key_id": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "agent": { - "additionalProperties": true, - "properties": { - "id": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "version" - ], - "type": "object" - }, - "audit_unenrolled_reason": { - "type": "string" - }, - "components": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "status": { - "enum": [ - "STARTING", - "CONFIGURING", - "HEALTHY", - "DEGRADED", - "FAILED", - "STOPPING", - "STOPPED" - ], - "type": "string" - }, - "type": { - "type": "string" - }, - "units": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "payload": { - "additionalProperties": {}, - "type": "object" - }, - "status": { - "enum": [ - "STARTING", - "CONFIGURING", - "HEALTHY", - "DEGRADED", - "FAILED", - "STOPPING", - "STOPPED" - ], - "type": "string" - }, - "type": { - "enum": [ - "input", - "output", - "" - ], - "type": "string" - } - }, - "required": [ - "id", - "type", - "status", - "message" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "id", - "type", - "status", - "message" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "default_api_key": { - "type": "string" - }, - "default_api_key_history": { - "items": { - "additionalProperties": false, - "deprecated": true, - "properties": { - "id": { - "type": "string" - }, - "retired_at": { - "type": "string" - } - }, - "required": [ - "id", - "retired_at" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "default_api_key_id": { - "type": "string" - }, - "enrolled_at": { - "type": "string" - }, - "id": { - "type": "string" - }, - "last_checkin": { - "type": "string" - }, - "last_checkin_message": { - "type": "string" - }, - "last_checkin_status": { - "enum": [ - "error", - "online", - "degraded", - "updating", - "starting" - ], - "type": "string" - }, - "last_known_status": { - "enum": [ - "offline", - "error", - "online", - "inactive", - "enrolling", - "unenrolling", - "unenrolled", - "updating", - "degraded", - "uninstalled", - "orphaned" - ], - "type": "string" - }, - "local_metadata": { - "additionalProperties": {}, - "type": "object" - }, - "metrics": { - "additionalProperties": false, - "properties": { - "cpu_avg": { - "type": "number" - }, - "memory_size_byte_avg": { - "type": "number" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "outputs": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "api_key_id": { - "type": "string" - }, - "to_retire_api_key_ids": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "retired_at": { - "type": "string" - } - }, - "required": [ - "id", - "retired_at" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "type": "object" - }, - "packages": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - "policy_id": { - "type": "string" - }, - "policy_revision": { - "nullable": true, - "type": "number" - }, - "sort": { - "items": {}, - "maxItems": 10, - "type": "array" - }, - "status": { - "enum": [ - "offline", - "error", - "online", - "inactive", - "enrolling", - "unenrolling", - "unenrolled", - "updating", - "degraded", - "uninstalled", - "orphaned" - ], - "type": "string" - }, - "tags": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "enum": [ - "PERMANENT", - "EPHEMERAL", - "TEMPORARY" - ], - "type": "string" - }, - "unenrolled_at": { - "type": "string" - }, - "unenrollment_started_at": { - "type": "string" - }, - "unhealthy_reason": { - "items": { - "enum": [ - "input", - "output", - "other" - ], - "type": "string" - }, - "maxItems": 3, - "nullable": true, - "type": "array" - }, - "upgrade": { - "additionalProperties": false, - "properties": { - "rollbacks": { - "items": { - "additionalProperties": false, - "properties": { - "valid_until": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "valid_until", - "version" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - }, - "upgrade_attempts": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "nullable": true, - "type": "array" - }, - "upgrade_details": { - "additionalProperties": false, - "nullable": true, - "properties": { - "action_id": { - "type": "string" - }, - "metadata": { - "additionalProperties": false, - "properties": { - "download_percent": { - "type": "number" - }, - "download_rate": { - "type": "number" - }, - "error_msg": { - "type": "string" - }, - "failed_state": { - "enum": [ - "UPG_REQUESTED", - "UPG_SCHEDULED", - "UPG_DOWNLOADING", - "UPG_EXTRACTING", - "UPG_REPLACING", - "UPG_RESTARTING", - "UPG_FAILED", - "UPG_WATCHING", - "UPG_ROLLBACK" - ], - "type": "string" - }, - "retry_error_msg": { - "type": "string" - }, - "retry_until": { - "type": "string" - }, - "scheduled_at": { - "type": "string" - } - }, - "type": "object" - }, - "state": { - "enum": [ - "UPG_REQUESTED", - "UPG_SCHEDULED", - "UPG_DOWNLOADING", - "UPG_EXTRACTING", - "UPG_REPLACING", - "UPG_RESTARTING", - "UPG_FAILED", - "UPG_WATCHING", - "UPG_ROLLBACK" - ], - "type": "string" - }, - "target_version": { - "type": "string" - } - }, - "required": [ - "target_version", - "action_id", - "state" - ], - "type": "object" - }, - "upgrade_started_at": { - "nullable": true, - "type": "string" - }, - "upgraded_at": { - "nullable": true, - "type": "string" - }, - "user_provided_metadata": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "id", - "packages", - "type", - "active", - "enrolled_at", - "local_metadata" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get an agent", - "tags": [ - "Elastic Agents" - ] - }, - "put": { - "description": "Update an agent by ID.

[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "put-fleet-agents-agentid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "tags": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "user_provided_metadata": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "access_api_key": { - "type": "string" - }, - "access_api_key_id": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "agent": { - "additionalProperties": true, - "properties": { - "id": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "version" - ], - "type": "object" - }, - "audit_unenrolled_reason": { - "type": "string" - }, - "components": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "status": { - "enum": [ - "STARTING", - "CONFIGURING", - "HEALTHY", - "DEGRADED", - "FAILED", - "STOPPING", - "STOPPED" - ], - "type": "string" - }, - "type": { - "type": "string" - }, - "units": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "payload": { - "additionalProperties": {}, - "type": "object" - }, - "status": { - "enum": [ - "STARTING", - "CONFIGURING", - "HEALTHY", - "DEGRADED", - "FAILED", - "STOPPING", - "STOPPED" - ], - "type": "string" - }, - "type": { - "enum": [ - "input", - "output", - "" - ], - "type": "string" - } - }, - "required": [ - "id", - "type", - "status", - "message" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "id", - "type", - "status", - "message" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "default_api_key": { - "type": "string" - }, - "default_api_key_history": { - "items": { - "additionalProperties": false, - "deprecated": true, - "properties": { - "id": { - "type": "string" - }, - "retired_at": { - "type": "string" - } - }, - "required": [ - "id", - "retired_at" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "default_api_key_id": { - "type": "string" - }, - "enrolled_at": { - "type": "string" - }, - "id": { - "type": "string" - }, - "last_checkin": { - "type": "string" - }, - "last_checkin_message": { - "type": "string" - }, - "last_checkin_status": { - "enum": [ - "error", - "online", - "degraded", - "updating", - "starting" - ], - "type": "string" - }, - "last_known_status": { - "enum": [ - "offline", - "error", - "online", - "inactive", - "enrolling", - "unenrolling", - "unenrolled", - "updating", - "degraded", - "uninstalled", - "orphaned" - ], - "type": "string" - }, - "local_metadata": { - "additionalProperties": {}, - "type": "object" - }, - "metrics": { - "additionalProperties": false, - "properties": { - "cpu_avg": { - "type": "number" - }, - "memory_size_byte_avg": { - "type": "number" - } - }, - "type": "object" - }, - "namespaces": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "outputs": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "api_key_id": { - "type": "string" - }, - "to_retire_api_key_ids": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "retired_at": { - "type": "string" - } - }, - "required": [ - "id", - "retired_at" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "type": "object" - }, - "packages": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - "policy_id": { - "type": "string" - }, - "policy_revision": { - "nullable": true, - "type": "number" - }, - "sort": { - "items": {}, - "maxItems": 10, - "type": "array" - }, - "status": { - "enum": [ - "offline", - "error", - "online", - "inactive", - "enrolling", - "unenrolling", - "unenrolled", - "updating", - "degraded", - "uninstalled", - "orphaned" - ], - "type": "string" - }, - "tags": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "enum": [ - "PERMANENT", - "EPHEMERAL", - "TEMPORARY" - ], - "type": "string" - }, - "unenrolled_at": { - "type": "string" - }, - "unenrollment_started_at": { - "type": "string" - }, - "unhealthy_reason": { - "items": { - "enum": [ - "input", - "output", - "other" - ], - "type": "string" - }, - "maxItems": 3, - "nullable": true, - "type": "array" - }, - "upgrade": { - "additionalProperties": false, - "properties": { - "rollbacks": { - "items": { - "additionalProperties": false, - "properties": { - "valid_until": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "valid_until", - "version" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - }, - "upgrade_attempts": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "nullable": true, - "type": "array" - }, - "upgrade_details": { - "additionalProperties": false, - "nullable": true, - "properties": { - "action_id": { - "type": "string" - }, - "metadata": { - "additionalProperties": false, - "properties": { - "download_percent": { - "type": "number" - }, - "download_rate": { - "type": "number" - }, - "error_msg": { - "type": "string" - }, - "failed_state": { - "enum": [ - "UPG_REQUESTED", - "UPG_SCHEDULED", - "UPG_DOWNLOADING", - "UPG_EXTRACTING", - "UPG_REPLACING", - "UPG_RESTARTING", - "UPG_FAILED", - "UPG_WATCHING", - "UPG_ROLLBACK" - ], - "type": "string" - }, - "retry_error_msg": { - "type": "string" - }, - "retry_until": { - "type": "string" - }, - "scheduled_at": { - "type": "string" - } - }, - "type": "object" - }, - "state": { - "enum": [ - "UPG_REQUESTED", - "UPG_SCHEDULED", - "UPG_DOWNLOADING", - "UPG_EXTRACTING", - "UPG_REPLACING", - "UPG_RESTARTING", - "UPG_FAILED", - "UPG_WATCHING", - "UPG_ROLLBACK" - ], - "type": "string" - }, - "target_version": { - "type": "string" - } - }, - "required": [ - "target_version", - "action_id", - "state" - ], - "type": "object" - }, - "upgrade_started_at": { - "nullable": true, - "type": "string" - }, - "upgraded_at": { - "nullable": true, - "type": "string" - }, - "user_provided_metadata": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "id", - "packages", - "type", - "active", - "enrolled_at", - "local_metadata" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Update an agent by ID", - "tags": [ - "Elastic Agents" - ] - } - }, - "/api/fleet/agents/{agentId}/actions": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-agentid-actions", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "action": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "ack_data": {}, - "data": {}, - "type": { - "enum": [ - "UNENROLL", - "UPGRADE", - "POLICY_REASSIGN" - ], - "type": "string" - } - }, - "required": [ - "type", - "data", - "ack_data" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "data": { - "additionalProperties": false, - "properties": { - "log_level": { - "enum": [ - "debug", - "info", - "warning", - "error" - ], - "nullable": true, - "type": "string" - } - }, - "required": [ - "log_level" - ], - "type": "object" - }, - "type": { - "enum": [ - "SETTINGS" - ], - "type": "string" - } - }, - "required": [ - "type", - "data" - ], - "type": "object" - } - ] - } - }, - "required": [ - "action" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "ack_data": {}, - "agents": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - "created_at": { - "type": "string" - }, - "data": {}, - "expiration": { - "type": "string" - }, - "id": { - "type": "string" - }, - "minimum_execution_duration": { - "type": "number" - }, - "namespaces": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "rollout_duration_seconds": { - "type": "number" - }, - "sent_at": { - "type": "string" - }, - "source_uri": { - "type": "string" - }, - "start_time": { - "type": "string" - }, - "total": { - "type": "number" - }, - "type": { - "type": "string" - } - }, - "required": [ - "id", - "type", - "data", - "created_at", - "ack_data" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Create an agent action", - "tags": [ - "Elastic Agent actions" - ] - } - }, - "/api/fleet/agents/{agentId}/migrate": { - "post": { - "description": "Migrate a single agent to another cluster.

[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-agentid-migrate", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "enrollment_token": { - "type": "string" - }, - "settings": { - "additionalProperties": false, - "properties": { - "ca_sha256": { - "type": "string" - }, - "certificate_authorities": { - "type": "string" - }, - "elastic_agent_cert": { - "type": "string" - }, - "elastic_agent_cert_key": { - "type": "string" - }, - "elastic_agent_cert_key_passphrase": { - "type": "string" - }, - "headers": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "insecure": { - "type": "boolean" - }, - "proxy_disabled": { - "type": "boolean" - }, - "proxy_headers": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "proxy_url": { - "type": "string" - }, - "replace_token": { - "type": "string" - }, - "staging": { - "type": "string" - }, - "tags": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - } - }, - "type": "object" - }, - "uri": { - "format": "uri", - "type": "string" - } - }, - "required": [ - "uri", - "enrollment_token" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "actionId": { - "type": "string" - } - }, - "required": [ - "actionId" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Migrate a single agent", - "tags": [ - "Elastic Agents" - ] - } - }, - "/api/fleet/agents/{agentId}/privilege_level_change": { - "post": { - "description": "Change the privilege level of a single agent to unprivileged.

[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-agentid-privilege-level-change", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The agent ID to change privilege level for", - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "changeAgentPrivilegeLevelRequest": { - "value": { - "user_info": { - "groupname": "groupname", - "password": "password", - "username": "username" - } - } - } - }, - "schema": { - "additionalProperties": false, - "nullable": true, - "properties": { - "user_info": { - "additionalProperties": false, - "properties": { - "groupname": { - "type": "string" - }, - "password": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "successResponse": { - "value": { - "actionId": "actionId" - } - } - }, - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "actionId": { - "type": "string" - } - }, - "required": [ - "actionId" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - } - ] - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "examples": { - "badRequestResponse": { - "value": { - "message": "Bad Request" - } - } - }, - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Change agent privilege level", - "tags": [ - "Elastic Agents" - ], - "x-state": "Technical Preview" - } - }, - "/api/fleet/agents/{agentId}/reassign": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-agentid-reassign", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "policy_id": { - "type": "string" - } - }, - "required": [ - "policy_id" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Reassign an agent", - "tags": [ - "Elastic Agent actions" - ] - } - }, - "/api/fleet/agents/{agentId}/request_diagnostics": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-read.", - "operationId": "post-fleet-agents-agentid-request-diagnostics", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "nullable": true, - "properties": { - "additional_metrics": { - "items": { - "enum": [ - "CPU" - ], - "type": "string" - }, - "maxItems": 1, - "type": "array" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "actionId": { - "type": "string" - } - }, - "required": [ - "actionId" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Request agent diagnostics", - "tags": [ - "Elastic Agent actions" - ] - } - }, - "/api/fleet/agents/{agentId}/rollback": { - "post": { - "description": "Rollback an agent to the previous version.

[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-agentid-rollback", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The agent ID to rollback", - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "successResponse": { - "value": { - "actionId": "actionId" - } - } - }, - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "actionId": { - "type": "string" - } - }, - "required": [ - "actionId" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - } - ] - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "examples": { - "badRequestResponse": { - "value": { - "message": "Bad Request" - } - } - }, - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Rollback an agent", - "tags": [ - "Elastic Agent actions" - ], - "x-state": "Technical Preview" - } - }, - "/api/fleet/agents/{agentId}/unenroll": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-agentid-unenroll", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "nullable": true, - "properties": { - "force": { - "type": "boolean" - }, - "revoke": { - "type": "boolean" - } - }, - "type": "object" - } - } - } - }, - "responses": {}, - "summary": "Unenroll an agent", - "tags": [ - "Elastic Agent actions" - ] - } - }, - "/api/fleet/agents/{agentId}/upgrade": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-agents-agentid-upgrade", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "force": { - "type": "boolean" - }, - "skipRateLimitCheck": { - "type": "boolean" - }, - "source_uri": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "version" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Upgrade an agent", - "tags": [ - "Elastic Agent actions" - ] - } - }, - "/api/fleet/agents/{agentId}/uploads": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agents-read.", - "operationId": "get-fleet-agents-agentid-uploads", - "parameters": [ - { - "in": "path", - "name": "agentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "actionId": { - "type": "string" - }, - "createTime": { - "type": "string" - }, - "error": { - "type": "string" - }, - "filePath": { - "type": "string" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "status": { - "enum": [ - "READY", - "AWAITING_UPLOAD", - "DELETED", - "EXPIRED", - "IN_PROGRESS", - "FAILED" - ], - "type": "string" - } - }, - "required": [ - "id", - "name", - "filePath", - "createTime", - "status", - "actionId" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get agent uploads", - "tags": [ - "Elastic Agents" - ] - } - }, - "/api/fleet/check-permissions": { - "get": { - "operationId": "get-fleet-check-permissions", - "parameters": [ - { - "in": "query", - "name": "fleetServerSetup", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "error": { - "enum": [ - "MISSING_SECURITY", - "MISSING_PRIVILEGES", - "MISSING_FLEET_SERVER_SETUP_PRIVILEGES" - ], - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "required": [ - "success" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Check permissions", - "tags": [ - "Fleet internals" - ] - } - }, - "/api/fleet/cloud_connectors": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-read OR integrations-read.", - "operationId": "get-fleet-cloud-connectors", - "parameters": [ - { - "description": "The page number for pagination.", - "in": "query", - "name": "page", - "required": false, - "schema": { - "type": "string" - } - }, - { - "description": "The number of items per page.", - "in": "query", - "name": "perPage", - "required": false, - "schema": { - "type": "string" - } - }, - { - "description": "KQL query to filter cloud connectors.", - "in": "query", - "name": "kuery", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "accountType": { - "type": "string" - }, - "cloudProvider": { - "type": "string" - }, - "created_at": { - "type": "string" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "namespace": { - "type": "string" - }, - "packagePolicyCount": { - "type": "number" - }, - "updated_at": { - "type": "string" - }, - "vars": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "id", - "name", - "cloudProvider", - "vars", - "packagePolicyCount", - "created_at", - "updated_at" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get cloud connectors", - "tags": [ - "Fleet cloud connectors" - ], - "x-state": "Technical Preview" - }, - "post": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-all OR integrations-all.", - "operationId": "post-fleet-cloud-connectors", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "accountType": { - "description": "The account type: single-account (single account/subscription) or organization-account (organization-wide).", - "enum": [ - "single-account", - "organization-account" - ], - "type": "string" - }, - "cloudProvider": { - "description": "The cloud provider type: aws, azure, or gcp.", - "enum": [ - "aws", - "azure", - "gcp" - ], - "type": "string" - }, - "name": { - "description": "The name of the cloud connector.", - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "maxLength": 1000, - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "maxLength": 50, - "type": "string" - }, - "value": { - "anyOf": [ - { - "maxLength": 1000, - "type": "string" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "maxLength": 255, - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "isSecretRef", - "id" - ], - "type": "object" - } - ] - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - } - ] - }, - "type": "object" - } - }, - "required": [ - "name", - "cloudProvider", - "vars" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "accountType": { - "type": "string" - }, - "cloudProvider": { - "type": "string" - }, - "created_at": { - "type": "string" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "namespace": { - "type": "string" - }, - "packagePolicyCount": { - "type": "number" - }, - "updated_at": { - "type": "string" - }, - "vars": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "id", - "name", - "cloudProvider", - "vars", - "packagePolicyCount", - "created_at", - "updated_at" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Create cloud connector", - "tags": [ - "Fleet cloud connectors" - ], - "x-state": "Technical Preview" - } - }, - "/api/fleet/cloud_connectors/{cloudConnectorId}": { - "delete": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-all OR integrations-all.", - "operationId": "delete-fleet-cloud-connectors-cloudconnectorid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The unique identifier of the cloud connector to delete.", - "in": "path", - "name": "cloudConnectorId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "If true, forces deletion even if the cloud connector is in use.", - "in": "query", - "name": "force", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Delete cloud connector (supports force deletion)", - "tags": [ - "Fleet cloud connectors" - ], - "x-state": "Technical Preview" - }, - "get": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-read OR integrations-read.", - "operationId": "get-fleet-cloud-connectors-cloudconnectorid", - "parameters": [ - { - "description": "The unique identifier of the cloud connector.", - "in": "path", - "name": "cloudConnectorId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "accountType": { - "type": "string" - }, - "cloudProvider": { - "type": "string" - }, - "created_at": { - "type": "string" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "namespace": { - "type": "string" - }, - "packagePolicyCount": { - "type": "number" - }, - "updated_at": { - "type": "string" - }, - "vars": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "id", - "name", - "cloudProvider", - "vars", - "packagePolicyCount", - "created_at", - "updated_at" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get cloud connector", - "tags": [ - "Fleet cloud connectors" - ], - "x-state": "Technical Preview" - }, - "put": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-all OR integrations-all.", - "operationId": "put-fleet-cloud-connectors-cloudconnectorid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The unique identifier of the cloud connector to update.", - "in": "path", - "name": "cloudConnectorId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "accountType": { - "description": "The account type: single-account (single account/subscription) or organization-account (organization-wide).", - "enum": [ - "single-account", - "organization-account" - ], - "type": "string" - }, - "name": { - "description": "The name of the cloud connector.", - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "maxLength": 1000, - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "maxLength": 50, - "type": "string" - }, - "value": { - "anyOf": [ - { - "maxLength": 1000, - "type": "string" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "maxLength": 255, - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "isSecretRef", - "id" - ], - "type": "object" - } - ] - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - } - ] - }, - "type": "object" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "accountType": { - "type": "string" - }, - "cloudProvider": { - "type": "string" - }, - "created_at": { - "type": "string" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "namespace": { - "type": "string" - }, - "packagePolicyCount": { - "type": "number" - }, - "updated_at": { - "type": "string" - }, - "vars": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "id", - "name", - "cloudProvider", - "vars", - "packagePolicyCount", - "created_at", - "updated_at" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Update cloud connector", - "tags": [ - "Fleet cloud connectors" - ], - "x-state": "Technical Preview" - } - }, - "/api/fleet/cloud_connectors/{cloudConnectorId}/usage": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-read OR integrations-read.", - "operationId": "get-fleet-cloud-connectors-cloudconnectorid-usage", - "parameters": [ - { - "description": "The unique identifier of the cloud connector.", - "in": "path", - "name": "cloudConnectorId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "The page number for pagination.", - "in": "query", - "name": "page", - "required": false, - "schema": { - "minimum": 1, - "type": "number" - } - }, - { - "description": "The number of items per page.", - "in": "query", - "name": "perPage", - "required": false, - "schema": { - "minimum": 1, - "type": "number" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "getCloudConnectorUsageResponseExample": { - "description": "Example response showing package policies using the cloud connector", - "value": { - "items": [ - { - "created_at": "2025-01-16T09:00:00.000Z", - "id": "package-policy-1", - "name": "CSPM AWS Policy", - "package": { - "name": "cloud_security_posture", - "title": "Cloud Security Posture Management", - "version": "3.1.1" - }, - "policy_ids": [ - "policy-id-123", - "policy-id-456" - ], - "updated_at": "2025-01-16T09:00:00.000Z" - } - ], - "page": 1, - "perPage": 20, - "total": 2 - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "created_at": { - "type": "string" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "package": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "title": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "title", - "version" - ], - "type": "object" - }, - "policy_ids": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - "updated_at": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "policy_ids", - "created_at", - "updated_at" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "page": { - "type": "number" - }, - "perPage": { - "type": "number" - }, - "total": { - "type": "number" - } - }, - "required": [ - "items", - "total", - "page", - "perPage" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "examples": { - "genericErrorResponseExample": { - "description": "Example of a generic error response", - "value": { - "error": "Bad Request", - "message": "Cloud connector not found", - "statusCode": 400 - } - } - }, - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get cloud connector usage (package policies using the connector)", - "tags": [ - "Fleet cloud connectors" - ], - "x-state": "Technical Preview" - } - }, - "/api/fleet/data_streams": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agents-all AND fleet-agent-policies-all AND fleet-settings-all.", - "operationId": "get-fleet-data-streams", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "data_streams": { - "items": { - "additionalProperties": false, - "properties": { - "dashboards": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "title": { - "type": "string" - } - }, - "required": [ - "id", - "title" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "dataset": { - "type": "string" - }, - "index": { - "type": "string" - }, - "last_activity_ms": { - "type": "number" - }, - "namespace": { - "type": "string" - }, - "package": { - "type": "string" - }, - "package_version": { - "type": "string" - }, - "serviceDetails": { - "additionalProperties": false, - "nullable": true, - "properties": { - "environment": { - "type": "string" - }, - "serviceName": { - "type": "string" - } - }, - "required": [ - "environment", - "serviceName" - ], - "type": "object" - }, - "size_in_bytes": { - "type": "number" - }, - "size_in_bytes_formatted": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "string" - } - ] - }, - "type": { - "type": "string" - } - }, - "required": [ - "index", - "dataset", - "namespace", - "type", - "package", - "package_version", - "last_activity_ms", - "size_in_bytes", - "size_in_bytes_formatted", - "dashboards", - "serviceDetails" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "data_streams" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get data streams", - "tags": [ - "Data streams" - ] - } - }, - "/api/fleet/enrollment_api_keys": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agents-all OR fleet-setup.", - "operationId": "get-fleet-enrollment-api-keys", - "parameters": [ - { - "in": "query", - "name": "page", - "required": false, - "schema": { - "default": 1, - "type": "number" - } - }, - { - "in": "query", - "name": "perPage", - "required": false, - "schema": { - "default": 20, - "type": "number" - } - }, - { - "in": "query", - "name": "kuery", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "active": { - "description": "When false, the enrollment API key is revoked and cannot be used for enrolling Elastic Agents.", - "type": "boolean" - }, - "api_key": { - "description": "The enrollment API key (token) used for enrolling Elastic Agents.", - "type": "string" - }, - "api_key_id": { - "description": "The ID of the API key in the Security API.", - "type": "string" - }, - "created_at": { - "type": "string" - }, - "hidden": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "name": { - "description": "The name of the enrollment API key.", - "type": "string" - }, - "policy_id": { - "description": "The ID of the agent policy the Elastic Agent will be enrolled in.", - "type": "string" - } - }, - "required": [ - "id", - "api_key_id", - "api_key", - "active", - "created_at" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "list": { - "deprecated": true, - "items": { - "additionalProperties": false, - "properties": { - "active": { - "description": "When false, the enrollment API key is revoked and cannot be used for enrolling Elastic Agents.", - "type": "boolean" - }, - "api_key": { - "description": "The enrollment API key (token) used for enrolling Elastic Agents.", - "type": "string" - }, - "api_key_id": { - "description": "The ID of the API key in the Security API.", - "type": "string" - }, - "created_at": { - "type": "string" - }, - "hidden": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "name": { - "description": "The name of the enrollment API key.", - "type": "string" - }, - "policy_id": { - "description": "The ID of the agent policy the Elastic Agent will be enrolled in.", - "type": "string" - } - }, - "required": [ - "id", - "api_key_id", - "api_key", - "active", - "created_at" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "page": { - "type": "number" - }, - "perPage": { - "type": "number" - }, - "total": { - "type": "number" - } - }, - "required": [ - "items", - "total", - "page", - "perPage", - "list" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get enrollment API keys", - "tags": [ - "Fleet enrollment API keys" - ] - }, - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "post-fleet-enrollment-api-keys", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "expiration": { - "type": "string" - }, - "name": { - "type": "string" - }, - "policy_id": { - "type": "string" - } - }, - "required": [ - "policy_id" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "action": { - "enum": [ - "created" - ], - "type": "string" - }, - "item": { - "additionalProperties": false, - "properties": { - "active": { - "description": "When false, the enrollment API key is revoked and cannot be used for enrolling Elastic Agents.", - "type": "boolean" - }, - "api_key": { - "description": "The enrollment API key (token) used for enrolling Elastic Agents.", - "type": "string" - }, - "api_key_id": { - "description": "The ID of the API key in the Security API.", - "type": "string" - }, - "created_at": { - "type": "string" - }, - "hidden": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "name": { - "description": "The name of the enrollment API key.", - "type": "string" - }, - "policy_id": { - "description": "The ID of the agent policy the Elastic Agent will be enrolled in.", - "type": "string" - } - }, - "required": [ - "id", - "api_key_id", - "api_key", - "active", - "created_at" - ], - "type": "object" - } - }, - "required": [ - "item", - "action" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Create an enrollment API key", - "tags": [ - "Fleet enrollment API keys" - ] - } - }, - "/api/fleet/enrollment_api_keys/{keyId}": { - "delete": { - "description": "Revoke an enrollment API key by ID by marking it as inactive.

[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "delete-fleet-enrollment-api-keys-keyid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "keyId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "action": { - "enum": [ - "deleted" - ], - "type": "string" - } - }, - "required": [ - "action" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Revoke an enrollment API key", - "tags": [ - "Fleet enrollment API keys" - ] - }, - "get": { - "description": "Get an enrollment API key by ID.

[Required authorization] Route required privileges: fleet-agents-all OR fleet-setup.", - "operationId": "get-fleet-enrollment-api-keys-keyid", - "parameters": [ - { - "in": "path", - "name": "keyId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "active": { - "description": "When false, the enrollment API key is revoked and cannot be used for enrolling Elastic Agents.", - "type": "boolean" - }, - "api_key": { - "description": "The enrollment API key (token) used for enrolling Elastic Agents.", - "type": "string" - }, - "api_key_id": { - "description": "The ID of the API key in the Security API.", - "type": "string" - }, - "created_at": { - "type": "string" - }, - "hidden": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "name": { - "description": "The name of the enrollment API key.", - "type": "string" - }, - "policy_id": { - "description": "The ID of the agent policy the Elastic Agent will be enrolled in.", - "type": "string" - } - }, - "required": [ - "id", - "api_key_id", - "api_key", - "active", - "created_at" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get an enrollment API key", - "tags": [ - "Fleet enrollment API keys" - ] - } - }, - "/api/fleet/epm/bulk_assets": { - "post": { - "description": "[Required authorization] Route required privileges: integrations-read OR fleet-setup OR fleet-all.", - "operationId": "post-fleet-epm-bulk-assets", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "assetIds": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "assetIds" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "appLink": { - "type": "string" - }, - "attributes": { - "additionalProperties": false, - "properties": { - "description": { - "type": "string" - }, - "service": { - "type": "string" - }, - "title": { - "type": "string" - } - }, - "type": "object" - }, - "id": { - "type": "string" - }, - "type": { - "type": "string" - }, - "updatedAt": { - "type": "string" - } - }, - "required": [ - "id", - "type", - "attributes" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk get assets", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/categories": { - "get": { - "description": "[Required authorization] Route required privileges: integrations-read OR fleet-setup OR fleet-all.", - "operationId": "get-fleet-epm-categories", - "parameters": [ - { - "in": "query", - "name": "prerelease", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "include_policy_templates", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "count": { - "type": "number" - }, - "id": { - "type": "string" - }, - "parent_id": { - "type": "string" - }, - "parent_title": { - "type": "string" - }, - "title": { - "type": "string" - } - }, - "required": [ - "id", - "title", - "count" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get package categories", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/custom_integrations": { - "post": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "post-fleet-epm-custom-integrations", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "datasets": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "type": { - "enum": [ - "logs", - "metrics", - "traces", - "synthetics", - "profiling" - ], - "type": "string" - } - }, - "required": [ - "name", - "type" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "force": { - "type": "boolean" - }, - "integrationName": { - "type": "string" - } - }, - "required": [ - "integrationName", - "datasets" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "_meta": { - "additionalProperties": false, - "properties": { - "install_source": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "install_source", - "name" - ], - "type": "object" - }, - "items": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "originId": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "dashboard", - "lens", - "visualization", - "search", - "index-pattern", - "map", - "ml-module", - "security-rule", - "csp-rule-template", - "osquery-pack-asset", - "osquery-saved-query", - "tag" - ], - "type": "string" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "type": { - "enum": [ - "index", - "index_template", - "component_template", - "ingest_pipeline", - "ilm_policy", - "data_stream_ilm_policy", - "transform", - "ml_model", - "knowledge_base", - "esql_view" - ], - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - } - ] - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items", - "_meta" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Create a custom integration", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/custom_integrations/{pkgName}": { - "put": { - "description": "[Required authorization] Route required privileges: fleet-settings-all AND integrations-all.", - "operationId": "put-fleet-epm-custom-integrations-pkgname", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "categories": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "readMeData": { - "type": "string" - } - }, - "required": [ - "readMeData" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Update a custom integration", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/data_streams": { - "get": { - "description": "[Required authorization] Route required privileges: integrations-read OR fleet-setup OR fleet-all.", - "operationId": "get-fleet-epm-data-streams", - "parameters": [ - { - "in": "query", - "name": "type", - "required": false, - "schema": { - "enum": [ - "logs", - "metrics", - "traces", - "synthetics", - "profiling" - ], - "type": "string" - } - }, - { - "in": "query", - "name": "datasetQuery", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "sortOrder", - "required": false, - "schema": { - "default": "asc", - "enum": [ - "asc", - "desc" - ], - "type": "string" - } - }, - { - "in": "query", - "name": "uncategorisedOnly", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get data streams", - "tags": [ - "Data streams" - ] - } - }, - "/api/fleet/epm/packages": { - "get": { - "description": "[Required authorization] Route required privileges: integrations-read OR fleet-setup OR fleet-all.", - "operationId": "get-fleet-epm-packages", - "parameters": [ - { - "in": "query", - "name": "category", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "prerelease", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "excludeInstallStatus", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "withPackagePoliciesCount", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": true, - "properties": { - "categories": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "conditions": { - "additionalProperties": true, - "properties": { - "elastic": { - "additionalProperties": true, - "properties": { - "capabilities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "subscription": { - "type": "string" - } - }, - "type": "object" - }, - "kibana": { - "additionalProperties": true, - "properties": { - "version": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "data_streams": { - "items": { - "additionalProperties": {}, - "type": "object" - }, - "maxItems": 1000, - "type": "array" - }, - "description": { - "type": "string" - }, - "discovery": { - "additionalProperties": true, - "properties": { - "datasets": { - "items": { - "additionalProperties": true, - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "fields": { - "items": { - "additionalProperties": true, - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - } - }, - "type": "object" - }, - "download": { - "type": "string" - }, - "format_version": { - "type": "string" - }, - "icons": { - "items": { - "additionalProperties": true, - "properties": { - "dark_mode": { - "type": "boolean" - }, - "path": { - "type": "string" - }, - "size": { - "type": "string" - }, - "src": { - "type": "string" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "src" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "id": { - "type": "string" - }, - "installationInfo": { - "additionalProperties": true, - "properties": { - "additional_spaces_installed_kibana": { - "additionalProperties": { - "items": { - "additionalProperties": true, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "originId": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "dashboard", - "lens", - "visualization", - "search", - "index-pattern", - "map", - "ml-module", - "security-rule", - "csp-rule-template", - "osquery-pack-asset", - "osquery-saved-query", - "tag" - ], - "type": "string" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": "object" - }, - "created_at": { - "type": "string" - }, - "experimental_data_stream_features": { - "items": { - "additionalProperties": true, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": true, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "install_format_schema_version": { - "type": "string" - }, - "install_source": { - "enum": [ - "registry", - "upload", - "bundled", - "custom" - ], - "type": "string" - }, - "install_status": { - "enum": [ - "installed", - "installing", - "install_failed" - ], - "type": "string" - }, - "installed_es": { - "items": { - "additionalProperties": true, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "type": { - "enum": [ - "index", - "index_template", - "component_template", - "ingest_pipeline", - "ilm_policy", - "data_stream_ilm_policy", - "transform", - "ml_model", - "knowledge_base", - "esql_view" - ], - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "installed_kibana": { - "items": { - "additionalProperties": true, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "originId": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "dashboard", - "lens", - "visualization", - "search", - "index-pattern", - "map", - "ml-module", - "security-rule", - "csp-rule-template", - "osquery-pack-asset", - "osquery-saved-query", - "tag" - ], - "type": "string" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "installed_kibana_space_id": { - "type": "string" - }, - "is_rollback_ttl_expired": { - "type": "boolean" - }, - "latest_executed_state": { - "additionalProperties": true, - "properties": { - "error": { - "type": "string" - }, - "name": { - "type": "string" - }, - "started_at": { - "type": "string" - } - }, - "type": "object" - }, - "latest_install_failed_attempts": { - "items": { - "additionalProperties": true, - "properties": { - "created_at": { - "type": "string" - }, - "error": { - "additionalProperties": true, - "properties": { - "message": { - "type": "string" - }, - "name": { - "type": "string" - }, - "stack": { - "type": "string" - } - }, - "required": [ - "name", - "message" - ], - "type": "object" - }, - "target_version": { - "type": "string" - } - }, - "required": [ - "created_at", - "target_version", - "error" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "name": { - "type": "string" - }, - "namespaces": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "previous_version": { - "nullable": true, - "type": "string" - }, - "rolled_back": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "updated_at": { - "type": "string" - }, - "verification_key_id": { - "nullable": true, - "type": "string" - }, - "verification_status": { - "enum": [ - "unverified", - "verified", - "unknown" - ], - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "type", - "installed_kibana", - "installed_es", - "name", - "version", - "install_status", - "install_source", - "verification_status" - ], - "type": "object" - }, - "integration": { - "type": "string" - }, - "internal": { - "type": "boolean" - }, - "latestVersion": { - "type": "string" - }, - "name": { - "type": "string" - }, - "owner": { - "additionalProperties": true, - "properties": { - "github": { - "type": "string" - }, - "type": { - "enum": [ - "elastic", - "partner", - "community" - ], - "type": "string" - } - }, - "type": "object" - }, - "path": { - "type": "string" - }, - "policy_templates": { - "items": { - "additionalProperties": {}, - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "readme": { - "type": "string" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "signature_path": { - "type": "string" - }, - "source": { - "additionalProperties": true, - "properties": { - "license": { - "type": "string" - } - }, - "required": [ - "license" - ], - "type": "object" - }, - "status": { - "type": "string" - }, - "title": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "integration" - ], - "type": "string" - }, - { - "enum": [ - "input" - ], - "type": "string" - }, - { - "enum": [ - "content" - ], - "type": "string" - }, - { - "type": "string" - } - ] - }, - "vars": { - "items": { - "additionalProperties": {}, - "type": "object" - }, - "maxItems": 1000, - "type": "array" - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "version", - "title", - "id" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get packages", - "tags": [ - "Elastic Package Manager (EPM)" - ] - }, - "post": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "post-fleet-epm-packages", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "query", - "name": "ignoreMappingUpdateErrors", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - }, - { - "in": "query", - "name": "skipDataStreamRollover", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - } - ], - "requestBody": { - "content": { - "application/gzip; application/zip": { - "schema": { - "format": "binary", - "type": "string" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/gzip; application/zip": { - "schema": { - "additionalProperties": false, - "properties": { - "_meta": { - "additionalProperties": false, - "properties": { - "install_source": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "install_source", - "name" - ], - "type": "object" - }, - "items": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "originId": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "dashboard", - "lens", - "visualization", - "search", - "index-pattern", - "map", - "ml-module", - "security-rule", - "csp-rule-template", - "osquery-pack-asset", - "osquery-saved-query", - "tag" - ], - "type": "string" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "type": { - "enum": [ - "index", - "index_template", - "component_template", - "ingest_pipeline", - "ilm_policy", - "data_stream_ilm_policy", - "transform", - "ml_model", - "knowledge_base", - "esql_view" - ], - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - } - ] - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items", - "_meta" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/gzip; application/zip": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Install a package by upload", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/_bulk": { - "post": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "post-fleet-epm-packages-bulk", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "query", - "name": "prerelease", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "force": { - "default": false, - "type": "boolean" - }, - "packages": { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "prerelease": { - "type": "boolean" - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - } - ] - }, - "maxItems": 1000, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "packages" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "result": { - "additionalProperties": false, - "properties": { - "assets": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "originId": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "dashboard", - "lens", - "visualization", - "search", - "index-pattern", - "map", - "ml-module", - "security-rule", - "csp-rule-template", - "osquery-pack-asset", - "osquery-saved-query", - "tag" - ], - "type": "string" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "type": { - "enum": [ - "index", - "index_template", - "component_template", - "ingest_pipeline", - "ilm_policy", - "data_stream_ilm_policy", - "transform", - "ml_model", - "knowledge_base", - "esql_view" - ], - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - } - ] - }, - "maxItems": 10000, - "type": "array" - }, - "error": {}, - "installSource": { - "type": "string" - }, - "installType": { - "type": "string" - }, - "status": { - "enum": [ - "installed", - "already_installed" - ], - "type": "string" - } - }, - "required": [ - "error", - "installType" - ], - "type": "object" - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "version", - "result" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "error": { - "anyOf": [ - { - "type": "string" - }, - {} - ] - }, - "name": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "name", - "statusCode", - "error" - ], - "type": "object" - } - ] - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk install packages", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/_bulk_rollback": { - "post": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "post-fleet-epm-packages-bulk-rollback", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "bulkRollbackRequest": { - "value": { - "packages": [ - { - "name": "system" - } - ] - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "packages": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "description": "Package name to rollback", - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "maxItems": 1000, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "packages" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "successResponse": { - "value": { - "taskId": "taskId" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "taskId": { - "type": "string" - } - }, - "required": [ - "taskId" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "examples": { - "badRequestResponse": { - "value": { - "message": "Bad Request" - } - } - }, - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk rollback packages", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/_bulk_rollback/{taskId}": { - "get": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "get-fleet-epm-packages-bulk-rollback-taskid", - "parameters": [ - { - "description": "Task ID of the bulk operation", - "in": "path", - "name": "taskId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "successResponse": { - "value": { - "status": "success" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - }, - "results": { - "items": { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - }, - "name": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "required": [ - "name", - "success" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "status": { - "type": "string" - } - }, - "required": [ - "status" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "examples": { - "badRequestResponse": { - "value": { - "message": "Bad Request" - } - } - }, - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get Bulk rollback packages details", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/_bulk_uninstall": { - "post": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "post-fleet-epm-packages-bulk-uninstall", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "force": { - "default": false, - "type": "boolean" - }, - "packages": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "maxItems": 1000, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "packages" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "taskId": { - "type": "string" - } - }, - "required": [ - "taskId" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk uninstall packages", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/_bulk_uninstall/{taskId}": { - "get": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "get-fleet-epm-packages-bulk-uninstall-taskid", - "parameters": [ - { - "description": "Task ID of the bulk operation", - "in": "path", - "name": "taskId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - }, - "results": { - "items": { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - }, - "name": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "required": [ - "name", - "success" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "status": { - "type": "string" - } - }, - "required": [ - "status" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get Bulk uninstall packages details", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/_bulk_upgrade": { - "post": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "post-fleet-epm-packages-bulk-upgrade", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "force": { - "default": false, - "type": "boolean" - }, - "packages": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "maxItems": 1000, - "minItems": 1, - "type": "array" - }, - "prerelease": { - "type": "boolean" - }, - "upgrade_package_policies": { - "default": false, - "type": "boolean" - } - }, - "required": [ - "packages" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "taskId": { - "type": "string" - } - }, - "required": [ - "taskId" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk upgrade packages", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/_bulk_upgrade/{taskId}": { - "get": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "get-fleet-epm-packages-bulk-upgrade-taskid", - "parameters": [ - { - "description": "Task ID of the bulk operation", - "in": "path", - "name": "taskId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - }, - "results": { - "items": { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - }, - "name": { - "type": "string" - }, - "success": { - "type": "boolean" - } - }, - "required": [ - "name", - "success" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "status": { - "type": "string" - } - }, - "required": [ - "status" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get Bulk upgrade packages details", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/installed": { - "get": { - "description": "[Required authorization] Route required privileges: integrations-read OR fleet-setup OR fleet-all.", - "operationId": "get-fleet-epm-packages-installed", - "parameters": [ - { - "in": "query", - "name": "dataStreamType", - "required": false, - "schema": { - "enum": [ - "logs", - "metrics", - "traces", - "synthetics", - "profiling" - ], - "type": "string" - } - }, - { - "in": "query", - "name": "showOnlyActiveDataStreams", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "nameQuery", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "searchAfter", - "required": false, - "schema": { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "maxItems": 10, - "type": "array" - } - }, - { - "in": "query", - "name": "perPage", - "required": false, - "schema": { - "default": 15, - "type": "number" - } - }, - { - "in": "query", - "name": "sortOrder", - "required": false, - "schema": { - "default": "asc", - "enum": [ - "asc", - "desc" - ], - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "dataStreams": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "title": { - "type": "string" - } - }, - "required": [ - "name", - "title" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "description": { - "type": "string" - }, - "icons": { - "items": { - "additionalProperties": false, - "properties": { - "dark_mode": { - "type": "boolean" - }, - "path": { - "type": "string" - }, - "size": { - "type": "string" - }, - "src": { - "type": "string" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "src" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "name": { - "type": "string" - }, - "status": { - "type": "string" - }, - "title": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "version", - "status", - "dataStreams" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "searchAfter": { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "enum": [], - "nullable": true - }, - {} - ] - }, - "maxItems": 2, - "type": "array" - }, - "total": { - "type": "number" - } - }, - "required": [ - "items", - "total" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get installed packages", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/limited": { - "get": { - "description": "[Required authorization] Route required privileges: integrations-read OR fleet-setup OR fleet-all.", - "operationId": "get-fleet-epm-packages-limited", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get a limited package list", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/{pkgName}/rollback": { - "post": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "post-fleet-epm-packages-pkgname-rollback", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "Package name to roll back", - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "successResponse": { - "value": { - "success": true, - "version": "1.0.0" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "success": { - "type": "boolean" - }, - "version": { - "type": "string" - } - }, - "required": [ - "version", - "success" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "examples": { - "badRequestResponse": { - "value": { - "message": "Bad Request" - } - } - }, - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Rollback a package to previous version", - "tags": [ - "Elastic Package Manager (EPM)" - ], - "x-state": "Technical Preview" - } - }, - "/api/fleet/epm/packages/{pkgName}/stats": { - "get": { - "description": "[Required authorization] Route required privileges: integrations-read OR fleet-setup OR fleet-all.", - "operationId": "get-fleet-epm-packages-pkgname-stats", - "parameters": [ - { - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "response": { - "additionalProperties": false, - "properties": { - "agent_policy_count": { - "type": "number" - }, - "package_policy_count": { - "type": "number" - } - }, - "required": [ - "agent_policy_count", - "package_policy_count" - ], - "type": "object" - } - }, - "required": [ - "response" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get package stats", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/{pkgName}/{pkgVersion}": { - "delete": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "delete-fleet-epm-packages-pkgname-pkgversion", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "pkgVersion", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "force", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "originId": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "dashboard", - "lens", - "visualization", - "search", - "index-pattern", - "map", - "ml-module", - "security-rule", - "csp-rule-template", - "osquery-pack-asset", - "osquery-saved-query", - "tag" - ], - "type": "string" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "type": { - "enum": [ - "index", - "index_template", - "component_template", - "ingest_pipeline", - "ilm_policy", - "data_stream_ilm_policy", - "transform", - "ml_model", - "knowledge_base", - "esql_view" - ], - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - } - ] - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Delete a package", - "tags": [ - "Elastic Package Manager (EPM)" - ] - }, - "get": { - "operationId": "get-fleet-epm-packages-pkgname-pkgversion", - "parameters": [ - { - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "pkgVersion", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "ignoreUnverified", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "prerelease", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "full", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "withMetadata", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": true, - "properties": { - "agent": { - "additionalProperties": false, - "properties": { - "privileges": { - "additionalProperties": false, - "properties": { - "root": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "asset_tags": { - "items": { - "additionalProperties": false, - "properties": { - "asset_ids": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "asset_types": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "text": { - "type": "string" - } - }, - "required": [ - "text" - ], - "type": "object" - }, - "maxItems": 1000, - "type": "array" - }, - "assets": { - "additionalProperties": {}, - "type": "object" - }, - "categories": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "conditions": { - "additionalProperties": true, - "properties": { - "elastic": { - "additionalProperties": true, - "properties": { - "capabilities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "subscription": { - "type": "string" - } - }, - "type": "object" - }, - "kibana": { - "additionalProperties": true, - "properties": { - "version": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "data_streams": { - "items": { - "additionalProperties": {}, - "type": "object" - }, - "maxItems": 1000, - "type": "array" - }, - "description": { - "type": "string" - }, - "discovery": { - "additionalProperties": true, - "properties": { - "datasets": { - "items": { - "additionalProperties": true, - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "fields": { - "items": { - "additionalProperties": true, - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - } - }, - "type": "object" - }, - "download": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": {}, - "type": "object" - }, - "format_version": { - "type": "string" - }, - "icons": { - "items": { - "additionalProperties": true, - "properties": { - "dark_mode": { - "type": "boolean" - }, - "path": { - "type": "string" - }, - "size": { - "type": "string" - }, - "src": { - "type": "string" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "src" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "installationInfo": { - "additionalProperties": true, - "properties": { - "additional_spaces_installed_kibana": { - "additionalProperties": { - "items": { - "additionalProperties": true, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "originId": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "dashboard", - "lens", - "visualization", - "search", - "index-pattern", - "map", - "ml-module", - "security-rule", - "csp-rule-template", - "osquery-pack-asset", - "osquery-saved-query", - "tag" - ], - "type": "string" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": "object" - }, - "created_at": { - "type": "string" - }, - "experimental_data_stream_features": { - "items": { - "additionalProperties": true, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": true, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "install_format_schema_version": { - "type": "string" - }, - "install_source": { - "enum": [ - "registry", - "upload", - "bundled", - "custom" - ], - "type": "string" - }, - "install_status": { - "enum": [ - "installed", - "installing", - "install_failed" - ], - "type": "string" - }, - "installed_es": { - "items": { - "additionalProperties": true, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "type": { - "enum": [ - "index", - "index_template", - "component_template", - "ingest_pipeline", - "ilm_policy", - "data_stream_ilm_policy", - "transform", - "ml_model", - "knowledge_base", - "esql_view" - ], - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "installed_kibana": { - "items": { - "additionalProperties": true, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "originId": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "dashboard", - "lens", - "visualization", - "search", - "index-pattern", - "map", - "ml-module", - "security-rule", - "csp-rule-template", - "osquery-pack-asset", - "osquery-saved-query", - "tag" - ], - "type": "string" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "installed_kibana_space_id": { - "type": "string" - }, - "is_rollback_ttl_expired": { - "type": "boolean" - }, - "latest_executed_state": { - "additionalProperties": true, - "properties": { - "error": { - "type": "string" - }, - "name": { - "type": "string" - }, - "started_at": { - "type": "string" - } - }, - "type": "object" - }, - "latest_install_failed_attempts": { - "items": { - "additionalProperties": true, - "properties": { - "created_at": { - "type": "string" - }, - "error": { - "additionalProperties": true, - "properties": { - "message": { - "type": "string" - }, - "name": { - "type": "string" - }, - "stack": { - "type": "string" - } - }, - "required": [ - "name", - "message" - ], - "type": "object" - }, - "target_version": { - "type": "string" - } - }, - "required": [ - "created_at", - "target_version", - "error" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "name": { - "type": "string" - }, - "namespaces": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "previous_version": { - "nullable": true, - "type": "string" - }, - "rolled_back": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "updated_at": { - "type": "string" - }, - "verification_key_id": { - "nullable": true, - "type": "string" - }, - "verification_status": { - "enum": [ - "unverified", - "verified", - "unknown" - ], - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "type", - "installed_kibana", - "installed_es", - "name", - "version", - "install_status", - "install_source", - "verification_status" - ], - "type": "object" - }, - "internal": { - "type": "boolean" - }, - "keepPoliciesUpToDate": { - "type": "boolean" - }, - "latestVersion": { - "type": "string" - }, - "license": { - "type": "string" - }, - "licensePath": { - "type": "string" - }, - "name": { - "type": "string" - }, - "notice": { - "type": "string" - }, - "owner": { - "additionalProperties": true, - "properties": { - "github": { - "type": "string" - }, - "type": { - "enum": [ - "elastic", - "partner", - "community" - ], - "type": "string" - } - }, - "type": "object" - }, - "path": { - "type": "string" - }, - "policy_templates": { - "items": { - "additionalProperties": {}, - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "readme": { - "type": "string" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "screenshots": { - "items": { - "additionalProperties": false, - "properties": { - "dark_mode": { - "type": "boolean" - }, - "path": { - "type": "string" - }, - "size": { - "type": "string" - }, - "src": { - "type": "string" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "src" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "signature_path": { - "type": "string" - }, - "source": { - "additionalProperties": true, - "properties": { - "license": { - "type": "string" - } - }, - "required": [ - "license" - ], - "type": "object" - }, - "status": { - "type": "string" - }, - "title": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "integration" - ], - "type": "string" - }, - { - "enum": [ - "input" - ], - "type": "string" - }, - { - "enum": [ - "content" - ], - "type": "string" - }, - { - "type": "string" - } - ] - }, - "vars": { - "items": { - "additionalProperties": {}, - "type": "object" - }, - "maxItems": 1000, - "type": "array" - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "version", - "title", - "assets" - ], - "type": "object" - }, - "metadata": { - "additionalProperties": false, - "properties": { - "has_policies": { - "type": "boolean" - } - }, - "required": [ - "has_policies" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get a package", - "tags": [ - "Elastic Package Manager (EPM)" - ] - }, - "post": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "post-fleet-epm-packages-pkgname-pkgversion", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "pkgVersion", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "prerelease", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "ignoreMappingUpdateErrors", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - }, - { - "in": "query", - "name": "skipDataStreamRollover", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "nullable": true, - "properties": { - "force": { - "default": false, - "type": "boolean" - }, - "ignore_constraints": { - "default": false, - "type": "boolean" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "_meta": { - "additionalProperties": false, - "properties": { - "install_source": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "install_source", - "name" - ], - "type": "object" - }, - "items": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "originId": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "dashboard", - "lens", - "visualization", - "search", - "index-pattern", - "map", - "ml-module", - "security-rule", - "csp-rule-template", - "osquery-pack-asset", - "osquery-saved-query", - "tag" - ], - "type": "string" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "type": { - "enum": [ - "index", - "index_template", - "component_template", - "ingest_pipeline", - "ilm_policy", - "data_stream_ilm_policy", - "transform", - "ml_model", - "knowledge_base", - "esql_view" - ], - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - } - ] - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items", - "_meta" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Install a package from the registry", - "tags": [ - "Elastic Package Manager (EPM)" - ] - }, - "put": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "put-fleet-epm-packages-pkgname-pkgversion", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "pkgVersion", - "required": false, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "keepPoliciesUpToDate": { - "type": "boolean" - } - }, - "required": [ - "keepPoliciesUpToDate" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": true, - "properties": { - "agent": { - "additionalProperties": false, - "properties": { - "privileges": { - "additionalProperties": false, - "properties": { - "root": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "asset_tags": { - "items": { - "additionalProperties": false, - "properties": { - "asset_ids": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "asset_types": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "text": { - "type": "string" - } - }, - "required": [ - "text" - ], - "type": "object" - }, - "maxItems": 1000, - "type": "array" - }, - "assets": { - "additionalProperties": {}, - "type": "object" - }, - "categories": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "conditions": { - "additionalProperties": true, - "properties": { - "elastic": { - "additionalProperties": true, - "properties": { - "capabilities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "subscription": { - "type": "string" - } - }, - "type": "object" - }, - "kibana": { - "additionalProperties": true, - "properties": { - "version": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "data_streams": { - "items": { - "additionalProperties": {}, - "type": "object" - }, - "maxItems": 1000, - "type": "array" - }, - "description": { - "type": "string" - }, - "discovery": { - "additionalProperties": true, - "properties": { - "datasets": { - "items": { - "additionalProperties": true, - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "fields": { - "items": { - "additionalProperties": true, - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - } - }, - "type": "object" - }, - "download": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": {}, - "type": "object" - }, - "format_version": { - "type": "string" - }, - "icons": { - "items": { - "additionalProperties": true, - "properties": { - "dark_mode": { - "type": "boolean" - }, - "path": { - "type": "string" - }, - "size": { - "type": "string" - }, - "src": { - "type": "string" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "src" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "installationInfo": { - "additionalProperties": true, - "properties": { - "additional_spaces_installed_kibana": { - "additionalProperties": { - "items": { - "additionalProperties": true, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "originId": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "dashboard", - "lens", - "visualization", - "search", - "index-pattern", - "map", - "ml-module", - "security-rule", - "csp-rule-template", - "osquery-pack-asset", - "osquery-saved-query", - "tag" - ], - "type": "string" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": "object" - }, - "created_at": { - "type": "string" - }, - "experimental_data_stream_features": { - "items": { - "additionalProperties": true, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": true, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "install_format_schema_version": { - "type": "string" - }, - "install_source": { - "enum": [ - "registry", - "upload", - "bundled", - "custom" - ], - "type": "string" - }, - "install_status": { - "enum": [ - "installed", - "installing", - "install_failed" - ], - "type": "string" - }, - "installed_es": { - "items": { - "additionalProperties": true, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "type": { - "enum": [ - "index", - "index_template", - "component_template", - "ingest_pipeline", - "ilm_policy", - "data_stream_ilm_policy", - "transform", - "ml_model", - "knowledge_base", - "esql_view" - ], - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "installed_kibana": { - "items": { - "additionalProperties": true, - "properties": { - "deferred": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "originId": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "dashboard", - "lens", - "visualization", - "search", - "index-pattern", - "map", - "ml-module", - "security-rule", - "csp-rule-template", - "osquery-pack-asset", - "osquery-saved-query", - "tag" - ], - "type": "string" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "installed_kibana_space_id": { - "type": "string" - }, - "is_rollback_ttl_expired": { - "type": "boolean" - }, - "latest_executed_state": { - "additionalProperties": true, - "properties": { - "error": { - "type": "string" - }, - "name": { - "type": "string" - }, - "started_at": { - "type": "string" - } - }, - "type": "object" - }, - "latest_install_failed_attempts": { - "items": { - "additionalProperties": true, - "properties": { - "created_at": { - "type": "string" - }, - "error": { - "additionalProperties": true, - "properties": { - "message": { - "type": "string" - }, - "name": { - "type": "string" - }, - "stack": { - "type": "string" - } - }, - "required": [ - "name", - "message" - ], - "type": "object" - }, - "target_version": { - "type": "string" - } - }, - "required": [ - "created_at", - "target_version", - "error" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "name": { - "type": "string" - }, - "namespaces": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "previous_version": { - "nullable": true, - "type": "string" - }, - "rolled_back": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "updated_at": { - "type": "string" - }, - "verification_key_id": { - "nullable": true, - "type": "string" - }, - "verification_status": { - "enum": [ - "unverified", - "verified", - "unknown" - ], - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "type", - "installed_kibana", - "installed_es", - "name", - "version", - "install_status", - "install_source", - "verification_status" - ], - "type": "object" - }, - "internal": { - "type": "boolean" - }, - "keepPoliciesUpToDate": { - "type": "boolean" - }, - "latestVersion": { - "type": "string" - }, - "license": { - "type": "string" - }, - "licensePath": { - "type": "string" - }, - "name": { - "type": "string" - }, - "notice": { - "type": "string" - }, - "owner": { - "additionalProperties": true, - "properties": { - "github": { - "type": "string" - }, - "type": { - "enum": [ - "elastic", - "partner", - "community" - ], - "type": "string" - } - }, - "type": "object" - }, - "path": { - "type": "string" - }, - "policy_templates": { - "items": { - "additionalProperties": {}, - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "readme": { - "type": "string" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "screenshots": { - "items": { - "additionalProperties": false, - "properties": { - "dark_mode": { - "type": "boolean" - }, - "path": { - "type": "string" - }, - "size": { - "type": "string" - }, - "src": { - "type": "string" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "src" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "signature_path": { - "type": "string" - }, - "source": { - "additionalProperties": true, - "properties": { - "license": { - "type": "string" - } - }, - "required": [ - "license" - ], - "type": "object" - }, - "status": { - "type": "string" - }, - "title": { - "type": "string" - }, - "type": { - "anyOf": [ - { - "enum": [ - "integration" - ], - "type": "string" - }, - { - "enum": [ - "input" - ], - "type": "string" - }, - { - "enum": [ - "content" - ], - "type": "string" - }, - { - "type": "string" - } - ] - }, - "vars": { - "items": { - "additionalProperties": {}, - "type": "object" - }, - "maxItems": 1000, - "type": "array" - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "version", - "title", - "assets" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Update package settings", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/{pkgName}/{pkgVersion}/datastream_assets": { - "delete": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "delete-fleet-epm-packages-pkgname-pkgversion-datastream-assets", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "pkgVersion", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "packagePolicyId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "success": { - "type": "boolean" - } - }, - "required": [ - "success" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Delete assets for an input package", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/{pkgName}/{pkgVersion}/kibana_assets": { - "delete": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "delete-fleet-epm-packages-pkgname-pkgversion-kibana-assets", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "pkgVersion", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "success": { - "type": "boolean" - } - }, - "required": [ - "success" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Delete Kibana assets for a package", - "tags": [ - "Elastic Package Manager (EPM)" - ] - }, - "post": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "post-fleet-epm-packages-pkgname-pkgversion-kibana-assets", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "pkgVersion", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "nullable": true, - "properties": { - "force": { - "type": "boolean" - }, - "space_ids": { - "description": "When provided install assets in the specified spaces instead of the current space.", - "items": { - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "type": "array" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "success": { - "type": "boolean" - } - }, - "required": [ - "success" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Install Kibana assets for a package", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/{pkgName}/{pkgVersion}/rule_assets": { - "post": { - "description": "[Required authorization] Route required privileges: integrations-all AND fleet-agent-policies-all.", - "operationId": "post-fleet-epm-packages-pkgname-pkgversion-rule-assets", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "pkgVersion", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "nullable": true, - "properties": { - "force": { - "type": "boolean" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "success": { - "type": "boolean" - } - }, - "required": [ - "success" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Install Kibana alert rule for a package", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/{pkgName}/{pkgVersion}/transforms/authorize": { - "post": { - "operationId": "post-fleet-epm-packages-pkgname-pkgversion-transforms-authorize", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "pkgVersion", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "prerelease", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "transforms": { - "items": { - "additionalProperties": false, - "properties": { - "transformId": { - "type": "string" - } - }, - "required": [ - "transformId" - ], - "type": "object" - }, - "maxItems": 1000, - "type": "array" - } - }, - "required": [ - "transforms" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "items": { - "additionalProperties": false, - "properties": { - "error": { - "nullable": true - }, - "success": { - "type": "boolean" - }, - "transformId": { - "type": "string" - } - }, - "required": [ - "transformId", - "success", - "error" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Authorize transforms", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/packages/{pkgName}/{pkgVersion}/{filePath}": { - "get": { - "description": "[Required authorization] Route required privileges: integrations-read OR fleet-setup OR fleet-all.", - "operationId": "get-fleet-epm-packages-pkgname-pkgversion-filepath", - "parameters": [ - { - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "pkgVersion", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "filePath", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": {} - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get a package file", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/templates/{pkgName}/{pkgVersion}/inputs": { - "get": { - "description": "[Required authorization] Route required privileges: integrations-read OR fleet-setup OR fleet-all.", - "operationId": "get-fleet-epm-templates-pkgname-pkgversion-inputs", - "parameters": [ - { - "in": "path", - "name": "pkgName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "pkgVersion", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "format", - "required": false, - "schema": { - "default": "json", - "enum": [ - "json", - "yml", - "yaml" - ], - "type": "string" - } - }, - { - "in": "query", - "name": "prerelease", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "ignoreUnverified", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "additionalProperties": false, - "properties": { - "inputs": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": true, - "properties": { - "data_stream": { - "additionalProperties": true, - "properties": { - "dataset": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset" - ], - "type": "object" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id", - "data_stream" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "type": { - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "inputs" - ], - "type": "object" - } - ] - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get an inputs template", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/epm/verification_key_id": { - "get": { - "description": "[Required authorization] Route required privileges: integrations-read OR fleet-setup OR fleet-all.", - "operationId": "get-fleet-epm-verification-key-id", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "id": { - "nullable": true, - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get a package signature verification key ID", - "tags": [ - "Elastic Package Manager (EPM)" - ] - } - }, - "/api/fleet/fleet_server_hosts": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agents-all OR fleet-settings-read.", - "operationId": "get-fleet-fleet-server-hosts", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "host_urls": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "agent_key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "es_key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "agent_certificate": { - "type": "string" - }, - "agent_certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "agent_key": { - "type": "string" - }, - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "client_auth": { - "enum": [ - "optional", - "required", - "none" - ], - "type": "string" - }, - "es_certificate": { - "type": "string" - }, - "es_certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "es_key": { - "type": "string" - }, - "key": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "name", - "host_urls", - "id" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "page": { - "type": "number" - }, - "perPage": { - "type": "number" - }, - "total": { - "type": "number" - } - }, - "required": [ - "items", - "total", - "page", - "perPage" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get Fleet Server hosts", - "tags": [ - "Fleet Server hosts" - ] - }, - "post": { - "description": "[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "post-fleet-fleet-server-hosts", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "host_urls": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "agent_key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "es_key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "agent_certificate": { - "type": "string" - }, - "agent_certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "agent_key": { - "type": "string" - }, - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "client_auth": { - "enum": [ - "optional", - "required", - "none" - ], - "type": "string" - }, - "es_certificate": { - "type": "string" - }, - "es_certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "es_key": { - "type": "string" - }, - "key": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "name", - "host_urls" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "host_urls": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "agent_key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "es_key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "agent_certificate": { - "type": "string" - }, - "agent_certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "agent_key": { - "type": "string" - }, - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "client_auth": { - "enum": [ - "optional", - "required", - "none" - ], - "type": "string" - }, - "es_certificate": { - "type": "string" - }, - "es_certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "es_key": { - "type": "string" - }, - "key": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "name", - "host_urls", - "id" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Create a Fleet Server host", - "tags": [ - "Fleet Server hosts" - ] - } - }, - "/api/fleet/fleet_server_hosts/{itemId}": { - "delete": { - "description": "Delete a Fleet Server host by ID.

[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "delete-fleet-fleet-server-hosts-itemid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "itemId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Delete a Fleet Server host", - "tags": [ - "Fleet Server hosts" - ] - }, - "get": { - "description": "Get a Fleet Server host by ID.

[Required authorization] Route required privileges: fleet-settings-read.", - "operationId": "get-fleet-fleet-server-hosts-itemid", - "parameters": [ - { - "in": "path", - "name": "itemId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "host_urls": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "agent_key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "es_key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "agent_certificate": { - "type": "string" - }, - "agent_certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "agent_key": { - "type": "string" - }, - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "client_auth": { - "enum": [ - "optional", - "required", - "none" - ], - "type": "string" - }, - "es_certificate": { - "type": "string" - }, - "es_certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "es_key": { - "type": "string" - }, - "key": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "name", - "host_urls", - "id" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get a Fleet Server host", - "tags": [ - "Fleet Server hosts" - ] - }, - "put": { - "description": "Update a Fleet Server host by ID.

[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "put-fleet-fleet-server-hosts-itemid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "itemId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "host_urls": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "is_default": { - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "agent_key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "es_key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "agent_certificate": { - "type": "string" - }, - "agent_certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "agent_key": { - "type": "string" - }, - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "client_auth": { - "enum": [ - "optional", - "required", - "none" - ], - "type": "string" - }, - "es_certificate": { - "type": "string" - }, - "es_certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "es_key": { - "type": "string" - }, - "key": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "proxy_id" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "host_urls": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "agent_key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "es_key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "agent_certificate": { - "type": "string" - }, - "agent_certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "agent_key": { - "type": "string" - }, - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "client_auth": { - "enum": [ - "optional", - "required", - "none" - ], - "type": "string" - }, - "es_certificate": { - "type": "string" - }, - "es_certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "es_key": { - "type": "string" - }, - "key": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "name", - "host_urls", - "id" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Update a Fleet Server host", - "tags": [ - "Fleet Server hosts" - ] - } - }, - "/api/fleet/health_check": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "post-fleet-health-check", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "host_id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "status": { - "type": "string" - } - }, - "required": [ - "status" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - }, - "404": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "Not found." - } - }, - "summary": "Check Fleet Server health", - "tags": [ - "Fleet internals" - ] - } - }, - "/api/fleet/kubernetes": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-read OR fleet-setup.", - "operationId": "get-fleet-kubernetes", - "parameters": [ - { - "in": "query", - "name": "download", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "fleetServer", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "enrolToken", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "type": "string" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get a full K8s agent manifest", - "tags": [ - "Elastic Agent policies" - ] - } - }, - "/api/fleet/kubernetes/download": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-read OR fleet-setup.", - "operationId": "get-fleet-kubernetes-download", - "parameters": [ - { - "in": "query", - "name": "download", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "fleetServer", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "enrolToken", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - }, - "404": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "Not found." - } - }, - "summary": "Download an agent manifest", - "tags": [ - "Elastic Agent policies" - ] - } - }, - "/api/fleet/logstash_api_keys": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "post-fleet-logstash-api-keys", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "api_key": { - "type": "string" - } - }, - "required": [ - "api_key" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Generate a Logstash API key", - "tags": [ - "Fleet outputs" - ] - } - }, - "/api/fleet/message_signing_service/rotate_key_pair": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-all AND fleet-agent-policies-all AND fleet-settings-all.", - "operationId": "post-fleet-message-signing-service-rotate-key-pair", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "query", - "name": "acknowledge", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - }, - "500": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "An internal server error." - } - }, - "summary": "Rotate a Fleet message signing key pair", - "tags": [ - "Message Signing Service" - ] - } - }, - "/api/fleet/outputs": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-settings-read OR fleet-agent-policies-read.", - "operationId": "get-fleet-outputs", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "format": "uri", - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "preset": { - "enum": [ - "balanced", - "custom", - "throughput", - "scale", - "latency" - ], - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "type": { - "enum": [ - "elasticsearch" - ], - "type": "string" - }, - "write_to_logs_streams": { - "nullable": true, - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "format": "uri", - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "kibana_api_key": { - "nullable": true, - "type": "string" - }, - "kibana_url": { - "nullable": true, - "type": "string" - }, - "name": { - "type": "string" - }, - "preset": { - "enum": [ - "balanced", - "custom", - "throughput", - "scale", - "latency" - ], - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "service_token": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "service_token": { - "nullable": true, - "type": "string" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "sync_integrations": { - "type": "boolean" - }, - "sync_uninstalled_integrations": { - "type": "boolean" - }, - "type": { - "enum": [ - "remote_elasticsearch" - ], - "type": "string" - }, - "write_to_logs_streams": { - "nullable": true, - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "type": { - "enum": [ - "logstash" - ], - "type": "string" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "auth_type": { - "enum": [ - "none", - "user_pass", - "ssl", - "kerberos" - ], - "type": "string" - }, - "broker_timeout": { - "type": "number" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "client_id": { - "type": "string" - }, - "compression": { - "enum": [ - "gzip", - "snappy", - "lz4", - "none" - ], - "type": "string" - }, - "compression_level": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "number" - }, - { - "not": {} - } - ] - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "connection_type": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "enum": [ - "plaintext", - "encryption" - ], - "type": "string" - }, - { - "not": {} - } - ] - }, - "hash": { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "random": { - "type": "boolean" - } - }, - "type": "object" - }, - "headers": { - "items": { - "additionalProperties": true, - "properties": { - "key": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "key", - "value" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "partition": { - "enum": [ - "random", - "round_robin", - "hash" - ], - "type": "string" - }, - "password": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "not": {} - }, - { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "string" - }, - { - "not": {} - } - ] - } - ] - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "random": { - "additionalProperties": true, - "properties": { - "group_events": { - "type": "number" - } - }, - "type": "object" - }, - "required_acks": { - "enum": [ - 1, - 0, - -1 - ], - "type": "integer" - }, - "round_robin": { - "additionalProperties": true, - "properties": { - "group_events": { - "type": "number" - } - }, - "type": "object" - }, - "sasl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "mechanism": { - "enum": [ - "PLAIN", - "SCRAM-SHA-256", - "SCRAM-SHA-512" - ], - "type": "string" - } - }, - "type": "object" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "password": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "key" - ], - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "timeout": { - "type": "number" - }, - "topic": { - "type": "string" - }, - "type": { - "enum": [ - "kafka" - ], - "type": "string" - }, - "username": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "string" - }, - { - "not": {} - } - ] - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "type", - "hosts", - "compression_level", - "auth_type", - "connection_type", - "username", - "password" - ], - "type": "object" - } - ] - }, - "maxItems": 10000, - "type": "array" - }, - "page": { - "type": "number" - }, - "perPage": { - "type": "number" - }, - "total": { - "type": "number" - } - }, - "required": [ - "items", - "total", - "page", - "perPage" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get outputs", - "tags": [ - "Fleet outputs" - ] - }, - "post": { - "description": "[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "post-fleet-outputs", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "format": "uri", - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "preset": { - "enum": [ - "balanced", - "custom", - "throughput", - "scale", - "latency" - ], - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": false, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "type": { - "enum": [ - "elasticsearch" - ], - "type": "string" - }, - "write_to_logs_streams": { - "nullable": true, - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "format": "uri", - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "kibana_api_key": { - "nullable": true, - "type": "string" - }, - "kibana_url": { - "nullable": true, - "type": "string" - }, - "name": { - "type": "string" - }, - "preset": { - "enum": [ - "balanced", - "custom", - "throughput", - "scale", - "latency" - ], - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "service_token": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "service_token": { - "nullable": true, - "type": "string" - }, - "shipper": { - "additionalProperties": false, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "sync_integrations": { - "type": "boolean" - }, - "sync_uninstalled_integrations": { - "type": "boolean" - }, - "type": { - "enum": [ - "remote_elasticsearch" - ], - "type": "string" - }, - "write_to_logs_streams": { - "nullable": true, - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": false, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "type": { - "enum": [ - "logstash" - ], - "type": "string" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "auth_type": { - "enum": [ - "none", - "user_pass", - "ssl", - "kerberos" - ], - "type": "string" - }, - "broker_timeout": { - "type": "number" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "client_id": { - "type": "string" - }, - "compression": { - "enum": [ - "gzip", - "snappy", - "lz4", - "none" - ], - "type": "string" - }, - "compression_level": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "number" - }, - { - "not": {} - } - ] - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "connection_type": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "enum": [ - "plaintext", - "encryption" - ], - "type": "string" - }, - { - "not": {} - } - ] - }, - "hash": { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "random": { - "type": "boolean" - } - }, - "type": "object" - }, - "headers": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "key", - "value" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "partition": { - "enum": [ - "random", - "round_robin", - "hash" - ], - "type": "string" - }, - "password": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "not": {} - }, - { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "string" - }, - { - "not": {} - } - ] - } - ] - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "random": { - "additionalProperties": false, - "properties": { - "group_events": { - "type": "number" - } - }, - "type": "object" - }, - "required_acks": { - "enum": [ - 1, - 0, - -1 - ], - "type": "integer" - }, - "round_robin": { - "additionalProperties": false, - "properties": { - "group_events": { - "type": "number" - } - }, - "type": "object" - }, - "sasl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "mechanism": { - "enum": [ - "PLAIN", - "SCRAM-SHA-256", - "SCRAM-SHA-512" - ], - "type": "string" - } - }, - "type": "object" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "password": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "key" - ], - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": false, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "timeout": { - "type": "number" - }, - "topic": { - "type": "string" - }, - "type": { - "enum": [ - "kafka" - ], - "type": "string" - }, - "username": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "string" - }, - { - "not": {} - } - ] - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "type", - "hosts", - "compression_level", - "auth_type", - "connection_type", - "username", - "password" - ], - "type": "object" - } - ] - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "format": "uri", - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "preset": { - "enum": [ - "balanced", - "custom", - "throughput", - "scale", - "latency" - ], - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "type": { - "enum": [ - "elasticsearch" - ], - "type": "string" - }, - "write_to_logs_streams": { - "nullable": true, - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "format": "uri", - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "kibana_api_key": { - "nullable": true, - "type": "string" - }, - "kibana_url": { - "nullable": true, - "type": "string" - }, - "name": { - "type": "string" - }, - "preset": { - "enum": [ - "balanced", - "custom", - "throughput", - "scale", - "latency" - ], - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "service_token": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "service_token": { - "nullable": true, - "type": "string" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "sync_integrations": { - "type": "boolean" - }, - "sync_uninstalled_integrations": { - "type": "boolean" - }, - "type": { - "enum": [ - "remote_elasticsearch" - ], - "type": "string" - }, - "write_to_logs_streams": { - "nullable": true, - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "type": { - "enum": [ - "logstash" - ], - "type": "string" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "auth_type": { - "enum": [ - "none", - "user_pass", - "ssl", - "kerberos" - ], - "type": "string" - }, - "broker_timeout": { - "type": "number" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "client_id": { - "type": "string" - }, - "compression": { - "enum": [ - "gzip", - "snappy", - "lz4", - "none" - ], - "type": "string" - }, - "compression_level": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "number" - }, - { - "not": {} - } - ] - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "connection_type": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "enum": [ - "plaintext", - "encryption" - ], - "type": "string" - }, - { - "not": {} - } - ] - }, - "hash": { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "random": { - "type": "boolean" - } - }, - "type": "object" - }, - "headers": { - "items": { - "additionalProperties": true, - "properties": { - "key": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "key", - "value" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "partition": { - "enum": [ - "random", - "round_robin", - "hash" - ], - "type": "string" - }, - "password": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "not": {} - }, - { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "string" - }, - { - "not": {} - } - ] - } - ] - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "random": { - "additionalProperties": true, - "properties": { - "group_events": { - "type": "number" - } - }, - "type": "object" - }, - "required_acks": { - "enum": [ - 1, - 0, - -1 - ], - "type": "integer" - }, - "round_robin": { - "additionalProperties": true, - "properties": { - "group_events": { - "type": "number" - } - }, - "type": "object" - }, - "sasl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "mechanism": { - "enum": [ - "PLAIN", - "SCRAM-SHA-256", - "SCRAM-SHA-512" - ], - "type": "string" - } - }, - "type": "object" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "password": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "key" - ], - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "timeout": { - "type": "number" - }, - "topic": { - "type": "string" - }, - "type": { - "enum": [ - "kafka" - ], - "type": "string" - }, - "username": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "string" - }, - { - "not": {} - } - ] - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "type", - "hosts", - "compression_level", - "auth_type", - "connection_type", - "username", - "password" - ], - "type": "object" - } - ] - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Create output", - "tags": [ - "Fleet outputs" - ] - } - }, - "/api/fleet/outputs/{outputId}": { - "delete": { - "description": "Delete output by ID.

[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "delete-fleet-outputs-outputid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "outputId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - }, - "404": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "Not found." - } - }, - "summary": "Delete output", - "tags": [ - "Fleet outputs" - ] - }, - "get": { - "description": "Get output by ID.

[Required authorization] Route required privileges: fleet-settings-read OR fleet-agent-policies-read.", - "operationId": "get-fleet-outputs-outputid", - "parameters": [ - { - "in": "path", - "name": "outputId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "format": "uri", - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "preset": { - "enum": [ - "balanced", - "custom", - "throughput", - "scale", - "latency" - ], - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "type": { - "enum": [ - "elasticsearch" - ], - "type": "string" - }, - "write_to_logs_streams": { - "nullable": true, - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "format": "uri", - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "kibana_api_key": { - "nullable": true, - "type": "string" - }, - "kibana_url": { - "nullable": true, - "type": "string" - }, - "name": { - "type": "string" - }, - "preset": { - "enum": [ - "balanced", - "custom", - "throughput", - "scale", - "latency" - ], - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "service_token": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "service_token": { - "nullable": true, - "type": "string" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "sync_integrations": { - "type": "boolean" - }, - "sync_uninstalled_integrations": { - "type": "boolean" - }, - "type": { - "enum": [ - "remote_elasticsearch" - ], - "type": "string" - }, - "write_to_logs_streams": { - "nullable": true, - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "type": { - "enum": [ - "logstash" - ], - "type": "string" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "auth_type": { - "enum": [ - "none", - "user_pass", - "ssl", - "kerberos" - ], - "type": "string" - }, - "broker_timeout": { - "type": "number" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "client_id": { - "type": "string" - }, - "compression": { - "enum": [ - "gzip", - "snappy", - "lz4", - "none" - ], - "type": "string" - }, - "compression_level": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "number" - }, - { - "not": {} - } - ] - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "connection_type": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "enum": [ - "plaintext", - "encryption" - ], - "type": "string" - }, - { - "not": {} - } - ] - }, - "hash": { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "random": { - "type": "boolean" - } - }, - "type": "object" - }, - "headers": { - "items": { - "additionalProperties": true, - "properties": { - "key": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "key", - "value" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "partition": { - "enum": [ - "random", - "round_robin", - "hash" - ], - "type": "string" - }, - "password": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "not": {} - }, - { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "string" - }, - { - "not": {} - } - ] - } - ] - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "random": { - "additionalProperties": true, - "properties": { - "group_events": { - "type": "number" - } - }, - "type": "object" - }, - "required_acks": { - "enum": [ - 1, - 0, - -1 - ], - "type": "integer" - }, - "round_robin": { - "additionalProperties": true, - "properties": { - "group_events": { - "type": "number" - } - }, - "type": "object" - }, - "sasl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "mechanism": { - "enum": [ - "PLAIN", - "SCRAM-SHA-256", - "SCRAM-SHA-512" - ], - "type": "string" - } - }, - "type": "object" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "password": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "key" - ], - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "timeout": { - "type": "number" - }, - "topic": { - "type": "string" - }, - "type": { - "enum": [ - "kafka" - ], - "type": "string" - }, - "username": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "string" - }, - { - "not": {} - } - ] - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "type", - "hosts", - "compression_level", - "auth_type", - "connection_type", - "username", - "password" - ], - "type": "object" - } - ] - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get output", - "tags": [ - "Fleet outputs" - ] - }, - "put": { - "description": "Update output by ID.

[Required authorization] Route required privileges: fleet-settings-all OR fleet-agent-policies-all.", - "operationId": "put-fleet-outputs-outputid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "outputId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "format": "uri", - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "type": "boolean" - }, - "is_default_monitoring": { - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "preset": { - "enum": [ - "balanced", - "custom", - "throughput", - "scale", - "latency" - ], - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": false, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "type": { - "enum": [ - "elasticsearch" - ], - "type": "string" - }, - "write_to_logs_streams": { - "nullable": true, - "type": "boolean" - } - }, - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "format": "uri", - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "type": "boolean" - }, - "is_default_monitoring": { - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "kibana_api_key": { - "nullable": true, - "type": "string" - }, - "kibana_url": { - "nullable": true, - "type": "string" - }, - "name": { - "type": "string" - }, - "preset": { - "enum": [ - "balanced", - "custom", - "throughput", - "scale", - "latency" - ], - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "service_token": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "service_token": { - "nullable": true, - "type": "string" - }, - "shipper": { - "additionalProperties": false, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "sync_integrations": { - "type": "boolean" - }, - "sync_uninstalled_integrations": { - "type": "boolean" - }, - "type": { - "enum": [ - "remote_elasticsearch" - ], - "type": "string" - }, - "write_to_logs_streams": { - "nullable": true, - "type": "boolean" - } - }, - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "type": "boolean" - }, - "is_default_monitoring": { - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": false, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "type": { - "enum": [ - "logstash" - ], - "type": "string" - } - }, - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "auth_type": { - "enum": [ - "none", - "user_pass", - "ssl", - "kerberos" - ], - "type": "string" - }, - "broker_timeout": { - "type": "number" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "client_id": { - "type": "string" - }, - "compression": { - "enum": [ - "gzip", - "snappy", - "lz4", - "none" - ], - "type": "string" - }, - "compression_level": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "number" - }, - { - "not": {} - } - ] - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "connection_type": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "enum": [ - "plaintext", - "encryption" - ], - "type": "string" - }, - { - "not": {} - } - ] - }, - "hash": { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "random": { - "type": "boolean" - } - }, - "type": "object" - }, - "headers": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "key", - "value" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "partition": { - "enum": [ - "random", - "round_robin", - "hash" - ], - "type": "string" - }, - "password": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "not": {} - }, - { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "string" - }, - { - "not": {} - } - ] - } - ] - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "random": { - "additionalProperties": false, - "properties": { - "group_events": { - "type": "number" - } - }, - "type": "object" - }, - "required_acks": { - "enum": [ - 1, - 0, - -1 - ], - "type": "integer" - }, - "round_robin": { - "additionalProperties": false, - "properties": { - "group_events": { - "type": "number" - } - }, - "type": "object" - }, - "sasl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "mechanism": { - "enum": [ - "PLAIN", - "SCRAM-SHA-256", - "SCRAM-SHA-512" - ], - "type": "string" - } - }, - "type": "object" - }, - "secrets": { - "additionalProperties": false, - "properties": { - "password": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "ssl": { - "additionalProperties": false, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "key" - ], - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": false, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": false, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "timeout": { - "type": "number" - }, - "topic": { - "type": "string" - }, - "type": { - "enum": [ - "kafka" - ], - "type": "string" - }, - "username": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "string" - }, - { - "not": {} - } - ] - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "compression_level", - "connection_type", - "username", - "password" - ], - "type": "object" - } - ] - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "format": "uri", - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "preset": { - "enum": [ - "balanced", - "custom", - "throughput", - "scale", - "latency" - ], - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "type": { - "enum": [ - "elasticsearch" - ], - "type": "string" - }, - "write_to_logs_streams": { - "nullable": true, - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "format": "uri", - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "kibana_api_key": { - "nullable": true, - "type": "string" - }, - "kibana_url": { - "nullable": true, - "type": "string" - }, - "name": { - "type": "string" - }, - "preset": { - "enum": [ - "balanced", - "custom", - "throughput", - "scale", - "latency" - ], - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "service_token": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "service_token": { - "nullable": true, - "type": "string" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "sync_integrations": { - "type": "boolean" - }, - "sync_uninstalled_integrations": { - "type": "boolean" - }, - "type": { - "enum": [ - "remote_elasticsearch" - ], - "type": "string" - }, - "write_to_logs_streams": { - "nullable": true, - "type": "boolean" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "type": { - "enum": [ - "logstash" - ], - "type": "string" - } - }, - "required": [ - "name", - "type", - "hosts" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "allow_edit": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "auth_type": { - "enum": [ - "none", - "user_pass", - "ssl", - "kerberos" - ], - "type": "string" - }, - "broker_timeout": { - "type": "number" - }, - "ca_sha256": { - "nullable": true, - "type": "string" - }, - "ca_trusted_fingerprint": { - "nullable": true, - "type": "string" - }, - "client_id": { - "type": "string" - }, - "compression": { - "enum": [ - "gzip", - "snappy", - "lz4", - "none" - ], - "type": "string" - }, - "compression_level": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "number" - }, - { - "not": {} - } - ] - }, - "config_yaml": { - "nullable": true, - "type": "string" - }, - "connection_type": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "enum": [ - "plaintext", - "encryption" - ], - "type": "string" - }, - { - "not": {} - } - ] - }, - "hash": { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "random": { - "type": "boolean" - } - }, - "type": "object" - }, - "headers": { - "items": { - "additionalProperties": true, - "properties": { - "key": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "key", - "value" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "hosts": { - "items": { - "type": "string" - }, - "maxItems": 10, - "minItems": 1, - "type": "array" - }, - "id": { - "type": "string" - }, - "is_default": { - "default": false, - "type": "boolean" - }, - "is_default_monitoring": { - "default": false, - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "key": { - "type": "string" - }, - "name": { - "type": "string" - }, - "partition": { - "enum": [ - "random", - "round_robin", - "hash" - ], - "type": "string" - }, - "password": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "not": {} - }, - { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "string" - }, - { - "not": {} - } - ] - } - ] - }, - "proxy_id": { - "nullable": true, - "type": "string" - }, - "random": { - "additionalProperties": true, - "properties": { - "group_events": { - "type": "number" - } - }, - "type": "object" - }, - "required_acks": { - "enum": [ - 1, - 0, - -1 - ], - "type": "integer" - }, - "round_robin": { - "additionalProperties": true, - "properties": { - "group_events": { - "type": "number" - } - }, - "type": "object" - }, - "sasl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "mechanism": { - "enum": [ - "PLAIN", - "SCRAM-SHA-256", - "SCRAM-SHA-512" - ], - "type": "string" - } - }, - "type": "object" - }, - "secrets": { - "additionalProperties": true, - "properties": { - "password": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - }, - "ssl": { - "additionalProperties": true, - "properties": { - "key": { - "anyOf": [ - { - "additionalProperties": true, - "properties": { - "hash": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "key" - ], - "type": "object" - } - }, - "type": "object" - }, - "shipper": { - "additionalProperties": true, - "nullable": true, - "properties": { - "compression_level": { - "nullable": true, - "type": "number" - }, - "disk_queue_compression_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_enabled": { - "default": false, - "nullable": true, - "type": "boolean" - }, - "disk_queue_encryption_enabled": { - "nullable": true, - "type": "boolean" - }, - "disk_queue_max_size": { - "nullable": true, - "type": "number" - }, - "disk_queue_path": { - "nullable": true, - "type": "string" - }, - "loadbalance": { - "nullable": true, - "type": "boolean" - }, - "max_batch_bytes": { - "nullable": true, - "type": "number" - }, - "mem_queue_events": { - "nullable": true, - "type": "number" - }, - "queue_flush_timeout": { - "nullable": true, - "type": "number" - } - }, - "required": [ - "disk_queue_path", - "disk_queue_max_size", - "disk_queue_encryption_enabled", - "disk_queue_compression_enabled", - "compression_level", - "loadbalance", - "mem_queue_events", - "queue_flush_timeout", - "max_batch_bytes" - ], - "type": "object" - }, - "ssl": { - "additionalProperties": true, - "nullable": true, - "properties": { - "certificate": { - "type": "string" - }, - "certificate_authorities": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "key": { - "type": "string" - }, - "verification_mode": { - "enum": [ - "full", - "none", - "certificate", - "strict" - ], - "type": "string" - } - }, - "type": "object" - }, - "timeout": { - "type": "number" - }, - "topic": { - "type": "string" - }, - "type": { - "enum": [ - "kafka" - ], - "type": "string" - }, - "username": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "type": "string" - }, - { - "not": {} - } - ] - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "type", - "hosts", - "compression_level", - "auth_type", - "connection_type", - "username", - "password" - ], - "type": "object" - } - ] - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Update output", - "tags": [ - "Fleet outputs" - ] - } - }, - "/api/fleet/outputs/{outputId}/health": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-settings-read.", - "operationId": "get-fleet-outputs-outputid-health", - "parameters": [ - { - "in": "path", - "name": "outputId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "message": { - "description": "long message if unhealthy", - "type": "string" - }, - "state": { - "description": "state of output, HEALTHY or DEGRADED", - "type": "string" - }, - "timestamp": { - "description": "timestamp of reported state", - "type": "string" - } - }, - "required": [ - "state", - "message", - "timestamp" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get the latest output health", - "tags": [ - "Fleet outputs" - ] - } - }, - "/api/fleet/package_policies": { - "get": { - "operationId": "get-fleet-package-policies", - "parameters": [ - { - "in": "query", - "name": "page", - "required": false, - "schema": { - "type": "number" - } - }, - { - "in": "query", - "name": "perPage", - "required": false, - "schema": { - "type": "number" - } - }, - { - "in": "query", - "name": "sortField", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "sortOrder", - "required": false, - "schema": { - "enum": [ - "desc", - "asc" - ], - "type": "string" - } - }, - { - "in": "query", - "name": "showUpgradeable", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "in": "query", - "name": "kuery", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "format", - "required": false, - "schema": { - "enum": [ - "simplified", - "legacy" - ], - "type": "string" - } - }, - { - "in": "query", - "name": "withAgentCount", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "agents": { - "type": "number" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "description": "Package policy unique identifier.", - "type": "string" - }, - "inputs": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package policy inputs." - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "description": "Package policy revision.", - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "anyOf": [ - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package level variable." - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs", - "id", - "revision", - "updated_at", - "updated_by", - "created_at", - "created_by" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "page": { - "type": "number" - }, - "perPage": { - "type": "number" - }, - "total": { - "type": "number" - } - }, - "required": [ - "items", - "total", - "page", - "perPage" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get package policies", - "tags": [ - "Fleet package policies" - ] - }, - "post": { - "operationId": "post-fleet-package-policies", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "query", - "name": "format", - "required": false, - "schema": { - "enum": [ - "simplified", - "legacy" - ], - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "enabled": { - "type": "boolean" - }, - "force": { - "description": "Force package policy creation even if the package is not verified, or if the agent policy is managed.", - "type": "boolean" - }, - "id": { - "description": "Package policy unique identifier", - "type": "string" - }, - "inputs": { - "items": { - "additionalProperties": false, - "properties": { - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled" - ], - "type": "object" - }, - "maxItems": 1000, - "type": "array" - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "deprecated": true, - "description": "Indicates whether the package policy belongs to an agentless agent policy. Deprecated in favor of the Fleet agentless policies API.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "name", - "inputs" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 100, - "nullable": true, - "type": "array" - }, - "description": { - "description": "Policy description.", - "type": "string" - }, - "force": { - "description": "Force package policy creation even if the package is not verified, or if the agent policy is managed.", - "type": "boolean" - }, - "id": { - "description": "Policy unique identifier.", - "type": "string" - }, - "inputs": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object" - }, - "name": { - "description": "Unique name for the policy.", - "type": "string" - }, - "namespace": { - "description": "Policy namespace. When not specified, it inherits the agent policy namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "Deprecated. Use policy_ids instead.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "description": "IDs of the agent policies which that package policy will be added to.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "supports_agentless": { - "default": false, - "deprecated": true, - "description": "Indicates whether the package policy belongs to an agentless agent policy. Deprecated in favor of the Fleet agentless policies API.", - "nullable": true, - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "required": [ - "name", - "package" - ], - "type": "object" - } - ], - "description": "You should use inputs as an object and not use the deprecated inputs array." - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "agents": { - "type": "number" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "description": "Package policy unique identifier.", - "type": "string" - }, - "inputs": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package policy inputs." - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "description": "Package policy revision.", - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "anyOf": [ - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package level variable." - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs", - "id", - "revision", - "updated_at", - "updated_by", - "created_at", - "created_by" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - }, - "409": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A conflict occurred." - } - }, - "summary": "Create a package policy", - "tags": [ - "Fleet package policies" - ] - } - }, - "/api/fleet/package_policies/_bulk_get": { - "post": { - "operationId": "post-fleet-package-policies-bulk-get", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "query", - "name": "format", - "required": false, - "schema": { - "enum": [ - "simplified", - "legacy" - ], - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "ids": { - "description": "list of package policy ids", - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "ignoreMissing": { - "type": "boolean" - } - }, - "required": [ - "ids" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "agents": { - "type": "number" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "description": "Package policy unique identifier.", - "type": "string" - }, - "inputs": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package policy inputs." - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "description": "Package policy revision.", - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "anyOf": [ - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package level variable." - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs", - "id", - "revision", - "updated_at", - "updated_by", - "created_at", - "created_by" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "items" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - }, - "404": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - } - } - }, - "description": "Not found." - } - }, - "summary": "Bulk get package policies", - "tags": [ - "Fleet package policies" - ] - } - }, - "/api/fleet/package_policies/delete": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-all AND integrations-all.", - "operationId": "post-fleet-package-policies-delete", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "force": { - "type": "boolean" - }, - "packagePolicyIds": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - } - }, - "required": [ - "packagePolicyIds" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "items": { - "additionalProperties": false, - "properties": { - "body": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "Use `policy_ids` instead", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "type": "string" - }, - "maxItems": 10000, - "type": "array" - }, - "statusCode": { - "type": "number" - }, - "success": { - "type": "boolean" - } - }, - "required": [ - "id", - "success", - "policy_ids", - "package" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Bulk delete package policies", - "tags": [ - "Fleet package policies" - ] - } - }, - "/api/fleet/package_policies/upgrade": { - "post": { - "description": "Upgrade a package policy to a newer package version.

[Required authorization] Route required privileges: fleet-agent-policies-all AND integrations-all.", - "operationId": "post-fleet-package-policies-upgrade", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "packagePolicyIds": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - } - }, - "required": [ - "packagePolicyIds" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "items": { - "additionalProperties": false, - "properties": { - "body": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "statusCode": { - "type": "number" - }, - "success": { - "type": "boolean" - } - }, - "required": [ - "id", - "success" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Upgrade a package policy", - "tags": [ - "Fleet package policies" - ] - } - }, - "/api/fleet/package_policies/upgrade/dryrun": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agent-policies-read AND integrations-read.", - "operationId": "post-fleet-package-policies-upgrade-dryrun", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "packagePolicyIds": { - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "packageVersion": { - "type": "string" - } - }, - "required": [ - "packagePolicyIds" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "items": { - "additionalProperties": false, - "properties": { - "agent_diff": { - "items": { - "items": { - "additionalProperties": true, - "properties": { - "data_stream": { - "additionalProperties": true, - "properties": { - "namespace": { - "type": "string" - } - }, - "required": [ - "namespace" - ], - "type": "object" - }, - "id": { - "type": "string" - }, - "meta": { - "additionalProperties": true, - "properties": { - "package": { - "additionalProperties": true, - "properties": { - "name": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - } - }, - "required": [ - "package" - ], - "type": "object" - }, - "name": { - "type": "string" - }, - "package_policy_id": { - "type": "string" - }, - "processors": { - "items": { - "additionalProperties": true, - "properties": { - "add_fields": { - "additionalProperties": true, - "properties": { - "fields": { - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - }, - "type": "object" - }, - "target": { - "type": "string" - } - }, - "required": [ - "target", - "fields" - ], - "type": "object" - } - }, - "required": [ - "add_fields" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "revision": { - "type": "number" - }, - "streams": { - "items": { - "additionalProperties": true, - "properties": { - "data_stream": { - "additionalProperties": true, - "properties": { - "dataset": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset" - ], - "type": "object" - }, - "id": { - "type": "string" - } - }, - "required": [ - "data_stream" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "type": { - "type": "string" - }, - "use_output": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "revision", - "type", - "data_stream", - "use_output", - "package_policy_id" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "maxItems": 1, - "type": "array" - }, - "body": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - }, - "diff": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "agents": { - "type": "number" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "inputs": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package policy inputs." - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "description": "Package policy revision.", - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "anyOf": [ - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package level variable." - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs", - "revision", - "updated_at", - "updated_by", - "created_at", - "created_by" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "errors": { - "items": { - "additionalProperties": false, - "properties": { - "key": { - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - }, - "maxItems": 10, - "type": "array" - }, - "force": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "inputs": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "is_managed": { - "type": "boolean" - }, - "missingVars": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs" - ], - "type": "object" - } - ] - }, - "maxItems": 2, - "type": "array" - }, - "hasErrors": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "hasErrors" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Dry run a package policy upgrade", - "tags": [ - "Fleet package policies" - ] - } - }, - "/api/fleet/package_policies/{packagePolicyId}": { - "delete": { - "description": "Delete a package policy by ID.

[Required authorization] Route required privileges: fleet-agent-policies-all AND integrations-all.", - "operationId": "delete-fleet-package-policies-packagepolicyid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "packagePolicyId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "force", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Delete a package policy", - "tags": [ - "Fleet package policies" - ] - }, - "get": { - "description": "Get a package policy by ID.", - "operationId": "get-fleet-package-policies-packagepolicyid", - "parameters": [ - { - "in": "path", - "name": "packagePolicyId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "format", - "required": false, - "schema": { - "enum": [ - "simplified", - "legacy" - ], - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "agents": { - "type": "number" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "description": "Package policy unique identifier.", - "type": "string" - }, - "inputs": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package policy inputs." - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "description": "Package policy revision.", - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "anyOf": [ - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package level variable." - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs", - "id", - "revision", - "updated_at", - "updated_by", - "created_at", - "created_by" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - }, - "404": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - } - } - }, - "description": "Not found." - } - }, - "summary": "Get a package policy", - "tags": [ - "Fleet package policies" - ] - }, - "put": { - "description": "Update a package policy by ID.", - "operationId": "put-fleet-package-policies-packagepolicyid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "packagePolicyId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "format", - "required": false, - "schema": { - "enum": [ - "simplified", - "legacy" - ], - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "enabled": { - "type": "boolean" - }, - "force": { - "type": "boolean" - }, - "inputs": { - "items": { - "additionalProperties": false, - "properties": { - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "version": { - "type": "string" - } - }, - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 100, - "nullable": true, - "type": "array" - }, - "description": { - "description": "Policy description.", - "type": "string" - }, - "force": { - "description": "Force package policy creation even if the package is not verified, or if the agent policy is managed.", - "type": "boolean" - }, - "id": { - "description": "Policy unique identifier.", - "type": "string" - }, - "inputs": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object" - }, - "name": { - "description": "Unique name for the policy.", - "type": "string" - }, - "namespace": { - "description": "Policy namespace. When not specified, it inherits the agent policy namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "Deprecated. Use policy_ids instead.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "description": "IDs of the agent policies which that package policy will be added to.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "supports_agentless": { - "default": false, - "deprecated": true, - "description": "Indicates whether the package policy belongs to an agentless agent policy. Deprecated in favor of the Fleet agentless policies API.", - "nullable": true, - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "required": [ - "name", - "package" - ], - "type": "object" - } - ] - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "additional_datastreams_permissions": { - "description": "Additional datastream permissions, that will be added to the agent policy.", - "items": { - "type": "string" - }, - "maxItems": 1000, - "nullable": true, - "type": "array" - }, - "agents": { - "type": "number" - }, - "cloud_connector_id": { - "description": "ID of the cloud connector associated with this package policy.", - "nullable": true, - "type": "string" - }, - "cloud_connector_name": { - "description": "Transient field for cloud connector name during creation.", - "maxLength": 255, - "minLength": 1, - "nullable": true, - "type": "string" - }, - "created_at": { - "type": "string" - }, - "created_by": { - "type": "string" - }, - "description": { - "description": "Package policy description", - "type": "string" - }, - "elasticsearch": { - "additionalProperties": true, - "properties": { - "privileges": { - "additionalProperties": true, - "properties": { - "cluster": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "description": "Package policy unique identifier.", - "type": "string" - }, - "inputs": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "compiled_input": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "policy_template": { - "type": "string" - }, - "streams": { - "items": { - "additionalProperties": false, - "properties": { - "compiled_stream": {}, - "config": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - "data_stream": { - "additionalProperties": false, - "properties": { - "dataset": { - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "dynamic_dataset": { - "type": "boolean" - }, - "dynamic_namespace": { - "type": "boolean" - }, - "privileges": { - "additionalProperties": false, - "properties": { - "indices": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "type": { - "type": "string" - } - }, - "required": [ - "dataset", - "type" - ], - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "keep_enabled": { - "type": "boolean" - }, - "release": { - "enum": [ - "ga", - "beta", - "experimental" - ], - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "enabled", - "data_stream", - "compiled_stream" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "type": { - "type": "string" - }, - "vars": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - } - }, - "required": [ - "type", - "enabled", - "streams", - "compiled_input" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that input. Defaults to `true` (enabled).", - "type": "boolean" - }, - "streams": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Enable or disable that stream. Defaults to `true` (enabled).", - "type": "boolean" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Input streams. Refer to the integration documentation to know which streams are available.", - "type": "object" - }, - "vars": { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object" - } - }, - "type": "object" - }, - "description": "Package policy inputs. Refer to the integration documentation to know which inputs are available.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package policy inputs." - }, - "is_managed": { - "type": "boolean" - }, - "name": { - "description": "Unique name for the package policy.", - "type": "string" - }, - "namespace": { - "description": "The package policy namespace. Leave blank to inherit the agent policy's namespace.", - "type": "string" - }, - "output_id": { - "nullable": true, - "type": "string" - }, - "overrides": { - "additionalProperties": false, - "description": "Override settings that are defined in the package policy. The override option should be used only in unusual circumstances and not as a routine procedure.", - "nullable": true, - "properties": { - "inputs": { - "additionalProperties": {}, - "type": "object" - } - }, - "type": "object" - }, - "package": { - "additionalProperties": false, - "properties": { - "experimental_data_stream_features": { - "items": { - "additionalProperties": false, - "properties": { - "data_stream": { - "type": "string" - }, - "features": { - "additionalProperties": false, - "properties": { - "doc_value_only_numeric": { - "type": "boolean" - }, - "doc_value_only_other": { - "type": "boolean" - }, - "synthetic_source": { - "type": "boolean" - }, - "tsdb": { - "type": "boolean" - } - }, - "type": "object" - } - }, - "required": [ - "data_stream", - "features" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "fips_compatible": { - "type": "boolean" - }, - "name": { - "description": "Package name", - "type": "string" - }, - "requires_root": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - } - }, - "required": [ - "name", - "version" - ], - "type": "object" - }, - "policy_id": { - "deprecated": true, - "description": "ID of the agent policy which the package policy will be added to.", - "nullable": true, - "type": "string" - }, - "policy_ids": { - "items": { - "description": "IDs of the agent policies which that package policy will be added to.", - "type": "string" - }, - "maxItems": 1000, - "type": "array" - }, - "revision": { - "description": "Package policy revision.", - "type": "number" - }, - "secret_references": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "maxItems": 100, - "type": "array" - }, - "spaceIds": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "supports_agentless": { - "default": false, - "description": "Indicates whether the package policy belongs to an agentless agent policy.", - "nullable": true, - "type": "boolean" - }, - "supports_cloud_connector": { - "default": false, - "description": "Indicates whether the package policy supports cloud connectors.", - "nullable": true, - "type": "boolean" - }, - "updated_at": { - "type": "string" - }, - "updated_by": { - "type": "string" - }, - "vars": { - "anyOf": [ - { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "frozen": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "value": {} - }, - "required": [ - "value" - ], - "type": "object" - }, - "description": "Package variable (see integration documentation for more information)", - "type": "object" - }, - { - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "string" - }, - { - "type": "number" - }, - { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - { - "items": { - "type": "number" - }, - "maxItems": 100, - "type": "array" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "isSecretRef": { - "type": "boolean" - } - }, - "required": [ - "id", - "isSecretRef" - ], - "type": "object" - } - ], - "nullable": true - }, - "description": "Input/stream level variable. Refer to the integration documentation for more information.", - "type": "object", - "x-oas-optional": true - } - ], - "description": "Package level variable." - }, - "version": { - "description": "Package policy ES version.", - "type": "string" - } - }, - "required": [ - "name", - "enabled", - "inputs", - "id", - "revision", - "updated_at", - "updated_by", - "created_at", - "created_by" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - }, - "403": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "Forbidden." - } - }, - "summary": "Update a package policy", - "tags": [ - "Fleet package policies" - ] - } - }, - "/api/fleet/proxies": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-settings-read.", - "operationId": "get-fleet-proxies", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "certificate": { - "nullable": true, - "type": "string" - }, - "certificate_authorities": { - "nullable": true, - "type": "string" - }, - "certificate_key": { - "nullable": true, - "type": "string" - }, - "id": { - "type": "string" - }, - "is_preconfigured": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_headers": { - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, - "nullable": true, - "type": "object" - }, - "url": { - "type": "string" - } - }, - "required": [ - "id", - "url", - "name" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "page": { - "type": "number" - }, - "perPage": { - "type": "number" - }, - "total": { - "type": "number" - } - }, - "required": [ - "items", - "total", - "page", - "perPage" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get proxies", - "tags": [ - "Fleet proxies" - ] - }, - "post": { - "description": "[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "post-fleet-proxies", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "certificate": { - "nullable": true, - "type": "string" - }, - "certificate_authorities": { - "nullable": true, - "type": "string" - }, - "certificate_key": { - "nullable": true, - "type": "string" - }, - "id": { - "type": "string" - }, - "is_preconfigured": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_headers": { - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, - "nullable": true, - "type": "object" - }, - "url": { - "type": "string" - } - }, - "required": [ - "url", - "name" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "certificate": { - "nullable": true, - "type": "string" - }, - "certificate_authorities": { - "nullable": true, - "type": "string" - }, - "certificate_key": { - "nullable": true, - "type": "string" - }, - "id": { - "type": "string" - }, - "is_preconfigured": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_headers": { - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, - "nullable": true, - "type": "object" - }, - "url": { - "type": "string" - } - }, - "required": [ - "id", - "url", - "name" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Create a proxy", - "tags": [ - "Fleet proxies" - ] - } - }, - "/api/fleet/proxies/{itemId}": { - "delete": { - "description": "Delete a proxy by ID

[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "delete-fleet-proxies-itemid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "itemId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Delete a proxy", - "tags": [ - "Fleet proxies" - ] - }, - "get": { - "description": "Get a proxy by ID.

[Required authorization] Route required privileges: fleet-settings-read.", - "operationId": "get-fleet-proxies-itemid", - "parameters": [ - { - "in": "path", - "name": "itemId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "certificate": { - "nullable": true, - "type": "string" - }, - "certificate_authorities": { - "nullable": true, - "type": "string" - }, - "certificate_key": { - "nullable": true, - "type": "string" - }, - "id": { - "type": "string" - }, - "is_preconfigured": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_headers": { - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, - "nullable": true, - "type": "object" - }, - "url": { - "type": "string" - } - }, - "required": [ - "id", - "url", - "name" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get a proxy", - "tags": [ - "Fleet proxies" - ] - }, - "put": { - "description": "Update a proxy by ID.

[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "put-fleet-proxies-itemid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "itemId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "certificate": { - "nullable": true, - "type": "string" - }, - "certificate_authorities": { - "nullable": true, - "type": "string" - }, - "certificate_key": { - "nullable": true, - "type": "string" - }, - "name": { - "type": "string" - }, - "proxy_headers": { - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, - "nullable": true, - "type": "object" - }, - "url": { - "type": "string" - } - }, - "required": [ - "certificate_authorities", - "certificate", - "certificate_key" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "certificate": { - "nullable": true, - "type": "string" - }, - "certificate_authorities": { - "nullable": true, - "type": "string" - }, - "certificate_key": { - "nullable": true, - "type": "string" - }, - "id": { - "type": "string" - }, - "is_preconfigured": { - "default": false, - "type": "boolean" - }, - "name": { - "type": "string" - }, - "proxy_headers": { - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, - "nullable": true, - "type": "object" - }, - "url": { - "type": "string" - } - }, - "required": [ - "id", - "url", - "name" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Update a proxy", - "tags": [ - "Fleet proxies" - ] - } - }, - "/api/fleet/settings": { - "get": { - "description": "[Required authorization] Route required privileges: fleet-settings-read.", - "operationId": "get-fleet-settings", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "action_secret_storage_requirements_met": { - "type": "boolean" - }, - "delete_unenrolled_agents": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - } - }, - "required": [ - "enabled", - "is_preconfigured" - ], - "type": "object" - }, - "has_seen_add_data_notice": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "ilm_migration_status": { - "additionalProperties": false, - "properties": { - "logs": { - "enum": [ - "success" - ], - "nullable": true, - "type": "string" - }, - "metrics": { - "enum": [ - "success" - ], - "nullable": true, - "type": "string" - }, - "synthetics": { - "enum": [ - "success" - ], - "nullable": true, - "type": "string" - } - }, - "type": "object" - }, - "integration_knowledge_enabled": { - "type": "boolean" - }, - "output_secret_storage_requirements_met": { - "type": "boolean" - }, - "preconfigured_fields": { - "items": { - "enum": [ - "fleet_server_hosts" - ], - "type": "string" - }, - "maxItems": 1, - "type": "array" - }, - "prerelease_integrations_enabled": { - "type": "boolean" - }, - "secret_storage_requirements_met": { - "type": "boolean" - }, - "ssl_secret_storage_requirements_met": { - "type": "boolean" - }, - "use_space_awareness_migration_started_at": { - "nullable": true, - "type": "string" - }, - "use_space_awareness_migration_status": { - "enum": [ - "pending", - "success", - "error" - ], - "type": "string" - }, - "version": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - }, - "404": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - } - } - }, - "description": "Not found." - } - }, - "summary": "Get settings", - "tags": [ - "Fleet internals" - ] - }, - "put": { - "description": "[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "put-fleet-settings", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "additional_yaml_config": { - "deprecated": true, - "type": "string" - }, - "delete_unenrolled_agents": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - } - }, - "required": [ - "enabled", - "is_preconfigured" - ], - "type": "object" - }, - "has_seen_add_data_notice": { - "deprecated": true, - "type": "boolean" - }, - "integration_knowledge_enabled": { - "type": "boolean" - }, - "kibana_ca_sha256": { - "deprecated": true, - "type": "string" - }, - "kibana_urls": { - "deprecated": true, - "items": { - "format": "uri", - "type": "string" - }, - "maxItems": 10, - "type": "array" - }, - "prerelease_integrations_enabled": { - "type": "boolean" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "action_secret_storage_requirements_met": { - "type": "boolean" - }, - "delete_unenrolled_agents": { - "additionalProperties": false, - "properties": { - "enabled": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - } - }, - "required": [ - "enabled", - "is_preconfigured" - ], - "type": "object" - }, - "has_seen_add_data_notice": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "ilm_migration_status": { - "additionalProperties": false, - "properties": { - "logs": { - "enum": [ - "success" - ], - "nullable": true, - "type": "string" - }, - "metrics": { - "enum": [ - "success" - ], - "nullable": true, - "type": "string" - }, - "synthetics": { - "enum": [ - "success" - ], - "nullable": true, - "type": "string" - } - }, - "type": "object" - }, - "integration_knowledge_enabled": { - "type": "boolean" - }, - "output_secret_storage_requirements_met": { - "type": "boolean" - }, - "preconfigured_fields": { - "items": { - "enum": [ - "fleet_server_hosts" - ], - "type": "string" - }, - "maxItems": 1, - "type": "array" - }, - "prerelease_integrations_enabled": { - "type": "boolean" - }, - "secret_storage_requirements_met": { - "type": "boolean" - }, - "ssl_secret_storage_requirements_met": { - "type": "boolean" - }, - "use_space_awareness_migration_started_at": { - "nullable": true, - "type": "string" - }, - "use_space_awareness_migration_status": { - "enum": [ - "pending", - "success", - "error" - ], - "type": "string" - }, - "version": { - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - }, - "404": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - } - } - }, - "description": "Not found." - } - }, - "summary": "Update settings", - "tags": [ - "Fleet internals" - ] - } - }, - "/api/fleet/setup": { - "post": { - "description": "[Required authorization] Route required privileges: fleet-agents-read OR fleet-agent-policies-read OR fleet-settings-read OR fleet-setup.", - "operationId": "post-fleet-setup", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "A summary of the result of Fleet's `setup` lifecycle. If `isInitialized` is true, Fleet is ready to accept agent enrollment. `nonFatalErrors` may include useful insight into non-blocking issues with Fleet setup.", - "properties": { - "isInitialized": { - "type": "boolean" - }, - "nonFatalErrors": { - "items": { - "additionalProperties": false, - "properties": { - "message": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "name", - "message" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - } - }, - "required": [ - "isInitialized", - "nonFatalErrors" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - }, - "500": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Internal Server Error", - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "type": "object" - } - } - }, - "description": "An internal server error occurred." - } - }, - "summary": "Initiate Fleet setup", - "tags": [ - "Fleet internals" - ] - } - }, - "/api/fleet/space_settings": { - "get": { - "operationId": "get-fleet-space-settings", - "parameters": [], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "allowed_namespace_prefixes": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "managed_by": { - "type": "string" - } - }, - "required": [ - "allowed_namespace_prefixes" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - } - }, - "summary": "Get space settings", - "tags": [], - "x-state": "Generally available" - }, - "put": { - "description": "[Required authorization] Route required privileges: fleet-settings-all.", - "operationId": "put-fleet-space-settings", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "allowed_namespace_prefixes": { - "items": { - "type": "string" - }, - "maxItems": 10, - "type": "array" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "allowed_namespace_prefixes": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "managed_by": { - "type": "string" - } - }, - "required": [ - "allowed_namespace_prefixes" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - } - }, - "summary": "Create space settings", - "tags": [], - "x-state": "Generally available" - } - }, - "/api/fleet/uninstall_tokens": { - "get": { - "description": "List the metadata for the latest uninstall tokens per agent policy.

[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "get-fleet-uninstall-tokens", - "parameters": [ - { - "description": "Partial match filtering for policy IDs", - "in": "query", - "name": "policyId", - "required": false, - "schema": { - "maxLength": 50, - "type": "string" - } - }, - { - "in": "query", - "name": "search", - "required": false, - "schema": { - "maxLength": 50, - "type": "string" - } - }, - { - "description": "The number of items to return", - "in": "query", - "name": "perPage", - "required": false, - "schema": { - "minimum": 5, - "type": "number" - } - }, - { - "in": "query", - "name": "page", - "required": false, - "schema": { - "minimum": 1, - "type": "number" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "additionalProperties": false, - "properties": { - "created_at": { - "type": "string" - }, - "id": { - "type": "string" - }, - "namespaces": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "policy_id": { - "type": "string" - }, - "policy_name": { - "nullable": true, - "type": "string" - } - }, - "required": [ - "id", - "policy_id", - "created_at" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "page": { - "type": "number" - }, - "perPage": { - "type": "number" - }, - "total": { - "type": "number" - } - }, - "required": [ - "items", - "total", - "page", - "perPage" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get metadata for latest uninstall tokens", - "tags": [ - "Fleet uninstall tokens" - ] - } - }, - "/api/fleet/uninstall_tokens/{uninstallTokenId}": { - "get": { - "description": "Get one decrypted uninstall token by its ID.

[Required authorization] Route required privileges: fleet-agents-all.", - "operationId": "get-fleet-uninstall-tokens-uninstalltokenid", - "parameters": [ - { - "in": "path", - "name": "uninstallTokenId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "item": { - "additionalProperties": false, - "properties": { - "created_at": { - "type": "string" - }, - "id": { - "type": "string" - }, - "namespaces": { - "items": { - "type": "string" - }, - "maxItems": 100, - "type": "array" - }, - "policy_id": { - "type": "string" - }, - "policy_name": { - "nullable": true, - "type": "string" - }, - "token": { - "type": "string" - } - }, - "required": [ - "id", - "policy_id", - "created_at", - "token" - ], - "type": "object" - } - }, - "required": [ - "item" - ], - "type": "object" - } - } - }, - "description": "OK: A successful request." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Generic Error", - "properties": { - "attributes": {}, - "error": { - "type": "string" - }, - "errorType": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "type": "number" - } - }, - "required": [ - "message", - "attributes" - ], - "type": "object" - } - } - }, - "description": "A bad request." - } - }, - "summary": "Get a decrypted uninstall token", - "tags": [ - "Fleet uninstall tokens" - ] - } - }, - "/api/maintenance_window": { - "post": { - "description": "[Required authorization] Route required privileges: write-maintenance-window.", - "operationId": "post-maintenance-window", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Whether the current maintenance window is enabled. Disabled maintenance windows do not suppress notifications.", - "type": "boolean" - }, - "schedule": { - "additionalProperties": false, - "properties": { - "custom": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "The duration of the schedule. It allows values in `` format. `` is one of `d`, `h`, `m`, or `s` for hours, minutes, seconds. For example: `1d`, `5h`, `30m`, `5000s`.", - "type": "string" - }, - "recurring": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end date of a recurring schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-04-01T00:00:00.000Z`.", - "type": "string" - }, - "every": { - "description": "The interval and frequency of a recurring schedule. It allows values in `` format. `` is one of `d`, `w`, `M`, or `y` for days, weeks, months, years. For example: `15d`, `2w`, `3m`, `1y`.", - "type": "string" - }, - "occurrences": { - "description": "The total number of recurrences of the schedule.", - "minimum": 1, - "type": "number" - }, - "onMonth": { - "description": "The specific months for a recurring schedule. Valid values are 1-12.", - "items": { - "maximum": 12, - "minimum": 1, - "type": "number" - }, - "minItems": 1, - "type": "array" - }, - "onMonthDay": { - "description": "The specific days of the month for a recurring schedule. Valid values are 1-31.", - "items": { - "maximum": 31, - "minimum": 1, - "type": "number" - }, - "minItems": 1, - "type": "array" - }, - "onWeekDay": { - "description": "The specific days of the week (`[MO,TU,WE,TH,FR,SA,SU]`) or nth day of month (`[+1MO, -3FR, +2WE, -4SA, -5SU]`) for a recurring schedule.", - "items": { - "type": "string" - }, - "minItems": 1, - "type": "array" - } - }, - "type": "object" - }, - "start": { - "description": "The start date and time of the schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-03-12T12:00:00.000Z`.", - "type": "string" - }, - "timezone": { - "description": "The timezone of the schedule. The default timezone is UTC.", - "type": "string" - } - }, - "required": [ - "start", - "duration" - ], - "type": "object" - } - }, - "required": [ - "custom" - ], - "type": "object" - }, - "scope": { - "additionalProperties": false, - "properties": { - "alerting": { - "additionalProperties": false, - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "kql": { - "description": "A filter written in Kibana Query Language (KQL). Only alerts matching this query will be supressed by the maintenance window.", - "type": "string" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - }, - "required": [ - "query" - ], - "type": "object" - } - }, - "required": [ - "alerting" - ], - "type": "object" - }, - "title": { - "description": "The name of the maintenance window. While this name does not have to be unique, a distinctive name can help you identify a specific maintenance window.", - "type": "string" - } - }, - "required": [ - "title", - "schedule" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "created_at": { - "description": "The date and time when the maintenance window was created.", - "type": "string" - }, - "created_by": { - "description": "The identifier for the user that created the maintenance window.", - "nullable": true, - "type": "string" - }, - "enabled": { - "description": "Whether the current maintenance window is enabled. Disabled maintenance windows do not suppress notifications.", - "type": "boolean" - }, - "id": { - "description": "The identifier for the maintenance window.", - "type": "string" - }, - "schedule": { - "additionalProperties": false, - "properties": { - "custom": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "The duration of the schedule. It allows values in `` format. `` is one of `d`, `h`, `m`, or `s` for hours, minutes, seconds. For example: `1d`, `5h`, `30m`, `5000s`.", - "type": "string" - }, - "recurring": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end date of a recurring schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-04-01T00:00:00.000Z`.", - "type": "string" - }, - "every": { - "description": "The interval and frequency of a recurring schedule. It allows values in `` format. `` is one of `d`, `w`, `M`, or `y` for days, weeks, months, years. For example: `15d`, `2w`, `3m`, `1y`.", - "type": "string" - }, - "occurrences": { - "description": "The total number of recurrences of the schedule.", - "type": "number" - }, - "onMonth": { - "description": "The specific months for a recurring schedule. Valid values are 1-12.", - "items": { - "type": "number" - }, - "type": "array" - }, - "onMonthDay": { - "description": "The specific days of the month for a recurring schedule. Valid values are 1-31.", - "items": { - "type": "number" - }, - "type": "array" - }, - "onWeekDay": { - "description": "The specific days of the week (`[MO,TU,WE,TH,FR,SA,SU]`) or nth day of month (`[+1MO, -3FR, +2WE, -4SA, -5SU]`) for a recurring schedule.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "start": { - "description": "The start date and time of the schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-03-12T12:00:00.000Z`.", - "type": "string" - }, - "timezone": { - "description": "The timezone of the schedule. The default timezone is UTC.", - "type": "string" - } - }, - "required": [ - "start", - "duration" - ], - "type": "object" - } - }, - "required": [ - "custom" - ], - "type": "object" - }, - "scope": { - "additionalProperties": false, - "properties": { - "alerting": { - "additionalProperties": false, - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "kql": { - "description": "A filter written in Kibana Query Language (KQL).", - "type": "string" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - }, - "required": [ - "query" - ], - "type": "object" - } - }, - "required": [ - "alerting" - ], - "type": "object" - }, - "status": { - "description": "The current status of the maintenance window.", - "enum": [ - "running", - "upcoming", - "finished", - "archived", - "disabled" - ], - "type": "string" - }, - "title": { - "description": "The name of the maintenance window.", - "type": "string" - }, - "updated_at": { - "description": "The date and time when the maintenance window was last updated.", - "type": "string" - }, - "updated_by": { - "description": "The identifier for the user that last updated this maintenance window.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "id", - "title", - "enabled", - "created_by", - "updated_by", - "created_at", - "updated_at", - "status", - "schedule" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - } - }, - "summary": "Create a maintenance window.", - "tags": [ - "maintenance-window" - ], - "x-state": "Generally available" - } - }, - "/api/maintenance_window/_find": { - "get": { - "description": "[Required authorization] Route required privileges: read-maintenance-window.", - "operationId": "get-maintenance-window-find", - "parameters": [ - { - "description": "The title of the maintenance window.", - "in": "query", - "name": "title", - "required": false, - "schema": { - "type": "string" - } - }, - { - "description": "The user who created the maintenance window.", - "in": "query", - "name": "created_by", - "required": false, - "schema": { - "type": "string" - } - }, - { - "description": "The status of the maintenance window. It can be \"running\", \"upcoming\", \"finished\", \"archived\", or \"disabled\".", - "in": "query", - "name": "status", - "required": false, - "schema": { - "anyOf": [ - { - "enum": [ - "running", - "finished", - "upcoming", - "archived", - "disabled" - ], - "type": "string" - }, - { - "items": { - "enum": [ - "running", - "finished", - "upcoming", - "archived", - "disabled" - ], - "type": "string" - }, - "type": "array" - } - ] - } - }, - { - "description": "The page number to return.", - "in": "query", - "name": "page", - "required": false, - "schema": { - "default": 1, - "maximum": 100, - "minimum": 1, - "type": "number" - } - }, - { - "description": "The number of maintenance windows to return per page.", - "in": "query", - "name": "per_page", - "required": false, - "schema": { - "default": 10, - "maximum": 100, - "minimum": 1, - "type": "number" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "maintenanceWindows": { - "items": { - "additionalProperties": false, - "properties": { - "created_at": { - "description": "The date and time when the maintenance window was created.", - "type": "string" - }, - "created_by": { - "description": "The identifier for the user that created the maintenance window.", - "nullable": true, - "type": "string" - }, - "enabled": { - "description": "Whether the current maintenance window is enabled. Disabled maintenance windows do not suppress notifications.", - "type": "boolean" - }, - "id": { - "description": "The identifier for the maintenance window.", - "type": "string" - }, - "schedule": { - "additionalProperties": false, - "properties": { - "custom": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "The duration of the schedule. It allows values in `` format. `` is one of `d`, `h`, `m`, or `s` for hours, minutes, seconds. For example: `1d`, `5h`, `30m`, `5000s`.", - "type": "string" - }, - "recurring": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end date of a recurring schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-04-01T00:00:00.000Z`.", - "type": "string" - }, - "every": { - "description": "The interval and frequency of a recurring schedule. It allows values in `` format. `` is one of `d`, `w`, `M`, or `y` for days, weeks, months, years. For example: `15d`, `2w`, `3m`, `1y`.", - "type": "string" - }, - "occurrences": { - "description": "The total number of recurrences of the schedule.", - "type": "number" - }, - "onMonth": { - "description": "The specific months for a recurring schedule. Valid values are 1-12.", - "items": { - "type": "number" - }, - "type": "array" - }, - "onMonthDay": { - "description": "The specific days of the month for a recurring schedule. Valid values are 1-31.", - "items": { - "type": "number" - }, - "type": "array" - }, - "onWeekDay": { - "description": "The specific days of the week (`[MO,TU,WE,TH,FR,SA,SU]`) or nth day of month (`[+1MO, -3FR, +2WE, -4SA, -5SU]`) for a recurring schedule.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "start": { - "description": "The start date and time of the schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-03-12T12:00:00.000Z`.", - "type": "string" - }, - "timezone": { - "description": "The timezone of the schedule. The default timezone is UTC.", - "type": "string" - } - }, - "required": [ - "start", - "duration" - ], - "type": "object" - } - }, - "required": [ - "custom" - ], - "type": "object" - }, - "scope": { - "additionalProperties": false, - "properties": { - "alerting": { - "additionalProperties": false, - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "kql": { - "description": "A filter written in Kibana Query Language (KQL).", - "type": "string" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - }, - "required": [ - "query" - ], - "type": "object" - } - }, - "required": [ - "alerting" - ], - "type": "object" - }, - "status": { - "description": "The current status of the maintenance window.", - "enum": [ - "running", - "upcoming", - "finished", - "archived", - "disabled" - ], - "type": "string" - }, - "title": { - "description": "The name of the maintenance window.", - "type": "string" - }, - "updated_at": { - "description": "The date and time when the maintenance window was last updated.", - "type": "string" - }, - "updated_by": { - "description": "The identifier for the user that last updated this maintenance window.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "id", - "title", - "enabled", - "created_by", - "updated_by", - "created_at", - "updated_at", - "status", - "schedule" - ], - "type": "object" - }, - "type": "array" - }, - "page": { - "type": "number" - }, - "per_page": { - "type": "number" - }, - "total": { - "type": "number" - } - }, - "required": [ - "page", - "per_page", - "total", - "maintenanceWindows" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - } - }, - "summary": "Search for a maintenance window.", - "tags": [ - "maintenance-window" - ], - "x-state": "Generally available" - } - }, - "/api/maintenance_window/{id}": { - "delete": { - "description": "[Required authorization] Route required privileges: write-maintenance-window.", - "operationId": "delete-maintenance-window-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the maintenance window to be deleted.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a maintenance window with the given ID does not exist." - } - }, - "summary": "Delete a maintenance window.", - "tags": [ - "maintenance-window" - ], - "x-state": "Generally available" - }, - "get": { - "description": "[Required authorization] Route required privileges: read-maintenance-window.", - "operationId": "get-maintenance-window-id", - "parameters": [ - { - "description": "The identifier for the maintenance window.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "created_at": { - "description": "The date and time when the maintenance window was created.", - "type": "string" - }, - "created_by": { - "description": "The identifier for the user that created the maintenance window.", - "nullable": true, - "type": "string" - }, - "enabled": { - "description": "Whether the current maintenance window is enabled. Disabled maintenance windows do not suppress notifications.", - "type": "boolean" - }, - "id": { - "description": "The identifier for the maintenance window.", - "type": "string" - }, - "schedule": { - "additionalProperties": false, - "properties": { - "custom": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "The duration of the schedule. It allows values in `` format. `` is one of `d`, `h`, `m`, or `s` for hours, minutes, seconds. For example: `1d`, `5h`, `30m`, `5000s`.", - "type": "string" - }, - "recurring": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end date of a recurring schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-04-01T00:00:00.000Z`.", - "type": "string" - }, - "every": { - "description": "The interval and frequency of a recurring schedule. It allows values in `` format. `` is one of `d`, `w`, `M`, or `y` for days, weeks, months, years. For example: `15d`, `2w`, `3m`, `1y`.", - "type": "string" - }, - "occurrences": { - "description": "The total number of recurrences of the schedule.", - "type": "number" - }, - "onMonth": { - "description": "The specific months for a recurring schedule. Valid values are 1-12.", - "items": { - "type": "number" - }, - "type": "array" - }, - "onMonthDay": { - "description": "The specific days of the month for a recurring schedule. Valid values are 1-31.", - "items": { - "type": "number" - }, - "type": "array" - }, - "onWeekDay": { - "description": "The specific days of the week (`[MO,TU,WE,TH,FR,SA,SU]`) or nth day of month (`[+1MO, -3FR, +2WE, -4SA, -5SU]`) for a recurring schedule.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "start": { - "description": "The start date and time of the schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-03-12T12:00:00.000Z`.", - "type": "string" - }, - "timezone": { - "description": "The timezone of the schedule. The default timezone is UTC.", - "type": "string" - } - }, - "required": [ - "start", - "duration" - ], - "type": "object" - } - }, - "required": [ - "custom" - ], - "type": "object" - }, - "scope": { - "additionalProperties": false, - "properties": { - "alerting": { - "additionalProperties": false, - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "kql": { - "description": "A filter written in Kibana Query Language (KQL).", - "type": "string" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - }, - "required": [ - "query" - ], - "type": "object" - } - }, - "required": [ - "alerting" - ], - "type": "object" - }, - "status": { - "description": "The current status of the maintenance window.", - "enum": [ - "running", - "upcoming", - "finished", - "archived", - "disabled" - ], - "type": "string" - }, - "title": { - "description": "The name of the maintenance window.", - "type": "string" - }, - "updated_at": { - "description": "The date and time when the maintenance window was last updated.", - "type": "string" - }, - "updated_by": { - "description": "The identifier for the user that last updated this maintenance window.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "id", - "title", - "enabled", - "created_by", - "updated_by", - "created_at", - "updated_at", - "status", - "schedule" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a maintenance window with the given ID does not exist." - } - }, - "summary": "Get maintenance window details.", - "tags": [ - "maintenance-window" - ], - "x-state": "Generally available" - }, - "patch": { - "description": "[Required authorization] Route required privileges: write-maintenance-window.", - "operationId": "patch-maintenance-window-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Whether the current maintenance window is enabled. Disabled maintenance windows do not suppress notifications.", - "type": "boolean" - }, - "schedule": { - "additionalProperties": false, - "properties": { - "custom": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "The duration of the schedule. It allows values in `` format. `` is one of `d`, `h`, `m`, or `s` for hours, minutes, seconds. For example: `1d`, `5h`, `30m`, `5000s`.", - "type": "string" - }, - "recurring": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end date of a recurring schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-04-01T00:00:00.000Z`.", - "type": "string" - }, - "every": { - "description": "The interval and frequency of a recurring schedule. It allows values in `` format. `` is one of `d`, `w`, `M`, or `y` for days, weeks, months, years. For example: `15d`, `2w`, `3m`, `1y`.", - "type": "string" - }, - "occurrences": { - "description": "The total number of recurrences of the schedule.", - "minimum": 1, - "type": "number" - }, - "onMonth": { - "description": "The specific months for a recurring schedule. Valid values are 1-12.", - "items": { - "maximum": 12, - "minimum": 1, - "type": "number" - }, - "minItems": 1, - "type": "array" - }, - "onMonthDay": { - "description": "The specific days of the month for a recurring schedule. Valid values are 1-31.", - "items": { - "maximum": 31, - "minimum": 1, - "type": "number" - }, - "minItems": 1, - "type": "array" - }, - "onWeekDay": { - "description": "The specific days of the week (`[MO,TU,WE,TH,FR,SA,SU]`) or nth day of month (`[+1MO, -3FR, +2WE, -4SA, -5SU]`) for a recurring schedule.", - "items": { - "type": "string" - }, - "minItems": 1, - "type": "array" - } - }, - "type": "object" - }, - "start": { - "description": "The start date and time of the schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-03-12T12:00:00.000Z`.", - "type": "string" - }, - "timezone": { - "description": "The timezone of the schedule. The default timezone is UTC.", - "type": "string" - } - }, - "required": [ - "start", - "duration" - ], - "type": "object" - } - }, - "required": [ - "custom" - ], - "type": "object" - }, - "scope": { - "additionalProperties": false, - "properties": { - "alerting": { - "additionalProperties": false, - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "kql": { - "description": "A filter written in Kibana Query Language (KQL). Only alerts matching this query will be supressed by the maintenance window.", - "type": "string" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - }, - "required": [ - "query" - ], - "type": "object" - } - }, - "required": [ - "alerting" - ], - "type": "object" - }, - "title": { - "description": "The name of the maintenance window. While this name does not have to be unique, a distinctive name can help you identify a specific maintenance window.", - "type": "string" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "created_at": { - "description": "The date and time when the maintenance window was created.", - "type": "string" - }, - "created_by": { - "description": "The identifier for the user that created the maintenance window.", - "nullable": true, - "type": "string" - }, - "enabled": { - "description": "Whether the current maintenance window is enabled. Disabled maintenance windows do not suppress notifications.", - "type": "boolean" - }, - "id": { - "description": "The identifier for the maintenance window.", - "type": "string" - }, - "schedule": { - "additionalProperties": false, - "properties": { - "custom": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "The duration of the schedule. It allows values in `` format. `` is one of `d`, `h`, `m`, or `s` for hours, minutes, seconds. For example: `1d`, `5h`, `30m`, `5000s`.", - "type": "string" - }, - "recurring": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end date of a recurring schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-04-01T00:00:00.000Z`.", - "type": "string" - }, - "every": { - "description": "The interval and frequency of a recurring schedule. It allows values in `` format. `` is one of `d`, `w`, `M`, or `y` for days, weeks, months, years. For example: `15d`, `2w`, `3m`, `1y`.", - "type": "string" - }, - "occurrences": { - "description": "The total number of recurrences of the schedule.", - "type": "number" - }, - "onMonth": { - "description": "The specific months for a recurring schedule. Valid values are 1-12.", - "items": { - "type": "number" - }, - "type": "array" - }, - "onMonthDay": { - "description": "The specific days of the month for a recurring schedule. Valid values are 1-31.", - "items": { - "type": "number" - }, - "type": "array" - }, - "onWeekDay": { - "description": "The specific days of the week (`[MO,TU,WE,TH,FR,SA,SU]`) or nth day of month (`[+1MO, -3FR, +2WE, -4SA, -5SU]`) for a recurring schedule.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "start": { - "description": "The start date and time of the schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-03-12T12:00:00.000Z`.", - "type": "string" - }, - "timezone": { - "description": "The timezone of the schedule. The default timezone is UTC.", - "type": "string" - } - }, - "required": [ - "start", - "duration" - ], - "type": "object" - } - }, - "required": [ - "custom" - ], - "type": "object" - }, - "scope": { - "additionalProperties": false, - "properties": { - "alerting": { - "additionalProperties": false, - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "kql": { - "description": "A filter written in Kibana Query Language (KQL).", - "type": "string" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - }, - "required": [ - "query" - ], - "type": "object" - } - }, - "required": [ - "alerting" - ], - "type": "object" - }, - "status": { - "description": "The current status of the maintenance window.", - "enum": [ - "running", - "upcoming", - "finished", - "archived", - "disabled" - ], - "type": "string" - }, - "title": { - "description": "The name of the maintenance window.", - "type": "string" - }, - "updated_at": { - "description": "The date and time when the maintenance window was last updated.", - "type": "string" - }, - "updated_by": { - "description": "The identifier for the user that last updated this maintenance window.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "id", - "title", - "enabled", - "created_by", - "updated_by", - "created_at", - "updated_at", - "status", - "schedule" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a maintenance window with the given ID does not exist." - }, - "409": { - "description": "Indicates that the maintenance window has already been updated by another user." - } - }, - "summary": "Update a maintenance window.", - "tags": [ - "maintenance-window" - ], - "x-state": "Generally available" - } - }, - "/api/maintenance_window/{id}/_archive": { - "post": { - "description": "[Required authorization] Route required privileges: write-maintenance-window.", - "operationId": "post-maintenance-window-id-archive", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the maintenance window to be archived.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "created_at": { - "description": "The date and time when the maintenance window was created.", - "type": "string" - }, - "created_by": { - "description": "The identifier for the user that created the maintenance window.", - "nullable": true, - "type": "string" - }, - "enabled": { - "description": "Whether the current maintenance window is enabled. Disabled maintenance windows do not suppress notifications.", - "type": "boolean" - }, - "id": { - "description": "The identifier for the maintenance window.", - "type": "string" - }, - "schedule": { - "additionalProperties": false, - "properties": { - "custom": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "The duration of the schedule. It allows values in `` format. `` is one of `d`, `h`, `m`, or `s` for hours, minutes, seconds. For example: `1d`, `5h`, `30m`, `5000s`.", - "type": "string" - }, - "recurring": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end date of a recurring schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-04-01T00:00:00.000Z`.", - "type": "string" - }, - "every": { - "description": "The interval and frequency of a recurring schedule. It allows values in `` format. `` is one of `d`, `w`, `M`, or `y` for days, weeks, months, years. For example: `15d`, `2w`, `3m`, `1y`.", - "type": "string" - }, - "occurrences": { - "description": "The total number of recurrences of the schedule.", - "type": "number" - }, - "onMonth": { - "description": "The specific months for a recurring schedule. Valid values are 1-12.", - "items": { - "type": "number" - }, - "type": "array" - }, - "onMonthDay": { - "description": "The specific days of the month for a recurring schedule. Valid values are 1-31.", - "items": { - "type": "number" - }, - "type": "array" - }, - "onWeekDay": { - "description": "The specific days of the week (`[MO,TU,WE,TH,FR,SA,SU]`) or nth day of month (`[+1MO, -3FR, +2WE, -4SA, -5SU]`) for a recurring schedule.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "start": { - "description": "The start date and time of the schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-03-12T12:00:00.000Z`.", - "type": "string" - }, - "timezone": { - "description": "The timezone of the schedule. The default timezone is UTC.", - "type": "string" - } - }, - "required": [ - "start", - "duration" - ], - "type": "object" - } - }, - "required": [ - "custom" - ], - "type": "object" - }, - "scope": { - "additionalProperties": false, - "properties": { - "alerting": { - "additionalProperties": false, - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "kql": { - "description": "A filter written in Kibana Query Language (KQL).", - "type": "string" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - }, - "required": [ - "query" - ], - "type": "object" - } - }, - "required": [ - "alerting" - ], - "type": "object" - }, - "status": { - "description": "The current status of the maintenance window.", - "enum": [ - "running", - "upcoming", - "finished", - "archived", - "disabled" - ], - "type": "string" - }, - "title": { - "description": "The name of the maintenance window.", - "type": "string" - }, - "updated_at": { - "description": "The date and time when the maintenance window was last updated.", - "type": "string" - }, - "updated_by": { - "description": "The identifier for the user that last updated this maintenance window.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "id", - "title", - "enabled", - "created_by", - "updated_by", - "created_at", - "updated_at", - "status", - "schedule" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a maintenance window with the given ID does not exist." - } - }, - "summary": "Archive a maintenance window.", - "tags": [ - "maintenance-window" - ], - "x-state": "Generally available" - } - }, - "/api/maintenance_window/{id}/_unarchive": { - "post": { - "description": "[Required authorization] Route required privileges: write-maintenance-window.", - "operationId": "post-maintenance-window-id-unarchive", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The identifier for the maintenance window to be unarchived.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "created_at": { - "description": "The date and time when the maintenance window was created.", - "type": "string" - }, - "created_by": { - "description": "The identifier for the user that created the maintenance window.", - "nullable": true, - "type": "string" - }, - "enabled": { - "description": "Whether the current maintenance window is enabled. Disabled maintenance windows do not suppress notifications.", - "type": "boolean" - }, - "id": { - "description": "The identifier for the maintenance window.", - "type": "string" - }, - "schedule": { - "additionalProperties": false, - "properties": { - "custom": { - "additionalProperties": false, - "properties": { - "duration": { - "description": "The duration of the schedule. It allows values in `` format. `` is one of `d`, `h`, `m`, or `s` for hours, minutes, seconds. For example: `1d`, `5h`, `30m`, `5000s`.", - "type": "string" - }, - "recurring": { - "additionalProperties": false, - "properties": { - "end": { - "description": "The end date of a recurring schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-04-01T00:00:00.000Z`.", - "type": "string" - }, - "every": { - "description": "The interval and frequency of a recurring schedule. It allows values in `` format. `` is one of `d`, `w`, `M`, or `y` for days, weeks, months, years. For example: `15d`, `2w`, `3m`, `1y`.", - "type": "string" - }, - "occurrences": { - "description": "The total number of recurrences of the schedule.", - "type": "number" - }, - "onMonth": { - "description": "The specific months for a recurring schedule. Valid values are 1-12.", - "items": { - "type": "number" - }, - "type": "array" - }, - "onMonthDay": { - "description": "The specific days of the month for a recurring schedule. Valid values are 1-31.", - "items": { - "type": "number" - }, - "type": "array" - }, - "onWeekDay": { - "description": "The specific days of the week (`[MO,TU,WE,TH,FR,SA,SU]`) or nth day of month (`[+1MO, -3FR, +2WE, -4SA, -5SU]`) for a recurring schedule.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "start": { - "description": "The start date and time of the schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-03-12T12:00:00.000Z`.", - "type": "string" - }, - "timezone": { - "description": "The timezone of the schedule. The default timezone is UTC.", - "type": "string" - } - }, - "required": [ - "start", - "duration" - ], - "type": "object" - } - }, - "required": [ - "custom" - ], - "type": "object" - }, - "scope": { - "additionalProperties": false, - "properties": { - "alerting": { - "additionalProperties": false, - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "kql": { - "description": "A filter written in Kibana Query Language (KQL).", - "type": "string" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - }, - "required": [ - "query" - ], - "type": "object" - } - }, - "required": [ - "alerting" - ], - "type": "object" - }, - "status": { - "description": "The current status of the maintenance window.", - "enum": [ - "running", - "upcoming", - "finished", - "archived", - "disabled" - ], - "type": "string" - }, - "title": { - "description": "The name of the maintenance window.", - "type": "string" - }, - "updated_at": { - "description": "The date and time when the maintenance window was last updated.", - "type": "string" - }, - "updated_by": { - "description": "The identifier for the user that last updated this maintenance window.", - "nullable": true, - "type": "string" - } - }, - "required": [ - "id", - "title", - "enabled", - "created_by", - "updated_by", - "created_at", - "updated_at", - "status", - "schedule" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "400": { - "description": "Indicates an invalid schema or parameters." - }, - "403": { - "description": "Indicates that this call is forbidden." - }, - "404": { - "description": "Indicates a maintenance window with the given ID does not exist." - } - }, - "summary": "Unarchive a maintenance window.", - "tags": [ - "maintenance-window" - ], - "x-state": "Generally available" - } - }, - "/api/saved_objects/_export": { - "post": { - "description": "Retrieve sets of saved objects that you want to import into Kibana. You must include `type` or `objects` in the request body. The output of exporting saved objects must be treated as opaque. Tampering with exported data risks introducing unspecified errors and data loss.\n\nExported saved objects are not backwards compatible and cannot be imported into an older version of Kibana.\n\nNOTE: The `savedObjects.maxImportExportSize` configuration setting limits the number of saved objects which may be exported.", - "operationId": "post-saved-objects-export", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "exportSavedObjectsRequest": { - "summary": "Export a specific saved object.", - "value": { - "excludeExportDetails": true, - "includeReferencesDeep": false, - "objects": [ - { - "id": "de71f4f0-1902-11e9-919b-ffe5949a18d2", - "type": "map" - } - ] - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "excludeExportDetails": { - "default": false, - "description": "Do not add export details entry at the end of the stream.", - "type": "boolean" - }, - "hasReference": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "type", - "id" - ], - "type": "object" - }, - { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "type", - "id" - ], - "type": "object" - }, - "type": "array" - } - ] - }, - "includeReferencesDeep": { - "default": false, - "description": "Includes all of the referenced objects in the exported objects.", - "type": "boolean" - }, - "objects": { - "description": "A list of objects to export. NOTE: this optional parameter cannot be combined with the `types` option", - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "type", - "id" - ], - "type": "object" - }, - "maxItems": 10000, - "type": "array" - }, - "search": { - "description": "Search for documents to export using the Elasticsearch Simple Query String syntax.", - "type": "string" - }, - "type": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ], - "description": "The saved object types to include in the export. Use `*` to export all the types. Valid options depend on enabled plugins, but may include `visualization`, `dashboard`, `search`, `index-pattern`, `tag`, `config`, `config-global`, `lens`, `map`, `event-annotation-group`, `query`, `url`, `action`, `alert`, `alerting_rule_template`, `apm-indices`, `cases-user-actions`, `cases`, `cases-comments`, `infrastructure-monitoring-log-view`, `ml-trained-model`, `osquery-saved-query`, `osquery-pack`, `osquery-pack-asset`." - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/x-ndjson": { - "examples": { - "exportSavedObjectsResponse": { - "summary": "The export objects API response contains a JSON record for each exported object.", - "value": { - "attributes": { - "description": "", - "layerListJSON": "[{\"id\":\"0hmz5\",\"alpha\":1,\"sourceDescriptor\":{\"type\":\"EMS_TMS\",\"isAutoSelect\":true,\"lightModeDefault\":\"road_map_desaturated\"},\"visible\":true,\"style\":{},\"type\":\"EMS_VECTOR_TILE\",\"minZoom\":0,\"maxZoom\":24},{\"id\":\"edh66\",\"label\":\"Total Requests by Destination\",\"minZoom\":0,\"maxZoom\":24,\"alpha\":0.5,\"sourceDescriptor\":{\"type\":\"EMS_FILE\",\"id\":\"world_countries\",\"tooltipProperties\":[\"name\",\"iso2\"]},\"visible\":true,\"style\":{\"type\":\"VECTOR\",\"properties\":{\"fillColor\":{\"type\":\"DYNAMIC\",\"options\":{\"field\":{\"name\":\"__kbnjoin__count__673ff994-fc75-4c67-909b-69fcb0e1060e\",\"origin\":\"join\"},\"color\":\"Greys\",\"fieldMetaOptions\":{\"isEnabled\":false,\"sigma\":3}}},\"lineColor\":{\"type\":\"STATIC\",\"options\":{\"color\":\"#FFFFFF\"}},\"lineWidth\":{\"type\":\"STATIC\",\"options\":{\"size\":1}},\"iconSize\":{\"type\":\"STATIC\",\"options\":{\"size\":10}},\"symbolizeAs\":{\"options\":{\"value\":\"circle\"}},\"icon\":{\"type\":\"STATIC\",\"options\":{\"value\":\"marker\"}}}},\"type\":\"GEOJSON_VECTOR\",\"joins\":[{\"leftField\":\"iso2\",\"right\":{\"type\":\"ES_TERM_SOURCE\",\"id\":\"673ff994-fc75-4c67-909b-69fcb0e1060e\",\"indexPatternTitle\":\"kibana_sample_data_logs\",\"term\":\"geo.dest\",\"indexPatternRefName\":\"layer_1_join_0_index_pattern\",\"metrics\":[{\"type\":\"count\",\"label\":\"web logs count\"}],\"applyGlobalQuery\":true}}]},{\"id\":\"gaxya\",\"label\":\"Actual Requests\",\"minZoom\":9,\"maxZoom\":24,\"alpha\":1,\"sourceDescriptor\":{\"id\":\"b7486535-171b-4d3b-bb2e-33c1a0a2854c\",\"type\":\"ES_SEARCH\",\"geoField\":\"geo.coordinates\",\"limit\":2048,\"filterByMapBounds\":true,\"tooltipProperties\":[\"clientip\",\"timestamp\",\"host\",\"request\",\"response\",\"machine.os\",\"agent\",\"bytes\"],\"indexPatternRefName\":\"layer_2_source_index_pattern\",\"applyGlobalQuery\":true,\"scalingType\":\"LIMIT\"},\"visible\":true,\"style\":{\"type\":\"VECTOR\",\"properties\":{\"fillColor\":{\"type\":\"STATIC\",\"options\":{\"color\":\"#2200ff\"}},\"lineColor\":{\"type\":\"STATIC\",\"options\":{\"color\":\"#FFFFFF\"}},\"lineWidth\":{\"type\":\"STATIC\",\"options\":{\"size\":2}},\"iconSize\":{\"type\":\"DYNAMIC\",\"options\":{\"field\":{\"name\":\"bytes\",\"origin\":\"source\"},\"minSize\":1,\"maxSize\":23,\"fieldMetaOptions\":{\"isEnabled\":false,\"sigma\":3}}},\"symbolizeAs\":{\"options\":{\"value\":\"circle\"}},\"icon\":{\"type\":\"STATIC\",\"options\":{\"value\":\"marker\"}}}},\"type\":\"GEOJSON_VECTOR\"},{\"id\":\"tfi3f\",\"label\":\"Total Requests and Bytes\",\"minZoom\":0,\"maxZoom\":9,\"alpha\":1,\"sourceDescriptor\":{\"type\":\"ES_GEO_GRID\",\"resolution\":\"COARSE\",\"id\":\"8aaa65b5-a4e9-448b-9560-c98cb1c5ac5b\",\"geoField\":\"geo.coordinates\",\"requestType\":\"point\",\"metrics\":[{\"type\":\"count\",\"label\":\"web logs count\"},{\"type\":\"sum\",\"field\":\"bytes\"}],\"indexPatternRefName\":\"layer_3_source_index_pattern\",\"applyGlobalQuery\":true},\"visible\":true,\"style\":{\"type\":\"VECTOR\",\"properties\":{\"fillColor\":{\"type\":\"DYNAMIC\",\"options\":{\"field\":{\"name\":\"doc_count\",\"origin\":\"source\"},\"color\":\"Blues\",\"fieldMetaOptions\":{\"isEnabled\":false,\"sigma\":3}}},\"lineColor\":{\"type\":\"STATIC\",\"options\":{\"color\":\"#cccccc\"}},\"lineWidth\":{\"type\":\"STATIC\",\"options\":{\"size\":1}},\"iconSize\":{\"type\":\"DYNAMIC\",\"options\":{\"field\":{\"name\":\"sum_of_bytes\",\"origin\":\"source\"},\"minSize\":7,\"maxSize\":25,\"fieldMetaOptions\":{\"isEnabled\":false,\"sigma\":3}}},\"labelText\":{\"type\":\"DYNAMIC\",\"options\":{\"field\":{\"name\":\"doc_count\",\"origin\":\"source\"},\"fieldMetaOptions\":{\"isEnabled\":false,\"sigma\":3}}},\"labelSize\":{\"type\":\"DYNAMIC\",\"options\":{\"field\":{\"name\":\"doc_count\",\"origin\":\"source\"},\"minSize\":12,\"maxSize\":24,\"fieldMetaOptions\":{\"isEnabled\":false,\"sigma\":3}}},\"symbolizeAs\":{\"options\":{\"value\":\"circle\"}},\"icon\":{\"type\":\"STATIC\",\"options\":{\"value\":\"marker\"}}}},\"type\":\"GEOJSON_VECTOR\"}]", - "mapStateJSON": "{\"zoom\":3.64,\"center\":{\"lon\":-88.92107,\"lat\":42.16337},\"timeFilters\":{\"from\":\"now-7d\",\"to\":\"now\"},\"refreshConfig\":{\"isPaused\":true,\"interval\":0},\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"settings\":{\"autoFitToDataBounds\":false}}", - "title": "[Logs] Total Requests and Bytes", - "uiStateJSON": "{\"isDarkMode\":false}" - }, - "coreMigrationVersion": "8.8.0", - "created_at": "2023-08-23T20:03:32.204Z", - "id": "de71f4f0-1902-11e9-919b-ffe5949a18d2", - "managed": false, - "references": [ - { - "id": "90943e30-9a47-11e8-b64d-95841ca0b247", - "name": "layer_1_join_0_index_pattern", - "type": "index-pattern" - }, - { - "id": "90943e30-9a47-11e8-b64d-95841ca0b247", - "name": "layer_2_source_index_pattern", - "type": "index-pattern" - }, - { - "id": "90943e30-9a47-11e8-b64d-95841ca0b247", - "name": "layer_3_source_index_pattern", - "type": "index-pattern" - } - ], - "type": "map", - "typeMigrationVersion": "8.4.0", - "updated_at": "2023-08-23T20:03:32.204Z", - "version": "WzEzLDFd" - } - } - }, - "schema": {} - } - }, - "description": "Indicates a successfull call." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Indicates an unsuccessful response.", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "enum": [ - 400 - ], - "type": "integer" - } - }, - "required": [ - "error", - "message", - "statusCode" - ], - "type": "object" - } - } - }, - "description": "Bad request." - } - }, - "summary": "Export saved objects", - "tags": [ - "saved objects" - ] - } - }, - "/api/saved_objects/_import": { - "post": { - "description": "Create sets of Kibana saved objects from a file created by the export API. Saved objects can only be imported into the same version, a newer minor on the same major, or the next major. Tampering with exported data risks introducing unspecified errors and data loss.\n\nExported saved objects are not backwards compatible and cannot be imported into an older version of Kibana.", - "operationId": "post-saved-objects-import", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "Overwrites saved objects when they already exist. When used, potential conflict errors are automatically resolved by overwriting the destination object. NOTE: This option cannot be used with the `createNewCopies` option.", - "in": "query", - "name": "overwrite", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - }, - { - "description": "Creates copies of saved objects, regenerates each object ID, and resets the origin. When used, potential conflict errors are avoided. NOTE: This option cannot be used with the `overwrite` and `compatibilityMode` options.", - "in": "query", - "name": "createNewCopies", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - }, - { - "description": "Applies various adjustments to the saved objects that are being imported to maintain compatibility between different Kibana versions. Use this option only if you encounter issues with imported saved objects. NOTE: This option cannot be used with the `createNewCopies` option.", - "in": "query", - "name": "compatibilityMode", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "examples": { - "importObjectsRequest": { - "value": { - "file": "file.ndjson" - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "file": { - "description": "A file exported using the export API. Changing the contents of the exported file in any way before importing it can cause errors, crashes or data loss. NOTE: The `savedObjects.maxImportExportSize` configuration setting limits the number of saved objects which may be included in this file. Similarly, the `savedObjects.maxImportPayloadBytes` setting limits the overall size of the file that can be imported.", - "type": "object" - } - }, - "required": [ - "file" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "importObjectsResponse": { - "summary": "The import objects API response indicates a successful import and the objects are created. Since these objects are created as new copies, each entry in the successResults array includes a destinationId attribute.", - "value": { - "success": true, - "successCount": 1, - "successResults": [ - { - "destinationId": "82d2760c-468f-49cf-83aa-b9a35b6a8943", - "id": "90943e30-9a47-11e8-b64d-95841ca0b247", - "managed": false, - "meta": { - "icon": "indexPatternApp", - "title": "Kibana Sample Data Logs" - }, - "type": "index-pattern" - } - ] - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "errors": { - "description": "Indicates the import was unsuccessful and specifies the objects that failed to import.\n\nNOTE: One object may result in multiple errors, which requires separate steps to resolve. For instance, a `missing_references` error and conflict error.", - "items": { - "additionalProperties": true, - "properties": {}, - "type": "object" - }, - "type": "array" - }, - "success": { - "description": "Indicates when the import was successfully completed. When set to false, some objects may not have been created. For additional information, refer to the `errors` and `successResults` properties.", - "type": "boolean" - }, - "successCount": { - "description": "Indicates the number of successfully imported records.", - "type": "number" - }, - "successResults": { - "description": "Indicates the objects that are successfully imported, with any metadata if applicable.\n\nNOTE: Objects are created only when all resolvable errors are addressed, including conflicts and missing references. If objects are created as new copies, each entry in the `successResults` array includes a `destinationId` attribute.", - "items": { - "additionalProperties": true, - "properties": {}, - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "success", - "successCount", - "errors", - "successResults" - ], - "type": "object" - } - } - }, - "description": "Indicates a successful call." - }, - "400": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "description": "Indicates an unsuccessful response.", - "properties": { - "error": { - "type": "string" - }, - "message": { - "type": "string" - }, - "statusCode": { - "enum": [ - 400 - ], - "type": "integer" - } - }, - "required": [ - "error", - "message", - "statusCode" - ], - "type": "object" - } - } - }, - "description": "Bad request." - } - }, - "summary": "Import saved objects", - "tags": [ - "saved objects" - ], - "x-codeSamples": [ - { - "label": "Import with createNewCopies", - "lang": "cURL", - "source": "curl \\\n -X POST api/saved_objects/_import?createNewCopies=true\n -H \"kbn-xsrf: true\"\n --form file=@file.ndjson\n" - } - ] - } - }, - "/api/security/role": { - "get": { - "operationId": "get-security-role", - "parameters": [ - { - "description": "If `true` and the response contains any privileges that are associated with deprecated features, they are omitted in favor of details about the appropriate replacement feature privileges.", - "in": "query", - "name": "replaceDeprecatedPrivileges", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "description": "Indicates a successful call." - } - }, - "summary": "Get all roles", - "tags": [ - "roles" - ] - } - }, - "/api/security/role/_query": { - "post": { - "operationId": "post-security-role-query", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "filters": { - "additionalProperties": false, - "properties": { - "showReservedRoles": { - "type": "boolean" - } - }, - "type": "object" - }, - "from": { - "type": "number" - }, - "query": { - "type": "string" - }, - "size": { - "type": "number" - }, - "sort": { - "additionalProperties": false, - "properties": { - "direction": { - "enum": [ - "asc", - "desc" - ], - "type": "string" - }, - "field": { - "type": "string" - } - }, - "required": [ - "field", - "direction" - ], - "type": "object" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "description": "Indicates a successful call." - } - }, - "summary": "Query roles", - "tags": [] - } - }, - "/api/security/role/{name}": { - "delete": { - "operationId": "delete-security-role-name", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "minLength": 1, - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "Indicates a successful call." - } - }, - "summary": "Delete a role", - "tags": [ - "roles" - ] - }, - "get": { - "operationId": "get-security-role-name", - "parameters": [ - { - "description": "The role name.", - "in": "path", - "name": "name", - "required": true, - "schema": { - "minLength": 1, - "type": "string" - } - }, - { - "description": "If `true` and the response contains any privileges that are associated with deprecated features, they are omitted in favor of details about the appropriate replacement feature privileges.", - "in": "query", - "name": "replaceDeprecatedPrivileges", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "description": "Indicates a successful call." - } - }, - "summary": "Get a role", - "tags": [ - "roles" - ] - }, - "put": { - "description": "Create a new Kibana role or update the attributes of an existing role. Kibana roles are stored in the Elasticsearch native realm.", - "operationId": "put-security-role-name", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The role name.", - "in": "path", - "name": "name", - "required": true, - "schema": { - "maxLength": 1024, - "minLength": 1, - "type": "string" - } - }, - { - "description": "When true, a role is not overwritten if it already exists.", - "in": "query", - "name": "createOnly", - "required": false, - "schema": { - "default": false, - "type": "boolean" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "description": { - "description": "A description for the role.", - "maxLength": 2048, - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "cluster": { - "items": { - "description": "Cluster privileges that define the cluster level actions that users can perform.", - "type": "string" - }, - "type": "array" - }, - "indices": { - "items": { - "additionalProperties": false, - "properties": { - "allow_restricted_indices": { - "description": "Restricted indices are a special category of indices that are used internally to store configuration data and should not be directly accessed. Only internal system roles should normally grant privileges over the restricted indices. Toggling this flag is very strongly discouraged because it could effectively grant unrestricted operations on critical data, making the entire system unstable or leaking sensitive information. If for administrative purposes you need to create a role with privileges covering restricted indices, however, you can set this property to true. In that case, the names field covers the restricted indices too.", - "type": "boolean" - }, - "field_security": { - "additionalProperties": { - "items": { - "description": "The document fields that the role members have read access to.", - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "names": { - "items": { - "description": "The data streams, indices, and aliases to which the permissions in this entry apply. It supports wildcards (*).", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "privileges": { - "items": { - "description": "The index level privileges that the role members have for the data streams and indices.", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "query": { - "description": "A search query that defines the documents the role members have read access to. A document within the specified data streams and indices must match this query in order for it to be accessible by the role members.", - "type": "string" - } - }, - "required": [ - "names", - "privileges" - ], - "type": "object" - }, - "type": "array" - }, - "remote_cluster": { - "items": { - "additionalProperties": false, - "properties": { - "clusters": { - "items": { - "description": "A list of remote cluster aliases. It supports literal strings as well as wildcards and regular expressions.", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "privileges": { - "items": { - "description": "The cluster level privileges for the remote cluster. The allowed values are a subset of the cluster privileges.", - "type": "string" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "privileges", - "clusters" - ], - "type": "object" - }, - "type": "array" - }, - "remote_indices": { - "items": { - "additionalProperties": false, - "properties": { - "allow_restricted_indices": { - "description": "Restricted indices are a special category of indices that are used internally to store configuration data and should not be directly accessed. Only internal system roles should normally grant privileges over the restricted indices. Toggling this flag is very strongly discouraged because it could effectively grant unrestricted operations on critical data, making the entire system unstable or leaking sensitive information. If for administrative purposes you need to create a role with privileges covering restricted indices, however, you can set this property to true. In that case, the names field will cover the restricted indices too.", - "type": "boolean" - }, - "clusters": { - "items": { - "description": "A list of remote cluster aliases. It supports literal strings as well as wildcards and regular expressions.", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "field_security": { - "additionalProperties": { - "items": { - "description": "The document fields that the role members have read access to.", - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "names": { - "items": { - "description": "A list of remote aliases, data streams, or indices to which the permissions apply. It supports wildcards (*).", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "privileges": { - "items": { - "description": "The index level privileges that role members have for the specified indices.", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "query": { - "description": "A search query that defines the documents the role members have read access to. A document within the specified data streams and indices must match this query in order for it to be accessible by the role members. ", - "type": "string" - } - }, - "required": [ - "clusters", - "names", - "privileges" - ], - "type": "object" - }, - "type": "array" - }, - "run_as": { - "items": { - "description": "A user name that the role member can impersonate.", - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "kibana": { - "items": { - "additionalProperties": false, - "properties": { - "base": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "items": { - "description": "A base privilege that grants applies to all spaces.", - "type": "string" - }, - "type": "array" - }, - { - "items": { - "description": "A base privilege that applies to specific spaces.", - "type": "string" - }, - "type": "array" - } - ] - }, - "feature": { - "additionalProperties": { - "items": { - "description": "The privileges that the role member has for the feature.", - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "spaces": { - "anyOf": [ - { - "items": { - "enum": [ - "*" - ], - "type": "string" - }, - "maxItems": 1, - "minItems": 1, - "type": "array" - }, - { - "items": { - "description": "A space that the privilege applies to.", - "type": "string" - }, - "type": "array" - } - ], - "default": [ - "*" - ] - } - }, - "required": [ - "base" - ], - "type": "object" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "elasticsearch" - ], - "type": "object" - } - } - } - }, - "responses": { - "204": { - "description": "Indicates a successful call." - } - }, - "summary": "Create or update a role", - "tags": [ - "roles" - ] - } - }, - "/api/security/roles": { - "post": { - "operationId": "post-security-roles", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "roles": { - "additionalProperties": { - "additionalProperties": false, - "properties": { - "description": { - "description": "A description for the role.", - "maxLength": 2048, - "type": "string" - }, - "elasticsearch": { - "additionalProperties": false, - "properties": { - "cluster": { - "items": { - "description": "Cluster privileges that define the cluster level actions that users can perform.", - "type": "string" - }, - "type": "array" - }, - "indices": { - "items": { - "additionalProperties": false, - "properties": { - "allow_restricted_indices": { - "description": "Restricted indices are a special category of indices that are used internally to store configuration data and should not be directly accessed. Only internal system roles should normally grant privileges over the restricted indices. Toggling this flag is very strongly discouraged because it could effectively grant unrestricted operations on critical data, making the entire system unstable or leaking sensitive information. If for administrative purposes you need to create a role with privileges covering restricted indices, however, you can set this property to true. In that case, the names field covers the restricted indices too.", - "type": "boolean" - }, - "field_security": { - "additionalProperties": { - "items": { - "description": "The document fields that the role members have read access to.", - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "names": { - "items": { - "description": "The data streams, indices, and aliases to which the permissions in this entry apply. It supports wildcards (*).", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "privileges": { - "items": { - "description": "The index level privileges that the role members have for the data streams and indices.", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "query": { - "description": "A search query that defines the documents the role members have read access to. A document within the specified data streams and indices must match this query in order for it to be accessible by the role members.", - "type": "string" - } - }, - "required": [ - "names", - "privileges" - ], - "type": "object" - }, - "type": "array" - }, - "remote_cluster": { - "items": { - "additionalProperties": false, - "properties": { - "clusters": { - "items": { - "description": "A list of remote cluster aliases. It supports literal strings as well as wildcards and regular expressions.", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "privileges": { - "items": { - "description": "The cluster level privileges for the remote cluster. The allowed values are a subset of the cluster privileges.", - "type": "string" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "privileges", - "clusters" - ], - "type": "object" - }, - "type": "array" - }, - "remote_indices": { - "items": { - "additionalProperties": false, - "properties": { - "allow_restricted_indices": { - "description": "Restricted indices are a special category of indices that are used internally to store configuration data and should not be directly accessed. Only internal system roles should normally grant privileges over the restricted indices. Toggling this flag is very strongly discouraged because it could effectively grant unrestricted operations on critical data, making the entire system unstable or leaking sensitive information. If for administrative purposes you need to create a role with privileges covering restricted indices, however, you can set this property to true. In that case, the names field will cover the restricted indices too.", - "type": "boolean" - }, - "clusters": { - "items": { - "description": "A list of remote cluster aliases. It supports literal strings as well as wildcards and regular expressions.", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "field_security": { - "additionalProperties": { - "items": { - "description": "The document fields that the role members have read access to.", - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "names": { - "items": { - "description": "A list of remote aliases, data streams, or indices to which the permissions apply. It supports wildcards (*).", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "privileges": { - "items": { - "description": "The index level privileges that role members have for the specified indices.", - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "query": { - "description": "A search query that defines the documents the role members have read access to. A document within the specified data streams and indices must match this query in order for it to be accessible by the role members. ", - "type": "string" - } - }, - "required": [ - "clusters", - "names", - "privileges" - ], - "type": "object" - }, - "type": "array" - }, - "run_as": { - "items": { - "description": "A user name that the role member can impersonate.", - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "kibana": { - "items": { - "additionalProperties": false, - "properties": { - "base": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "items": { - "description": "A base privilege that grants applies to all spaces.", - "type": "string" - }, - "type": "array" - }, - { - "items": { - "description": "A base privilege that applies to specific spaces.", - "type": "string" - }, - "type": "array" - } - ] - }, - "feature": { - "additionalProperties": { - "items": { - "description": "The privileges that the role member has for the feature.", - "type": "string" - }, - "type": "array" - }, - "type": "object" - }, - "spaces": { - "anyOf": [ - { - "items": { - "enum": [ - "*" - ], - "type": "string" - }, - "maxItems": 1, - "minItems": 1, - "type": "array" - }, - { - "items": { - "description": "A space that the privilege applies to.", - "type": "string" - }, - "type": "array" - } - ], - "default": [ - "*" - ] - } - }, - "required": [ - "base" - ], - "type": "object" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": {}, - "type": "object" - } - }, - "required": [ - "elasticsearch" - ], - "type": "object" - }, - "type": "object" - } - }, - "required": [ - "roles" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "description": "Indicates a successful call." - } - }, - "summary": "Create or update roles", - "tags": [ - "roles" - ] - } - }, - "/api/spaces/space": { - "get": { - "operationId": "get-spaces-space", - "parameters": [ - { - "description": "Specifies which authorization checks are applied to the API call. The default value is `any`.", - "in": "query", - "name": "purpose", - "required": false, - "schema": { - "enum": [ - "any", - "copySavedObjectsIntoSpace", - "shareSavedObjectsIntoSpace" - ], - "type": "string" - } - }, - { - "description": "When enabled, the API returns any spaces that the user is authorized to access in any capacity and each space will contain the purposes for which the user is authorized. This can be useful to determine which spaces a user can read but not take a specific action in. If the security plugin is not enabled, this parameter has no effect, since no authorization checks take place. This parameter cannot be used in with the `purpose` parameter.", - "in": "query", - "name": "include_authorized_purposes", - "required": true, - "schema": { - "anyOf": [ - { - "items": {}, - "type": "array" - }, - { - "type": "boolean" - }, - { - "type": "number" - }, - { - "type": "object" - }, - { - "type": "string" - } - ], - "nullable": true, - "oneOf": [ - { - "enum": [ - false - ], - "type": "boolean", - "x-oas-optional": true - }, - { - "type": "boolean", - "x-oas-optional": true - } - ] - } - } - ], - "responses": { - "200": { - "description": "Indicates a successful call." - } - }, - "summary": "Get all spaces", - "tags": [ - "spaces" - ] - }, - "post": { - "operationId": "post-spaces-space", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "_reserved": { - "type": "boolean" - }, - "color": { - "description": "The hexadecimal color code used in the space avatar. By default, the color is automatically generated from the space name.", - "type": "string" - }, - "description": { - "description": "A description for the space.", - "type": "string" - }, - "disabledFeatures": { - "default": [], - "items": { - "description": "The list of features that are turned off in the space.", - "type": "string" - }, - "type": "array" - }, - "id": { - "description": "The space ID that is part of the Kibana URL when inside the space. Space IDs are limited to lowercase alphanumeric, underscore, and hyphen characters (a-z, 0-9, _, and -). You are cannot change the ID with the update operation.", - "type": "string" - }, - "imageUrl": { - "description": "The data-URL encoded image to display in the space avatar. If specified, initials will not be displayed and the color will be visible as the background color for transparent images. For best results, your image should be 64x64. Images will not be optimized by this API call, so care should be taken when using custom images.", - "type": "string" - }, - "initials": { - "description": "One or two characters that are shown in the space avatar. By default, the initials are automatically generated from the space name.", - "maxLength": 2, - "type": "string" - }, - "name": { - "description": "The display name for the space. ", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "description": "Indicates a successful call." - } - }, - "summary": "Create a space", - "tags": [ - "spaces" - ] - } - }, - "/api/spaces/space/{id}": { - "delete": { - "description": "When you delete a space, all saved objects that belong to the space are automatically deleted, which is permanent and cannot be undone.", - "operationId": "delete-spaces-space-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The space identifier.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "Indicates a successful call." - }, - "404": { - "description": "Indicates that the request failed." - } - }, - "summary": "Delete a space", - "tags": [ - "spaces" - ] - }, - "get": { - "operationId": "get-spaces-space-id", - "parameters": [ - { - "description": "The space identifier.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Indicates a successful call." - } - }, - "summary": "Get a space", - "tags": [ - "spaces" - ] - }, - "put": { - "operationId": "put-spaces-space-id", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The space identifier. You are unable to change the ID with the update operation.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "_reserved": { - "type": "boolean" - }, - "color": { - "description": "The hexadecimal color code used in the space avatar. By default, the color is automatically generated from the space name.", - "type": "string" - }, - "description": { - "description": "A description for the space.", - "type": "string" - }, - "disabledFeatures": { - "default": [], - "items": { - "description": "The list of features that are turned off in the space.", - "type": "string" - }, - "type": "array" - }, - "id": { - "description": "The space ID that is part of the Kibana URL when inside the space. Space IDs are limited to lowercase alphanumeric, underscore, and hyphen characters (a-z, 0-9, _, and -). You are cannot change the ID with the update operation.", - "type": "string" - }, - "imageUrl": { - "description": "The data-URL encoded image to display in the space avatar. If specified, initials will not be displayed and the color will be visible as the background color for transparent images. For best results, your image should be 64x64. Images will not be optimized by this API call, so care should be taken when using custom images.", - "type": "string" - }, - "initials": { - "description": "One or two characters that are shown in the space avatar. By default, the initials are automatically generated from the space name.", - "maxLength": 2, - "type": "string" - }, - "name": { - "description": "The display name for the space. ", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "description": "Indicates a successful call." - } - }, - "summary": "Update a space", - "tags": [ - "spaces" - ] - } - }, - "/api/status": { - "get": { - "operationId": "get-status", - "parameters": [ - { - "description": "Set to \"true\" to get the response in v7 format.", - "in": "query", - "name": "v7format", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "description": "Set to \"true\" to get the response in v8 format.", - "in": "query", - "name": "v8format", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "$ref": "#/components/schemas/core_status_response" - }, - { - "$ref": "#/components/schemas/core_status_redactedResponse" - } - ], - "description": "Kibana's operational status. A minimal response is sent for unauthorized users." - } - } - }, - "description": "Overall status is OK and Kibana should be functioning normally." - }, - "503": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "$ref": "#/components/schemas/core_status_response" - }, - { - "$ref": "#/components/schemas/core_status_redactedResponse" - } - ], - "description": "Kibana's operational status. A minimal response is sent for unauthorized users." - } - } - }, - "description": "Kibana or some of it's essential services are unavailable. Kibana may be degraded or unavailable." - } - }, - "summary": "Get Kibana's current status", - "tags": [ - "system" - ] - } - }, - "/api/streams": { - "get": { - "description": "Fetches list of all streams

[Required authorization] Route required privileges: read_stream.", - "operationId": "get-streams", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - } - } - } - }, - "responses": {}, - "summary": "Get stream list", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - }, - "/api/streams/_disable": { - "post": { - "description": "Disables wired streams and deletes all existing stream definitions. The data of wired streams is deleted, but the data of classic streams is preserved.

[Required authorization] Route required privileges: manage_stream.", - "operationId": "post-streams-disable", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - } - } - } - }, - "responses": {}, - "summary": "Disable streams", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - }, - "/api/streams/_enable": { - "post": { - "description": "Enables wired streams

[Required authorization] Route required privileges: manage_stream.", - "operationId": "post-streams-enable", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - } - } - } - }, - "responses": {}, - "summary": "Enable streams", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - }, - "/api/streams/_resync": { - "post": { - "description": "Resyncs all streams, making sure that Elasticsearch assets are up to date

[Required authorization] Route required privileges: manage_stream.", - "operationId": "post-streams-resync", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - } - } - } - }, - "responses": {}, - "summary": "Resync streams", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - }, - "/api/streams/{name}": { - "delete": { - "description": "Deletes a stream definition and the underlying data stream

[Required authorization] Route required privileges: manage_stream.", - "operationId": "delete-streams-name", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - } - } - } - }, - "responses": {}, - "summary": "Delete a stream", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - }, - "get": { - "description": "Fetches a stream definition and associated dashboards

[Required authorization] Route required privileges: read_stream.", - "operationId": "get-streams-name", - "parameters": [ - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - } - } - } - }, - "responses": {}, - "summary": "Get a stream", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - }, - "put": { - "description": "Creates or updates a stream definition. Classic streams can not be created through this API, only updated

[Required authorization] Route required privileges: manage_stream.", - "operationId": "put-streams-name", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "anyOf": [ - { - "allOf": [ - { - "properties": {}, - "type": "object" - }, - { - "properties": { - "stream": { - "allOf": [ - { - "additionalProperties": true, - "properties": { - "ingest": { - "additionalProperties": true, - "properties": { - "processing": { - "additionalProperties": true, - "properties": { - "updated_at": { - "not": {} - } - }, - "type": "object" - } - }, - "required": [ - "processing" - ], - "type": "object" - }, - "name": { - "not": {} - }, - "updated_at": { - "not": {} - } - }, - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "updated_at": { - "format": "date-time", - "type": "string" - } - }, - "required": [ - "name", - "description", - "updated_at" - ], - "type": "object" - } - ] - } - }, - "required": [ - "stream" - ], - "type": "object" - }, - { - "properties": { - "dashboards": { - "items": { - "type": "string" - }, - "type": "array" - }, - "queries": { - "items": { - "allOf": [ - { - "properties": { - "id": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "title": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "id", - "title" - ], - "type": "object" - }, - { - "properties": { - "evidence": { - "items": { - "type": "string" - }, - "type": "array" - }, - "feature": { - "additionalProperties": false, - "properties": { - "filter": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - "name": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": { - "enum": [ - "system" - ], - "type": "string" - } - }, - "required": [ - "name", - "filter", - "type" - ], - "type": "object" - }, - "kql": { - "additionalProperties": false, - "properties": { - "query": { - "type": "string" - } - }, - "required": [ - "query" - ], - "type": "object" - }, - "severity_score": { - "type": "number" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - ] - }, - "type": "array" - }, - "rules": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "dashboards", - "rules", - "queries" - ], - "type": "object" - }, - { - "properties": { - "stream": { - "allOf": [ - { - "additionalProperties": true, - "properties": { - "ingest": { - "additionalProperties": true, - "properties": { - "processing": { - "additionalProperties": true, - "properties": { - "updated_at": { - "not": {} - } - }, - "type": "object" - } - }, - "required": [ - "processing" - ], - "type": "object" - }, - "name": { - "not": {} - }, - "updated_at": { - "not": {} - } - }, - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "ingest": { - "allOf": [ - { - "properties": { - "failure_store": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "inherit": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "inherit" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "disabled": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "disabled" - ], - "type": "object" - }, - { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "lifecycle": { - "additionalProperties": false, - "properties": { - "enabled": { - "additionalProperties": false, - "properties": { - "data_retention": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "enabled" - ], - "type": "object" - } - }, - "required": [ - "lifecycle" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "lifecycle": { - "additionalProperties": false, - "properties": { - "disabled": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "disabled" - ], - "type": "object" - } - }, - "required": [ - "lifecycle" - ], - "type": "object" - } - ] - } - ] - }, - "lifecycle": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "dsl": { - "additionalProperties": false, - "properties": { - "data_retention": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "dsl" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "ilm": { - "additionalProperties": false, - "properties": { - "policy": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "policy" - ], - "type": "object" - } - }, - "required": [ - "ilm" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "inherit": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "inherit" - ], - "type": "object" - } - ] - }, - "processing": { - "additionalProperties": false, - "properties": { - "steps": { - "items": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "Grok processor - Extract fields from text using grok patterns", - "properties": { - "action": { - "enum": [ - "grok" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to parse with grok patterns", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "pattern_definitions": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "patterns": { - "description": "Grok patterns applied in order to extract fields", - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "patterns" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Dissect processor - Extract fields from text using a lightweight, delimiter-based parser", - "properties": { - "action": { - "enum": [ - "dissect" - ], - "type": "string" - }, - "append_separator": { - "description": "Separator inserted when target fields are concatenated", - "minLength": 1, - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to parse with dissect pattern", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "pattern": { - "description": "Dissect pattern describing field boundaries", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "pattern" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Date processor - Parse dates from strings using one or more expected formats", - "properties": { - "action": { - "enum": [ - "date" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "formats": { - "description": "Accepted input date formats, tried in order", - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "from": { - "description": "Source field containing the date/time text", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "locale": { - "description": "Optional locale for date parsing", - "minLength": 1, - "type": "string" - }, - "output_format": { - "description": "Optional output format for storing the parsed date as text", - "minLength": 1, - "type": "string" - }, - "timezone": { - "description": "Optional timezone for date parsing", - "minLength": 1, - "type": "string" - }, - "to": { - "description": "Target field for the parsed date (defaults to source)", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "formats" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "drop_document" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "math" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "expression": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "expression", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Rename processor - Change a field name and optionally its location", - "properties": { - "action": { - "enum": [ - "rename" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Existing source field to rename or move", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip when source field is missing", - "type": "boolean" - }, - "override": { - "description": "Allow overwriting the target field if it already exists", - "type": "boolean" - }, - "to": { - "description": "New field name or destination path", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Set processor - Assign a literal or copied value to a field (mutually exclusive inputs)", - "properties": { - "action": { - "enum": [ - "set" - ], - "type": "string" - }, - "copy_from": { - "description": "Copy value from another field instead of providing a literal", - "minLength": 1, - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "override": { - "description": "Allow overwriting an existing target field", - "type": "boolean" - }, - "to": { - "description": "Target field to set or create", - "minLength": 1, - "type": "string" - }, - "value": { - "description": "Literal value to assign to the target field" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Append processor - Append one or more values to an existing or new array field", - "properties": { - "action": { - "enum": [ - "append" - ], - "type": "string" - }, - "allow_duplicates": { - "description": "If true, do not deduplicate appended values", - "type": "boolean" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "to": { - "description": "Array field to append values to", - "minLength": 1, - "type": "string" - }, - "value": { - "description": "Values to append (must be literal, no templates)", - "items": {}, - "minItems": 1, - "type": "array" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "to", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Remove by prefix processor - Remove a field and all nested fields matching the prefix", - "properties": { - "action": { - "enum": [ - "remove_by_prefix" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Field to remove along with all its nested fields", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Remove processor - Delete one or more fields from the document", - "properties": { - "action": { - "enum": [ - "remove" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Field to remove from the document", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "replace" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "pattern": { - "description": "A non-empty string or string with whitespace.", - "minLength": 1, - "type": "string" - }, - "replacement": { - "type": "string" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "pattern", - "replacement" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "uppercase" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "lowercase" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "trim" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "join" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "delimiter": { - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "delimiter", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Convert processor - Change the data type of a field value (integer, long, double, boolean, or string)", - "properties": { - "action": { - "enum": [ - "convert" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to convert to a different data type", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "to": { - "description": "Target field for the converted value (defaults to source)", - "minLength": 1, - "type": "string" - }, - "type": { - "description": "Target data type: integer, long, double, boolean, or string", - "enum": [ - "integer", - "long", - "double", - "boolean", - "string" - ], - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "concat" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "field" - ], - "type": "string" - }, - "value": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "literal" - ], - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - } - ] - }, - "minItems": 1, - "type": "array" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Manual ingest pipeline wrapper around native Elasticsearch processors", - "properties": { - "action": { - "description": "Manual ingest pipeline - executes raw Elasticsearch ingest processors", - "enum": [ - "manual_ingest_pipeline" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "on_failure": { - "description": "Fallback processors to run when a processor fails", - "items": { - "additionalProperties": {}, - "type": "object" - }, - "type": "array" - }, - "processors": { - "description": "List of raw Elasticsearch ingest processors to run", - "items": { - "additionalProperties": false, - "properties": { - "append": {}, - "attachment": {}, - "bytes": {}, - "circle": {}, - "community_id": {}, - "convert": {}, - "csv": {}, - "date": {}, - "date_index_name": {}, - "dissect": {}, - "dot_expander": {}, - "drop": {}, - "enrich": {}, - "fail": {}, - "fingerprint": {}, - "foreach": {}, - "geo_grid": {}, - "geoip": {}, - "grok": {}, - "gsub": {}, - "html_strip": {}, - "inference": {}, - "ip_location": {}, - "join": {}, - "json": {}, - "kv": {}, - "lowercase": {}, - "network_direction": {}, - "pipeline": {}, - "redact": {}, - "registered_domain": {}, - "remove": {}, - "rename": {}, - "reroute": {}, - "script": {}, - "set": {}, - "set_security_user": {}, - "sort": {}, - "split": {}, - "terminate": {}, - "trim": {}, - "uppercase": {}, - "uri_parts": {}, - "urldecode": {}, - "user_agent": {} - }, - "required": [ - "append", - "attachment", - "bytes", - "circle", - "community_id", - "convert", - "csv", - "date", - "date_index_name", - "dissect", - "dot_expander", - "drop", - "enrich", - "fail", - "fingerprint", - "foreach", - "ip_location", - "geo_grid", - "geoip", - "grok", - "gsub", - "html_strip", - "inference", - "join", - "json", - "kv", - "lowercase", - "network_direction", - "pipeline", - "redact", - "registered_domain", - "remove", - "rename", - "reroute", - "script", - "set", - "set_security_user", - "sort", - "split", - "terminate", - "trim", - "uppercase", - "urldecode", - "uri_parts", - "user_agent" - ], - "type": "object" - }, - "type": "array" - }, - "tag": { - "description": "Optional ingest processor tag for Elasticsearch", - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "processors" - ], - "type": "object" - } - ] - }, - { - "additionalProperties": false, - "properties": { - "condition": { - "allOf": [ - { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - { - "properties": { - "steps": { - "items": {}, - "type": "array" - } - }, - "required": [ - "steps" - ], - "type": "object" - } - ] - }, - "customIdentifier": { - "type": "string" - } - }, - "required": [ - "condition" - ], - "type": "object" - } - ] - }, - "type": "array" - }, - "updated_at": { - "format": "date-time", - "type": "string" - } - }, - "required": [ - "steps", - "updated_at" - ], - "type": "object" - }, - "settings": { - "additionalProperties": false, - "properties": { - "index.number_of_replicas": { - "additionalProperties": false, - "properties": { - "value": { - "type": "number" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "index.number_of_shards": { - "additionalProperties": false, - "properties": { - "value": { - "type": "number" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "index.refresh_interval": { - "additionalProperties": false, - "properties": { - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - -1 - ], - "type": "number" - } - ] - } - }, - "required": [ - "value" - ], - "type": "object" - } - }, - "type": "object" - } - }, - "required": [ - "lifecycle", - "processing", - "settings", - "failure_store" - ], - "type": "object" - }, - { - "properties": { - "wired": { - "additionalProperties": false, - "properties": { - "fields": { - "additionalProperties": { - "allOf": [ - { - "additionalProperties": { - "anyOf": [ - { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - }, - { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - }, - "type": "array" - }, - { - "items": {}, - "type": "array" - }, - {} - ] - }, - "type": "object" - }, - { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "format": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": { - "enum": [ - "keyword", - "match_only_text", - "long", - "double", - "date", - "boolean", - "ip", - "geo_point" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "system" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - } - ] - } - ] - }, - "type": "object" - }, - "routing": { - "items": { - "additionalProperties": false, - "properties": { - "destination": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "status": { - "enum": [ - "enabled", - "disabled" - ], - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - } - }, - "required": [ - "destination", - "where" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "fields", - "routing" - ], - "type": "object" - } - }, - "required": [ - "wired" - ], - "type": "object" - } - ] - } - }, - "required": [ - "ingest" - ], - "type": "object" - } - ] - } - }, - "required": [ - "stream" - ], - "type": "object" - }, - { - "properties": {}, - "type": "object" - }, - { - "properties": { - "stream": { - "allOf": [ - { - "additionalProperties": true, - "properties": { - "ingest": { - "additionalProperties": true, - "properties": { - "processing": { - "additionalProperties": true, - "properties": { - "updated_at": { - "not": {} - } - }, - "type": "object" - } - }, - "required": [ - "processing" - ], - "type": "object" - }, - "name": { - "not": {} - }, - "updated_at": { - "not": {} - } - }, - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "updated_at": { - "format": "date-time", - "type": "string" - } - }, - "required": [ - "name", - "description", - "updated_at" - ], - "type": "object" - } - ] - } - }, - "required": [ - "stream" - ], - "type": "object" - }, - { - "properties": { - "dashboards": { - "items": { - "type": "string" - }, - "type": "array" - }, - "queries": { - "items": { - "allOf": [ - { - "properties": { - "id": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "title": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "id", - "title" - ], - "type": "object" - }, - { - "properties": { - "evidence": { - "items": { - "type": "string" - }, - "type": "array" - }, - "feature": { - "additionalProperties": false, - "properties": { - "filter": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - "name": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": { - "enum": [ - "system" - ], - "type": "string" - } - }, - "required": [ - "name", - "filter", - "type" - ], - "type": "object" - }, - "kql": { - "additionalProperties": false, - "properties": { - "query": { - "type": "string" - } - }, - "required": [ - "query" - ], - "type": "object" - }, - "severity_score": { - "type": "number" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - ] - }, - "type": "array" - }, - "rules": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "dashboards", - "rules", - "queries" - ], - "type": "object" - }, - { - "properties": { - "stream": { - "allOf": [ - { - "additionalProperties": true, - "properties": { - "ingest": { - "additionalProperties": true, - "properties": { - "processing": { - "additionalProperties": true, - "properties": { - "updated_at": { - "not": {} - } - }, - "type": "object" - } - }, - "required": [ - "processing" - ], - "type": "object" - }, - "name": { - "not": {} - }, - "updated_at": { - "not": {} - } - }, - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "ingest": { - "additionalProperties": false, - "properties": { - "failure_store": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "inherit": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "inherit" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "disabled": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "disabled" - ], - "type": "object" - }, - { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "lifecycle": { - "additionalProperties": false, - "properties": { - "enabled": { - "additionalProperties": false, - "properties": { - "data_retention": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "enabled" - ], - "type": "object" - } - }, - "required": [ - "lifecycle" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "lifecycle": { - "additionalProperties": false, - "properties": { - "disabled": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "disabled" - ], - "type": "object" - } - }, - "required": [ - "lifecycle" - ], - "type": "object" - } - ] - } - ] - }, - "lifecycle": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "dsl": { - "additionalProperties": false, - "properties": { - "data_retention": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "dsl" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "ilm": { - "additionalProperties": false, - "properties": { - "policy": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "policy" - ], - "type": "object" - } - }, - "required": [ - "ilm" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "inherit": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "inherit" - ], - "type": "object" - } - ] - }, - "processing": { - "additionalProperties": false, - "properties": { - "steps": { - "items": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "Grok processor - Extract fields from text using grok patterns", - "properties": { - "action": { - "enum": [ - "grok" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to parse with grok patterns", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "pattern_definitions": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "patterns": { - "description": "Grok patterns applied in order to extract fields", - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "patterns" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Dissect processor - Extract fields from text using a lightweight, delimiter-based parser", - "properties": { - "action": { - "enum": [ - "dissect" - ], - "type": "string" - }, - "append_separator": { - "description": "Separator inserted when target fields are concatenated", - "minLength": 1, - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to parse with dissect pattern", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "pattern": { - "description": "Dissect pattern describing field boundaries", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "pattern" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Date processor - Parse dates from strings using one or more expected formats", - "properties": { - "action": { - "enum": [ - "date" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "formats": { - "description": "Accepted input date formats, tried in order", - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "from": { - "description": "Source field containing the date/time text", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "locale": { - "description": "Optional locale for date parsing", - "minLength": 1, - "type": "string" - }, - "output_format": { - "description": "Optional output format for storing the parsed date as text", - "minLength": 1, - "type": "string" - }, - "timezone": { - "description": "Optional timezone for date parsing", - "minLength": 1, - "type": "string" - }, - "to": { - "description": "Target field for the parsed date (defaults to source)", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "formats" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "drop_document" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "math" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "expression": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "expression", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Rename processor - Change a field name and optionally its location", - "properties": { - "action": { - "enum": [ - "rename" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Existing source field to rename or move", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip when source field is missing", - "type": "boolean" - }, - "override": { - "description": "Allow overwriting the target field if it already exists", - "type": "boolean" - }, - "to": { - "description": "New field name or destination path", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Set processor - Assign a literal or copied value to a field (mutually exclusive inputs)", - "properties": { - "action": { - "enum": [ - "set" - ], - "type": "string" - }, - "copy_from": { - "description": "Copy value from another field instead of providing a literal", - "minLength": 1, - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "override": { - "description": "Allow overwriting an existing target field", - "type": "boolean" - }, - "to": { - "description": "Target field to set or create", - "minLength": 1, - "type": "string" - }, - "value": { - "description": "Literal value to assign to the target field" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Append processor - Append one or more values to an existing or new array field", - "properties": { - "action": { - "enum": [ - "append" - ], - "type": "string" - }, - "allow_duplicates": { - "description": "If true, do not deduplicate appended values", - "type": "boolean" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "to": { - "description": "Array field to append values to", - "minLength": 1, - "type": "string" - }, - "value": { - "description": "Values to append (must be literal, no templates)", - "items": {}, - "minItems": 1, - "type": "array" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "to", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Remove by prefix processor - Remove a field and all nested fields matching the prefix", - "properties": { - "action": { - "enum": [ - "remove_by_prefix" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Field to remove along with all its nested fields", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Remove processor - Delete one or more fields from the document", - "properties": { - "action": { - "enum": [ - "remove" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Field to remove from the document", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "replace" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "pattern": { - "description": "A non-empty string or string with whitespace.", - "minLength": 1, - "type": "string" - }, - "replacement": { - "type": "string" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "pattern", - "replacement" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "uppercase" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "lowercase" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "trim" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "join" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "delimiter": { - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "delimiter", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Convert processor - Change the data type of a field value (integer, long, double, boolean, or string)", - "properties": { - "action": { - "enum": [ - "convert" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to convert to a different data type", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "to": { - "description": "Target field for the converted value (defaults to source)", - "minLength": 1, - "type": "string" - }, - "type": { - "description": "Target data type: integer, long, double, boolean, or string", - "enum": [ - "integer", - "long", - "double", - "boolean", - "string" - ], - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "concat" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "field" - ], - "type": "string" - }, - "value": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "literal" - ], - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - } - ] - }, - "minItems": 1, - "type": "array" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Manual ingest pipeline wrapper around native Elasticsearch processors", - "properties": { - "action": { - "description": "Manual ingest pipeline - executes raw Elasticsearch ingest processors", - "enum": [ - "manual_ingest_pipeline" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "on_failure": { - "description": "Fallback processors to run when a processor fails", - "items": { - "additionalProperties": {}, - "type": "object" - }, - "type": "array" - }, - "processors": { - "description": "List of raw Elasticsearch ingest processors to run", - "items": { - "additionalProperties": false, - "properties": { - "append": {}, - "attachment": {}, - "bytes": {}, - "circle": {}, - "community_id": {}, - "convert": {}, - "csv": {}, - "date": {}, - "date_index_name": {}, - "dissect": {}, - "dot_expander": {}, - "drop": {}, - "enrich": {}, - "fail": {}, - "fingerprint": {}, - "foreach": {}, - "geo_grid": {}, - "geoip": {}, - "grok": {}, - "gsub": {}, - "html_strip": {}, - "inference": {}, - "ip_location": {}, - "join": {}, - "json": {}, - "kv": {}, - "lowercase": {}, - "network_direction": {}, - "pipeline": {}, - "redact": {}, - "registered_domain": {}, - "remove": {}, - "rename": {}, - "reroute": {}, - "script": {}, - "set": {}, - "set_security_user": {}, - "sort": {}, - "split": {}, - "terminate": {}, - "trim": {}, - "uppercase": {}, - "uri_parts": {}, - "urldecode": {}, - "user_agent": {} - }, - "required": [ - "append", - "attachment", - "bytes", - "circle", - "community_id", - "convert", - "csv", - "date", - "date_index_name", - "dissect", - "dot_expander", - "drop", - "enrich", - "fail", - "fingerprint", - "foreach", - "ip_location", - "geo_grid", - "geoip", - "grok", - "gsub", - "html_strip", - "inference", - "join", - "json", - "kv", - "lowercase", - "network_direction", - "pipeline", - "redact", - "registered_domain", - "remove", - "rename", - "reroute", - "script", - "set", - "set_security_user", - "sort", - "split", - "terminate", - "trim", - "uppercase", - "urldecode", - "uri_parts", - "user_agent" - ], - "type": "object" - }, - "type": "array" - }, - "tag": { - "description": "Optional ingest processor tag for Elasticsearch", - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "processors" - ], - "type": "object" - } - ] - }, - { - "additionalProperties": false, - "properties": { - "condition": { - "allOf": [ - { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - { - "properties": { - "steps": { - "items": {}, - "type": "array" - } - }, - "required": [ - "steps" - ], - "type": "object" - } - ] - }, - "customIdentifier": { - "type": "string" - } - }, - "required": [ - "condition" - ], - "type": "object" - } - ] - }, - "type": "array" - }, - "updated_at": { - "format": "date-time", - "type": "string" - } - }, - "required": [ - "steps", - "updated_at" - ], - "type": "object" - }, - "settings": { - "additionalProperties": false, - "properties": { - "index.number_of_replicas": { - "additionalProperties": false, - "properties": { - "value": { - "type": "number" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "index.number_of_shards": { - "additionalProperties": false, - "properties": { - "value": { - "type": "number" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "index.refresh_interval": { - "additionalProperties": false, - "properties": { - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - -1 - ], - "type": "number" - } - ] - } - }, - "required": [ - "value" - ], - "type": "object" - } - }, - "type": "object" - } - }, - "required": [ - "lifecycle", - "processing", - "settings", - "failure_store" - ], - "type": "object" - } - }, - "required": [ - "ingest" - ], - "type": "object" - } - ] - } - }, - "required": [ - "stream" - ], - "type": "object" - }, - { - "properties": {}, - "type": "object" - }, - { - "properties": {}, - "type": "object" - } - ] - }, - { - "allOf": [ - { - "properties": {}, - "type": "object" - }, - { - "properties": { - "stream": { - "allOf": [ - { - "additionalProperties": true, - "properties": { - "ingest": { - "additionalProperties": true, - "properties": { - "processing": { - "additionalProperties": true, - "properties": { - "updated_at": { - "not": {} - } - }, - "type": "object" - } - }, - "required": [ - "processing" - ], - "type": "object" - }, - "name": { - "not": {} - }, - "updated_at": { - "not": {} - } - }, - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "updated_at": { - "format": "date-time", - "type": "string" - } - }, - "required": [ - "name", - "description", - "updated_at" - ], - "type": "object" - } - ] - } - }, - "required": [ - "stream" - ], - "type": "object" - }, - { - "properties": { - "dashboards": { - "items": { - "type": "string" - }, - "type": "array" - }, - "queries": { - "items": { - "allOf": [ - { - "properties": { - "id": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "title": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "id", - "title" - ], - "type": "object" - }, - { - "properties": { - "evidence": { - "items": { - "type": "string" - }, - "type": "array" - }, - "feature": { - "additionalProperties": false, - "properties": { - "filter": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - "name": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": { - "enum": [ - "system" - ], - "type": "string" - } - }, - "required": [ - "name", - "filter", - "type" - ], - "type": "object" - }, - "kql": { - "additionalProperties": false, - "properties": { - "query": { - "type": "string" - } - }, - "required": [ - "query" - ], - "type": "object" - }, - "severity_score": { - "type": "number" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - ] - }, - "type": "array" - }, - "rules": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "dashboards", - "rules", - "queries" - ], - "type": "object" - }, - { - "properties": { - "stream": { - "allOf": [ - { - "additionalProperties": true, - "properties": { - "ingest": { - "additionalProperties": true, - "properties": { - "processing": { - "additionalProperties": true, - "properties": { - "updated_at": { - "not": {} - } - }, - "type": "object" - } - }, - "required": [ - "processing" - ], - "type": "object" - }, - "name": { - "not": {} - }, - "updated_at": { - "not": {} - } - }, - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "ingest": { - "allOf": [ - { - "properties": { - "failure_store": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "inherit": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "inherit" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "disabled": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "disabled" - ], - "type": "object" - }, - { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "lifecycle": { - "additionalProperties": false, - "properties": { - "enabled": { - "additionalProperties": false, - "properties": { - "data_retention": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "enabled" - ], - "type": "object" - } - }, - "required": [ - "lifecycle" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "lifecycle": { - "additionalProperties": false, - "properties": { - "disabled": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "disabled" - ], - "type": "object" - } - }, - "required": [ - "lifecycle" - ], - "type": "object" - } - ] - } - ] - }, - "lifecycle": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "dsl": { - "additionalProperties": false, - "properties": { - "data_retention": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "dsl" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "ilm": { - "additionalProperties": false, - "properties": { - "policy": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "policy" - ], - "type": "object" - } - }, - "required": [ - "ilm" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "inherit": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "inherit" - ], - "type": "object" - } - ] - }, - "processing": { - "additionalProperties": false, - "properties": { - "steps": { - "items": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "Grok processor - Extract fields from text using grok patterns", - "properties": { - "action": { - "enum": [ - "grok" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to parse with grok patterns", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "pattern_definitions": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "patterns": { - "description": "Grok patterns applied in order to extract fields", - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "patterns" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Dissect processor - Extract fields from text using a lightweight, delimiter-based parser", - "properties": { - "action": { - "enum": [ - "dissect" - ], - "type": "string" - }, - "append_separator": { - "description": "Separator inserted when target fields are concatenated", - "minLength": 1, - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to parse with dissect pattern", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "pattern": { - "description": "Dissect pattern describing field boundaries", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "pattern" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Date processor - Parse dates from strings using one or more expected formats", - "properties": { - "action": { - "enum": [ - "date" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "formats": { - "description": "Accepted input date formats, tried in order", - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "from": { - "description": "Source field containing the date/time text", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "locale": { - "description": "Optional locale for date parsing", - "minLength": 1, - "type": "string" - }, - "output_format": { - "description": "Optional output format for storing the parsed date as text", - "minLength": 1, - "type": "string" - }, - "timezone": { - "description": "Optional timezone for date parsing", - "minLength": 1, - "type": "string" - }, - "to": { - "description": "Target field for the parsed date (defaults to source)", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "formats" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "drop_document" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "math" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "expression": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "expression", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Rename processor - Change a field name and optionally its location", - "properties": { - "action": { - "enum": [ - "rename" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Existing source field to rename or move", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip when source field is missing", - "type": "boolean" - }, - "override": { - "description": "Allow overwriting the target field if it already exists", - "type": "boolean" - }, - "to": { - "description": "New field name or destination path", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Set processor - Assign a literal or copied value to a field (mutually exclusive inputs)", - "properties": { - "action": { - "enum": [ - "set" - ], - "type": "string" - }, - "copy_from": { - "description": "Copy value from another field instead of providing a literal", - "minLength": 1, - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "override": { - "description": "Allow overwriting an existing target field", - "type": "boolean" - }, - "to": { - "description": "Target field to set or create", - "minLength": 1, - "type": "string" - }, - "value": { - "description": "Literal value to assign to the target field" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Append processor - Append one or more values to an existing or new array field", - "properties": { - "action": { - "enum": [ - "append" - ], - "type": "string" - }, - "allow_duplicates": { - "description": "If true, do not deduplicate appended values", - "type": "boolean" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "to": { - "description": "Array field to append values to", - "minLength": 1, - "type": "string" - }, - "value": { - "description": "Values to append (must be literal, no templates)", - "items": {}, - "minItems": 1, - "type": "array" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "to", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Remove by prefix processor - Remove a field and all nested fields matching the prefix", - "properties": { - "action": { - "enum": [ - "remove_by_prefix" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Field to remove along with all its nested fields", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Remove processor - Delete one or more fields from the document", - "properties": { - "action": { - "enum": [ - "remove" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Field to remove from the document", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "replace" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "pattern": { - "description": "A non-empty string or string with whitespace.", - "minLength": 1, - "type": "string" - }, - "replacement": { - "type": "string" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "pattern", - "replacement" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "uppercase" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "lowercase" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "trim" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "join" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "delimiter": { - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "delimiter", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Convert processor - Change the data type of a field value (integer, long, double, boolean, or string)", - "properties": { - "action": { - "enum": [ - "convert" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to convert to a different data type", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "to": { - "description": "Target field for the converted value (defaults to source)", - "minLength": 1, - "type": "string" - }, - "type": { - "description": "Target data type: integer, long, double, boolean, or string", - "enum": [ - "integer", - "long", - "double", - "boolean", - "string" - ], - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "concat" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "field" - ], - "type": "string" - }, - "value": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "literal" - ], - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - } - ] - }, - "minItems": 1, - "type": "array" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Manual ingest pipeline wrapper around native Elasticsearch processors", - "properties": { - "action": { - "description": "Manual ingest pipeline - executes raw Elasticsearch ingest processors", - "enum": [ - "manual_ingest_pipeline" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "on_failure": { - "description": "Fallback processors to run when a processor fails", - "items": { - "additionalProperties": {}, - "type": "object" - }, - "type": "array" - }, - "processors": { - "description": "List of raw Elasticsearch ingest processors to run", - "items": { - "additionalProperties": false, - "properties": { - "append": {}, - "attachment": {}, - "bytes": {}, - "circle": {}, - "community_id": {}, - "convert": {}, - "csv": {}, - "date": {}, - "date_index_name": {}, - "dissect": {}, - "dot_expander": {}, - "drop": {}, - "enrich": {}, - "fail": {}, - "fingerprint": {}, - "foreach": {}, - "geo_grid": {}, - "geoip": {}, - "grok": {}, - "gsub": {}, - "html_strip": {}, - "inference": {}, - "ip_location": {}, - "join": {}, - "json": {}, - "kv": {}, - "lowercase": {}, - "network_direction": {}, - "pipeline": {}, - "redact": {}, - "registered_domain": {}, - "remove": {}, - "rename": {}, - "reroute": {}, - "script": {}, - "set": {}, - "set_security_user": {}, - "sort": {}, - "split": {}, - "terminate": {}, - "trim": {}, - "uppercase": {}, - "uri_parts": {}, - "urldecode": {}, - "user_agent": {} - }, - "required": [ - "append", - "attachment", - "bytes", - "circle", - "community_id", - "convert", - "csv", - "date", - "date_index_name", - "dissect", - "dot_expander", - "drop", - "enrich", - "fail", - "fingerprint", - "foreach", - "ip_location", - "geo_grid", - "geoip", - "grok", - "gsub", - "html_strip", - "inference", - "join", - "json", - "kv", - "lowercase", - "network_direction", - "pipeline", - "redact", - "registered_domain", - "remove", - "rename", - "reroute", - "script", - "set", - "set_security_user", - "sort", - "split", - "terminate", - "trim", - "uppercase", - "urldecode", - "uri_parts", - "user_agent" - ], - "type": "object" - }, - "type": "array" - }, - "tag": { - "description": "Optional ingest processor tag for Elasticsearch", - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "processors" - ], - "type": "object" - } - ] - }, - { - "additionalProperties": false, - "properties": { - "condition": { - "allOf": [ - { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - { - "properties": { - "steps": { - "items": {}, - "type": "array" - } - }, - "required": [ - "steps" - ], - "type": "object" - } - ] - }, - "customIdentifier": { - "type": "string" - } - }, - "required": [ - "condition" - ], - "type": "object" - } - ] - }, - "type": "array" - }, - "updated_at": { - "format": "date-time", - "type": "string" - } - }, - "required": [ - "steps", - "updated_at" - ], - "type": "object" - }, - "settings": { - "additionalProperties": false, - "properties": { - "index.number_of_replicas": { - "additionalProperties": false, - "properties": { - "value": { - "type": "number" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "index.number_of_shards": { - "additionalProperties": false, - "properties": { - "value": { - "type": "number" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "index.refresh_interval": { - "additionalProperties": false, - "properties": { - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - -1 - ], - "type": "number" - } - ] - } - }, - "required": [ - "value" - ], - "type": "object" - } - }, - "type": "object" - } - }, - "required": [ - "lifecycle", - "processing", - "settings", - "failure_store" - ], - "type": "object" - }, - { - "properties": { - "classic": { - "additionalProperties": false, - "properties": { - "field_overrides": { - "additionalProperties": { - "allOf": [ - { - "additionalProperties": { - "anyOf": [ - { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - }, - { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - }, - "type": "array" - }, - { - "items": {}, - "type": "array" - }, - {} - ] - }, - "type": "object" - }, - { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "format": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": { - "enum": [ - "keyword", - "match_only_text", - "long", - "double", - "date", - "boolean", - "ip", - "geo_point" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "system" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - } - ] - } - ] - }, - "type": "object" - } - }, - "type": "object" - } - }, - "required": [ - "classic" - ], - "type": "object" - } - ] - } - }, - "required": [ - "ingest" - ], - "type": "object" - } - ] - } - }, - "required": [ - "stream" - ], - "type": "object" - }, - { - "properties": {}, - "type": "object" - }, - { - "properties": { - "stream": { - "allOf": [ - { - "additionalProperties": true, - "properties": { - "ingest": { - "additionalProperties": true, - "properties": { - "processing": { - "additionalProperties": true, - "properties": { - "updated_at": { - "not": {} - } - }, - "type": "object" - } - }, - "required": [ - "processing" - ], - "type": "object" - }, - "name": { - "not": {} - }, - "updated_at": { - "not": {} - } - }, - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "updated_at": { - "format": "date-time", - "type": "string" - } - }, - "required": [ - "name", - "description", - "updated_at" - ], - "type": "object" - } - ] - } - }, - "required": [ - "stream" - ], - "type": "object" - }, - { - "properties": { - "dashboards": { - "items": { - "type": "string" - }, - "type": "array" - }, - "queries": { - "items": { - "allOf": [ - { - "properties": { - "id": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "title": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "id", - "title" - ], - "type": "object" - }, - { - "properties": { - "evidence": { - "items": { - "type": "string" - }, - "type": "array" - }, - "feature": { - "additionalProperties": false, - "properties": { - "filter": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - "name": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": { - "enum": [ - "system" - ], - "type": "string" - } - }, - "required": [ - "name", - "filter", - "type" - ], - "type": "object" - }, - "kql": { - "additionalProperties": false, - "properties": { - "query": { - "type": "string" - } - }, - "required": [ - "query" - ], - "type": "object" - }, - "severity_score": { - "type": "number" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - ] - }, - "type": "array" - }, - "rules": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "dashboards", - "rules", - "queries" - ], - "type": "object" - }, - { - "properties": { - "stream": { - "allOf": [ - { - "additionalProperties": true, - "properties": { - "ingest": { - "additionalProperties": true, - "properties": { - "processing": { - "additionalProperties": true, - "properties": { - "updated_at": { - "not": {} - } - }, - "type": "object" - } - }, - "required": [ - "processing" - ], - "type": "object" - }, - "name": { - "not": {} - }, - "updated_at": { - "not": {} - } - }, - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "ingest": { - "additionalProperties": false, - "properties": { - "failure_store": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "inherit": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "inherit" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "disabled": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "disabled" - ], - "type": "object" - }, - { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "lifecycle": { - "additionalProperties": false, - "properties": { - "enabled": { - "additionalProperties": false, - "properties": { - "data_retention": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "enabled" - ], - "type": "object" - } - }, - "required": [ - "lifecycle" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "lifecycle": { - "additionalProperties": false, - "properties": { - "disabled": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "disabled" - ], - "type": "object" - } - }, - "required": [ - "lifecycle" - ], - "type": "object" - } - ] - } - ] - }, - "lifecycle": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "dsl": { - "additionalProperties": false, - "properties": { - "data_retention": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "dsl" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "ilm": { - "additionalProperties": false, - "properties": { - "policy": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "policy" - ], - "type": "object" - } - }, - "required": [ - "ilm" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "inherit": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "inherit" - ], - "type": "object" - } - ] - }, - "processing": { - "additionalProperties": false, - "properties": { - "steps": { - "items": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "Grok processor - Extract fields from text using grok patterns", - "properties": { - "action": { - "enum": [ - "grok" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to parse with grok patterns", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "pattern_definitions": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "patterns": { - "description": "Grok patterns applied in order to extract fields", - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "patterns" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Dissect processor - Extract fields from text using a lightweight, delimiter-based parser", - "properties": { - "action": { - "enum": [ - "dissect" - ], - "type": "string" - }, - "append_separator": { - "description": "Separator inserted when target fields are concatenated", - "minLength": 1, - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to parse with dissect pattern", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "pattern": { - "description": "Dissect pattern describing field boundaries", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "pattern" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Date processor - Parse dates from strings using one or more expected formats", - "properties": { - "action": { - "enum": [ - "date" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "formats": { - "description": "Accepted input date formats, tried in order", - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "from": { - "description": "Source field containing the date/time text", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "locale": { - "description": "Optional locale for date parsing", - "minLength": 1, - "type": "string" - }, - "output_format": { - "description": "Optional output format for storing the parsed date as text", - "minLength": 1, - "type": "string" - }, - "timezone": { - "description": "Optional timezone for date parsing", - "minLength": 1, - "type": "string" - }, - "to": { - "description": "Target field for the parsed date (defaults to source)", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "formats" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "drop_document" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "math" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "expression": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "expression", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Rename processor - Change a field name and optionally its location", - "properties": { - "action": { - "enum": [ - "rename" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Existing source field to rename or move", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip when source field is missing", - "type": "boolean" - }, - "override": { - "description": "Allow overwriting the target field if it already exists", - "type": "boolean" - }, - "to": { - "description": "New field name or destination path", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Set processor - Assign a literal or copied value to a field (mutually exclusive inputs)", - "properties": { - "action": { - "enum": [ - "set" - ], - "type": "string" - }, - "copy_from": { - "description": "Copy value from another field instead of providing a literal", - "minLength": 1, - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "override": { - "description": "Allow overwriting an existing target field", - "type": "boolean" - }, - "to": { - "description": "Target field to set or create", - "minLength": 1, - "type": "string" - }, - "value": { - "description": "Literal value to assign to the target field" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Append processor - Append one or more values to an existing or new array field", - "properties": { - "action": { - "enum": [ - "append" - ], - "type": "string" - }, - "allow_duplicates": { - "description": "If true, do not deduplicate appended values", - "type": "boolean" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "to": { - "description": "Array field to append values to", - "minLength": 1, - "type": "string" - }, - "value": { - "description": "Values to append (must be literal, no templates)", - "items": {}, - "minItems": 1, - "type": "array" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "to", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Remove by prefix processor - Remove a field and all nested fields matching the prefix", - "properties": { - "action": { - "enum": [ - "remove_by_prefix" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Field to remove along with all its nested fields", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Remove processor - Delete one or more fields from the document", - "properties": { - "action": { - "enum": [ - "remove" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Field to remove from the document", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "replace" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "pattern": { - "description": "A non-empty string or string with whitespace.", - "minLength": 1, - "type": "string" - }, - "replacement": { - "type": "string" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "pattern", - "replacement" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "uppercase" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "lowercase" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "trim" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "join" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "delimiter": { - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "delimiter", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Convert processor - Change the data type of a field value (integer, long, double, boolean, or string)", - "properties": { - "action": { - "enum": [ - "convert" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to convert to a different data type", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "to": { - "description": "Target field for the converted value (defaults to source)", - "minLength": 1, - "type": "string" - }, - "type": { - "description": "Target data type: integer, long, double, boolean, or string", - "enum": [ - "integer", - "long", - "double", - "boolean", - "string" - ], - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "concat" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "field" - ], - "type": "string" - }, - "value": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "literal" - ], - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - } - ] - }, - "minItems": 1, - "type": "array" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Manual ingest pipeline wrapper around native Elasticsearch processors", - "properties": { - "action": { - "description": "Manual ingest pipeline - executes raw Elasticsearch ingest processors", - "enum": [ - "manual_ingest_pipeline" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "on_failure": { - "description": "Fallback processors to run when a processor fails", - "items": { - "additionalProperties": {}, - "type": "object" - }, - "type": "array" - }, - "processors": { - "description": "List of raw Elasticsearch ingest processors to run", - "items": { - "additionalProperties": false, - "properties": { - "append": {}, - "attachment": {}, - "bytes": {}, - "circle": {}, - "community_id": {}, - "convert": {}, - "csv": {}, - "date": {}, - "date_index_name": {}, - "dissect": {}, - "dot_expander": {}, - "drop": {}, - "enrich": {}, - "fail": {}, - "fingerprint": {}, - "foreach": {}, - "geo_grid": {}, - "geoip": {}, - "grok": {}, - "gsub": {}, - "html_strip": {}, - "inference": {}, - "ip_location": {}, - "join": {}, - "json": {}, - "kv": {}, - "lowercase": {}, - "network_direction": {}, - "pipeline": {}, - "redact": {}, - "registered_domain": {}, - "remove": {}, - "rename": {}, - "reroute": {}, - "script": {}, - "set": {}, - "set_security_user": {}, - "sort": {}, - "split": {}, - "terminate": {}, - "trim": {}, - "uppercase": {}, - "uri_parts": {}, - "urldecode": {}, - "user_agent": {} - }, - "required": [ - "append", - "attachment", - "bytes", - "circle", - "community_id", - "convert", - "csv", - "date", - "date_index_name", - "dissect", - "dot_expander", - "drop", - "enrich", - "fail", - "fingerprint", - "foreach", - "ip_location", - "geo_grid", - "geoip", - "grok", - "gsub", - "html_strip", - "inference", - "join", - "json", - "kv", - "lowercase", - "network_direction", - "pipeline", - "redact", - "registered_domain", - "remove", - "rename", - "reroute", - "script", - "set", - "set_security_user", - "sort", - "split", - "terminate", - "trim", - "uppercase", - "urldecode", - "uri_parts", - "user_agent" - ], - "type": "object" - }, - "type": "array" - }, - "tag": { - "description": "Optional ingest processor tag for Elasticsearch", - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "processors" - ], - "type": "object" - } - ] - }, - { - "additionalProperties": false, - "properties": { - "condition": { - "allOf": [ - { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - { - "properties": { - "steps": { - "items": {}, - "type": "array" - } - }, - "required": [ - "steps" - ], - "type": "object" - } - ] - }, - "customIdentifier": { - "type": "string" - } - }, - "required": [ - "condition" - ], - "type": "object" - } - ] - }, - "type": "array" - }, - "updated_at": { - "format": "date-time", - "type": "string" - } - }, - "required": [ - "steps", - "updated_at" - ], - "type": "object" - }, - "settings": { - "additionalProperties": false, - "properties": { - "index.number_of_replicas": { - "additionalProperties": false, - "properties": { - "value": { - "type": "number" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "index.number_of_shards": { - "additionalProperties": false, - "properties": { - "value": { - "type": "number" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "index.refresh_interval": { - "additionalProperties": false, - "properties": { - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - -1 - ], - "type": "number" - } - ] - } - }, - "required": [ - "value" - ], - "type": "object" - } - }, - "type": "object" - } - }, - "required": [ - "lifecycle", - "processing", - "settings", - "failure_store" - ], - "type": "object" - } - }, - "required": [ - "ingest" - ], - "type": "object" - } - ] - } - }, - "required": [ - "stream" - ], - "type": "object" - }, - { - "properties": {}, - "type": "object" - }, - { - "properties": {}, - "type": "object" - } - ] - } - ] - } - ] - } - } - } - }, - "responses": {}, - "summary": "Create or update a stream", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - }, - "/api/streams/{name}/_fork": { - "post": { - "description": "Forks a wired stream and creates a child stream

[Required authorization] Route required privileges: manage_stream.", - "operationId": "post-streams-name-fork", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "status": { - "enum": [ - "enabled", - "disabled" - ], - "type": "string" - }, - "stream": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - } - }, - "required": [ - "stream", - "where" - ], - "type": "object" - } - } - } - }, - "responses": {}, - "summary": "Fork a stream", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - }, - "/api/streams/{name}/_ingest": { - "get": { - "description": "Fetches the ingest settings of an ingest stream definition

[Required authorization] Route required privileges: read_stream.", - "operationId": "get-streams-name-ingest", - "parameters": [ - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - } - } - } - }, - "responses": {}, - "summary": "Get ingest stream settings", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - }, - "put": { - "description": "Upserts the ingest settings of an ingest stream definition

[Required authorization] Route required privileges: manage_stream.", - "operationId": "put-streams-name-ingest", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "ingest": { - "anyOf": [ - { - "allOf": [ - { - "properties": { - "failure_store": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "inherit": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "inherit" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "disabled": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "disabled" - ], - "type": "object" - }, - { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "lifecycle": { - "additionalProperties": false, - "properties": { - "enabled": { - "additionalProperties": false, - "properties": { - "data_retention": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "enabled" - ], - "type": "object" - } - }, - "required": [ - "lifecycle" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "lifecycle": { - "additionalProperties": false, - "properties": { - "disabled": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "disabled" - ], - "type": "object" - } - }, - "required": [ - "lifecycle" - ], - "type": "object" - } - ] - } - ] - }, - "lifecycle": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "dsl": { - "additionalProperties": false, - "properties": { - "data_retention": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "dsl" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "ilm": { - "additionalProperties": false, - "properties": { - "policy": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "policy" - ], - "type": "object" - } - }, - "required": [ - "ilm" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "inherit": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "inherit" - ], - "type": "object" - } - ] - }, - "processing": { - "additionalProperties": false, - "properties": { - "steps": { - "items": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "Grok processor - Extract fields from text using grok patterns", - "properties": { - "action": { - "enum": [ - "grok" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to parse with grok patterns", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "pattern_definitions": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "patterns": { - "description": "Grok patterns applied in order to extract fields", - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "patterns" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Dissect processor - Extract fields from text using a lightweight, delimiter-based parser", - "properties": { - "action": { - "enum": [ - "dissect" - ], - "type": "string" - }, - "append_separator": { - "description": "Separator inserted when target fields are concatenated", - "minLength": 1, - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to parse with dissect pattern", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "pattern": { - "description": "Dissect pattern describing field boundaries", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "pattern" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Date processor - Parse dates from strings using one or more expected formats", - "properties": { - "action": { - "enum": [ - "date" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "formats": { - "description": "Accepted input date formats, tried in order", - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "from": { - "description": "Source field containing the date/time text", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "locale": { - "description": "Optional locale for date parsing", - "minLength": 1, - "type": "string" - }, - "output_format": { - "description": "Optional output format for storing the parsed date as text", - "minLength": 1, - "type": "string" - }, - "timezone": { - "description": "Optional timezone for date parsing", - "minLength": 1, - "type": "string" - }, - "to": { - "description": "Target field for the parsed date (defaults to source)", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "formats" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "drop_document" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "math" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "expression": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "expression", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Rename processor - Change a field name and optionally its location", - "properties": { - "action": { - "enum": [ - "rename" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Existing source field to rename or move", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip when source field is missing", - "type": "boolean" - }, - "override": { - "description": "Allow overwriting the target field if it already exists", - "type": "boolean" - }, - "to": { - "description": "New field name or destination path", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Set processor - Assign a literal or copied value to a field (mutually exclusive inputs)", - "properties": { - "action": { - "enum": [ - "set" - ], - "type": "string" - }, - "copy_from": { - "description": "Copy value from another field instead of providing a literal", - "minLength": 1, - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "override": { - "description": "Allow overwriting an existing target field", - "type": "boolean" - }, - "to": { - "description": "Target field to set or create", - "minLength": 1, - "type": "string" - }, - "value": { - "description": "Literal value to assign to the target field" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Append processor - Append one or more values to an existing or new array field", - "properties": { - "action": { - "enum": [ - "append" - ], - "type": "string" - }, - "allow_duplicates": { - "description": "If true, do not deduplicate appended values", - "type": "boolean" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "to": { - "description": "Array field to append values to", - "minLength": 1, - "type": "string" - }, - "value": { - "description": "Values to append (must be literal, no templates)", - "items": {}, - "minItems": 1, - "type": "array" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "to", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Remove by prefix processor - Remove a field and all nested fields matching the prefix", - "properties": { - "action": { - "enum": [ - "remove_by_prefix" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Field to remove along with all its nested fields", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Remove processor - Delete one or more fields from the document", - "properties": { - "action": { - "enum": [ - "remove" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Field to remove from the document", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "replace" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "pattern": { - "description": "A non-empty string or string with whitespace.", - "minLength": 1, - "type": "string" - }, - "replacement": { - "type": "string" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "pattern", - "replacement" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "uppercase" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "lowercase" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "trim" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "join" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "delimiter": { - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "delimiter", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Convert processor - Change the data type of a field value (integer, long, double, boolean, or string)", - "properties": { - "action": { - "enum": [ - "convert" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to convert to a different data type", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "to": { - "description": "Target field for the converted value (defaults to source)", - "minLength": 1, - "type": "string" - }, - "type": { - "description": "Target data type: integer, long, double, boolean, or string", - "enum": [ - "integer", - "long", - "double", - "boolean", - "string" - ], - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "concat" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "field" - ], - "type": "string" - }, - "value": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "literal" - ], - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - } - ] - }, - "minItems": 1, - "type": "array" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Manual ingest pipeline wrapper around native Elasticsearch processors", - "properties": { - "action": { - "description": "Manual ingest pipeline - executes raw Elasticsearch ingest processors", - "enum": [ - "manual_ingest_pipeline" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "on_failure": { - "description": "Fallback processors to run when a processor fails", - "items": { - "additionalProperties": {}, - "type": "object" - }, - "type": "array" - }, - "processors": { - "description": "List of raw Elasticsearch ingest processors to run", - "items": { - "additionalProperties": false, - "properties": { - "append": {}, - "attachment": {}, - "bytes": {}, - "circle": {}, - "community_id": {}, - "convert": {}, - "csv": {}, - "date": {}, - "date_index_name": {}, - "dissect": {}, - "dot_expander": {}, - "drop": {}, - "enrich": {}, - "fail": {}, - "fingerprint": {}, - "foreach": {}, - "geo_grid": {}, - "geoip": {}, - "grok": {}, - "gsub": {}, - "html_strip": {}, - "inference": {}, - "ip_location": {}, - "join": {}, - "json": {}, - "kv": {}, - "lowercase": {}, - "network_direction": {}, - "pipeline": {}, - "redact": {}, - "registered_domain": {}, - "remove": {}, - "rename": {}, - "reroute": {}, - "script": {}, - "set": {}, - "set_security_user": {}, - "sort": {}, - "split": {}, - "terminate": {}, - "trim": {}, - "uppercase": {}, - "uri_parts": {}, - "urldecode": {}, - "user_agent": {} - }, - "required": [ - "append", - "attachment", - "bytes", - "circle", - "community_id", - "convert", - "csv", - "date", - "date_index_name", - "dissect", - "dot_expander", - "drop", - "enrich", - "fail", - "fingerprint", - "foreach", - "ip_location", - "geo_grid", - "geoip", - "grok", - "gsub", - "html_strip", - "inference", - "join", - "json", - "kv", - "lowercase", - "network_direction", - "pipeline", - "redact", - "registered_domain", - "remove", - "rename", - "reroute", - "script", - "set", - "set_security_user", - "sort", - "split", - "terminate", - "trim", - "uppercase", - "urldecode", - "uri_parts", - "user_agent" - ], - "type": "object" - }, - "type": "array" - }, - "tag": { - "description": "Optional ingest processor tag for Elasticsearch", - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "processors" - ], - "type": "object" - } - ] - }, - { - "additionalProperties": false, - "properties": { - "condition": { - "allOf": [ - { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - { - "properties": { - "steps": { - "items": {}, - "type": "array" - } - }, - "required": [ - "steps" - ], - "type": "object" - } - ] - }, - "customIdentifier": { - "type": "string" - } - }, - "required": [ - "condition" - ], - "type": "object" - } - ] - }, - "type": "array" - }, - "updated_at": { - "not": {} - } - }, - "required": [ - "steps" - ], - "type": "object" - }, - "settings": { - "additionalProperties": false, - "properties": { - "index.number_of_replicas": { - "additionalProperties": false, - "properties": { - "value": { - "type": "number" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "index.number_of_shards": { - "additionalProperties": false, - "properties": { - "value": { - "type": "number" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "index.refresh_interval": { - "additionalProperties": false, - "properties": { - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - -1 - ], - "type": "number" - } - ] - } - }, - "required": [ - "value" - ], - "type": "object" - } - }, - "type": "object" - } - }, - "required": [ - "lifecycle", - "processing", - "settings", - "failure_store" - ], - "type": "object" - }, - { - "properties": { - "wired": { - "additionalProperties": false, - "properties": { - "fields": { - "additionalProperties": { - "allOf": [ - { - "additionalProperties": { - "anyOf": [ - { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - }, - { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - }, - "type": "array" - }, - { - "items": {}, - "type": "array" - }, - {} - ] - }, - "type": "object" - }, - { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "format": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": { - "enum": [ - "keyword", - "match_only_text", - "long", - "double", - "date", - "boolean", - "ip", - "geo_point" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "system" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - } - ] - } - ] - }, - "type": "object" - }, - "routing": { - "items": { - "additionalProperties": false, - "properties": { - "destination": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "status": { - "enum": [ - "enabled", - "disabled" - ], - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - } - }, - "required": [ - "destination", - "where" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "fields", - "routing" - ], - "type": "object" - } - }, - "required": [ - "wired" - ], - "type": "object" - } - ] - }, - { - "allOf": [ - { - "properties": { - "failure_store": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "inherit": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "inherit" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "disabled": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "disabled" - ], - "type": "object" - }, - { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "lifecycle": { - "additionalProperties": false, - "properties": { - "enabled": { - "additionalProperties": false, - "properties": { - "data_retention": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "enabled" - ], - "type": "object" - } - }, - "required": [ - "lifecycle" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "lifecycle": { - "additionalProperties": false, - "properties": { - "disabled": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "disabled" - ], - "type": "object" - } - }, - "required": [ - "lifecycle" - ], - "type": "object" - } - ] - } - ] - }, - "lifecycle": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "dsl": { - "additionalProperties": false, - "properties": { - "data_retention": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "type": "object" - } - }, - "required": [ - "dsl" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "ilm": { - "additionalProperties": false, - "properties": { - "policy": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "policy" - ], - "type": "object" - } - }, - "required": [ - "ilm" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "inherit": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "inherit" - ], - "type": "object" - } - ] - }, - "processing": { - "additionalProperties": false, - "properties": { - "steps": { - "items": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "Grok processor - Extract fields from text using grok patterns", - "properties": { - "action": { - "enum": [ - "grok" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to parse with grok patterns", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "pattern_definitions": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "patterns": { - "description": "Grok patterns applied in order to extract fields", - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "minItems": 1, - "type": "array" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "patterns" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Dissect processor - Extract fields from text using a lightweight, delimiter-based parser", - "properties": { - "action": { - "enum": [ - "dissect" - ], - "type": "string" - }, - "append_separator": { - "description": "Separator inserted when target fields are concatenated", - "minLength": 1, - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to parse with dissect pattern", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "pattern": { - "description": "Dissect pattern describing field boundaries", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "pattern" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Date processor - Parse dates from strings using one or more expected formats", - "properties": { - "action": { - "enum": [ - "date" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "formats": { - "description": "Accepted input date formats, tried in order", - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "from": { - "description": "Source field containing the date/time text", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "locale": { - "description": "Optional locale for date parsing", - "minLength": 1, - "type": "string" - }, - "output_format": { - "description": "Optional output format for storing the parsed date as text", - "minLength": 1, - "type": "string" - }, - "timezone": { - "description": "Optional timezone for date parsing", - "minLength": 1, - "type": "string" - }, - "to": { - "description": "Target field for the parsed date (defaults to source)", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "formats" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "drop_document" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "math" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "expression": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "expression", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Rename processor - Change a field name and optionally its location", - "properties": { - "action": { - "enum": [ - "rename" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Existing source field to rename or move", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip when source field is missing", - "type": "boolean" - }, - "override": { - "description": "Allow overwriting the target field if it already exists", - "type": "boolean" - }, - "to": { - "description": "New field name or destination path", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Set processor - Assign a literal or copied value to a field (mutually exclusive inputs)", - "properties": { - "action": { - "enum": [ - "set" - ], - "type": "string" - }, - "copy_from": { - "description": "Copy value from another field instead of providing a literal", - "minLength": 1, - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "override": { - "description": "Allow overwriting an existing target field", - "type": "boolean" - }, - "to": { - "description": "Target field to set or create", - "minLength": 1, - "type": "string" - }, - "value": { - "description": "Literal value to assign to the target field" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Append processor - Append one or more values to an existing or new array field", - "properties": { - "action": { - "enum": [ - "append" - ], - "type": "string" - }, - "allow_duplicates": { - "description": "If true, do not deduplicate appended values", - "type": "boolean" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "to": { - "description": "Array field to append values to", - "minLength": 1, - "type": "string" - }, - "value": { - "description": "Values to append (must be literal, no templates)", - "items": {}, - "minItems": 1, - "type": "array" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "to", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Remove by prefix processor - Remove a field and all nested fields matching the prefix", - "properties": { - "action": { - "enum": [ - "remove_by_prefix" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Field to remove along with all its nested fields", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Remove processor - Delete one or more fields from the document", - "properties": { - "action": { - "enum": [ - "remove" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Field to remove from the document", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "replace" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "pattern": { - "description": "A non-empty string or string with whitespace.", - "minLength": 1, - "type": "string" - }, - "replacement": { - "type": "string" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "pattern", - "replacement" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "uppercase" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "lowercase" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "trim" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "join" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "delimiter": { - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "items": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": "array" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "delimiter", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Convert processor - Change the data type of a field value (integer, long, double, boolean, or string)", - "properties": { - "action": { - "enum": [ - "convert" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "description": "Source field to convert to a different data type", - "minLength": 1, - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "description": "Skip processing when source field is missing", - "type": "boolean" - }, - "to": { - "description": "Target field for the converted value (defaults to source)", - "minLength": 1, - "type": "string" - }, - "type": { - "description": "Target data type: integer, long, double, boolean, or string", - "enum": [ - "integer", - "long", - "double", - "boolean", - "string" - ], - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Base processor options plus conditional execution", - "properties": { - "action": { - "enum": [ - "concat" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "from": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "field" - ], - "type": "string" - }, - "value": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "literal" - ], - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - } - ] - }, - "minItems": 1, - "type": "array" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "ignore_missing": { - "type": "boolean" - }, - "to": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "from", - "to" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Manual ingest pipeline wrapper around native Elasticsearch processors", - "properties": { - "action": { - "description": "Manual ingest pipeline - executes raw Elasticsearch ingest processors", - "enum": [ - "manual_ingest_pipeline" - ], - "type": "string" - }, - "customIdentifier": { - "description": "Custom identifier to correlate this processor across outputs", - "minLength": 1, - "type": "string" - }, - "description": { - "description": "Human-readable notes about this processor step", - "type": "string" - }, - "ignore_failure": { - "description": "Continue pipeline execution if this processor fails", - "type": "boolean" - }, - "on_failure": { - "description": "Fallback processors to run when a processor fails", - "items": { - "additionalProperties": {}, - "type": "object" - }, - "type": "array" - }, - "processors": { - "description": "List of raw Elasticsearch ingest processors to run", - "items": { - "additionalProperties": false, - "properties": { - "append": {}, - "attachment": {}, - "bytes": {}, - "circle": {}, - "community_id": {}, - "convert": {}, - "csv": {}, - "date": {}, - "date_index_name": {}, - "dissect": {}, - "dot_expander": {}, - "drop": {}, - "enrich": {}, - "fail": {}, - "fingerprint": {}, - "foreach": {}, - "geo_grid": {}, - "geoip": {}, - "grok": {}, - "gsub": {}, - "html_strip": {}, - "inference": {}, - "ip_location": {}, - "join": {}, - "json": {}, - "kv": {}, - "lowercase": {}, - "network_direction": {}, - "pipeline": {}, - "redact": {}, - "registered_domain": {}, - "remove": {}, - "rename": {}, - "reroute": {}, - "script": {}, - "set": {}, - "set_security_user": {}, - "sort": {}, - "split": {}, - "terminate": {}, - "trim": {}, - "uppercase": {}, - "uri_parts": {}, - "urldecode": {}, - "user_agent": {} - }, - "required": [ - "append", - "attachment", - "bytes", - "circle", - "community_id", - "convert", - "csv", - "date", - "date_index_name", - "dissect", - "dot_expander", - "drop", - "enrich", - "fail", - "fingerprint", - "foreach", - "ip_location", - "geo_grid", - "geoip", - "grok", - "gsub", - "html_strip", - "inference", - "join", - "json", - "kv", - "lowercase", - "network_direction", - "pipeline", - "redact", - "registered_domain", - "remove", - "rename", - "reroute", - "script", - "set", - "set_security_user", - "sort", - "split", - "terminate", - "trim", - "uppercase", - "urldecode", - "uri_parts", - "user_agent" - ], - "type": "object" - }, - "type": "array" - }, - "tag": { - "description": "Optional ingest processor tag for Elasticsearch", - "type": "string" - }, - "where": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "Conditional expression controlling whether this processor runs" - } - }, - "required": [ - "action", - "processors" - ], - "type": "object" - } - ] - }, - { - "additionalProperties": false, - "properties": { - "condition": { - "allOf": [ - { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - { - "properties": { - "steps": { - "items": {}, - "type": "array" - } - }, - "required": [ - "steps" - ], - "type": "object" - } - ] - }, - "customIdentifier": { - "type": "string" - } - }, - "required": [ - "condition" - ], - "type": "object" - } - ] - }, - "type": "array" - }, - "updated_at": { - "not": {} - } - }, - "required": [ - "steps" - ], - "type": "object" - }, - "settings": { - "additionalProperties": false, - "properties": { - "index.number_of_replicas": { - "additionalProperties": false, - "properties": { - "value": { - "type": "number" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "index.number_of_shards": { - "additionalProperties": false, - "properties": { - "value": { - "type": "number" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "index.refresh_interval": { - "additionalProperties": false, - "properties": { - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - -1 - ], - "type": "number" - } - ] - } - }, - "required": [ - "value" - ], - "type": "object" - } - }, - "type": "object" - } - }, - "required": [ - "lifecycle", - "processing", - "settings", - "failure_store" - ], - "type": "object" - }, - { - "properties": { - "classic": { - "additionalProperties": false, - "properties": { - "field_overrides": { - "additionalProperties": { - "allOf": [ - { - "additionalProperties": { - "anyOf": [ - { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - }, - { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - }, - "type": "array" - }, - { - "items": {}, - "type": "array" - }, - {} - ] - }, - "type": "object" - }, - { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "format": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": { - "enum": [ - "keyword", - "match_only_text", - "long", - "double", - "date", - "boolean", - "ip", - "geo_point" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "system" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - } - ] - } - ] - }, - "type": "object" - } - }, - "type": "object" - } - }, - "required": [ - "classic" - ], - "type": "object" - } - ] - } - ] - } - }, - "required": [ - "ingest" - ], - "type": "object" - } - } - } - }, - "responses": {}, - "summary": "Update ingest stream settings", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - }, - "/api/streams/{name}/content/export": { - "post": { - "description": "Exports the content associated to a stream.

[Required authorization] Route required privileges: manage_stream.", - "operationId": "post-streams-name-content-export", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "description": { - "type": "string" - }, - "include": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "objects": { - "additionalProperties": false, - "properties": { - "all": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - }, - "required": [ - "all" - ], - "type": "object" - } - }, - "required": [ - "objects" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "objects": { - "additionalProperties": false, - "properties": { - "mappings": { - "type": "boolean" - }, - "queries": { - "items": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - }, - "type": "array" - }, - "routing": { - "items": { - "allOf": [ - {}, - { - "properties": { - "destination": { - "type": "string" - } - }, - "required": [ - "destination" - ], - "type": "object" - } - ] - }, - "type": "array" - } - }, - "required": [ - "mappings", - "queries", - "routing" - ], - "type": "object" - } - }, - "required": [ - "objects" - ], - "type": "object" - } - ] - }, - "name": { - "type": "string" - }, - "version": { - "type": "string" - } - }, - "required": [ - "name", - "description", - "version", - "include" - ], - "type": "object" - } - } - } - }, - "responses": {}, - "summary": "Export stream content", - "tags": [ - "streams" - ] - } - }, - "/api/streams/{name}/content/import": { - "post": { - "description": "Links content objects to a stream.

[Required authorization] Route required privileges: manage_stream.", - "operationId": "post-streams-name-content-import", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "additionalProperties": false, - "properties": { - "content": {}, - "include": { - "type": "string" - } - }, - "required": [ - "include", - "content" - ], - "type": "object" - } - } - } - }, - "responses": {}, - "summary": "Import content into a stream", - "tags": [ - "streams" - ] - } - }, - "/api/streams/{name}/queries": { - "get": { - "description": "Fetches all queries linked to a stream that are visible to the current user in the current space.

[Required authorization] Route required privileges: read_stream.", - "operationId": "get-streams-name-queries", - "parameters": [ - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - } - } - } - }, - "responses": {}, - "summary": "Get stream queries", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - }, - "/api/streams/{name}/queries/_bulk": { - "post": { - "description": "Bulk update queries of a stream. Can add new queries and delete existing ones.

[Required authorization] Route required privileges: manage_stream.", - "operationId": "post-streams-name-queries-bulk", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "operations": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "index": { - "allOf": [ - { - "properties": { - "id": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "title": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "id", - "title" - ], - "type": "object" - }, - { - "properties": { - "evidence": { - "items": { - "type": "string" - }, - "type": "array" - }, - "feature": { - "additionalProperties": false, - "properties": { - "filter": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - "name": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": { - "enum": [ - "system" - ], - "type": "string" - } - }, - "required": [ - "name", - "filter", - "type" - ], - "type": "object" - }, - "kql": { - "additionalProperties": false, - "properties": { - "query": { - "type": "string" - } - }, - "required": [ - "query" - ], - "type": "object" - }, - "severity_score": { - "type": "number" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - ] - } - }, - "required": [ - "index" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "delete": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - } - }, - "required": [ - "delete" - ], - "type": "object" - } - ] - }, - "type": "array" - } - }, - "required": [ - "operations" - ], - "type": "object" - } - } - } - }, - "responses": {}, - "summary": "Bulk update queries", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - }, - "/api/streams/{name}/queries/{queryId}": { - "delete": { - "description": "Remove a query from a stream. Noop if the query is not found on the stream.

[Required authorization] Route required privileges: manage_stream.", - "operationId": "delete-streams-name-queries-queryid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "queryId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - } - } - } - }, - "responses": {}, - "summary": "Remove a query from a stream", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - }, - "put": { - "description": "Adds a query to a stream. Noop if the query is already present on the stream.

[Required authorization] Route required privileges: manage_stream.", - "operationId": "put-streams-name-queries-queryid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "queryId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "evidence": { - "items": { - "type": "string" - }, - "type": "array" - }, - "feature": { - "additionalProperties": false, - "properties": { - "filter": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - "name": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - }, - "type": { - "enum": [ - "system" - ], - "type": "string" - } - }, - "required": [ - "name", - "filter", - "type" - ], - "type": "object" - }, - "kql": { - "additionalProperties": false, - "properties": { - "query": { - "type": "string" - } - }, - "required": [ - "query" - ], - "type": "object" - }, - "severity_score": { - "type": "number" - }, - "title": { - "description": "A non-empty string.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "title", - "kql" - ], - "type": "object" - } - } - } - }, - "responses": {}, - "summary": "Upsert a query to a stream", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - }, - "/api/streams/{name}/significant_events": { - "get": { - "description": "Read the significant events

[Required authorization] Route required privileges: read_stream.", - "operationId": "get-streams-name-significant-events", - "parameters": [ - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "from", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "to", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "bucketSize", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "Query string to filter significant events on metadata fields", - "in": "query", - "name": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - } - } - } - }, - "responses": {}, - "summary": "Read the significant events", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - }, - "/api/streams/{name}/significant_events/_generate": { - "post": { - "description": "Generate significant events queries based on the stream data

[Required authorization] Route required privileges: read_stream.", - "operationId": "post-streams-name-significant-events-generate", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "Optional connector ID. If not provided, the default AI connector from settings will be used.", - "in": "query", - "name": "connectorId", - "required": false, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "from", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "to", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "Number of sample documents to use for generation from the current data of stream", - "in": "query", - "name": "sampleDocsSize", - "required": false, - "schema": { - "type": "number" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "system": { - "additionalProperties": false, - "properties": { - "description": { - "type": "string" - }, - "filter": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - "name": { - "type": "string" - }, - "type": { - "enum": [ - "system" - ], - "type": "string" - } - }, - "required": [ - "type", - "name", - "description", - "filter" - ], - "type": "object" - } - }, - "type": "object" - } - } - } - }, - "responses": {}, - "summary": "Generate significant events", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - }, - "/api/streams/{name}/significant_events/_preview": { - "post": { - "description": "Preview significant event results based on a given query

[Required authorization] Route required privileges: read_stream.", - "operationId": "post-streams-name-significant-events-preview", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "from", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "to", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "query", - "name": "bucketSize", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "additionalProperties": false, - "properties": { - "query": { - "additionalProperties": false, - "properties": { - "feature": { - "additionalProperties": false, - "properties": { - "filter": { - "anyOf": [ - { - "anyOf": [ - { - "additionalProperties": false, - "description": "A condition that compares a field to a value or range using an operator as the key.", - "properties": { - "contains": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Contains comparison value." - }, - "endsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Ends-with comparison value." - }, - "eq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Equality comparison value." - }, - "field": { - "description": "The document field to filter on.", - "minLength": 1, - "type": "string" - }, - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than comparison value." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Greater-than-or-equal comparison value." - }, - "includes": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Checks if multivalue field includes the value." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than comparison value." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Less-than-or-equal comparison value." - }, - "neq": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Inequality comparison value." - }, - "range": { - "additionalProperties": false, - "description": "Range comparison values.", - "properties": { - "gt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "gte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lt": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - }, - "lte": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "A value that can be a string, number, or boolean." - } - }, - "type": "object" - }, - "startsWith": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ], - "description": "Starts-with comparison value." - } - }, - "required": [ - "field" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that checks for the existence or non-existence of a field.", - "properties": { - "exists": { - "description": "Indicates whether the field exists or not.", - "type": "boolean" - }, - "field": { - "description": "The document field to check.", - "minLength": 1, - "type": "string" - } - }, - "required": [ - "field" - ], - "type": "object" - } - ], - "description": "A basic filter condition, either unary or binary." - }, - { - "additionalProperties": false, - "description": "A logical AND that groups multiple conditions.", - "properties": { - "and": { - "description": "An array of conditions. All sub-conditions must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "and" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical OR that groups multiple conditions.", - "properties": { - "or": { - "description": "An array of conditions. At least one sub-condition must be true for this condition to be true.", - "items": {}, - "type": "array" - } - }, - "required": [ - "or" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A logical NOT that negates a condition.", - "properties": { - "not": { - "description": "A condition that negates another condition." - } - }, - "required": [ - "not" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to false.", - "properties": { - "never": { - "additionalProperties": false, - "description": "An empty object. This condition never matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "never" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "A condition that always evaluates to true. Useful for catch-all scenarios, but use with caution as partitions are ordered.", - "properties": { - "always": { - "additionalProperties": false, - "description": "An empty object. This condition always matches.", - "properties": {}, - "type": "object" - } - }, - "required": [ - "always" - ], - "type": "object" - } - ], - "description": "The root condition object. It can be a simple filter or a combination of other conditions." - }, - "name": { - "type": "string" - }, - "type": { - "enum": [ - "system" - ], - "type": "string" - } - }, - "required": [ - "name", - "filter", - "type" - ], - "type": "object" - }, - "kql": { - "additionalProperties": false, - "properties": { - "query": { - "type": "string" - } - }, - "required": [ - "query" - ], - "type": "object" - } - }, - "required": [ - "kql" - ], - "type": "object" - } - }, - "required": [ - "query" - ], - "type": "object" - } - } - } - }, - "responses": {}, - "summary": "Preview significant events", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - }, - "/api/streams/{streamName}/attachments": { - "get": { - "description": "Fetches all attachments linked to a stream that are visible to the current user in the current space. Optionally filter by attachment types, search query, and tags.

[Required authorization] Route required privileges: read_stream.", - "operationId": "get-streams-streamname-attachments", - "parameters": [ - { - "description": "The name of the stream", - "in": "path", - "name": "streamName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "Search query to filter attachments by title", - "in": "query", - "name": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "description": "Filter by attachment types (single value or array)", - "in": "query", - "name": "attachmentTypes", - "required": false, - "schema": { - "anyOf": [ - { - "enum": [ - "dashboard", - "rule", - "slo" - ], - "type": "string" - }, - { - "items": { - "enum": [ - "dashboard", - "rule", - "slo" - ], - "type": "string" - }, - "type": "array" - } - ] - } - }, - { - "description": "Filter by tags (single value or array)", - "in": "query", - "name": "tags", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ] - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "listAttachmentsExample": { - "value": {} - } - }, - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "listAttachmentsResponse": { - "value": { - "attachments": [ - { - "createdAt": "2023-02-23T16:15:47.275Z", - "description": "Dashboard for monitoring production services", - "id": "dashboard-123", - "streamNames": [ - "logs.awsfirehose", - "logs.nginx" - ], - "tags": [ - "monitoring", - "production" - ], - "title": "My Dashboard", - "type": "dashboard", - "updatedAt": "2023-03-24T14:39:17.636Z" - } - ] - } - } - } - } - }, - "description": "Successfully retrieved attachments" - } - }, - "summary": "Get stream attachments", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - }, - "/api/streams/{streamName}/attachments/_bulk": { - "post": { - "description": "Bulk update attachments linked to a stream. Can link new attachments and delete existing ones. Supports mixed attachment types in a single request.

[Required authorization] Route required privileges: manage_stream.", - "operationId": "post-streams-streamname-attachments-bulk", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The name of the stream", - "in": "path", - "name": "streamName", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "bulkAttachmentsExample": { - "value": { - "operations": [ - { - "index": { - "id": "dashboard-123", - "type": "dashboard" - } - }, - { - "delete": { - "id": "rule-456", - "type": "rule" - } - } - ] - } - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "operations": { - "items": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "index": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "type": { - "enum": [ - "dashboard", - "rule", - "slo" - ], - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - } - }, - "required": [ - "index" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "delete": { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "type": { - "enum": [ - "dashboard", - "rule", - "slo" - ], - "type": "string" - } - }, - "required": [ - "id", - "type" - ], - "type": "object" - } - }, - "required": [ - "delete" - ], - "type": "object" - } - ] - }, - "type": "array" - } - }, - "required": [ - "operations" - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "bulkAttachmentsResponse": { - "value": { - "acknowledged": true - } - } - } - } - }, - "description": "Successfully performed bulk operations" - } - }, - "summary": "Bulk update attachments", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - }, - "/api/streams/{streamName}/attachments/{attachmentType}/{attachmentId}": { - "delete": { - "description": "Unlinks an attachment from a stream. Noop if the attachment is not linked to the stream.

[Required authorization] Route required privileges: manage_stream.", - "operationId": "delete-streams-streamname-attachments-attachmenttype-attachmentid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The name of the stream", - "in": "path", - "name": "streamName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "The type of the attachment", - "in": "path", - "name": "attachmentType", - "required": true, - "schema": { - "enum": [ - "dashboard", - "rule", - "slo" - ], - "type": "string" - } - }, - { - "description": "The ID of the attachment", - "in": "path", - "name": "attachmentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "unlinkAttachmentExample": { - "value": {} - } - }, - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "unlinkAttachmentResponse": { - "value": { - "acknowledged": true - } - } - } - } - }, - "description": "Successfully unlinked attachment" - } - }, - "summary": "Unlink an attachment from a stream", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - }, - "put": { - "description": "Links an attachment to a stream. Noop if the attachment is already linked to the stream.

[Required authorization] Route required privileges: manage_stream.", - "operationId": "put-streams-streamname-attachments-attachmenttype-attachmentid", - "parameters": [ - { - "description": "A required header to protect against CSRF attacks", - "in": "header", - "name": "kbn-xsrf", - "required": true, - "schema": { - "example": "true", - "type": "string" - } - }, - { - "description": "The name of the stream", - "in": "path", - "name": "streamName", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "The type of the attachment", - "in": "path", - "name": "attachmentType", - "required": true, - "schema": { - "enum": [ - "dashboard", - "rule", - "slo" - ], - "type": "string" - } - }, - { - "description": "The ID of the attachment", - "in": "path", - "name": "attachmentId", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "examples": { - "linkAttachmentExample": { - "value": {} - } - }, - "schema": { - "anyOf": [ - { - "additionalProperties": false, - "properties": {}, - "type": "object" - }, - { - "enum": [ - "null" - ], - "nullable": true - }, - { - "not": {} - } - ] - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "examples": { - "linkAttachmentResponse": { - "value": { - "acknowledged": true - } - } - } - } - }, - "description": "Successfully linked attachment" - } - }, - "summary": "Link an attachment to a stream", - "tags": [ - "streams" - ], - "x-state": "Technical Preview" - } - } - }, - "security": [ - { - "basicAuth": [] - } - ], - "servers": [ - { - "url": "http://localhost:5622" - } - ], - "tags": [ - { - "name": "agent builder" - }, - { - "name": "alerting" - }, - { - "name": "connectors" - }, - { - "name": "Data streams" - }, - { - "name": "Elastic Agent actions" - }, - { - "name": "Elastic Agent binary download sources" - }, - { - "name": "Elastic Agent policies" - }, - { - "name": "Elastic Agent status" - }, - { - "name": "Elastic Agents" - }, - { - "name": "Elastic Package Manager (EPM)" - }, - { - "name": "Fleet agentless policies" - }, - { - "name": "Fleet cloud connectors" - }, - { - "name": "Fleet enrollment API keys" - }, - { - "name": "Fleet internals" - }, - { - "name": "Fleet outputs" - }, - { - "name": "Fleet package policies" - }, - { - "name": "Fleet proxies" - }, - { - "name": "Fleet Server hosts" - }, - { - "name": "Fleet uninstall tokens" - }, - { - "name": "maintenance-window" - }, - { - "name": "Message Signing Service" - }, - { - "name": "roles" - }, - { - "name": "saved objects" - }, - { - "name": "spaces" - }, - { - "name": "streams" - }, - { - "name": "system" - } - ] -} \ No newline at end of file diff --git a/oas_docs/output/kibana.serverless.yaml b/oas_docs/output/kibana.serverless.yaml index 9f74ea0deb16a..4ef701c93e647 100644 --- a/oas_docs/output/kibana.serverless.yaml +++ b/oas_docs/output/kibana.serverless.yaml @@ -21852,6 +21852,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -21910,6 +21915,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -22077,6 +22087,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: anyOf: - additionalProperties: @@ -22839,6 +22854,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -22897,6 +22917,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -23064,6 +23089,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: anyOf: - additionalProperties: @@ -23608,6 +23638,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -23666,6 +23701,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -23833,6 +23873,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: anyOf: - additionalProperties: @@ -24356,6 +24401,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -24414,6 +24464,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -24581,6 +24636,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: anyOf: - additionalProperties: @@ -25342,6 +25402,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -25400,6 +25465,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -25567,6 +25637,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: anyOf: - additionalProperties: @@ -26203,6 +26278,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -26261,6 +26341,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -26428,6 +26513,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: anyOf: - additionalProperties: @@ -27946,6 +28036,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -28056,6 +28151,11 @@ paths: policy_template: description: The policy template to use for the agentless package policy. If not provided, the default policy template will be used. type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -28371,6 +28471,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -28429,6 +28534,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -28596,6 +28706,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: anyOf: - additionalProperties: @@ -34703,6 +34818,56 @@ paths: - content type: string - type: string + var_groups: + items: + additionalProperties: true + type: object + properties: + description: + type: string + name: + type: string + options: + items: + additionalProperties: true + type: object + properties: + description: + type: string + hide_in_deployment_modes: + items: + enum: + - default + - agentless + type: string + maxItems: 2 + type: array + name: + type: string + title: + type: string + vars: + items: + type: string + maxItems: 100 + type: array + required: + - name + - title + - vars + maxItems: 20 + type: array + selector_title: + type: string + title: + type: string + required: + - name + - title + - selector_title + - options + maxItems: 20 + type: array vars: items: additionalProperties: {} @@ -36243,6 +36408,56 @@ paths: - content type: string - type: string + var_groups: + items: + additionalProperties: true + type: object + properties: + description: + type: string + name: + type: string + options: + items: + additionalProperties: true + type: object + properties: + description: + type: string + hide_in_deployment_modes: + items: + enum: + - default + - agentless + type: string + maxItems: 2 + type: array + name: + type: string + title: + type: string + vars: + items: + type: string + maxItems: 100 + type: array + required: + - name + - title + - vars + maxItems: 20 + type: array + selector_title: + type: string + title: + type: string + required: + - name + - title + - selector_title + - options + maxItems: 20 + type: array vars: items: additionalProperties: {} @@ -36950,6 +37165,56 @@ paths: - content type: string - type: string + var_groups: + items: + additionalProperties: true + type: object + properties: + description: + type: string + name: + type: string + options: + items: + additionalProperties: true + type: object + properties: + description: + type: string + hide_in_deployment_modes: + items: + enum: + - default + - agentless + type: string + maxItems: 2 + type: array + name: + type: string + title: + type: string + vars: + items: + type: string + maxItems: 100 + type: array + required: + - name + - title + - vars + maxItems: 20 + type: array + selector_title: + type: string + title: + type: string + required: + - name + - title + - selector_title + - options + maxItems: 20 + type: array vars: items: additionalProperties: {} @@ -44400,6 +44665,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -44458,6 +44728,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -44625,6 +44900,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: anyOf: - additionalProperties: @@ -44869,6 +45149,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -45000,6 +45285,11 @@ paths: description: Indicates whether the package policy supports cloud connectors. nullable: true type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -45052,6 +45342,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -45179,6 +45474,11 @@ paths: description: Indicates whether the package policy belongs to an agentless agent policy. Deprecated in favor of the Fleet agentless policies API. nullable: true type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -45355,6 +45655,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -45413,6 +45718,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -45580,6 +45890,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: anyOf: - additionalProperties: @@ -45875,6 +46190,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -45933,6 +46253,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -46100,6 +46425,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: anyOf: - additionalProperties: @@ -46444,6 +46774,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -46502,6 +46837,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -46669,6 +47009,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: anyOf: - additionalProperties: @@ -46917,6 +47262,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -47046,6 +47396,11 @@ paths: description: Indicates whether the package policy supports cloud connectors. nullable: true type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -47097,6 +47452,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -47224,6 +47584,11 @@ paths: description: Indicates whether the package policy belongs to an agentless agent policy. Deprecated in favor of the Fleet agentless policies API. nullable: true type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -47399,6 +47764,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -47457,6 +47827,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -47624,6 +47999,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: anyOf: - additionalProperties: @@ -48263,6 +48643,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -48321,6 +48706,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -48488,6 +48878,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: anyOf: - additionalProperties: @@ -48690,6 +49085,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -48839,6 +49239,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false diff --git a/oas_docs/output/kibana.yaml b/oas_docs/output/kibana.yaml index 02fc1f6458db3..8e20ab5823a34 100644 --- a/oas_docs/output/kibana.yaml +++ b/oas_docs/output/kibana.yaml @@ -24425,6 +24425,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -24483,6 +24488,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -24650,6 +24660,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: anyOf: - additionalProperties: @@ -25412,6 +25427,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -25470,6 +25490,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -25637,6 +25662,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: anyOf: - additionalProperties: @@ -26181,6 +26211,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -26239,6 +26274,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -26406,6 +26446,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: anyOf: - additionalProperties: @@ -26929,6 +26974,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -26987,6 +27037,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -27154,6 +27209,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: anyOf: - additionalProperties: @@ -27915,6 +27975,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -27973,6 +28038,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -28140,6 +28210,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: anyOf: - additionalProperties: @@ -28776,6 +28851,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -28834,6 +28914,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -29001,6 +29086,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: anyOf: - additionalProperties: @@ -30519,6 +30609,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -30629,6 +30724,11 @@ paths: policy_template: description: The policy template to use for the agentless package policy. If not provided, the default policy template will be used. type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -30944,6 +31044,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -31002,6 +31107,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -31169,6 +31279,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: anyOf: - additionalProperties: @@ -37276,6 +37391,56 @@ paths: - content type: string - type: string + var_groups: + items: + additionalProperties: true + type: object + properties: + description: + type: string + name: + type: string + options: + items: + additionalProperties: true + type: object + properties: + description: + type: string + hide_in_deployment_modes: + items: + enum: + - default + - agentless + type: string + maxItems: 2 + type: array + name: + type: string + title: + type: string + vars: + items: + type: string + maxItems: 100 + type: array + required: + - name + - title + - vars + maxItems: 20 + type: array + selector_title: + type: string + title: + type: string + required: + - name + - title + - selector_title + - options + maxItems: 20 + type: array vars: items: additionalProperties: {} @@ -38816,6 +38981,56 @@ paths: - content type: string - type: string + var_groups: + items: + additionalProperties: true + type: object + properties: + description: + type: string + name: + type: string + options: + items: + additionalProperties: true + type: object + properties: + description: + type: string + hide_in_deployment_modes: + items: + enum: + - default + - agentless + type: string + maxItems: 2 + type: array + name: + type: string + title: + type: string + vars: + items: + type: string + maxItems: 100 + type: array + required: + - name + - title + - vars + maxItems: 20 + type: array + selector_title: + type: string + title: + type: string + required: + - name + - title + - selector_title + - options + maxItems: 20 + type: array vars: items: additionalProperties: {} @@ -39523,6 +39738,56 @@ paths: - content type: string - type: string + var_groups: + items: + additionalProperties: true + type: object + properties: + description: + type: string + name: + type: string + options: + items: + additionalProperties: true + type: object + properties: + description: + type: string + hide_in_deployment_modes: + items: + enum: + - default + - agentless + type: string + maxItems: 2 + type: array + name: + type: string + title: + type: string + vars: + items: + type: string + maxItems: 100 + type: array + required: + - name + - title + - vars + maxItems: 20 + type: array + selector_title: + type: string + title: + type: string + required: + - name + - title + - selector_title + - options + maxItems: 20 + type: array vars: items: additionalProperties: {} @@ -46973,6 +47238,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -47031,6 +47301,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -47198,6 +47473,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: anyOf: - additionalProperties: @@ -47442,6 +47722,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -47573,6 +47858,11 @@ paths: description: Indicates whether the package policy supports cloud connectors. nullable: true type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -47625,6 +47915,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -47752,6 +48047,11 @@ paths: description: Indicates whether the package policy belongs to an agentless agent policy. Deprecated in favor of the Fleet agentless policies API. nullable: true type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -47928,6 +48228,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -47986,6 +48291,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -48153,6 +48463,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: anyOf: - additionalProperties: @@ -48448,6 +48763,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -48506,6 +48826,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -48673,6 +48998,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: anyOf: - additionalProperties: @@ -49017,6 +49347,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -49075,6 +49410,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -49242,6 +49582,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: anyOf: - additionalProperties: @@ -49490,6 +49835,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -49619,6 +49969,11 @@ paths: description: Indicates whether the package policy supports cloud connectors. nullable: true type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -49670,6 +50025,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -49797,6 +50157,11 @@ paths: description: Indicates whether the package policy belongs to an agentless agent policy. Deprecated in favor of the Fleet agentless policies API. nullable: true type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -49972,6 +50337,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -50030,6 +50400,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -50197,6 +50572,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: anyOf: - additionalProperties: @@ -50836,6 +51216,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -50894,6 +51279,11 @@ paths: enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: anyOf: @@ -51061,6 +51451,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: anyOf: - additionalProperties: @@ -51263,6 +51658,11 @@ paths: - beta - experimental type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false @@ -51412,6 +51812,11 @@ paths: type: string updated_by: type: string + var_group_selections: + additionalProperties: + type: string + description: Variable group selections. Maps var_group name to the selected option name within that group. + type: object vars: additionalProperties: additionalProperties: false diff --git a/x-pack/platform/plugins/shared/fleet/common/index.ts b/x-pack/platform/plugins/shared/fleet/common/index.ts index 4d45ae3c21a80..f46deefeaa421 100644 --- a/x-pack/platform/plugins/shared/fleet/common/index.ts +++ b/x-pack/platform/plugins/shared/fleet/common/index.ts @@ -197,6 +197,8 @@ export type { PackageSpecConditions, PackageSpecIcon, PackageSpecScreenshot, + RegistryVarGroup, + RegistryVarGroupOption, RegistryPolicyTemplate, RegistrySearchResult, RegistryInput, diff --git a/x-pack/platform/plugins/shared/fleet/common/services/__snapshots__/simplified_package_policy_helper.test.ts.snap b/x-pack/platform/plugins/shared/fleet/common/services/__snapshots__/simplified_package_policy_helper.test.ts.snap index c7b8ebf389855..4f1ff2194e48c 100644 --- a/x-pack/platform/plugins/shared/fleet/common/services/__snapshots__/simplified_package_policy_helper.test.ts.snap +++ b/x-pack/platform/plugins/shared/fleet/common/services/__snapshots__/simplified_package_policy_helper.test.ts.snap @@ -241,6 +241,7 @@ Object { ], "supports_agentless": undefined, "supports_cloud_connector": undefined, + "var_group_selections": undefined, "vars": undefined, } `; diff --git a/x-pack/platform/plugins/shared/fleet/common/services/simplified_package_policy_helper.test.ts b/x-pack/platform/plugins/shared/fleet/common/services/simplified_package_policy_helper.test.ts index 57cf357712b13..53d021c8a39c7 100644 --- a/x-pack/platform/plugins/shared/fleet/common/services/simplified_package_policy_helper.test.ts +++ b/x-pack/platform/plugins/shared/fleet/common/services/simplified_package_policy_helper.test.ts @@ -11,6 +11,7 @@ import nginxPackageInfo from '../../server/services/package_policies/fixtures/pa import { simplifiedPackagePolicytoNewPackagePolicy, + packagePolicyToSimplifiedPackagePolicy, generateInputId, } from './simplified_package_policy_helper'; @@ -176,5 +177,41 @@ describe('toPackagePolicy', () => { expect(res.additional_datastreams_permissions).toEqual(['logs-test-123']); }); + + it('should preserve var_group_selections when creating package policy', () => { + const varGroupSelections = { auth_method: 'api_key' }; + const res = simplifiedPackagePolicytoNewPackagePolicy( + { + name: 'nginx-1', + namespace: 'default', + policy_id: 'policy123', + policy_ids: ['policy123'], + description: 'Test description', + var_group_selections: varGroupSelections, + }, + nginxPackageInfo as unknown as PackageInfo + ); + + expect(res.var_group_selections).toEqual(varGroupSelections); + }); + + it('should include var_group_selections when converting back to simplified policy', () => { + const varGroupSelections = { auth_method: 'api_key' }; + const packagePolicy = simplifiedPackagePolicytoNewPackagePolicy( + { + name: 'nginx-1', + namespace: 'default', + policy_id: 'policy123', + policy_ids: ['policy123'], + description: 'Test description', + var_group_selections: varGroupSelections, + }, + nginxPackageInfo as unknown as PackageInfo + ); + + const simplified = packagePolicyToSimplifiedPackagePolicy(packagePolicy as any); + + expect((simplified as any).var_group_selections).toEqual(varGroupSelections); + }); }); }); diff --git a/x-pack/platform/plugins/shared/fleet/common/services/simplified_package_policy_helper.ts b/x-pack/platform/plugins/shared/fleet/common/services/simplified_package_policy_helper.ts index c8f864312c07a..aceebbee05f45 100644 --- a/x-pack/platform/plugins/shared/fleet/common/services/simplified_package_policy_helper.ts +++ b/x-pack/platform/plugins/shared/fleet/common/services/simplified_package_policy_helper.ts @@ -63,6 +63,7 @@ export interface SimplifiedPackagePolicy { name: string; description?: string; vars?: SimplifiedVars; + var_group_selections?: Record; inputs?: SimplifiedInputs; supports_agentless?: boolean | null; supports_cloud_connector?: boolean | null; @@ -84,6 +85,9 @@ export function packagePolicyToSimplifiedPackagePolicy(packagePolicy: PackagePol if (packagePolicy.vars) { formattedPackagePolicy.vars = formatVars(packagePolicy.vars); } + if (packagePolicy.var_group_selections) { + (formattedPackagePolicy as any).var_group_selections = packagePolicy.var_group_selections; + } return formattedPackagePolicy; } @@ -184,6 +188,7 @@ export function simplifiedPackagePolicytoNewPackagePolicy( description, inputs = {}, vars: packageLevelVars, + var_group_selections: varGroupSelections, supports_agentless: supportsAgentless, supports_cloud_connector: supportsCloudConnector, cloud_connector_id: cloudConnectorId, @@ -202,6 +207,7 @@ export function simplifiedPackagePolicytoNewPackagePolicy( supports_cloud_connector: supportsCloudConnector, cloud_connector_id: cloudConnectorId, output_id: outputId, + var_group_selections: varGroupSelections, }; if (additionalDatastreamsPermissions) { diff --git a/x-pack/platform/plugins/shared/fleet/common/services/validate_package_policy.test.ts b/x-pack/platform/plugins/shared/fleet/common/services/validate_package_policy.test.ts index d8dede8e0079b..5b8b84e7ea4f3 100644 --- a/x-pack/platform/plugins/shared/fleet/common/services/validate_package_policy.test.ts +++ b/x-pack/platform/plugins/shared/fleet/common/services/validate_package_policy.test.ts @@ -2213,3 +2213,227 @@ describe('Fleet - parseDuration()', () => { expect(result.errors[0]).toContain('Invalid duration format'); }); }); + +describe('Fleet - validatePackagePolicy with var_groups', () => { + const packageInfoWithVarGroups: PackageInfo = { + name: 'test_package', + version: '1.0.0', + title: 'Test Package', + description: 'Test package with var_groups', + type: 'integration', + format_version: '3.0.0', + owner: { github: 'elastic/integrations', type: 'elastic' }, + categories: ['custom'], + status: installationStatuses.NotInstalled, + assets: { kibana: {} }, + data_streams: [], + policy_templates: [], + vars: [ + { name: 'api_key', type: 'password', title: 'API Key' }, + { name: 'api_url', type: 'text', title: 'API URL' }, + { name: 'client_id', type: 'text', title: 'Client ID' }, + { name: 'client_secret', type: 'password', title: 'Client Secret' }, + { name: 'proxy_url', type: 'text', title: 'Proxy URL' }, + ], + var_groups: [ + { + name: 'auth_method', + title: 'Authentication', + selector_title: 'Select method', + required: true, + options: [ + { + name: 'api_key', + title: 'API Key', + vars: ['api_key', 'api_url'], + }, + { + name: 'oauth', + title: 'OAuth', + vars: ['client_id', 'client_secret'], + }, + ], + }, + ], + } as unknown as PackageInfo; + + const basePackagePolicy: NewPackagePolicy = { + name: 'test-policy', + namespace: 'default', + description: '', + policy_ids: ['policy-1'], + enabled: true, + inputs: [], + vars: { + api_key: { type: 'password', value: '' }, + api_url: { type: 'text', value: '' }, + client_id: { type: 'text', value: '' }, + client_secret: { type: 'password', value: '' }, + proxy_url: { type: 'text', value: '' }, + }, + var_group_selections: { auth_method: 'api_key' }, + }; + + it('should validate vars in selected var_group option as required when var_group.required is true', () => { + const policyWithUndefinedApiKey = { + ...basePackagePolicy, + vars: { + ...basePackagePolicy.vars, + api_key: { type: 'password', value: undefined }, // Undefined - should be invalid + api_url: { type: 'text', value: undefined }, // Undefined - should be invalid + }, + var_group_selections: { auth_method: 'api_key' }, + }; + + const result = validatePackagePolicy(policyWithUndefinedApiKey, packageInfoWithVarGroups, load); + + // api_key and api_url should have validation errors because they're required by var_group + expect(result.vars?.api_key).toEqual([expect.stringContaining('is required')]); + expect(result.vars?.api_url).toEqual([expect.stringContaining('is required')]); + }); + + it('should allow empty strings for var_group required vars (same as regular required vars)', () => { + const policyWithEmptyApiKey = { + ...basePackagePolicy, + vars: { + ...basePackagePolicy.vars, + api_key: { type: 'password', value: '' }, // Empty string is allowed + api_url: { type: 'text', value: '' }, // Empty string is allowed + }, + var_group_selections: { auth_method: 'api_key' }, + }; + + const result = validatePackagePolicy(policyWithEmptyApiKey, packageInfoWithVarGroups, load); + + // Empty strings are allowed for var_group required vars (same as regular required vars) + expect(result.vars?.api_key).toBeNull(); + expect(result.vars?.api_url).toBeNull(); + }); + + it('should not validate vars outside selected var_group option', () => { + const policyWithApiKeySelected = { + ...basePackagePolicy, + vars: { + ...basePackagePolicy.vars, + api_key: { type: 'password', value: 'my-api-key' }, + api_url: { type: 'text', value: 'https://api.example.com' }, + client_id: { type: 'text', value: '' }, // Empty but not in selected option + client_secret: { type: 'password', value: '' }, // Empty but not in selected option + }, + var_group_selections: { auth_method: 'api_key' }, + }; + + const result = validatePackagePolicy(policyWithApiKeySelected, packageInfoWithVarGroups, load); + + // api_key and api_url have values, should be valid (null) + expect(result.vars?.api_key).toBeNull(); + expect(result.vars?.api_url).toBeNull(); + // client_id and client_secret are not in selected option, should be skipped (null) + expect(result.vars?.client_id).toBeNull(); + expect(result.vars?.client_secret).toBeNull(); + }); + + it('should validate oauth vars when oauth option is selected', () => { + const policyWithOAuthSelected = { + ...basePackagePolicy, + vars: { + ...basePackagePolicy.vars, + api_key: { type: 'password', value: '' }, // Not in selected option + api_url: { type: 'text', value: '' }, // Not in selected option + client_id: { type: 'text', value: undefined }, // In selected option - should be required + client_secret: { type: 'password', value: undefined }, // In selected option - should be required + }, + var_group_selections: { auth_method: 'oauth' }, + }; + + const result = validatePackagePolicy(policyWithOAuthSelected, packageInfoWithVarGroups, load); + + // api_key and api_url are not in selected option, should be skipped + expect(result.vars?.api_key).toBeNull(); + expect(result.vars?.api_url).toBeNull(); + // client_id and client_secret are in selected option and undefined, should be invalid + expect(result.vars?.client_id).toEqual([expect.stringContaining('is required')]); + expect(result.vars?.client_secret).toEqual([expect.stringContaining('is required')]); + }); + + it('should always validate vars not controlled by any var_group', () => { + const packageInfoWithRequiredNonGroupVar: PackageInfo = { + ...packageInfoWithVarGroups, + vars: [ + ...packageInfoWithVarGroups.vars!, + { name: 'required_var', type: 'text', title: 'Required Var', required: true }, + ], + } as unknown as PackageInfo; + + // Test with undefined value - should fail required validation + const policyWithMissingRequiredVar = { + ...basePackagePolicy, + vars: { + ...basePackagePolicy.vars, + api_key: { type: 'password', value: 'my-key' }, + api_url: { type: 'text', value: 'https://api.example.com' }, + required_var: { type: 'text', value: undefined }, // Required by varDef, value is undefined + }, + var_group_selections: { auth_method: 'api_key' }, + }; + + const result = validatePackagePolicy( + policyWithMissingRequiredVar, + packageInfoWithRequiredNonGroupVar, + load + ); + + // required_var is not controlled by var_group but has required: true and undefined value + expect(result.vars?.required_var).toEqual([expect.stringContaining('is required')]); + }); + + it('should allow empty strings for regular required vars (not required by var_group)', () => { + const packageInfoWithRequiredNonGroupVar: PackageInfo = { + ...packageInfoWithVarGroups, + vars: [ + ...packageInfoWithVarGroups.vars!, + { name: 'required_var', type: 'text', title: 'Required Var', required: true }, + ], + } as unknown as PackageInfo; + + // Note: Empty strings are allowed for regular required vars in Fleet + // Only undefined values trigger required validation error + const policyWithEmptyRequiredVar = { + ...basePackagePolicy, + vars: { + ...basePackagePolicy.vars, + api_key: { type: 'password', value: 'my-key' }, + api_url: { type: 'text', value: 'https://api.example.com' }, + required_var: { type: 'text', value: '' }, // Required by varDef but empty string is OK + }, + var_group_selections: { auth_method: 'api_key' }, + }; + + const result = validatePackagePolicy( + policyWithEmptyRequiredVar, + packageInfoWithRequiredNonGroupVar, + load + ); + + // Empty strings are allowed for regular required vars + expect(result.vars?.required_var).toBeNull(); + }); + + it('should pass validation when all required var_group vars have values', () => { + const validPolicy = { + ...basePackagePolicy, + vars: { + ...basePackagePolicy.vars, + api_key: { type: 'password', value: 'my-api-key' }, + api_url: { type: 'text', value: 'https://api.example.com' }, + }, + var_group_selections: { auth_method: 'api_key' }, + }; + + const result = validatePackagePolicy(validPolicy, packageInfoWithVarGroups, load); + + expect(result.vars?.api_key).toBeNull(); + expect(result.vars?.api_url).toBeNull(); + expect(validationHasErrors(result)).toBe(false); + }); +}); diff --git a/x-pack/platform/plugins/shared/fleet/common/services/validate_package_policy.ts b/x-pack/platform/plugins/shared/fleet/common/services/validate_package_policy.ts index 79a783bcc5f58..f4b38f02300aa 100644 --- a/x-pack/platform/plugins/shared/fleet/common/services/validate_package_policy.ts +++ b/x-pack/platform/plugins/shared/fleet/common/services/validate_package_policy.ts @@ -19,6 +19,7 @@ import type { RegistryVarsEntry, RegistryRequiredVars, NewPackagePolicyInputStream, + RegistryVarGroup, } from '../types'; import { DATASET_VAR_NAME } from '../constants'; @@ -196,6 +197,75 @@ const validatePackageRequiredVars = ( return hasMetRequiredCriteria ? null : evaluatedRequiredVars; }; +/** + * Get all variable names that are controlled by any var_group. + */ +const getVarsControlledByVarGroups = (varGroups: RegistryVarGroup[]): Set => { + return new Set(varGroups.flatMap((group) => group.options.flatMap((option) => option.vars))); +}; + +/** + * Determines if a variable should be validated based on var_group selections. + * Returns false if the var is controlled by a var_group but not in the selected option. + */ +const shouldValidateVar = ( + varName: string, + varGroups: RegistryVarGroup[] | undefined, + varGroupSelections: Record | undefined +): boolean => { + if (!varGroups || varGroups.length === 0) { + return true; // No var_groups, validate all vars + } + + const controlledVars = getVarsControlledByVarGroups(varGroups); + + // If this var is not controlled by any var_group, always validate it + if (!controlledVars.has(varName)) { + return true; + } + + // Check if this var is in the selected option for any var_group + for (const group of varGroups) { + const selectedOptionName = varGroupSelections?.[group.name]; + if (!selectedOptionName) continue; + + const selectedOption = group.options.find((opt) => opt.name === selectedOptionName); + if (selectedOption?.vars.includes(varName)) { + return true; + } + } + + return false; +}; + +/** + * Determines if a variable should be treated as required based on var_group settings. + * When var_group.required is true, all vars in the selected option are required. + */ +const isVarRequiredByVarGroup = ( + varName: string, + varGroups: RegistryVarGroup[] | undefined, + varGroupSelections: Record | undefined +): boolean => { + if (!varGroups || varGroups.length === 0) { + return false; + } + + for (const group of varGroups) { + if (!group.required) continue; + + const selectedOptionName = varGroupSelections?.[group.name]; + if (!selectedOptionName) continue; + + const selectedOption = group.options.find((opt) => opt.name === selectedOptionName); + if (selectedOption?.vars.includes(varName)) { + return true; + } + } + + return false; +}; + const VALIDATE_DATASTREAMS_PERMISSION_REGEX = /^(logs)|(metrics)|(traces)|(synthetics)|(profiling)-(.*)$/; @@ -258,14 +328,31 @@ export const validatePackagePolicy = ( // Validate package-level vars const packageVarsByName = keyBy(packageInfo.vars || [], 'name'); const packageVars = Object.entries(packagePolicy.vars || {}); + const packageVarGroups = packageInfo.var_groups; + const packageVarGroupSelections = packagePolicy.var_group_selections; if (packageVars.length) { validationResults.vars = packageVars.reduce((results, [name, varEntry]) => { + // Skip validation for vars that are controlled by var_groups but not currently visible + if (!shouldValidateVar(name, packageVarGroups, packageVarGroupSelections)) { + results[name] = null; + return results; + } + + // Check if var is required due to var_group.required + const requiredByVarGroup = isVarRequiredByVarGroup( + name, + packageVarGroups, + packageVarGroupSelections + ); + results[name] = validatePackagePolicyConfig( varEntry, packageVarsByName[name], name, - safeLoadYaml + safeLoadYaml, + undefined, + requiredByVarGroup ); return results; }, {} as ValidationEntry); @@ -330,6 +417,14 @@ export const validatePackagePolicy = ( return reqVarDefs; }, {}); + // Build cache for stream-level var_groups + const streamVarGroupsByDatasetAndInput = Object.entries(streamsByDatasetAndInput).reduce< + Record + >((varGroupDefs, [path, stream]) => { + varGroupDefs[path] = stream.var_groups; + return varGroupDefs; + }, {}); + // Validate each package policy input with either its own var fields and stream vars packagePolicy.inputs.forEach((input) => { if (!input.vars && !input.streams) { @@ -374,13 +469,29 @@ export const validatePackagePolicy = ( if (input.streams.length) { input.streams.forEach((stream) => { const streamValidationResults: PackagePolicyConfigValidationResults = {}; + const streamKey = `${stream.data_stream.dataset}-${input.type}`; + + const streamVarDefs = streamVarDefsByDatasetAndInput[streamKey]; + const streamVarGroups = streamVarGroupsByDatasetAndInput[streamKey]; + const streamVarGroupSelections = stream.var_group_selections; - const streamVarDefs = - streamVarDefsByDatasetAndInput[`${stream.data_stream.dataset}-${input.type}`]; if (streamVarDefs && Object.keys(streamVarDefs).length) { streamValidationResults.vars = Object.keys(streamVarDefs).reduce((results, name) => { const configEntry = stream?.vars?.[name]; + // Skip validation for vars not visible due to var_group selections + if (!shouldValidateVar(name, streamVarGroups, streamVarGroupSelections)) { + results[name] = null; + return results; + } + + // Check if var is required due to var_group.required + const requiredByVarGroup = isVarRequiredByVarGroup( + name, + streamVarGroups, + streamVarGroupSelections + ); + results[name] = input.enabled && stream.enabled ? validatePackagePolicyConfig( @@ -388,7 +499,8 @@ export const validatePackagePolicy = ( streamVarDefs[name], name, safeLoadYaml, - packageInfo.type + packageInfo.type, + requiredByVarGroup ) : null; @@ -399,7 +511,7 @@ export const validatePackagePolicy = ( if (stream.vars && stream.enabled) { const requiredVars = validatePackageRequiredVars( stream, - streamRequiredVarsDefsByDataAndInput[`${stream.data_stream.dataset}-${input.type}`] + streamRequiredVarsDefsByDataAndInput[streamKey] ); if (requiredVars) { streamValidationResults.required_vars = requiredVars; @@ -429,7 +541,8 @@ export const validatePackagePolicyConfig = ( varDef: RegistryVarsEntry, varName: string, safeLoadYaml: (yaml: string) => any, - packageType?: string + packageType?: string, + isRequiredByVarGroup?: boolean ): string[] | null => { const errors: string[] = []; @@ -449,7 +562,10 @@ export const validatePackagePolicyConfig = ( return null; } - if (varDef.required) { + // Check if var is required - either by varDef.required or by var_group.required + const isRequired = varDef.required || isRequiredByVarGroup; + + if (isRequired) { if (parsedValue === undefined || (varDef.type === 'yaml' && parsedValue === '')) { errors.push( i18n.translate('xpack.fleet.packagePolicyValidation.requiredErrorMessage', { @@ -526,7 +642,7 @@ export const validatePackagePolicyConfig = ( ); return errors; } - if (varDef.required && Array.isArray(parsedValue)) { + if (isRequired && Array.isArray(parsedValue)) { const hasEmptyString = varDef.type === 'text' && parsedValue.some((item) => typeof item === 'string' && item.trim() === ''); diff --git a/x-pack/platform/plugins/shared/fleet/common/types/models/epm.ts b/x-pack/platform/plugins/shared/fleet/common/types/models/epm.ts index 036de003983f0..0a4d1c2fc3d32 100644 --- a/x-pack/platform/plugins/shared/fleet/common/types/models/epm.ts +++ b/x-pack/platform/plugins/shared/fleet/common/types/models/epm.ts @@ -18,7 +18,12 @@ import type { } from '../../constants'; import type { CloudConnectors, ValueOf } from '..'; -import type { PackageSpecManifest, PackageSpecIcon, PackageSpecCategory } from './package_spec'; +import type { + PackageSpecManifest, + PackageSpecIcon, + PackageSpecCategory, + RegistryVarGroup, +} from './package_spec'; export type InstallationStatus = typeof installationStatuses; @@ -297,6 +302,7 @@ export enum RegistryInputKeys { required_vars = 'required_vars', vars = 'vars', deployment_modes = 'deployment_modes', + hide_in_var_group_options = 'hide_in_var_group_options', } export type RegistryInputGroup = 'logs' | 'metrics'; @@ -311,6 +317,7 @@ export interface RegistryInput { [RegistryInputKeys.required_vars]?: RegistryRequiredVars; [RegistryInputKeys.vars]?: RegistryVarsEntry[]; [RegistryInputKeys.deployment_modes]?: string[]; + [RegistryInputKeys.hide_in_var_group_options]?: Record; } export enum RegistryStreamKeys { @@ -322,6 +329,7 @@ export enum RegistryStreamKeys { vars = 'vars', template_path = 'template_path', ingestion_method = 'ingestion_method', + var_groups = 'var_groups', } export interface RegistryStream { @@ -333,6 +341,7 @@ export interface RegistryStream { [RegistryStreamKeys.vars]?: RegistryVarsEntry[]; [RegistryStreamKeys.template_path]: string; [RegistryStreamKeys.ingestion_method]?: string; + [RegistryStreamKeys.var_groups]?: RegistryVarGroup[]; } export type RegistryStreamWithDataStream = RegistryStream & { data_stream: RegistryDataStream }; diff --git a/x-pack/platform/plugins/shared/fleet/common/types/models/package_policy.ts b/x-pack/platform/plugins/shared/fleet/common/types/models/package_policy.ts index 09aa199926ad7..33b8369d343f4 100644 --- a/x-pack/platform/plugins/shared/fleet/common/types/models/package_policy.ts +++ b/x-pack/platform/plugins/shared/fleet/common/types/models/package_policy.ts @@ -49,6 +49,7 @@ export interface NewPackagePolicyInputStream { }; release?: RegistryRelease; vars?: PackagePolicyConfigRecord; + var_group_selections?: Record; config?: PackagePolicyConfigRecord; } @@ -90,6 +91,7 @@ export interface NewPackagePolicy { package?: PackagePolicyPackage; inputs: NewPackagePolicyInput[]; vars?: PackagePolicyConfigRecord; + var_group_selections?: Record; elasticsearch?: { privileges?: { cluster?: string[]; diff --git a/x-pack/platform/plugins/shared/fleet/common/types/models/package_policy_schema.ts b/x-pack/platform/plugins/shared/fleet/common/types/models/package_policy_schema.ts index 4816f82668501..905027ec55b4f 100644 --- a/x-pack/platform/plugins/shared/fleet/common/types/models/package_policy_schema.ts +++ b/x-pack/platform/plugins/shared/fleet/common/types/models/package_policy_schema.ts @@ -37,6 +37,15 @@ export const ConfigRecordSchema = schema.recordOf( } ); +export const VarGroupSelectionsSchema = schema.maybe( + schema.recordOf(schema.string(), schema.string(), { + meta: { + description: + 'Variable group selections. Maps var_group name to the selected option name within that group.', + }, + }) +); + const PackagePolicyStreamsSchema = { id: schema.maybe(schema.string()), // BWC < 7.11 enabled: schema.boolean(), @@ -60,6 +69,7 @@ const PackagePolicyStreamsSchema = { ), }), vars: schema.maybe(ConfigRecordSchema), + var_group_selections: VarGroupSelectionsSchema, config: schema.maybe(ConfigRecordSchema), compiled_stream: schema.maybe(schema.any()), }; @@ -169,6 +179,7 @@ export const PackagePolicyBaseSchema = { inputs: schema.arrayOf(schema.object(PackagePolicyInputsSchema), { maxSize: 1000 }), vars: schema.maybe(ConfigRecordSchema), + var_group_selections: VarGroupSelectionsSchema, overrides: schema.maybe( schema.oneOf([ schema.literal(null), @@ -334,6 +345,7 @@ export const SimplifiedPackagePolicyInputsSchema = schema.maybe( }) ), vars: schema.maybe(SimplifiedVarsSchema), + var_group_selections: VarGroupSelectionsSchema, }), { meta: { @@ -394,6 +406,7 @@ export const SimplifiedPackagePolicyBaseSchema = schema.object({ ), output_id: schema.maybe(schema.oneOf([schema.literal(null), schema.string()])), vars: schema.maybe(SimplifiedVarsSchema), + var_group_selections: VarGroupSelectionsSchema, inputs: SimplifiedPackagePolicyInputsSchema, supports_agentless: schema.maybe( schema.nullable( diff --git a/x-pack/platform/plugins/shared/fleet/common/types/models/package_spec.ts b/x-pack/platform/plugins/shared/fleet/common/types/models/package_spec.ts index a59187bd3d909..1a61080750dc4 100644 --- a/x-pack/platform/plugins/shared/fleet/common/types/models/package_spec.ts +++ b/x-pack/platform/plugins/shared/fleet/common/types/models/package_spec.ts @@ -7,6 +7,25 @@ import type { RegistryElasticsearch, RegistryPolicyTemplate, RegistryVarsEntry } from './epm'; +export interface RegistryVarGroupOption { + name: string; + title: string; + description?: string; + vars: string[]; + hide_in_deployment_modes?: Array<'default' | 'agentless'>; + // Additional properties allowed for feature-specific extensions (e.g., provider, iac_template_url) + [key: string]: unknown; +} + +export interface RegistryVarGroup { + name: string; + title: string; + selector_title: string; + description?: string; + required?: boolean; // When true, all vars in the selected option are treated as required + options: RegistryVarGroupOption[]; +} + // Based on https://github.com/elastic/package-spec/blob/master/versions/1/manifest.spec.yml#L8 export interface PackageSpecManifest { format_version?: string; @@ -27,6 +46,7 @@ export interface PackageSpecManifest { policy_templates_behavior?: 'all' | 'combined_policy' | 'individual_policies'; policy_templates?: RegistryPolicyTemplate[]; vars?: RegistryVarsEntry[]; + var_groups?: RegistryVarGroup[]; owner: { github?: string; type?: 'elastic' | 'partner' | 'community' }; elasticsearch?: Pick< RegistryElasticsearch, diff --git a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/hooks.test.tsx b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/hooks.test.tsx index 2040a0f2ad748..81853da509f25 100644 --- a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/hooks.test.tsx +++ b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/hooks.test.tsx @@ -5,15 +5,16 @@ * 2.0. */ -import { waitFor } from '@testing-library/react'; +import { waitFor, renderHook, act } from '@testing-library/react'; import { createFleetTestRendererMock } from '../../../../../../../../mock'; import type { MockedFleetStartServices } from '../../../../../../../../mock'; import { useLicense } from '../../../../../../../../hooks/use_license'; import type { LicenseService } from '../../../../../../services'; import type { PackagePolicy } from '../../../../../../../../../common/types'; +import type { RegistryVarGroup } from '../../../../../../types'; -import { useOutputs } from './hooks'; +import { useOutputs, useVarGroupSelections } from './hooks'; jest.mock('../../../../../../../../hooks/use_license'); @@ -148,3 +149,250 @@ describe('useOutputs', () => { expect(result.current.allowedOutputs).toHaveLength(0); }); }); + +const mockVarGroups: RegistryVarGroup[] = [ + { + name: 'auth_method', + title: 'Authentication', + selector_title: 'Select method', + options: [ + { + name: 'cloud_connector', + title: 'Cloud Connector', + vars: ['connector_id'], + hide_in_deployment_modes: ['default'], + }, + { name: 'api_key', title: 'API Key', vars: ['api_key_var'] }, + { name: 'oauth', title: 'OAuth', vars: ['client_id', 'client_secret'] }, + ], + }, +]; + +describe('useVarGroupSelections', () => { + let mockOnSelectionsChange: jest.Mock; + + beforeEach(() => { + mockOnSelectionsChange = jest.fn(); + }); + + afterEach(() => { + jest.clearAllMocks(); + }); + + describe('selections derivation', () => { + it('should return saved selections when provided', () => { + const savedSelections = { auth_method: 'oauth' }; + + const { result } = renderHook(() => + useVarGroupSelections({ + varGroups: mockVarGroups, + savedSelections, + isAgentlessEnabled: false, + onSelectionsChange: mockOnSelectionsChange, + }) + ); + + expect(result.current.selections).toEqual({ auth_method: 'oauth' }); + }); + + it('should compute defaults when savedSelections is undefined and deployment mode is default', () => { + const { result } = renderHook(() => + useVarGroupSelections({ + varGroups: mockVarGroups, + savedSelections: undefined, + isAgentlessEnabled: false, + onSelectionsChange: mockOnSelectionsChange, + }) + ); + + // First visible option (api_key) should be selected + expect(result.current.selections).toEqual({ auth_method: 'api_key' }); + }); + + it('should return empty object when varGroups is undefined', () => { + const { result } = renderHook(() => + useVarGroupSelections({ + varGroups: undefined, + savedSelections: undefined, + isAgentlessEnabled: false, + onSelectionsChange: mockOnSelectionsChange, + }) + ); + + expect(result.current.selections).toEqual({}); + }); + }); + + describe('initialization effect', () => { + it('should call onSelectionsChange with defaults on mount when savedSelections is undefined', () => { + renderHook(() => + useVarGroupSelections({ + varGroups: mockVarGroups, + savedSelections: undefined, + isAgentlessEnabled: false, + onSelectionsChange: mockOnSelectionsChange, + }) + ); + + expect(mockOnSelectionsChange).toHaveBeenCalledWith({ + var_group_selections: { auth_method: 'api_key' }, + }); + }); + + it('should not call onSelectionsChange when savedSelections is already set', () => { + renderHook(() => + useVarGroupSelections({ + varGroups: mockVarGroups, + savedSelections: { auth_method: 'oauth' }, + isAgentlessEnabled: false, + onSelectionsChange: mockOnSelectionsChange, + }) + ); + + expect(mockOnSelectionsChange).not.toHaveBeenCalled(); + }); + + it('should not call onSelectionsChange when varGroups is undefined', () => { + renderHook(() => + useVarGroupSelections({ + varGroups: undefined, + savedSelections: undefined, + isAgentlessEnabled: false, + onSelectionsChange: mockOnSelectionsChange, + }) + ); + + expect(mockOnSelectionsChange).not.toHaveBeenCalled(); + }); + + it('should not call onSelectionsChange when varGroups is empty', () => { + renderHook(() => + useVarGroupSelections({ + varGroups: [], + savedSelections: undefined, + isAgentlessEnabled: false, + onSelectionsChange: mockOnSelectionsChange, + }) + ); + + expect(mockOnSelectionsChange).not.toHaveBeenCalled(); + }); + }); + + describe('handleSelectionChange', () => { + it('should call onSelectionsChange with updated selections', () => { + const savedSelections = { auth_method: 'api_key' }; + + const { result } = renderHook(() => + useVarGroupSelections({ + varGroups: mockVarGroups, + savedSelections, + isAgentlessEnabled: false, + onSelectionsChange: mockOnSelectionsChange, + }) + ); + + act(() => { + result.current.handleSelectionChange('auth_method', 'oauth'); + }); + + expect(mockOnSelectionsChange).toHaveBeenCalledWith({ + var_group_selections: { auth_method: 'oauth' }, + }); + }); + + it('should merge with existing selections when changing', () => { + const savedSelections = { auth_method: 'api_key', other_group: 'existing' }; + + const { result } = renderHook(() => + useVarGroupSelections({ + varGroups: mockVarGroups, + savedSelections, + isAgentlessEnabled: false, + onSelectionsChange: mockOnSelectionsChange, + }) + ); + + act(() => { + result.current.handleSelectionChange('auth_method', 'oauth'); + }); + + expect(mockOnSelectionsChange).toHaveBeenCalledWith({ + var_group_selections: { auth_method: 'oauth', other_group: 'existing' }, + }); + }); + + it('should handle selection change when savedSelections is undefined', () => { + const { result } = renderHook(() => + useVarGroupSelections({ + varGroups: mockVarGroups, + savedSelections: undefined, + isAgentlessEnabled: false, + onSelectionsChange: mockOnSelectionsChange, + }) + ); + + // Clear the initialization call + mockOnSelectionsChange.mockClear(); + + act(() => { + result.current.handleSelectionChange('auth_method', 'oauth'); + }); + + expect(mockOnSelectionsChange).toHaveBeenCalledWith({ + var_group_selections: { auth_method: 'oauth' }, + }); + }); + }); + + describe('re-renders and memoization', () => { + it('should not re-compute selections if dependencies do not change', () => { + const savedSelections = { auth_method: 'oauth' }; + + const { result, rerender } = renderHook((props) => useVarGroupSelections(props), { + initialProps: { + varGroups: mockVarGroups, + savedSelections, + isAgentlessEnabled: false, + onSelectionsChange: mockOnSelectionsChange, + }, + }); + + const initialSelections = result.current.selections; + + // Rerender with same props + rerender({ + varGroups: mockVarGroups, + savedSelections, + isAgentlessEnabled: false, + onSelectionsChange: mockOnSelectionsChange, + }); + + // Should be the same reference (memoized) + expect(result.current.selections).toBe(initialSelections); + }); + + it('should re-compute selections when savedSelections changes', () => { + const { result, rerender } = renderHook((props) => useVarGroupSelections(props), { + initialProps: { + varGroups: mockVarGroups, + savedSelections: { auth_method: 'api_key' }, + isAgentlessEnabled: false, + onSelectionsChange: mockOnSelectionsChange, + }, + }); + + expect(result.current.selections).toEqual({ auth_method: 'api_key' }); + + // Rerender with different savedSelections + rerender({ + varGroups: mockVarGroups, + savedSelections: { auth_method: 'oauth' }, + isAgentlessEnabled: false, + onSelectionsChange: mockOnSelectionsChange, + }); + + expect(result.current.selections).toEqual({ auth_method: 'oauth' }); + }); + }); +}); diff --git a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/hooks.tsx b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/hooks.tsx index 160014c69daf0..8d0dcb51a3f6e 100644 --- a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/hooks.tsx +++ b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/hooks.tsx @@ -5,14 +5,20 @@ * 2.0. */ -import { useMemo } from 'react'; +import { useMemo, useEffect, useCallback } from 'react'; import { useHistory } from 'react-router-dom'; import { LICENCE_FOR_OUTPUT_PER_INTEGRATION } from '../../../../../../../../../common/constants'; import type { PackagePolicy } from '../../../../../../../../../common/types'; +import type { RegistryVarGroup } from '../../../../../../types'; import { getAllowedOutputTypesForPackagePolicy } from '../../../../../../../../../common/services/output_helpers'; import { useGetOutputs, useLicense } from '../../../../../../hooks'; +import { + computeDefaultVarGroupSelections, + type VarGroupSelection, +} from '../../../services/var_group_helpers'; + export function useDataStreamId() { const history = useHistory(); @@ -46,3 +52,52 @@ export function useOutputs( allowedOutputs, }; } + +interface UseVarGroupSelectionsParams { + varGroups: RegistryVarGroup[] | undefined; + savedSelections: VarGroupSelection | undefined; + isAgentlessEnabled: boolean; + onSelectionsChange: (update: { var_group_selections: VarGroupSelection }) => void; +} + +/** + * Hook for managing var group selections state. + * Handles deriving current selections, initializing defaults, and selection changes. + */ +export function useVarGroupSelections({ + varGroups, + savedSelections, + isAgentlessEnabled, + onSelectionsChange, +}: UseVarGroupSelectionsParams) { + // Derive current selections from saved or compute defaults + const selections = useMemo((): VarGroupSelection => { + if (savedSelections) return savedSelections; + return computeDefaultVarGroupSelections(varGroups, isAgentlessEnabled); + }, [savedSelections, varGroups, isAgentlessEnabled]); + + // Initialize with defaults on mount if not already set + useEffect(() => { + if (varGroups && varGroups.length > 0 && !savedSelections) { + const defaults = computeDefaultVarGroupSelections(varGroups, isAgentlessEnabled); + if (Object.keys(defaults).length > 0) { + onSelectionsChange({ var_group_selections: defaults }); + } + } + }, [varGroups, isAgentlessEnabled, savedSelections, onSelectionsChange]); + + // Handle selection change + const handleSelectionChange = useCallback( + (groupName: string, optionName: string) => { + onSelectionsChange({ + var_group_selections: { + ...savedSelections, + [groupName]: optionName, + }, + }); + }, + [savedSelections, onSelectionsChange] + ); + + return { selections, handleSelectionChange }; +} diff --git a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/index.ts b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/index.ts index a12c67b7d51ad..fa885034f96a0 100644 --- a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/index.ts +++ b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/index.ts @@ -7,3 +7,5 @@ export { PackagePolicyInputPanel } from './package_policy_input_panel'; export { PackagePolicyInputVarField } from './package_policy_input_var_field'; +export { VarGroupSelector } from './var_group_selector'; +export { useVarGroupSelections } from './hooks'; diff --git a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/package_policy_input_panel.tsx b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/package_policy_input_panel.tsx index 9d2b486856b85..7853b024fd4d6 100644 --- a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/package_policy_input_panel.tsx +++ b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/package_policy_input_panel.tsx @@ -82,6 +82,7 @@ export const PackagePolicyInputPanel: React.FunctionComponent<{ inputValidationResults: PackagePolicyInputValidationResults; forceShowErrors?: boolean; isEditPage?: boolean; + varGroupSelections?: Record; }> = memo( ({ packageInput, @@ -92,6 +93,7 @@ export const PackagePolicyInputPanel: React.FunctionComponent<{ inputValidationResults, forceShowErrors, isEditPage = false, + varGroupSelections = {}, }) => { const defaultDataStreamId = useDataStreamId(); const { isAgentlessEnabled } = useAgentless(); @@ -311,6 +313,7 @@ export const PackagePolicyInputPanel: React.FunctionComponent<{ } forceShowErrors={forceShowErrors} isEditPage={isEditPage} + varGroupSelections={varGroupSelections} /> {index !== inputStreams.length - 1 ? ( <> diff --git a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/package_policy_input_stream.test.tsx b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/package_policy_input_stream.test.tsx new file mode 100644 index 0000000000000..f0c80825bc9fc --- /dev/null +++ b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/package_policy_input_stream.test.tsx @@ -0,0 +1,401 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { fireEvent, waitFor } from '@testing-library/react'; + +import { createFleetTestRendererMock } from '../../../../../../../../mock'; +import type { TestRenderer } from '../../../../../../../../mock'; +import { useAgentless } from '../../../single_page_layout/hooks/setup_technology'; + +import type { + PackageInfo, + RegistryStreamWithDataStream, + NewPackagePolicyInputStream, + RegistryVarGroup, +} from '../../../../../../types'; + +import { PackagePolicyInputStreamConfig } from './package_policy_input_stream'; + +jest.mock('../../../single_page_layout/hooks/setup_technology', () => { + return { + useAgentless: jest.fn(), + }; +}); + +jest.mock('react-router-dom', () => ({ + ...jest.requireActual('react-router-dom'), + useRouteMatch: () => ({ + params: {}, + }), +})); + +const useAgentlessMock = useAgentless as jest.MockedFunction; + +// Mock stream-level var_group +const mockStreamVarGroup: RegistryVarGroup = { + name: 'auth_method', + title: 'Authentication Method', + selector_title: 'Choose authentication', + description: 'Select how to authenticate to the service.', + options: [ + { + name: 'api_key', + title: 'API Key', + description: 'Authenticate using an API key.', + vars: ['api_key'], + }, + { + name: 'oauth', + title: 'OAuth', + description: 'Authenticate using OAuth.', + vars: ['client_id', 'client_secret'], + }, + { + name: 'cloud_connector', + title: 'Cloud Connector', + vars: ['connector_id'], + hide_in_deployment_modes: ['default'], + }, + ], +}; + +// Package input stream with stream-level var_groups +const mockPackageInputStreamWithVarGroups: RegistryStreamWithDataStream = { + input: 'httpjson', + title: 'Collect logs via API', + template_path: 'stream.yml.hbs', + var_groups: [mockStreamVarGroup], + vars: [ + { + name: 'api_key', + type: 'password', + title: 'API Key', + required: true, + show_user: true, + }, + { + name: 'client_id', + type: 'text', + title: 'Client ID', + required: true, + show_user: true, + }, + { + name: 'client_secret', + type: 'password', + title: 'Client Secret', + required: true, + show_user: true, + }, + { + name: 'connector_id', + type: 'text', + title: 'Connector ID', + required: true, + show_user: true, + }, + { + name: 'url', + type: 'text', + title: 'API URL', + required: true, + show_user: true, + }, + ], + description: 'Collect logs from an HTTP API', + data_stream: { + title: 'API Logs', + release: 'ga', + type: 'logs', + package: 'test_package', + dataset: 'test_package.api_logs', + path: 'api_logs', + elasticsearch: {}, + ingest_pipeline: 'default', + streams: [], + }, +}; + +// Package policy input stream (what gets saved) +const mockPackagePolicyInputStream: NewPackagePolicyInputStream = { + id: 'stream-1', + enabled: true, + data_stream: { + type: 'logs', + dataset: 'test_package.api_logs', + }, + vars: { + api_key: { type: 'password', value: '' }, + client_id: { type: 'text', value: '' }, + client_secret: { type: 'password', value: '' }, + connector_id: { type: 'text', value: '' }, + url: { type: 'text', value: 'https://api.example.com' }, + }, +}; + +const mockPackageInfo: PackageInfo = { + name: 'test_package', + version: '1.0.0', + title: 'Test Package', + description: 'A test package for var_groups', + type: 'integration', + format_version: '3.0.0', + owner: { github: 'elastic/integrations', type: 'elastic' }, + categories: ['custom'], + data_streams: [], + policy_templates: [], + assets: { kibana: {} }, + status: 'installed', +} as unknown as PackageInfo; + +describe('PackagePolicyInputStreamConfig', () => { + let testRenderer: TestRenderer; + let renderResult: ReturnType; + let mockUpdatePackagePolicyInputStream: jest.Mock; + + beforeEach(() => { + testRenderer = createFleetTestRendererMock(); + mockUpdatePackagePolicyInputStream = jest.fn(); + + useAgentlessMock.mockReturnValue({ + isAgentlessEnabled: false, + isAgentlessDefault: false, + isAgentlessAgentPolicy: jest.fn(), + isAgentlessIntegration: jest.fn(), + isServerless: false, + isCloud: false, + }); + }); + + afterEach(() => { + jest.resetAllMocks(); + }); + + const render = ( + packageInputStream: RegistryStreamWithDataStream = mockPackageInputStreamWithVarGroups, + packagePolicyInputStream: NewPackagePolicyInputStream = mockPackagePolicyInputStream, + packageInfo: PackageInfo = mockPackageInfo + ) => { + renderResult = testRenderer.render( + + ); + }; + + describe('stream-level var_groups', () => { + it('test data has var_groups defined', () => { + // Sanity check that our test data is correctly structured + expect(mockPackageInputStreamWithVarGroups.var_groups).toBeDefined(); + expect(mockPackageInputStreamWithVarGroups.var_groups).toHaveLength(1); + expect(mockPackageInputStreamWithVarGroups.var_groups![0].name).toBe('auth_method'); + expect(mockPackageInputStreamWithVarGroups.var_groups![0].options).toHaveLength(3); + }); + + it('should render VarGroupSelector when stream has var_groups', async () => { + render(); + + await waitFor(() => { + expect(renderResult.getByText('Authentication Method')).toBeInTheDocument(); + expect(renderResult.getByText('Choose authentication')).toBeInTheDocument(); + expect( + renderResult.getByText('Select how to authenticate to the service.') + ).toBeInTheDocument(); + }); + }); + + it('should show only vars for the selected option (api_key by default)', async () => { + render(); + + await waitFor(() => { + // API Key var should be visible (first option is selected by default) + // Use test-subj which is more reliable than text matching for input fields + expect(renderResult.getByTestId('passwordInput-api-key')).toBeInTheDocument(); + + // OAuth vars should be hidden + expect(renderResult.queryByTestId('textInput-client-id')).not.toBeInTheDocument(); + expect(renderResult.queryByTestId('passwordInput-client-secret')).not.toBeInTheDocument(); + + // Common var (url) should always be visible + expect(renderResult.getByTestId('textInput-api-url')).toBeInTheDocument(); + }); + }); + + it('should show OAuth vars when oauth option is selected', async () => { + render(); + + await waitFor(() => { + expect(renderResult.getByTestId('varGroupSelector-auth_method')).toBeInTheDocument(); + }); + + const select = renderResult.getByTestId('varGroupSelector-auth_method'); + fireEvent.change(select, { target: { value: 'oauth' } }); + + // Verify callback was called with new selection + await waitFor(() => { + expect(mockUpdatePackagePolicyInputStream).toHaveBeenCalledWith({ + var_group_selections: { auth_method: 'oauth' }, + }); + }); + + // Re-render with updated props (simulating what parent component would do) + const updatedPolicyInputStream: NewPackagePolicyInputStream = { + ...mockPackagePolicyInputStream, + var_group_selections: { auth_method: 'oauth' }, + }; + renderResult.rerender( + + ); + + await waitFor(() => { + // OAuth vars should now be visible + expect(renderResult.getByTestId('textInput-client-id')).toBeInTheDocument(); + expect(renderResult.getByTestId('passwordInput-client-secret')).toBeInTheDocument(); + + // API Key should be hidden + expect(renderResult.queryByTestId('passwordInput-api-key')).not.toBeInTheDocument(); + }); + }); + + it('should persist var_group_selections to the policy when selection changes', async () => { + render(); + + await waitFor(() => { + expect(renderResult.getByTestId('varGroupSelector-auth_method')).toBeInTheDocument(); + }); + + const select = renderResult.getByTestId('varGroupSelector-auth_method'); + fireEvent.change(select, { target: { value: 'oauth' } }); + + await waitFor(() => { + expect(mockUpdatePackagePolicyInputStream).toHaveBeenCalledWith({ + var_group_selections: { auth_method: 'oauth' }, + }); + }); + }); + + it('should use saved var_group_selections from policy', async () => { + const policyWithSavedSelections: NewPackagePolicyInputStream = { + ...mockPackagePolicyInputStream, + var_group_selections: { auth_method: 'oauth' }, + }; + + render(mockPackageInputStreamWithVarGroups, policyWithSavedSelections); + + await waitFor(() => { + // OAuth vars should be visible (saved selection) + expect(renderResult.getByTestId('textInput-client-id')).toBeInTheDocument(); + expect(renderResult.getByTestId('passwordInput-client-secret')).toBeInTheDocument(); + + // API Key should be hidden + expect(renderResult.queryByTestId('passwordInput-api-key')).not.toBeInTheDocument(); + }); + }); + + it('should filter options based on deployment mode (agentless)', async () => { + useAgentlessMock.mockReturnValue({ + isAgentlessEnabled: true, + isAgentlessDefault: false, + isAgentlessAgentPolicy: jest.fn(), + isAgentlessIntegration: jest.fn(), + isServerless: false, + isCloud: true, + }); + + render(); + + await waitFor(() => { + const select = renderResult.getByTestId('varGroupSelector-auth_method'); + const options = Array.from(select.querySelectorAll('option')); + + // cloud_connector should be visible in agentless mode + expect(options.find((o) => o.value === 'cloud_connector')).toBeDefined(); + }); + }); + + it('should filter options based on deployment mode (default)', async () => { + useAgentlessMock.mockReturnValue({ + isAgentlessEnabled: false, + isAgentlessDefault: false, + isAgentlessAgentPolicy: jest.fn(), + isAgentlessIntegration: jest.fn(), + isServerless: false, + isCloud: false, + }); + + render(); + + await waitFor(() => { + const select = renderResult.getByTestId('varGroupSelector-auth_method'); + const options = Array.from(select.querySelectorAll('option')); + + // cloud_connector should be filtered out in default mode + expect(options.find((o) => o.value === 'cloud_connector')).toBeUndefined(); + }); + }); + + it('should not render VarGroupSelector when stream has no var_groups', async () => { + const streamWithoutVarGroups: RegistryStreamWithDataStream = { + ...mockPackageInputStreamWithVarGroups, + var_groups: undefined, + }; + + render(streamWithoutVarGroups); + + await waitFor(() => { + // No var group selector should be rendered + expect(renderResult.queryByText('Authentication Method')).not.toBeInTheDocument(); + + // All vars should be visible since there's no var_group filtering + expect(renderResult.getByTestId('passwordInput-api-key')).toBeInTheDocument(); + expect(renderResult.getByTestId('textInput-client-id')).toBeInTheDocument(); + expect(renderResult.getByTestId('passwordInput-client-secret')).toBeInTheDocument(); + }); + }); + + it('should use package-level var_groups when stream has none but package has them', async () => { + const packageInfoWithVarGroups: PackageInfo = { + ...mockPackageInfo, + var_groups: [mockStreamVarGroup], + }; + + const streamWithoutVarGroups: RegistryStreamWithDataStream = { + ...mockPackageInputStreamWithVarGroups, + var_groups: undefined, + }; + + // When stream has no var_groups but package does, the component uses the varGroupSelections prop + // Since we're not passing varGroupSelections, it defaults to {}, so NO filtering should occur + // (vars not controlled by any var_group are shown, vars controlled without selection are hidden) + render(streamWithoutVarGroups, mockPackagePolicyInputStream, packageInfoWithVarGroups); + + await waitFor(() => { + // Without varGroupSelections prop, package-level filtering hides all controlled vars + // Only the uncontrolled var (url) should be visible + expect(renderResult.getByTestId('textInput-api-url')).toBeInTheDocument(); + + // Controlled vars are hidden because no selection is provided + expect(renderResult.queryByTestId('passwordInput-api-key')).not.toBeInTheDocument(); + }); + }); + }); +}); diff --git a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/package_policy_input_stream.tsx b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/package_policy_input_stream.tsx index 5fbfa7f6a5087..a25e041ec43d2 100644 --- a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/package_policy_input_stream.tsx +++ b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/package_policy_input_stream.tsx @@ -52,12 +52,16 @@ import type { PackagePolicyConfigValidationResults } from '../../../services'; import { isAdvancedVar, validationHasErrors } from '../../../services'; import { PackagePolicyEditorDatastreamPipelines } from '../../datastream_pipelines'; import { PackagePolicyEditorDatastreamMappings } from '../../datastream_mappings'; +import { useAgentless } from '../../../single_page_layout/hooks/setup_technology'; import { useIndexTemplateExists } from '../../datastream_hooks'; +import { shouldShowVar, isVarRequiredByVarGroup } from '../../../services/var_group_helpers'; + import { PackagePolicyInputVarField } from './package_policy_input_var_field'; -import { useDataStreamId } from './hooks'; +import { useDataStreamId, useVarGroupSelections } from './hooks'; import { sortDatastreamsByDataset } from './sort_datastreams'; +import { VarGroupSelector } from './var_group_selector'; const ScrollAnchor = styled.div` display: none; @@ -73,6 +77,7 @@ interface Props { forceShowErrors?: boolean; isEditPage?: boolean; totalStreams?: number; + varGroupSelections?: Record; } export const PackagePolicyInputStreamConfig = memo( @@ -85,8 +90,10 @@ export const PackagePolicyInputStreamConfig = memo( forceShowErrors, isEditPage, totalStreams, + varGroupSelections = {}, }) => { const { docLinks } = useStartServices(); + const { isAgentlessEnabled } = useAgentless(); const { params: { packagePolicyId }, @@ -128,14 +135,49 @@ export const PackagePolicyInputStreamConfig = memo( } }, [isDefaultDatastream, containerRef]); - // Split vars into required and advanced + // Determine if this stream has its own var_groups (stream-level) or should use package-level + const hasStreamLevelVarGroups = + packageInputStream.var_groups && packageInputStream.var_groups.length > 0; + + // Use stream-level var_groups if present, otherwise fall back to package-level + const effectiveVarGroups = hasStreamLevelVarGroups + ? packageInputStream.var_groups + : packageInfo.var_groups; + + // Stream-level var group selections - derives from policy, initializes defaults, handles changes + const { + selections: streamVarGroupSelections, + handleSelectionChange: handleStreamVarGroupSelectionChange, + } = useVarGroupSelections({ + varGroups: hasStreamLevelVarGroups ? packageInputStream.var_groups : undefined, + savedSelections: packagePolicyInputStream.var_group_selections, + isAgentlessEnabled, + onSelectionsChange: updatePackagePolicyInputStream, + }); + + // Use stream-level selections, or fall back to package-level prop + const effectiveVarGroupSelections = hasStreamLevelVarGroups + ? streamVarGroupSelections + : varGroupSelections; + + // Split vars into required and advanced, filtering by var_group visibility const [requiredVars, advancedVars] = useMemo(() => { const _requiredVars: RegistryVarsEntry[] = []; const _advancedVars: RegistryVarsEntry[] = []; if (packageInputStream.vars && packageInputStream.vars.length) { packageInputStream.vars.forEach((varDef) => { - if (isAdvancedVar(varDef)) { + // Check if var should be shown based on var_group selections + // Use effective var_groups (stream-level if present, otherwise package-level) + if ( + effectiveVarGroups && + effectiveVarGroups.length > 0 && + !shouldShowVar(varDef.name, effectiveVarGroups, effectiveVarGroupSelections) + ) { + return; // Skip this var, it's hidden by var_group selection + } + + if (isAdvancedVar(varDef, effectiveVarGroups, effectiveVarGroupSelections)) { _advancedVars.push(varDef); } else { _requiredVars.push(varDef); @@ -143,7 +185,7 @@ export const PackagePolicyInputStreamConfig = memo( }); } return [_requiredVars, _advancedVars]; - }, [packageInputStream]); + }, [packageInputStream, effectiveVarGroups, effectiveVarGroupSelections]); // Errors state const hasErrors = forceShowErrors && validationHasErrors(inputStreamValidationResults); @@ -263,12 +305,30 @@ export const PackagePolicyInputStreamConfig = memo( + {/* Stream-level Var Group Selectors */} + {hasStreamLevelVarGroups && + packageInputStream.var_groups?.map((varGroup) => ( + + + + ))} + {requiredVars.map((varDef) => { if (!packagePolicyInputStream?.vars) return null; const { name: varName, type: varType } = varDef; const varConfigEntry = packagePolicyInputStream.vars?.[varName]; const value = varConfigEntry?.value; const frozen = varConfigEntry?.frozen ?? false; + const requiredByVarGroup = isVarRequiredByVarGroup( + varName, + effectiveVarGroups, + effectiveVarGroupSelections + ); return ( ( packageName={packageInfo.name} datastreams={datastreams} isEditPage={isEditPage} + isRequiredByVarGroup={requiredByVarGroup} /> ); @@ -406,6 +467,11 @@ export const PackagePolicyInputStreamConfig = memo( if (!packagePolicyInputStream.vars) return null; const { name: varName, type: varType } = varDef; const value = packagePolicyInputStream.vars?.[varName]?.value; + const requiredByVarGroup = isVarRequiredByVarGroup( + varName, + effectiveVarGroups, + effectiveVarGroupSelections + ); return ( @@ -429,6 +495,7 @@ export const PackagePolicyInputStreamConfig = memo( packageName={packageInfo.name} datastreams={datastreams} isEditPage={isEditPage} + isRequiredByVarGroup={requiredByVarGroup} /> ); diff --git a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/package_policy_input_var_field.tsx b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/package_policy_input_var_field.tsx index 685d2a444ccdf..af43fab7458c3 100644 --- a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/package_policy_input_var_field.tsx +++ b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/package_policy_input_var_field.tsx @@ -63,6 +63,7 @@ export interface InputFieldProps { packageName?: string; datastreams?: DataStream[]; isEditPage?: boolean; + isRequiredByVarGroup?: boolean; } type InputComponentProps = InputFieldProps & { @@ -86,6 +87,7 @@ export const PackagePolicyInputVarField: React.FunctionComponent { const fleetStatus = useFleetStatus(); const [isDirty, setIsDirty] = useState(false); @@ -96,7 +98,11 @@ export const PackagePolicyInputVarField: React.FunctionComponent type !== 'bool' && !required, [required, type]); + // A var is optional if it's not a bool, not required by varDef, and not required by var_group + const isOptional = useMemo( + () => type !== 'bool' && !required && !isRequiredByVarGroup, + [required, type, isRequiredByVarGroup] + ); const secretsStorageEnabled = fleetStatus.isReady && fleetStatus.isSecretsStorageEnabled; const useSecretsUi = secretsStorageEnabled && varDef.secret; diff --git a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/var_group_selector.test.tsx b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/var_group_selector.test.tsx new file mode 100644 index 0000000000000..257406f26d983 --- /dev/null +++ b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/var_group_selector.test.tsx @@ -0,0 +1,450 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { render, fireEvent, screen } from '@testing-library/react'; + +import type { RegistryVarGroup } from '../../../../../../types'; + +import { + getVisibleOptions, + getVisibleVarsForOption, + getVarsControlledByVarGroups, + shouldShowVar, + computeDefaultVarGroupSelections, + isVarRequiredByVarGroup, +} from '../../../services/var_group_helpers'; + +import { VarGroupSelector } from './var_group_selector'; + +const mockVarGroup: RegistryVarGroup = { + name: 'credential_type', + title: 'Setup Access', + selector_title: 'Preferred method', + description: 'Select how you want to authenticate.', + options: [ + { + name: 'direct_access_key', + title: 'Direct Access Keys', + description: 'Use access key ID and secret access key.', + vars: ['access_key_id', 'secret_access_key'], + }, + { + name: 'temporary_access_key', + title: 'Temporary Access Keys', + vars: ['access_key_id', 'secret_access_key', 'session_token'], + }, + { + name: 'cloud_connectors', + title: 'Cloud Connector', + vars: ['role_arn', 'external_id'], + hide_in_deployment_modes: ['default'], + }, + { + name: 'assume_role', + title: 'Assume Role', + vars: ['role_arn'], + hide_in_deployment_modes: ['agentless'], + }, + ], +}; + +describe('VarGroupSelector', () => { + describe('getVisibleOptions', () => { + it('should return all options when no deployment mode filtering applies', () => { + const varGroup: RegistryVarGroup = { + name: 'test', + title: 'Test', + selector_title: 'Select', + options: [ + { name: 'opt1', title: 'Option 1', vars: ['var1'] }, + { name: 'opt2', title: 'Option 2', vars: ['var2'] }, + ], + }; + + const visible = getVisibleOptions(varGroup, false); + expect(visible).toHaveLength(2); + expect(visible.map((o) => o.name)).toEqual(['opt1', 'opt2']); + }); + + it('should filter out options hidden in default deployment mode', () => { + const visible = getVisibleOptions(mockVarGroup, false); + expect(visible.map((o) => o.name)).toEqual([ + 'direct_access_key', + 'temporary_access_key', + 'assume_role', + ]); + expect(visible.find((o) => o.name === 'cloud_connectors')).toBeUndefined(); + }); + + it('should filter out options hidden in agentless deployment mode', () => { + const visible = getVisibleOptions(mockVarGroup, true); + expect(visible.map((o) => o.name)).toEqual([ + 'direct_access_key', + 'temporary_access_key', + 'cloud_connectors', + ]); + expect(visible.find((o) => o.name === 'assume_role')).toBeUndefined(); + }); + + it('should filter out options via hide_in_var_group_options', () => { + const hideInVarGroupOptions = { credential_type: ['direct_access_key'] }; + const visible = getVisibleOptions(mockVarGroup, false, hideInVarGroupOptions); + expect(visible.find((o) => o.name === 'direct_access_key')).toBeUndefined(); + }); + }); + + describe('getVisibleVarsForOption', () => { + it('should return vars for the selected option', () => { + const vars = getVisibleVarsForOption(mockVarGroup, 'direct_access_key'); + expect(vars).toEqual(['access_key_id', 'secret_access_key']); + }); + + it('should return undefined for unknown option', () => { + const vars = getVisibleVarsForOption(mockVarGroup, 'unknown'); + expect(vars).toBeUndefined(); + }); + + it('should return undefined when no option is selected', () => { + const vars = getVisibleVarsForOption(mockVarGroup, undefined); + expect(vars).toBeUndefined(); + }); + }); + + describe('getVarsControlledByVarGroups', () => { + it('should collect all vars from all options in all groups', () => { + const controlled = getVarsControlledByVarGroups([mockVarGroup]); + expect(controlled).toContain('access_key_id'); + expect(controlled).toContain('secret_access_key'); + expect(controlled).toContain('session_token'); + expect(controlled).toContain('role_arn'); + expect(controlled).toContain('external_id'); + }); + + it('should return empty set for empty var_groups', () => { + const controlled = getVarsControlledByVarGroups([]); + expect(controlled.size).toBe(0); + }); + }); + + describe('shouldShowVar', () => { + const varGroups = [mockVarGroup]; + + it('should show var not controlled by any var_group', () => { + const selections = { credential_type: 'direct_access_key' }; + expect(shouldShowVar('proxy_url', varGroups, selections)).toBe(true); + }); + + it('should show var when its option is selected', () => { + const selections = { credential_type: 'direct_access_key' }; + expect(shouldShowVar('access_key_id', varGroups, selections)).toBe(true); + expect(shouldShowVar('secret_access_key', varGroups, selections)).toBe(true); + }); + + it('should hide var when its option is not selected', () => { + const selections = { credential_type: 'direct_access_key' }; + expect(shouldShowVar('session_token', varGroups, selections)).toBe(false); + expect(shouldShowVar('role_arn', varGroups, selections)).toBe(false); + }); + + it('should show role_arn when assume_role is selected', () => { + const selections = { credential_type: 'assume_role' }; + expect(shouldShowVar('role_arn', varGroups, selections)).toBe(true); + }); + }); + + describe('computeDefaultVarGroupSelections', () => { + it('should return first visible option for each var_group', () => { + const defaults = computeDefaultVarGroupSelections([mockVarGroup], false); + expect(defaults).toEqual({ credential_type: 'direct_access_key' }); + }); + + it('should return empty object when varGroups is undefined', () => { + const defaults = computeDefaultVarGroupSelections(undefined, false); + expect(defaults).toEqual({}); + }); + + it('should return empty object when varGroups is empty', () => { + const defaults = computeDefaultVarGroupSelections([], false); + expect(defaults).toEqual({}); + }); + + it('should select first visible option based on deployment mode (default)', () => { + // In default mode, cloud_connectors is hidden, so first option is direct_access_key + const defaults = computeDefaultVarGroupSelections([mockVarGroup], false); + expect(defaults.credential_type).toBe('direct_access_key'); + }); + + it('should select first visible option based on deployment mode (agentless)', () => { + // In agentless mode, assume_role is hidden, so first option is still direct_access_key + const defaults = computeDefaultVarGroupSelections([mockVarGroup], true); + expect(defaults.credential_type).toBe('direct_access_key'); + }); + + it('should handle multiple var_groups', () => { + const multipleGroups: RegistryVarGroup[] = [ + { + name: 'auth_type', + title: 'Auth', + selector_title: 'Select', + options: [ + { name: 'api_key', title: 'API Key', vars: ['api_key'] }, + { name: 'oauth', title: 'OAuth', vars: ['client_id'] }, + ], + }, + { + name: 'connection_type', + title: 'Connection', + selector_title: 'Select', + options: [ + { name: 'direct', title: 'Direct', vars: ['host'] }, + { name: 'proxy', title: 'Proxy', vars: ['proxy_url'] }, + ], + }, + ]; + + const defaults = computeDefaultVarGroupSelections(multipleGroups, false); + expect(defaults).toEqual({ + auth_type: 'api_key', + connection_type: 'direct', + }); + }); + + it('should skip var_groups with no visible options', () => { + const groupWithAllHidden: RegistryVarGroup = { + name: 'hidden_group', + title: 'Hidden', + selector_title: 'Select', + options: [ + { + name: 'opt1', + title: 'Option 1', + vars: ['var1'], + hide_in_deployment_modes: ['default'], + }, + { + name: 'opt2', + title: 'Option 2', + vars: ['var2'], + hide_in_deployment_modes: ['default'], + }, + ], + }; + + // In default mode, all options are hidden + const defaults = computeDefaultVarGroupSelections([groupWithAllHidden], false); + expect(defaults).toEqual({}); + }); + + it('should respect hideInVarGroupOptions parameter', () => { + const hideInVarGroupOptions = { credential_type: ['direct_access_key'] }; + const defaults = computeDefaultVarGroupSelections( + [mockVarGroup], + false, + hideInVarGroupOptions + ); + // direct_access_key is hidden, so next visible option is temporary_access_key + expect(defaults.credential_type).toBe('temporary_access_key'); + }); + }); + + describe('VarGroupSelector component', () => { + const defaultProps = { + varGroup: mockVarGroup, + selectedOptionName: 'direct_access_key', + onSelectionChange: jest.fn(), + isAgentlessEnabled: false, + }; + + beforeEach(() => { + jest.clearAllMocks(); + }); + + it('should render the selector with title and options', () => { + render(); + + expect(screen.getByText('Setup Access')).toBeInTheDocument(); + expect(screen.getByText('Preferred method')).toBeInTheDocument(); + }); + + it('should render group description', () => { + render(); + + expect(screen.getByText('Select how you want to authenticate.')).toBeInTheDocument(); + }); + + it('should call onSelectionChange when option is selected', () => { + render(); + + const select = screen.getByTestId('varGroupSelector-credential_type'); + fireEvent.change(select, { target: { value: 'temporary_access_key' } }); + + expect(defaultProps.onSelectionChange).toHaveBeenCalledWith( + 'credential_type', + 'temporary_access_key' + ); + }); + + it('should not render if only one option is visible', () => { + const singleOptionGroup: RegistryVarGroup = { + name: 'single', + title: 'Single', + selector_title: 'Select', + options: [{ name: 'only_option', title: 'Only Option', vars: ['var1'] }], + }; + + const { container } = render( + + ); + + expect(container.firstChild).toBeNull(); + }); + + it('should filter options based on agentless deployment mode', () => { + render(); + + const select = screen.getByTestId('varGroupSelector-credential_type'); + const options = Array.from(select.querySelectorAll('option')); + + // assume_role should be filtered out in agentless mode + expect(options.find((o) => o.value === 'assume_role')).toBeUndefined(); + // cloud_connectors should be visible in agentless mode + expect(options.find((o) => o.value === 'cloud_connectors')).toBeDefined(); + }); + + it('should filter options based on default deployment mode', () => { + render(); + + const select = screen.getByTestId('varGroupSelector-credential_type'); + const options = Array.from(select.querySelectorAll('option')); + + // cloud_connectors should be filtered out in default mode + expect(options.find((o) => o.value === 'cloud_connectors')).toBeUndefined(); + // assume_role should be visible in default mode + expect(options.find((o) => o.value === 'assume_role')).toBeDefined(); + }); + }); + + describe('isVarRequiredByVarGroup', () => { + const requiredVarGroup: RegistryVarGroup = { + name: 'auth_method', + title: 'Authentication', + selector_title: 'Select method', + required: true, + options: [ + { + name: 'api_key', + title: 'API Key', + vars: ['api_key', 'api_url'], + }, + { + name: 'oauth', + title: 'OAuth', + vars: ['client_id', 'client_secret'], + }, + ], + }; + + const optionalVarGroup: RegistryVarGroup = { + name: 'compression', + title: 'Compression', + selector_title: 'Select type', + required: false, + options: [ + { + name: 'gzip', + title: 'Gzip', + vars: ['compression_level'], + }, + { + name: 'none', + title: 'None', + vars: [], + }, + ], + }; + + it('should return true for var in selected option of required var_group', () => { + const selections = { auth_method: 'api_key' }; + expect(isVarRequiredByVarGroup('api_key', [requiredVarGroup], selections)).toBe(true); + expect(isVarRequiredByVarGroup('api_url', [requiredVarGroup], selections)).toBe(true); + }); + + it('should return false for var not in selected option of required var_group', () => { + const selections = { auth_method: 'api_key' }; + expect(isVarRequiredByVarGroup('client_id', [requiredVarGroup], selections)).toBe(false); + expect(isVarRequiredByVarGroup('client_secret', [requiredVarGroup], selections)).toBe(false); + }); + + it('should return false for var in optional var_group', () => { + const selections = { compression: 'gzip' }; + expect(isVarRequiredByVarGroup('compression_level', [optionalVarGroup], selections)).toBe( + false + ); + }); + + it('should return false for var not controlled by any var_group', () => { + const selections = { auth_method: 'api_key' }; + expect(isVarRequiredByVarGroup('proxy_url', [requiredVarGroup], selections)).toBe(false); + }); + + it('should return false when varGroups is empty', () => { + expect(isVarRequiredByVarGroup('api_key', [], { auth_method: 'api_key' })).toBe(false); + }); + + it('should return false when varGroupSelections is empty', () => { + expect(isVarRequiredByVarGroup('api_key', [requiredVarGroup], {})).toBe(false); + }); + + it('should return true when oauth option is selected', () => { + const selections = { auth_method: 'oauth' }; + expect(isVarRequiredByVarGroup('client_id', [requiredVarGroup], selections)).toBe(true); + expect(isVarRequiredByVarGroup('client_secret', [requiredVarGroup], selections)).toBe(true); + // api_key vars should not be required when oauth is selected + expect(isVarRequiredByVarGroup('api_key', [requiredVarGroup], selections)).toBe(false); + }); + + it('should handle multiple var_groups with mixed required settings', () => { + const selections = { auth_method: 'api_key', compression: 'gzip' }; + // Required var_group var should be required + expect( + isVarRequiredByVarGroup('api_key', [requiredVarGroup, optionalVarGroup], selections) + ).toBe(true); + // Optional var_group var should not be required + expect( + isVarRequiredByVarGroup( + 'compression_level', + [requiredVarGroup, optionalVarGroup], + selections + ) + ).toBe(false); + }); + + it('should handle var_group without required field (defaults to false)', () => { + const varGroupWithoutRequired: RegistryVarGroup = { + name: 'test', + title: 'Test', + selector_title: 'Select', + // Note: no required field + options: [ + { + name: 'opt1', + title: 'Option 1', + vars: ['var1'], + }, + ], + }; + + const selections = { test: 'opt1' }; + expect(isVarRequiredByVarGroup('var1', [varGroupWithoutRequired], selections)).toBe(false); + }); + }); +}); diff --git a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/var_group_selector.tsx b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/var_group_selector.tsx new file mode 100644 index 0000000000000..5a0855eb71d2d --- /dev/null +++ b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/components/var_group_selector.tsx @@ -0,0 +1,116 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useMemo, useCallback, useEffect } from 'react'; +import { EuiFormRow, EuiSelect, EuiText, EuiSpacer, EuiTitle } from '@elastic/eui'; + +import type { RegistryVarGroup } from '../../../../../../types'; + +import { getVisibleOptions } from '../../../services/var_group_helpers'; + +interface VarGroupSelectorProps { + varGroup: RegistryVarGroup; + selectedOptionName: string | undefined; + onSelectionChange: (groupName: string, optionName: string) => void; + isAgentlessEnabled: boolean; + hideInVarGroupOptions?: Record; +} + +/** + * VarGroupSelector component renders a dropdown for selecting between + * mutually exclusive variable groups (e.g., authentication methods). + */ +export const VarGroupSelector: React.FC = ({ + varGroup, + selectedOptionName, + onSelectionChange, + isAgentlessEnabled, + hideInVarGroupOptions, +}) => { + const visibleOptions = useMemo( + () => getVisibleOptions(varGroup, isAgentlessEnabled, hideInVarGroupOptions), + [varGroup, isAgentlessEnabled, hideInVarGroupOptions] + ); + + // Auto-select first visible option if current selection is not visible + useEffect(() => { + if (visibleOptions.length === 0) return; + + const isCurrentSelectionVisible = visibleOptions.some((opt) => opt.name === selectedOptionName); + + if (!isCurrentSelectionVisible) { + // Reset to first visible option + onSelectionChange(varGroup.name, visibleOptions[0].name); + } + }, [visibleOptions, selectedOptionName, onSelectionChange, varGroup.name]); + + const handleChange = useCallback( + (e: React.ChangeEvent) => { + onSelectionChange(varGroup.name, e.target.value); + }, + [onSelectionChange, varGroup.name] + ); + + const selectOptions = useMemo( + () => + visibleOptions.map((option) => ({ + value: option.name, + text: option.title, + })), + [visibleOptions] + ); + + // Find the selected option to show its description + const selectedOption = useMemo( + () => visibleOptions.find((opt) => opt.name === selectedOptionName), + [visibleOptions, selectedOptionName] + ); + + // Don't render if no visible options + if (visibleOptions.length === 0) { + return null; + } + + // Don't render selector if only one option (but still use its vars) + if (visibleOptions.length === 1) { + return null; + } + + return ( + <> + {/* Section title */} + +

{varGroup.title}

+
+ + {/* Group description */} + {varGroup.description && ( + <> + + + {varGroup.description} + + + )} + + + + {/* Selector dropdown */} + + + + + + + ); +}; diff --git a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/step_configure_package.test.tsx b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/step_configure_package.test.tsx index 3dab923fc5514..f1a66e2b1f984 100644 --- a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/step_configure_package.test.tsx +++ b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/step_configure_package.test.tsx @@ -15,7 +15,10 @@ import type { NewPackagePolicy, PackageInfo } from '../../../../../types'; import { validatePackagePolicy } from '../../services'; -import { StepConfigurePackagePolicy } from './step_configure_package'; +import { + StepConfigurePackagePolicy, + isInputCompatibleWithVarGroupSelections, +} from './step_configure_package'; describe('StepConfigurePackage', () => { let packageInfo: PackageInfo; @@ -217,3 +220,113 @@ describe('StepConfigurePackage', () => { expect(await renderResult.queryByText('Some agentless input')).not.toBeInTheDocument(); }); }); + +describe('isInputCompatibleWithVarGroupSelections', () => { + // Basic Compatibility Tests + it('should return true when input has no hide_in_var_group_options', () => { + const input = { type: 'httpjson', title: 'Test Input' } as any; + const selections = { credential_type: 'direct_access_key' }; + expect(isInputCompatibleWithVarGroupSelections(input, selections)).toBe(true); + }); + + it('should return true when hide_in_var_group_options is empty object', () => { + const input = { + type: 'httpjson', + title: 'Test Input', + hide_in_var_group_options: {}, + } as any; + const selections = { credential_type: 'direct_access_key' }; + expect(isInputCompatibleWithVarGroupSelections(input, selections)).toBe(true); + }); + + // Selection Matching Tests + it('should return true when selected option is NOT in the hidden list', () => { + const input = { + type: 'aws-s3', + title: 'AWS S3 Input', + hide_in_var_group_options: { credential_type: ['cloud_connectors'] }, + } as any; + const selections = { credential_type: 'direct_access_key' }; + expect(isInputCompatibleWithVarGroupSelections(input, selections)).toBe(true); + }); + + it('should return false when selected option IS in the hidden list', () => { + const input = { + type: 'aws-s3', + title: 'AWS S3 Input', + hide_in_var_group_options: { credential_type: ['cloud_connectors'] }, + } as any; + const selections = { credential_type: 'cloud_connectors' }; + expect(isInputCompatibleWithVarGroupSelections(input, selections)).toBe(false); + }); + + it('should return true when no selection exists for the var group', () => { + const input = { + type: 'aws-s3', + title: 'AWS S3 Input', + hide_in_var_group_options: { credential_type: ['cloud_connectors'] }, + } as any; + const selections = {}; + expect(isInputCompatibleWithVarGroupSelections(input, selections)).toBe(true); + }); + + // Multiple Groups Tests + it('should check all var groups and return false if ANY match', () => { + const input = { + type: 'test-input', + title: 'Test Input', + hide_in_var_group_options: { + credential_type: ['cloud_connectors'], + auth_method: ['oauth'], + }, + } as any; + // First group doesn't match, but second does + const selections = { credential_type: 'direct_access_key', auth_method: 'oauth' }; + expect(isInputCompatibleWithVarGroupSelections(input, selections)).toBe(false); + }); + + it('should return true only when no groups have matching hidden options', () => { + const input = { + type: 'test-input', + title: 'Test Input', + hide_in_var_group_options: { + credential_type: ['cloud_connectors'], + auth_method: ['oauth'], + }, + } as any; + const selections = { credential_type: 'direct_access_key', auth_method: 'basic' }; + expect(isInputCompatibleWithVarGroupSelections(input, selections)).toBe(true); + }); + + // Multiple Hidden Options Tests + it('should return false when selected option matches any item in the hidden array', () => { + const input = { + type: 'aws-s3', + title: 'AWS S3 Input', + hide_in_var_group_options: { credential_type: ['cloud_connectors', 'assume_role'] }, + } as any; + const selections = { credential_type: 'assume_role' }; + expect(isInputCompatibleWithVarGroupSelections(input, selections)).toBe(false); + }); + + it('should return true when selected option does not match any item in array', () => { + const input = { + type: 'aws-s3', + title: 'AWS S3 Input', + hide_in_var_group_options: { credential_type: ['cloud_connectors', 'assume_role'] }, + } as any; + const selections = { credential_type: 'direct_access_key' }; + expect(isInputCompatibleWithVarGroupSelections(input, selections)).toBe(true); + }); + + // Edge Cases + it('should handle undefined selection for a group gracefully', () => { + const input = { + type: 'aws-s3', + title: 'AWS S3 Input', + hide_in_var_group_options: { credential_type: ['cloud_connectors'] }, + } as any; + const selections = { other_group: 'some_value' }; + expect(isInputCompatibleWithVarGroupSelections(input, selections)).toBe(true); + }); +}); diff --git a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/step_configure_package.tsx b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/step_configure_package.tsx index 754577ce5a443..7b9211579e115 100644 --- a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/step_configure_package.tsx +++ b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/step_configure_package.tsx @@ -22,14 +22,42 @@ import { } from '../../../../../../../../common/services'; import { isInputAllowedForDeploymentMode } from '../../../../../../../../common/services/agentless_policy_helper'; -import type { PackageInfo, NewPackagePolicy, NewPackagePolicyInput } from '../../../../../types'; +import type { + PackageInfo, + NewPackagePolicy, + NewPackagePolicyInput, + RegistryInput, +} from '../../../../../types'; import { Loading } from '../../../../../components'; import { doesPackageHaveIntegrations } from '../../../../../services'; -import type { PackagePolicyValidationResults } from '../../services'; +import type { PackagePolicyValidationResults, VarGroupSelection } from '../../services'; import { PackagePolicyInputPanel } from './components'; +/** + * Check if an input is compatible with the current var_group selections. + * An input is incompatible if any of its hide_in_var_group_options includes + * the currently selected option for that var_group. + */ +export function isInputCompatibleWithVarGroupSelections( + input: RegistryInput, + varGroupSelections: VarGroupSelection +): boolean { + if (!input.hide_in_var_group_options) { + return true; + } + + for (const [groupName, hiddenOptions] of Object.entries(input.hide_in_var_group_options)) { + const selectedOption = varGroupSelections[groupName]; + if (selectedOption && hiddenOptions.includes(selectedOption)) { + return false; + } + } + + return true; +} + export const StepConfigurePackagePolicy: React.FunctionComponent<{ packageInfo: PackageInfo; showOnlyIntegration?: string; @@ -40,6 +68,7 @@ export const StepConfigurePackagePolicy: React.FunctionComponent<{ noTopRule?: boolean; isEditPage?: boolean; isAgentlessSelected?: boolean; + varGroupSelections?: VarGroupSelection; }> = ({ packageInfo, showOnlyIntegration, @@ -50,6 +79,7 @@ export const StepConfigurePackagePolicy: React.FunctionComponent<{ noTopRule = false, isEditPage = false, isAgentlessSelected = false, + varGroupSelections = {}, }) => { const hasIntegrations = useMemo(() => doesPackageHaveIntegrations(packageInfo), [packageInfo]); const deploymentMode = @@ -106,7 +136,8 @@ export const StepConfigurePackagePolicy: React.FunctionComponent<{ const isInputAvailable = packagePolicyInput && - isInputAllowedForDeploymentMode(packagePolicyInput, deploymentMode, packageInfo); + isInputAllowedForDeploymentMode(packagePolicyInput, deploymentMode, packageInfo) && + isInputCompatibleWithVarGroupSelections(packageInput, varGroupSelections); return isInputAvailable ? ( @@ -125,6 +156,7 @@ export const StepConfigurePackagePolicy: React.FunctionComponent<{ } forceShowErrors={submitAttempted} isEditPage={isEditPage} + varGroupSelections={varGroupSelections} /> diff --git a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/step_define_package_policy.test.tsx b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/step_define_package_policy.test.tsx index 9f6f626f11b30..d409b334d3159 100644 --- a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/step_define_package_policy.test.tsx +++ b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/step_define_package_policy.test.tsx @@ -198,4 +198,169 @@ describe('StepDefinePackagePolicy', () => { }); }); }); + + describe('loading state', () => { + it('should render Loading component when validationResults is undefined', () => { + renderResult = testRenderer.render( + + ); + + expect(renderResult.getByTestId('loadingSpinner')).toBeInTheDocument(); + expect(renderResult.queryByTestId('packagePolicyNameInput')).not.toBeInTheDocument(); + }); + }); + + describe('managed policy', () => { + it('should display managed policy callout when is_managed is true', () => { + packagePolicy.is_managed = true; + + act(() => { + render(); + }); + + expect( + renderResult.getByText('This is a managed package policy. You cannot modify it here.') + ).toBeInTheDocument(); + }); + + it('should make name field read-only when is_managed is true', () => { + packagePolicy.is_managed = true; + + act(() => { + render(); + }); + + const nameInput = renderResult.getByTestId('packagePolicyNameInput'); + expect(nameInput).toHaveAttribute('readonly'); + }); + + it('should make description field read-only when is_managed is true', () => { + packagePolicy.is_managed = true; + + act(() => { + render(); + }); + + const descriptionInput = renderResult.getByTestId('packagePolicyDescriptionInput'); + expect(descriptionInput).toHaveAttribute('readonly'); + }); + + it('should not show advanced options toggle when is_managed is true', () => { + packagePolicy.is_managed = true; + + act(() => { + render(); + }); + + expect(renderResult.queryByText('Advanced options')).not.toBeInTheDocument(); + }); + }); + + describe('additional datastreams permissions', () => { + it('should render the permissions combo box in advanced options', async () => { + act(() => { + render(); + }); + + await userEvent.click(renderResult.getByText('Advanced options').closest('button')!); + + await waitFor(() => { + expect(renderResult.getByText('Add a reroute processor permission')).toBeInTheDocument(); + }); + }); + + it('should display validation errors for additional_datastreams_permissions', async () => { + const validationResultsWithError = { + ...validationResults, + additional_datastreams_permissions: ['Invalid permission format'], + }; + + renderResult = testRenderer.render( + + ); + + await userEvent.click(renderResult.getByText('Advanced options').closest('button')!); + + await waitFor(() => { + expect(renderResult.getByText('Invalid permission format')).toBeInTheDocument(); + }); + }); + }); + + describe('var group selections state management', () => { + const packageInfoWithVarGroups: PackageInfo = { + ...packageInfo, + var_groups: [ + { + name: 'auth_method', + title: 'Authentication', + selector_title: 'Select method', + options: [ + { name: 'api_key', title: 'API Key', vars: ['api_key_var'] }, + { name: 'basic', title: 'Basic Auth', vars: ['username_var', 'password_var'] }, + ], + }, + ], + }; + + it('should use var_group_selections from policy', () => { + const policyWithSelections = { + ...packagePolicy, + var_group_selections: { auth_method: 'basic' }, + }; + + renderResult = testRenderer.render( + + ); + + const selector = renderResult.queryByTestId('varGroupSelector-auth_method'); + if (selector) { + expect(selector).toHaveValue('basic'); + } + }); + + it('should update policy var_group_selections when selection changes', async () => { + const policyWithSelections = { + ...packagePolicy, + var_group_selections: { auth_method: 'api_key' }, + }; + + renderResult = testRenderer.render( + + ); + + const selector = renderResult.queryByTestId('varGroupSelector-auth_method'); + if (selector) { + await userEvent.selectOptions(selector, 'basic'); + + expect(mockUpdatePackagePolicy).toHaveBeenCalledWith({ + var_group_selections: { auth_method: 'basic' }, + }); + } + }); + }); }); diff --git a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/step_define_package_policy.tsx b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/step_define_package_policy.tsx index 2cb01d5f4c879..3df8fb9bf6185 100644 --- a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/step_define_package_policy.tsx +++ b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/components/steps/step_define_package_policy.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import React, { memo, useState, useEffect, useMemo } from 'react'; +import React, { memo, useState, useMemo, useEffect } from 'react'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; import { @@ -32,10 +32,10 @@ import type { PackageInfo, NewPackagePolicy, RegistryVarsEntry } from '../../../ import { Loading } from '../../../../../components'; import { useGetEpmDatastreams, useStartServices } from '../../../../../hooks'; -import { isAdvancedVar } from '../../services'; +import { isAdvancedVar, shouldShowVar, isVarRequiredByVarGroup } from '../../services'; import type { PackagePolicyValidationResults } from '../../services'; -import { PackagePolicyInputVarField } from './components'; +import { PackagePolicyInputVarField, VarGroupSelector, useVarGroupSelections } from './components'; import { useOutputs } from './components/hooks'; // on smaller screens, fields should be displayed in one column @@ -56,6 +56,7 @@ export const StepDefinePackagePolicy: React.FunctionComponent<{ submitAttempted: boolean; isEditPage?: boolean; noAdvancedToggle?: boolean; + isAgentlessSelected?: boolean; }> = memo( ({ namespacePlaceholder, @@ -66,25 +67,48 @@ export const StepDefinePackagePolicy: React.FunctionComponent<{ submitAttempted, noAdvancedToggle = false, isEditPage = false, + isAgentlessSelected = false, }) => { const { docLinks } = useStartServices(); // Form show/hide states const [isShowingAdvanced, setIsShowingAdvanced] = useState(noAdvancedToggle); - // Package-level vars - const requiredVars: RegistryVarsEntry[] = []; - const advancedVars: RegistryVarsEntry[] = []; - - if (packageInfo.vars) { - packageInfo.vars.forEach((varDef) => { - if (isAdvancedVar(varDef)) { - advancedVars.push(varDef); - } else { - requiredVars.push(varDef); - } + // Var group selections - derives from policy, initializes defaults, handles changes + const { selections: varGroupSelections, handleSelectionChange: handleVarGroupSelectionChange } = + useVarGroupSelections({ + varGroups: packageInfo.var_groups, + savedSelections: packagePolicy.var_group_selections, + isAgentlessEnabled: isAgentlessSelected, + onSelectionsChange: updatePackagePolicy, }); - } + + // Package-level vars, filtered by var_group visibility + const { requiredVars, advancedVars } = useMemo(() => { + const _requiredVars: RegistryVarsEntry[] = []; + const _advancedVars: RegistryVarsEntry[] = []; + + if (packageInfo.vars) { + packageInfo.vars.forEach((varDef) => { + // Check if var should be shown based on var_group selections + if ( + packageInfo.var_groups && + packageInfo.var_groups.length > 0 && + !shouldShowVar(varDef.name, packageInfo.var_groups, varGroupSelections) + ) { + return; // Skip this var, it's hidden by var_group selection + } + + if (isAdvancedVar(varDef, packageInfo.var_groups, varGroupSelections)) { + _advancedVars.push(varDef); + } else { + _requiredVars.push(varDef); + } + }); + } + + return { requiredVars: _requiredVars, advancedVars: _advancedVars }; + }, [packageInfo.vars, packageInfo.var_groups, varGroupSelections]); // Outputs const { @@ -235,11 +259,28 @@ export const StepDefinePackagePolicy: React.FunctionComponent<{
+ {/* Var Group Selectors */} + {packageInfo.var_groups?.map((varGroup) => ( + + + + ))} + {/* Required vars */} {requiredVars.map((varDef) => { const { name: varName, type: varType } = varDef; if (!packagePolicy.vars || !packagePolicy.vars[varName]) return null; const value = packagePolicy.vars[varName].value; + const requiredByVarGroup = isVarRequiredByVarGroup( + varName, + packageInfo.var_groups, + varGroupSelections + ); return ( @@ -260,6 +301,7 @@ export const StepDefinePackagePolicy: React.FunctionComponent<{ errors={validationResults?.vars?.[varName] ?? []} forceShowErrors={submitAttempted} isEditPage={isEditPage} + isRequiredByVarGroup={requiredByVarGroup} /> ); @@ -452,6 +494,11 @@ export const StepDefinePackagePolicy: React.FunctionComponent<{ const { name: varName, type: varType } = varDef; if (!packagePolicy.vars || !packagePolicy.vars[varName]) return null; const value = packagePolicy.vars![varName].value; + const requiredByVarGroup = isVarRequiredByVarGroup( + varName, + packageInfo.var_groups, + varGroupSelections + ); return ( ); diff --git a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/services/has_invalid_but_required_var.ts b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/services/has_invalid_but_required_var.ts index ac9a470a2d87e..e082279a90cd6 100644 --- a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/services/has_invalid_but_required_var.ts +++ b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/services/has_invalid_but_required_var.ts @@ -7,30 +7,85 @@ import { load } from 'js-yaml'; -import type { PackagePolicyConfigRecord, RegistryVarsEntry } from '../../../../types'; +import type { + PackagePolicyConfigRecord, + RegistryVarsEntry, + RegistryVarGroup, +} from '../../../../types'; import { validatePackagePolicyConfig } from '.'; +import { + shouldShowVar, + isVarRequiredByVarGroup, + type VarGroupSelection, +} from './var_group_helpers'; export const hasInvalidButRequiredVar = ( registryVars?: RegistryVarsEntry[], - packagePolicyVars?: PackagePolicyConfigRecord + packagePolicyVars?: PackagePolicyConfigRecord, + varGroups?: RegistryVarGroup[], + varGroupSelections?: VarGroupSelection ): boolean => { - return ( - (registryVars && !packagePolicyVars) || - Boolean( - registryVars && - registryVars.find( - (registryVar) => - registryVar.required && - (!packagePolicyVars || - !packagePolicyVars[registryVar.name] || - validatePackagePolicyConfig( - packagePolicyVars[registryVar.name], - registryVar, - registryVar.name, - load - )?.length) - ) - ) - ); + // if registryVars is truthy (even empty array) and + // packagePolicyVars is falsy, + // return true to expand streams by default when creating new policies. + if (registryVars && !packagePolicyVars) { + // For packages with var_groups, check if there are any visible required vars + if (varGroups && varGroups.length > 0) { + return registryVars.some((registryVar) => { + if (!shouldShowVar(registryVar.name, varGroups, varGroupSelections || {})) { + return false; + } + const requiredByVarGroup = isVarRequiredByVarGroup( + registryVar.name, + varGroups, + varGroupSelections || {} + ); + return registryVar.required || requiredByVarGroup; + }); + } + // For packages without var_groups, maintain original behavior + return true; + } + + if (!registryVars || !packagePolicyVars) { + return false; + } + + return registryVars.some((registryVar) => { + // If var_groups exist, only validate visible vars + if (varGroups && varGroups.length > 0) { + if (!shouldShowVar(registryVar.name, varGroups, varGroupSelections || {})) { + return false; + } + } + + // Check if var is required (either by varDef or by var_group) + const requiredByVarGroup = isVarRequiredByVarGroup( + registryVar.name, + varGroups, + varGroupSelections + ); + const isRequired = registryVar.required || requiredByVarGroup; + + if (!isRequired) { + return false; + } + + // Check if the var value is missing or invalid + if (!packagePolicyVars[registryVar.name]) { + return true; + } + + const validationErrors = validatePackagePolicyConfig( + packagePolicyVars[registryVar.name], + registryVar, + registryVar.name, + load, + undefined, + requiredByVarGroup + ); + + return validationErrors && validationErrors.length > 0; + }); }; diff --git a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/services/index.ts b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/services/index.ts index 38ef2a60e41d0..e08ca99ae18a4 100644 --- a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/services/index.ts +++ b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/services/index.ts @@ -7,6 +7,16 @@ export { isAdvancedVar } from './is_advanced_var'; export { hasInvalidButRequiredVar } from './has_invalid_but_required_var'; +export { + getVisibleOptions, + getVisibleVarsForOption, + getVarsControlledByVarGroups, + computeDefaultVarGroupSelections, + shouldShowVar, + isVarRequiredByVarGroup, + isVarInSelectedVarGroupOption, +} from './var_group_helpers'; +export type { VarGroupSelection } from './var_group_helpers'; export type { PackagePolicyValidationResults, PackagePolicyConfigValidationResults, diff --git a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/services/is_advanced_var.test.ts b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/services/is_advanced_var.test.ts index e756ad2bfce22..d2c97665f653e 100644 --- a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/services/is_advanced_var.test.ts +++ b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/services/is_advanced_var.test.ts @@ -5,7 +5,10 @@ * 2.0. */ +import type { RegistryVarGroup } from '../../../../types'; + import { isAdvancedVar } from './is_advanced_var'; +import { isVarInSelectedVarGroupOption } from './var_group_helpers'; describe('Fleet - isAdvancedVar', () => { it('returns true for vars that should be show under advanced options', () => { @@ -61,4 +64,188 @@ describe('Fleet - isAdvancedVar', () => { }) ).toBe(false); }); + + describe('with var_groups context', () => { + const mockVarGroups: RegistryVarGroup[] = [ + { + name: 'auth_method', + title: 'Authentication', + selector_title: 'Select method', + options: [ + { name: 'api_key', title: 'API Key', vars: ['api_key', 'api_url'] }, + { name: 'oauth', title: 'OAuth', vars: ['client_id', 'client_secret'] }, + ], + }, + ]; + + it('returns false (not advanced) for vars with show_user: false that are in a selected var_group option', () => { + // api_key var has show_user: false but is in the selected var_group option + expect( + isAdvancedVar( + { + name: 'api_key', + type: 'password', + show_user: false, // Would normally be advanced + }, + mockVarGroups, + { auth_method: 'api_key' } // api_key option is selected + ) + ).toBe(false); // Should NOT be advanced because it's in the selected option + }); + + it('returns true (advanced) for vars with show_user: false that are NOT in a selected var_group option', () => { + // client_id var has show_user: false and is NOT in the selected var_group option + expect( + isAdvancedVar( + { + name: 'client_id', + type: 'text', + show_user: false, + }, + mockVarGroups, + { auth_method: 'api_key' } // api_key option is selected, not oauth + ) + ).toBe(true); // Should be advanced because it's not in the selected option + }); + + it('returns true (advanced) for vars with show_user: false that are not controlled by any var_group', () => { + expect( + isAdvancedVar( + { + name: 'unrelated_var', + type: 'text', + show_user: false, + }, + mockVarGroups, + { auth_method: 'api_key' } + ) + ).toBe(true); // Should be advanced because it's not controlled by var_groups + }); + + it('returns false for vars with show_user: true regardless of var_groups', () => { + expect( + isAdvancedVar( + { + name: 'api_key', + type: 'password', + show_user: true, + }, + mockVarGroups, + { auth_method: 'oauth' } // Different option selected + ) + ).toBe(false); // show_user: true always wins + }); + + it('handles missing var_groups gracefully', () => { + expect( + isAdvancedVar( + { + name: 'mock_var', + type: 'text', + show_user: false, + }, + undefined, + { auth_method: 'api_key' } + ) + ).toBe(true); // Falls back to original behavior + }); + + it('handles empty var_groups gracefully', () => { + expect( + isAdvancedVar( + { + name: 'mock_var', + type: 'text', + show_user: false, + }, + [], + { auth_method: 'api_key' } + ) + ).toBe(true); // Falls back to original behavior + }); + + it('handles missing varGroupSelections gracefully', () => { + expect( + isAdvancedVar( + { + name: 'api_key', + type: 'password', + show_user: false, + }, + mockVarGroups, + undefined + ) + ).toBe(true); // Falls back to original behavior + }); + }); +}); + +describe('Fleet - isVarInSelectedVarGroupOption', () => { + const mockVarGroups: RegistryVarGroup[] = [ + { + name: 'auth_method', + title: 'Authentication', + selector_title: 'Select method', + options: [ + { name: 'api_key', title: 'API Key', vars: ['api_key', 'api_url'] }, + { name: 'oauth', title: 'OAuth', vars: ['client_id', 'client_secret'] }, + ], + }, + { + name: 'data_format', + title: 'Data Format', + selector_title: 'Select format', + options: [ + { name: 'json', title: 'JSON', vars: ['json_config'] }, + { name: 'xml', title: 'XML', vars: ['xml_config'] }, + ], + }, + ]; + + it('returns true if var is in a selected var_group option', () => { + expect( + isVarInSelectedVarGroupOption('api_key', mockVarGroups, { auth_method: 'api_key' }) + ).toBe(true); + + expect( + isVarInSelectedVarGroupOption('api_url', mockVarGroups, { auth_method: 'api_key' }) + ).toBe(true); + + expect( + isVarInSelectedVarGroupOption('client_id', mockVarGroups, { auth_method: 'oauth' }) + ).toBe(true); + }); + + it('returns false if var is NOT in a selected var_group option', () => { + expect( + isVarInSelectedVarGroupOption('client_id', mockVarGroups, { auth_method: 'api_key' }) + ).toBe(false); + + expect(isVarInSelectedVarGroupOption('api_key', mockVarGroups, { auth_method: 'oauth' })).toBe( + false + ); + }); + + it('returns false if var is not controlled by any var_group', () => { + expect( + isVarInSelectedVarGroupOption('unrelated_var', mockVarGroups, { auth_method: 'api_key' }) + ).toBe(false); + }); + + it('returns false if no selection is made for the var_group', () => { + expect(isVarInSelectedVarGroupOption('api_key', mockVarGroups, {})).toBe(false); + + expect(isVarInSelectedVarGroupOption('api_key', mockVarGroups, { data_format: 'json' })).toBe( + false + ); + }); + + it('handles multiple var_groups correctly', () => { + const selections = { auth_method: 'api_key', data_format: 'json' }; + + expect(isVarInSelectedVarGroupOption('api_key', mockVarGroups, selections)).toBe(true); + expect(isVarInSelectedVarGroupOption('json_config', mockVarGroups, selections)).toBe(true); + expect(isVarInSelectedVarGroupOption('xml_config', mockVarGroups, selections)).toBe(false); + expect(isVarInSelectedVarGroupOption('client_id', mockVarGroups, selections)).toBe(false); + }); }); diff --git a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/services/is_advanced_var.ts b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/services/is_advanced_var.ts index 1f72073573d7b..f288f707d56cd 100644 --- a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/services/is_advanced_var.ts +++ b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/services/is_advanced_var.ts @@ -5,9 +5,37 @@ * 2.0. */ -import type { RegistryVarsEntry } from '../../../../types'; +import type { RegistryVarsEntry, RegistryVarGroup } from '../../../../types'; + +import { isVarInSelectedVarGroupOption, type VarGroupSelection } from './var_group_helpers'; + +/** + * Determines if a variable should be shown under "Advanced options". + * + * A var is NOT advanced (shown by default) if: + * - show_user is true, OR + * - required is true AND default is undefined, OR + * - the var is part of a currently selected var_group option (overrides show_user: false) + * + * @param varDef - The variable definition + * @param varGroups - Optional var_groups from the package/stream + * @param varGroupSelections - Optional current var_group selections + */ +export const isAdvancedVar = ( + varDef: RegistryVarsEntry, + varGroups?: RegistryVarGroup[], + varGroupSelections?: VarGroupSelection +): boolean => { + // If var is in a selected var_group option, treat as non-advanced (override show_user: false) + if ( + varGroups && + varGroups.length > 0 && + varGroupSelections && + isVarInSelectedVarGroupOption(varDef.name, varGroups, varGroupSelections) + ) { + return false; + } -export const isAdvancedVar = (varDef: RegistryVarsEntry): boolean => { if (varDef.show_user || (varDef.required && varDef.default === undefined)) { return false; } diff --git a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/services/var_group_helpers.ts b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/services/var_group_helpers.ts new file mode 100644 index 0000000000000..d96db2c37264b --- /dev/null +++ b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/services/var_group_helpers.ts @@ -0,0 +1,161 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { RegistryVarGroup, RegistryVarGroupOption } from '../../../../types'; + +export interface VarGroupSelection { + [groupName: string]: string; // groupName -> selected option name +} + +/** + * Get visible options for a var group, filtering out options that should be hidden + * based on deployment mode or hide_in_var_group_options configuration. + */ +export function getVisibleOptions( + varGroup: RegistryVarGroup, + isAgentlessEnabled: boolean, + hideInVarGroupOptions?: Record +): RegistryVarGroupOption[] { + const hiddenOptionNames = hideInVarGroupOptions?.[varGroup.name] ?? []; + + return varGroup.options.filter((option) => { + // Check if option is hidden via hide_in_var_group_options + if (hiddenOptionNames.includes(option.name)) { + return false; + } + + // Check if option is hidden based on deployment mode + if (option.hide_in_deployment_modes) { + if (isAgentlessEnabled && option.hide_in_deployment_modes.includes('agentless')) { + return false; + } + if (!isAgentlessEnabled && option.hide_in_deployment_modes.includes('default')) { + return false; + } + } + + return true; + }); +} + +/** + * Get variable names that should be visible based on the selected option. + * Returns undefined if no option is selected. + */ +export function getVisibleVarsForOption( + varGroup: RegistryVarGroup, + selectedOptionName: string | undefined +): string[] | undefined { + if (!selectedOptionName) { + return undefined; + } + + const selectedOption = varGroup.options.find((opt) => opt.name === selectedOptionName); + return selectedOption?.vars; +} + +/** + * Get all variable names that are controlled by any var_group. + * These vars should only be shown when their option is selected. + */ +export function getVarsControlledByVarGroups(varGroups: RegistryVarGroup[]): Set { + return new Set(varGroups.flatMap((group) => group.options.flatMap((option) => option.vars))); +} + +/** + * Compute default selections from var_groups (first visible option for each group). + */ +export function computeDefaultVarGroupSelections( + varGroups: RegistryVarGroup[] | undefined, + isAgentlessEnabled: boolean, + hideInVarGroupOptions?: Record +): VarGroupSelection { + const defaults: VarGroupSelection = {}; + if (varGroups) { + for (const varGroup of varGroups) { + const visibleOptions = getVisibleOptions(varGroup, isAgentlessEnabled, hideInVarGroupOptions); + if (visibleOptions.length > 0) { + defaults[varGroup.name] = visibleOptions[0].name; + } + } + } + return defaults; +} + +/** + * Determines if a variable should be visible based on var_group selections. + */ +export function shouldShowVar( + varName: string, + varGroups: RegistryVarGroup[], + varGroupSelections: VarGroupSelection +): boolean { + // Get all vars controlled by var_groups + const controlledVars = getVarsControlledByVarGroups(varGroups); + + // If this var is not controlled by any var_group, always show it + if (!controlledVars.has(varName)) { + return true; + } + + // Check if this var is in the selected option for any var_group + return varGroups + .filter((group) => varGroupSelections[group.name]) + .some((group) => { + const selectedOption = group.options.find( + (opt) => opt.name === varGroupSelections[group.name] + ); + return selectedOption?.vars.includes(varName); + }); +} + +/** + * Determines if a variable is required due to being in a required var_group's selected option. + * When var_group.required is true, all vars in the selected option are treated as required. + */ +export function isVarRequiredByVarGroup( + varName: string, + varGroups: RegistryVarGroup[] | undefined, + varGroupSelections: VarGroupSelection | undefined +): boolean { + if (!varGroups || varGroups.length === 0 || !varGroupSelections) { + return false; + } + + return varGroups + .filter((group) => group.required && varGroupSelections[group.name]) + .some((group) => { + const selectedOption = group.options.find( + (opt) => opt.name === varGroupSelections[group.name] + ); + return selectedOption?.vars.includes(varName); + }); +} + +/** + * Checks if a variable is part of a currently selected var_group option. + * This is used to override show_user: false for vars that belong to a selected var_group option. + * + * Unlike shouldShowVar which returns true for vars NOT controlled by var_groups, + * this function returns false for such vars - it specifically checks if a var + * is controlled by a var_group AND is in the selected option. + */ +export function isVarInSelectedVarGroupOption( + varName: string, + varGroups: RegistryVarGroup[], + varGroupSelections: VarGroupSelection +): boolean { + const controlledVars = getVarsControlledByVarGroups(varGroups); + + // If not controlled by any var_group, it's not "in a selected option" + if (!controlledVars.has(varName)) { + return false; + } + + // If controlled and shouldShowVar returns true, it means it's in a selected option + return shouldShowVar(varName, varGroups, varGroupSelections); +} diff --git a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/single_page_layout/index.tsx b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/single_page_layout/index.tsx index 95a63df298465..f5e8a81f93053 100644 --- a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/single_page_layout/index.tsx +++ b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/single_page_layout/index.tsx @@ -72,6 +72,11 @@ import { StepSelectHosts, } from '../components'; +import { + computeDefaultVarGroupSelections, + type VarGroupSelection, +} from '../services/var_group_helpers'; + import { generateNewAgentPolicyWithDefaults } from '../../../../../../../common/services/generate_new_agent_policy'; import { packageHasAtLeastOneSecret } from '../utils'; @@ -246,6 +251,15 @@ export const CreatePackagePolicySinglePage: CreatePackagePolicyParams = ({ [setHasAgentPolicyError] ); + // Derive var_group_selections from policy for StepConfigurePackagePolicy + // Note: StepDefinePackagePolicy handles its own initialization and state management + const varGroupSelections = useMemo((): VarGroupSelection => { + if (packagePolicy.var_group_selections) { + return packagePolicy.var_group_selections; + } + return computeDefaultVarGroupSelections(packageInfo?.var_groups, isAgentlessSelected); + }, [packagePolicy.var_group_selections, packageInfo?.var_groups, isAgentlessSelected]); + const updateNewAgentPolicy = useCallback( (updatedFields: Partial) => { const updatedAgentPolicy = { @@ -487,6 +501,7 @@ export const CreatePackagePolicySinglePage: CreatePackagePolicyParams = ({ updatePackagePolicy={updatePackagePolicy} validationResults={validationResults} submitAttempted={formState === 'INVALID'} + isAgentlessSelected={isAgentlessSelected} /> {/* Show SetupTechnologySelector for all agentless integrations, including extension views */} @@ -515,6 +530,7 @@ export const CreatePackagePolicySinglePage: CreatePackagePolicyParams = ({ validationResults={validationResults} submitAttempted={formState === 'INVALID'} isAgentlessSelected={isAgentlessSelected} + varGroupSelections={varGroupSelections} /> )} @@ -551,6 +567,7 @@ export const CreatePackagePolicySinglePage: CreatePackagePolicyParams = ({ handleSetupTechnologyChange, allowedSetupTechnologies, isAddIntegrationFlyout, + varGroupSelections, ] ); diff --git a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/edit_package_policy_page/index.test.tsx b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/edit_package_policy_page/index.test.tsx index c835803fc8687..c9f9d16c2d588 100644 --- a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/edit_package_policy_page/index.test.tsx +++ b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/edit_package_policy_page/index.test.tsx @@ -18,6 +18,7 @@ import { sendUpgradePackagePolicyDryRun, sendUpdatePackagePolicy, useStartServices, + sendGetPackageInfoByKey, sendCreateAgentPolicy, sendBulkGetAgentPolicies, useGetAgentPolicies, @@ -31,6 +32,8 @@ import { EditPackagePolicyPage } from '.'; type MockFn = jest.MockedFunction; +let lastStepConfigureProps: any; + jest.mock('../create_package_policy_page/components/steps/components/use_policies', () => { return { ...jest.requireActual('../create_package_policy_page/components/steps/components/use_policies'), @@ -168,6 +171,17 @@ jest.mock('../../../../integrations/hooks', () => { }; }); +jest.mock('../create_package_policy_page/components', () => { + const actual = jest.requireActual('../create_package_policy_page/components'); + return { + ...actual, + StepConfigurePackagePolicy: jest.fn((props) => { + lastStepConfigureProps = props; + return (actual as any).StepConfigurePackagePolicy(props); + }), + }; +}); + jest.mock('react-router-dom', () => ({ ...jest.requireActual('react-router-dom'), useRouteMatch: jest.fn().mockReturnValue({ @@ -236,6 +250,7 @@ describe('edit package policy page', () => { beforeEach(() => { testRenderer = createFleetTestRendererMock(); + lastStepConfigureProps = undefined; (useGetOnePackagePolicy as MockFn).mockReturnValue({ data: { @@ -527,6 +542,110 @@ describe('edit package policy page', () => { expect(renderResult.queryByTestId('agentPolicyMultiSelect')).not.toBeInTheDocument(); }); + it('passes existing var_group selections to configure step', async () => { + const varGroupSelections = { auth_method: 'oauth' }; + + (useGetOnePackagePolicy as MockFn).mockReturnValueOnce({ + data: { + item: { ...mockPackagePolicy, var_group_selections: varGroupSelections }, + }, + }); + (sendGetOnePackagePolicy as MockFn).mockResolvedValueOnce({ + data: { + item: { ...mockPackagePolicy, var_group_selections: varGroupSelections }, + }, + }); + + render(); + + await waitFor(() => { + expect(lastStepConfigureProps?.varGroupSelections).toEqual(varGroupSelections); + }); + }); + + it('computes default var_group selections when missing', async () => { + (sendGetPackageInfoByKey as MockFn).mockImplementationOnce((name: string, version: string) => + Promise.resolve({ + data: { + item: { + name, + title: 'Nginx', + version, + release: 'ga', + description: 'Collect logs and metrics from Nginx HTTP servers with Elastic Agent.', + policy_templates: [ + { + name: 'nginx', + title: 'Nginx logs and metrics', + description: 'Collect logs and metrics from Nginx instances', + inputs: [ + { + type: 'logfile', + title: 'Collect logs from Nginx instances', + description: 'Collecting Nginx access and error logs', + }, + ], + multiple: true, + }, + ], + var_groups: [ + { + name: 'auth_method', + title: 'Auth method', + selector_title: 'Select auth method', + options: [ + { name: 'api_key', title: 'API key', vars: ['api_key'] }, + { name: 'oauth', title: 'OAuth', vars: ['client_id'] }, + ], + }, + ], + data_streams: [ + { + type: 'logs', + dataset: 'nginx.access', + title: 'Nginx access logs', + release: 'experimental', + ingest_pipeline: 'default', + streams: [ + { + input: 'logfile', + vars: [ + { + name: 'paths', + type: 'text', + title: 'Paths', + multi: true, + required: true, + show_user: true, + default: ['/var/log/nginx/access.log*'], + }, + ], + template_path: 'stream.yml.hbs', + title: 'Nginx access logs', + description: 'Collect Nginx access logs', + enabled: true, + }, + ], + package: 'nginx', + path: 'access', + }, + ], + latestVersion: version, + keepPoliciesUpToDate: false, + status: 'not_installed', + }, + }, + isLoading: false, + }) + ); + + render(); + + await waitFor(() => { + expect(lastStepConfigureProps?.varGroupSelections).toEqual({ auth_method: 'api_key' }); + }); + }); + describe('modify agent policies', () => { beforeEach(() => { useMultipleAgentPoliciesMock.mockReturnValue({ canUseMultipleAgentPolicies: true }); diff --git a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/edit_package_policy_page/index.tsx b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/edit_package_policy_page/index.tsx index c258f07c783e6..eeee865cf65b6 100644 --- a/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/edit_package_policy_page/index.tsx +++ b/x-pack/platform/plugins/shared/fleet/public/applications/fleet/sections/agent_policy/edit_package_policy_page/index.tsx @@ -47,6 +47,10 @@ import { StepConfigurePackagePolicy, StepDefinePackagePolicy, } from '../create_package_policy_page/components'; +import { + computeDefaultVarGroupSelections, + type VarGroupSelection, +} from '../create_package_policy_page/services'; import type { AgentPolicy, PackagePolicyEditExtensionComponentProps } from '../../../types'; import { pkgKeyFromPackageInfo } from '../../../services'; @@ -147,6 +151,14 @@ export const EditPackagePolicyForm = memo<{ [existingAgentPolicies, isAgentlessAgentPolicy, packageInfo, isAgentlessIntegration] ); + // Derive var_group_selections from policy for edit mode + const varGroupSelections = useMemo((): VarGroupSelection => { + if (packagePolicy.var_group_selections) { + return packagePolicy.var_group_selections; + } + return computeDefaultVarGroupSelections(packageInfo?.var_groups, hasAgentlessAgentPolicy); + }, [packagePolicy.var_group_selections, packageInfo?.var_groups, hasAgentlessAgentPolicy]); + const canWriteIntegrationPolicies = useAuthz().integrations.writeIntegrationPolicies; useSetIsReadOnly(!canWriteIntegrationPolicies); const newSecrets = useMemo(() => { @@ -436,6 +448,7 @@ export const EditPackagePolicyForm = memo<{ validationResults={validationResults} submitAttempted={formState === 'INVALID'} isEditPage={true} + isAgentlessSelected={hasAgentlessAgentPolicy} /> )} @@ -448,6 +461,8 @@ export const EditPackagePolicyForm = memo<{ validationResults={validationResults} submitAttempted={formState === 'INVALID'} isEditPage={true} + isAgentlessSelected={hasAgentlessAgentPolicy} + varGroupSelections={varGroupSelections} /> )} @@ -475,16 +490,18 @@ export const EditPackagePolicyForm = memo<{ ) : null, [ agentPolicies, - packageInfo, - packagePolicy, - updatePackagePolicy, - validationResults, - formState, - originalPackagePolicy, extensionView, + formState, handleExtensionViewOnChange, + hasAgentlessAgentPolicy, + originalPackagePolicy, + packageInfo, + packagePolicy, selectedTab, tabsViews, + updatePackagePolicy, + validationResults, + varGroupSelections, ] ); diff --git a/x-pack/platform/plugins/shared/fleet/public/types/index.ts b/x-pack/platform/plugins/shared/fleet/public/types/index.ts index 05e2005615416..8f7da461251a8 100644 --- a/x-pack/platform/plugins/shared/fleet/public/types/index.ts +++ b/x-pack/platform/plugins/shared/fleet/public/types/index.ts @@ -107,6 +107,8 @@ export type { RegistryStream, RegistryStreamWithDataStream, RegistryPolicyTemplate, + RegistryVarGroup, + RegistryVarGroupOption, PackageList, PackageListItem, PackagesGroupedByStatus, diff --git a/x-pack/platform/plugins/shared/fleet/server/routes/package_policy/handlers.test.ts b/x-pack/platform/plugins/shared/fleet/server/routes/package_policy/handlers.test.ts index 540359b5e418c..18ac05c42248a 100644 --- a/x-pack/platform/plugins/shared/fleet/server/routes/package_policy/handlers.test.ts +++ b/x-pack/platform/plugins/shared/fleet/server/routes/package_policy/handlers.test.ts @@ -300,6 +300,7 @@ describe('When calling package policy', () => { type: 'text', }, }, + var_group_selections: { auth_method: 'api_key' }, }; beforeEach(() => { @@ -399,6 +400,19 @@ describe('When calling package policy', () => { }); }); + it('should update var_group_selections when provided', async () => { + const newData = { + var_group_selections: { auth_method: 'oauth' }, + }; + const request = getUpdateKibanaRequest(newData as any); + + await routeHandler(context, request, response); + + expect(response.ok).toHaveBeenCalledWith({ + body: { item: { ...existingPolicy, ...newData } }, + }); + }); + it('should throw if policy_ids changed on agentless integration', async () => { (agentPolicyService.get as jest.Mock).mockResolvedValue({ supports_agentless: true, diff --git a/x-pack/platform/plugins/shared/fleet/server/routes/package_policy/handlers.ts b/x-pack/platform/plugins/shared/fleet/server/routes/package_policy/handlers.ts index 8cb00b9085497..8439a44a1728f 100644 --- a/x-pack/platform/plugins/shared/fleet/server/routes/package_policy/handlers.ts +++ b/x-pack/platform/plugins/shared/fleet/server/routes/package_policy/handlers.ts @@ -429,6 +429,7 @@ export const updatePackagePolicyHandler: FleetRequestHandler< package: pkg ?? packagePolicy.package, inputs: restOfBody.inputs ?? packagePolicyInputs, vars: restOfBody.vars ?? packagePolicy.vars, + var_group_selections: restOfBody.var_group_selections ?? packagePolicy.var_group_selections, supports_agentless: restOfBody.supports_agentless ?? packagePolicy.supports_agentless, supports_cloud_connector: restOfBody.supports_cloud_connector ?? packagePolicy.supports_cloud_connector, diff --git a/x-pack/platform/plugins/shared/fleet/server/services/epm/archive/parse.test.ts b/x-pack/platform/plugins/shared/fleet/server/services/epm/archive/parse.test.ts index 0fec24d394d76..ad83c253882ec 100644 --- a/x-pack/platform/plugins/shared/fleet/server/services/epm/archive/parse.test.ts +++ b/x-pack/platform/plugins/shared/fleet/server/services/epm/archive/parse.test.ts @@ -502,6 +502,53 @@ owner: }) ); }); + + it('should parse package with var_groups present', () => { + const manifest = ` +format_version: 1.0.0 +name: input_only +title: Custom Logs +description: Read lines from active log files with Elastic Agent. +type: input +version: 0.1.0 +license: basic +categories: [custom] +policy_templates: + - name: first_policy_template + type: logs + title: Custom log file + description: Collect your custom log files. + input: logfile + template_path: input.yml.hbs +var_groups: + - name: auth_method + title: Auth method + selector_title: Select auth method + options: + - name: api_key + title: API key + vars: [api_key] +owner: + github: elastic/integrations +`; + + const packageInfo = parseAndVerifyArchive(['input_only-0.1.0/manifest.yml'], { + 'input_only-0.1.0/manifest.yml': Buffer.from(manifest, 'utf8'), + }); + + expect(packageInfo).toEqual( + expect.objectContaining({ + var_groups: [ + { + name: 'auth_method', + title: 'Auth method', + selector_title: 'Select auth method', + options: [{ name: 'api_key', title: 'API key', vars: ['api_key'] }], + }, + ], + }) + ); + }); }); describe('parseAndVerifyDataStreams', () => { diff --git a/x-pack/platform/plugins/shared/fleet/server/services/epm/archive/parse.ts b/x-pack/platform/plugins/shared/fleet/server/services/epm/archive/parse.ts index 652dde612ab52..3e4bcb9d8b72c 100644 --- a/x-pack/platform/plugins/shared/fleet/server/services/epm/archive/parse.ts +++ b/x-pack/platform/plugins/shared/fleet/server/services/epm/archive/parse.ts @@ -132,6 +132,7 @@ const optionalArchivePackageProps: readonly OptionalPackageProp[] = [ 'description', 'format_version', 'discovery', + 'var_groups', ] as const; const registryInputProps = Object.values(RegistryInputKeys); diff --git a/x-pack/platform/plugins/shared/fleet/server/services/package_policy.ts b/x-pack/platform/plugins/shared/fleet/server/services/package_policy.ts index 6b635ad4493ef..fafb4353fbd2d 100644 --- a/x-pack/platform/plugins/shared/fleet/server/services/package_policy.ts +++ b/x-pack/platform/plugins/shared/fleet/server/services/package_policy.ts @@ -2520,6 +2520,7 @@ class PackagePolicyClientImpl implements PackagePolicyClient { output_id: newPolicy.output_id, inputs: newPolicy.inputs[0]?.streams ? newPolicy.inputs : inputs, vars: newPolicy.vars || newPP.vars, + var_group_selections: newPolicy.var_group_selections, supports_agentless: newPolicy.supports_agentless, supports_cloud_connector: newPolicy.supports_cloud_connector, cloud_connector_id: newPolicy.cloud_connector_id, diff --git a/x-pack/platform/plugins/shared/fleet/server/types/rest_spec/epm.ts b/x-pack/platform/plugins/shared/fleet/server/types/rest_spec/epm.ts index bc021ed3499ff..316c8e6adc1b0 100644 --- a/x-pack/platform/plugins/shared/fleet/server/types/rest_spec/epm.ts +++ b/x-pack/platform/plugins/shared/fleet/server/types/rest_spec/epm.ts @@ -209,6 +209,34 @@ export const PackageInfoSchema = schema vars: schema.maybe( schema.arrayOf(schema.recordOf(schema.string(), schema.any()), { maxSize: 1000 }) ), + var_groups: schema.maybe( + schema.arrayOf( + schema.object({ + name: schema.string(), + title: schema.string(), + selector_title: schema.string(), + description: schema.maybe(schema.string()), + options: schema.arrayOf( + schema + .object({ + name: schema.string(), + title: schema.string(), + description: schema.maybe(schema.string()), + vars: schema.arrayOf(schema.string(), { maxSize: 100 }), + hide_in_deployment_modes: schema.maybe( + schema.arrayOf( + schema.oneOf([schema.literal('default'), schema.literal('agentless')]), + { maxSize: 2 } + ) + ), + }) + .extendsDeep({ unknowns: 'allow' }), + { maxSize: 20 } + ), + }), + { maxSize: 20 } + ) + ), latestVersion: schema.maybe(schema.string()), discovery: schema.maybe( schema.object({ diff --git a/x-pack/platform/plugins/shared/fleet/server/types/so_attributes.ts b/x-pack/platform/plugins/shared/fleet/server/types/so_attributes.ts index 2c4e13824eb45..e14c8ff6401b5 100644 --- a/x-pack/platform/plugins/shared/fleet/server/types/so_attributes.ts +++ b/x-pack/platform/plugins/shared/fleet/server/types/so_attributes.ts @@ -154,6 +154,7 @@ export interface PackagePolicySOAttributes { secret_references?: SecretReference[]; package?: PackagePolicyPackage; vars?: PackagePolicyConfigRecord; + var_group_selections?: Record; elasticsearch?: { privileges?: { cluster?: string[];