/**
* Generated by orval v7.17.0 🍺
* Do not edit manually.
* superglue AI API
* API for running superglue AI tools
* OpenAPI spec version: 1.0.0
*/
import type { ToolStepMethod } from "./toolStepMethod";
import type { ToolStepQueryParams } from "./toolStepQueryParams";
import type { ToolStepHeaders } from "./toolStepHeaders";
import type { Pagination } from "./pagination";
import type { ToolStepFailureBehavior } from "./toolStepFailureBehavior";
/**
* A single execution step. Protocol is detected from URL scheme:
- HTTP/HTTPS: Standard REST API calls with query params, headers, body
- Postgres: postgres:// or postgresql:// URLs, body contains SQL query
- FTP/SFTP: ftp://, ftps://, or sftp:// URLs, body contains operation details
*/
export interface ToolStep {
/** Unique identifier for this step */
id: string;
/** Full URL including protocol. Examples:
- HTTP: https://api.example.com/search
- Postgres: postgres://user:pass@host:5432/database
- FTP: ftp://user:pass@host:21/path
- SFTP: sftp://user:pass@host:22/path
*/
url: string;
/** HTTP method. For non-HTTP protocols, use POST. */
method: ToolStepMethod;
/** URL query parameters (HTTP only). Supports template expressions with <<(sourceData) => ...>> syntax. */
queryParams?: ToolStepQueryParams;
/** HTTP headers (HTTP only). Supports template expressions with <<(sourceData) => ...>> syntax. */
headers?: ToolStepHeaders;
/** Request body (protocol-specific). Supports template expressions with <<(sourceData) => ...>> syntax.
HTTP: Any content (JSON, XML, form data, etc.)
Example: '{"query": "<<(sourceData) => sourceData.query>>"}'
Postgres: JSON with query and optional params
Example: '{"query": "SELECT * FROM users WHERE id = $1", "params": ["<<(sourceData) => sourceData.userId>>"]}'
FTP/SFTP: JSON with operation, path, and optional content
Example: '{"operation": "get", "path": "/data/file.csv"}'
Example: '{"operation": "list", "path": "/data"}'
Example: '{"operation": "put", "path": "/data/file.txt", "content": "<<(sourceData) => sourceData.fileContent>>"}'
*/
body?: string;
pagination?: Pagination;
/** System to use for stored credentials and documentation */
systemId: string;
/** Human-readable instruction describing what this step does */
instruction?: string;
/** Whether this step can be modified by the self-healing system */
modify?: boolean;
/** JavaScript function to select data for loop execution.
Format: (sourceData) => expression
*/
dataSelector?: string;
/** How to handle step failures (fail stops execution, continue proceeds to next step) */
failureBehavior?: ToolStepFailureBehavior;
}