<!-- alvera:doc kind="tool-call-configs" generated-by="mix alvera.dump.static_metadata" -->

# Tool Call Configurations

Per-invocation invocation-side schemas for Alvera tools. Each section
documents one variant of `Platform.Tools.ToolCallConfig`, identified
by its atom and rendered by `ToolCallConfig.render_variant_markdown/1`.

<!-- alvera:section kind="tool-call-config" atom="restapi_request" module="Platform.Tools.ToolCallConfig.RESTAPIRequest" -->

## Tool Call Configuration (restapi_request)

Fetches data via REST API with pagination support.

- **method** (enum: head, get, put, post, delete, patch) — HTTP method
- **path** (TemplateConfig) — API endpoint path, rendered as Liquid template
- **body** (TemplateConfig, nullable) — Request body, rendered as Liquid template
- **params** (TemplateConfig, nullable) — Query parameters, rendered as Liquid template
- **pagination_context_template** (TemplateConfig) — Pagination control template, must render to JSON with `has_next` boolean field
- **events_template** (TemplateConfig, nullable) — Extracts the raw event array from a response page; required when this config drives an action status updater REST poll (the poll fails with `missing_events_template` otherwise), unused by data-activation fetches

<!-- alvera:section kind="tool-call-config" atom="sql_query" module="Platform.Tools.ToolCallConfig.SQLQuery" -->

## Tool Call Configuration (sql_query)

Fetches data via SQL query with Liquid template variables for pagination.

- **query** (TemplateConfig) — SQL query template with pagination variables

<!-- alvera:section kind="tool-call-config" atom="sftp_request" module="Platform.Tools.ToolCallConfig.SFTPRequest" -->

## Tool Call Configuration (sftp_request)

Fetches data from a remote SFTP server.

- **path** (string) — Remote file path on SFTP server
- **content_type** (string) — MIME type of the file

<!-- alvera:section kind="tool-call-config" atom="microsoft_share_point_excel_request" module="Platform.Tools.ToolCallConfig.MicrosoftSharePointExcelRequest" -->

## Tool Call Configuration (microsoft_share_point_excel_request)

Fetches data from a Microsoft SharePoint drive (Excel files).

- **drive_url** (string) — SharePoint drive URL
- **azure_tenant_id** (string) — Microsoft Azure tenant identifier
- **sheet_number** (integer) — 0-indexed Excel sheet number
- **search_params** (string) — Search parameters for locating files

<!-- alvera:section kind="tool-call-config" atom="aws_lambda_request" module="Platform.Tools.ToolCallConfig.AWSLambdaRequest" -->

## Tool Call Configuration (aws_lambda_request)

Invokes an AWS Lambda function to fetch data.

- **payload** (TemplateConfig) — Lambda JSON payload, rendered as Liquid template
- **timeout_ms** (integer, default: 600000, max: 900000) — Invocation timeout in milliseconds

<!-- alvera:section kind="tool-call-config" atom="s3_request" module="Platform.Tools.ToolCallConfig.S3Request" -->

## Tool Call Configuration (s3_request)

Fetches data from an S3 bucket.

- **file_path** (string) — S3 object key (no `s3://` prefix)

<!-- alvera:section kind="tool-call-config" atom="manual_upload" module="Platform.Tools.ToolCallConfig.ManualUpload" -->

## Tool Call Configuration (manual_upload)

Manual file upload — data is uploaded directly by the user. No additional configuration fields.

<!-- alvera:section kind="tool-call-config" atom="sms_request" module="Platform.Tools.ToolCallConfig.SMSRequest" -->

## Tool Call Configuration (sms_request)

Sends an SMS message via the configured SMS provider.

- **to** (TemplateConfig) — Recipient phone number in E.164 format, rendered as Liquid template
- **body** (TemplateConfig) — Message body, rendered as Liquid template
- **sms_type** (enum: transactional, promotional) — Message classification; defaults to `transactional`

<!-- alvera:section kind="tool-call-config" atom="mms_request" module="Platform.Tools.ToolCallConfig.MMSRequest" -->

## Tool Call Configuration (mms_request)

Sends an MMS (media message) via AWS End User Messaging or Twilio.

- **to** (TemplateConfig) — Recipient phone number in E.164 format, rendered as Liquid template
- **body** (TemplateConfig) — Message body (caption), rendered as Liquid template
- **media_url** (string) — Public http(s) URL of the media to attach; verified reachable (GET 2xx + image/*) at authoring, fetched at send (re-staged into the tool's S3 media bucket for End User Messaging; passed to Twilio as `MediaUrl`)

<!-- alvera:section kind="tool-call-config" atom="email_request" module="Platform.Tools.ToolCallConfig.EmailRequest" -->

## Tool Call Configuration (email_request)

Sends an email message via the configured email provider.

- **to** (TemplateConfig) — Recipient email address (RFC 5322), rendered as Liquid template
- **subject** (TemplateConfig) — Email subject line, rendered as Liquid template
- **body** (TemplateConfig) — Email body, rendered as Liquid template
