chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,375 @@
|
||||
openapi: 3.0.0
|
||||
info:
|
||||
title: Trigger.dev API
|
||||
description: API for triggering events in Trigger.dev
|
||||
version: 1.0.0
|
||||
servers:
|
||||
- url: https://api.trigger.dev
|
||||
description: Trigger.dev API server
|
||||
security:
|
||||
- BearerAuth: []
|
||||
paths:
|
||||
/api/v1/events:
|
||||
post:
|
||||
operationId: sendEvent
|
||||
externalDocs:
|
||||
description: Find more info here
|
||||
url: "https://trigger.dev/docs/api/events/send-event"
|
||||
tags:
|
||||
- Events
|
||||
summary: Create an event
|
||||
description: Send an event to Trigger.dev to trigger job runs through eventTrigger()
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/EventRequest"
|
||||
responses:
|
||||
"200":
|
||||
description: Event successfully sent
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/EventResponse"
|
||||
"400":
|
||||
description: Invalid request
|
||||
"401":
|
||||
description: Unauthorized - API key is missing or invalid
|
||||
"422":
|
||||
description: Invalid request body
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Error"
|
||||
|
||||
/api/v3/batches:
|
||||
post:
|
||||
operationId: createBatch
|
||||
externalDocs:
|
||||
description: Find more info here
|
||||
url: "https://trigger.dev/docs/triggering"
|
||||
tags:
|
||||
- Batches
|
||||
summary: Create a batch (Phase 1)
|
||||
description: |
|
||||
Phase 1 of 2-phase batch API. Creates a batch record and optionally blocks the parent run for batchTriggerAndWait.
|
||||
After creating a batch, stream items via POST /api/v3/batches/{batchId}/items.
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/CreateBatchRequest"
|
||||
responses:
|
||||
"202":
|
||||
description: Batch successfully created
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/CreateBatchResponse"
|
||||
headers:
|
||||
x-trigger-jwt-claims:
|
||||
description: JWT claims for the batch
|
||||
schema:
|
||||
type: string
|
||||
x-trigger-jwt:
|
||||
description: JWT token for browser clients
|
||||
schema:
|
||||
type: string
|
||||
"400":
|
||||
description: Invalid request (e.g., runCount <= 0 or exceeds maximum)
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Error"
|
||||
"401":
|
||||
description: Unauthorized - API key is missing or invalid
|
||||
"422":
|
||||
description: Validation error
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Error"
|
||||
"429":
|
||||
description: Rate limit exceeded
|
||||
headers:
|
||||
X-RateLimit-Limit:
|
||||
description: Maximum number of requests allowed
|
||||
schema:
|
||||
type: integer
|
||||
X-RateLimit-Remaining:
|
||||
description: Number of requests remaining
|
||||
schema:
|
||||
type: integer
|
||||
X-RateLimit-Reset:
|
||||
description: Unix timestamp when the rate limit resets
|
||||
schema:
|
||||
type: integer
|
||||
Retry-After:
|
||||
description: Seconds to wait before retrying
|
||||
schema:
|
||||
type: integer
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Error"
|
||||
"500":
|
||||
description: Internal server error
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Error"
|
||||
|
||||
/api/v3/batches/{batchId}/items:
|
||||
post:
|
||||
operationId: streamBatchItems
|
||||
externalDocs:
|
||||
description: Find more info here
|
||||
url: "https://trigger.dev/docs/triggering"
|
||||
tags:
|
||||
- Batches
|
||||
summary: Stream batch items (Phase 2)
|
||||
description: |
|
||||
Phase 2 of 2-phase batch API. Accepts an NDJSON stream of batch items and enqueues them.
|
||||
Each line in the body should be a valid BatchItemNDJSON object.
|
||||
The stream is processed with backpressure - items are enqueued as they arrive.
|
||||
The batch is sealed when the stream completes successfully.
|
||||
parameters:
|
||||
- name: batchId
|
||||
in: path
|
||||
required: true
|
||||
description: The batch ID returned from POST /api/v3/batches
|
||||
schema:
|
||||
type: string
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/x-ndjson:
|
||||
schema:
|
||||
type: string
|
||||
description: |
|
||||
NDJSON (newline-delimited JSON) stream where each line is a BatchItemNDJSON object.
|
||||
Example:
|
||||
{"index":0,"task":"my-task","payload":{"key":"value1"}}
|
||||
{"index":1,"task":"my-task","payload":{"key":"value2"}}
|
||||
application/ndjson:
|
||||
schema:
|
||||
type: string
|
||||
description: |
|
||||
NDJSON (newline-delimited JSON) stream where each line is a BatchItemNDJSON object.
|
||||
responses:
|
||||
"200":
|
||||
description: Items successfully processed
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/StreamBatchItemsResponse"
|
||||
"400":
|
||||
description: Invalid request (e.g., invalid JSON, item exceeds maximum size)
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Error"
|
||||
"401":
|
||||
description: Unauthorized - API key is missing or invalid
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Error"
|
||||
"415":
|
||||
description: Unsupported Media Type - Content-Type must be application/x-ndjson or application/ndjson
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Error"
|
||||
"422":
|
||||
description: Validation error
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Error"
|
||||
"500":
|
||||
description: Internal server error
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/Error"
|
||||
|
||||
components:
|
||||
schemas:
|
||||
Error:
|
||||
type: object
|
||||
properties:
|
||||
message:
|
||||
type: string
|
||||
EventRequest:
|
||||
type: object
|
||||
properties:
|
||||
event:
|
||||
type: object
|
||||
required:
|
||||
- name
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
description: The name of the event
|
||||
payload:
|
||||
type: object
|
||||
additionalProperties: true
|
||||
description: The payload of the event
|
||||
context:
|
||||
type: object
|
||||
additionalProperties: true
|
||||
description: An optional context object
|
||||
id:
|
||||
type: string
|
||||
description: Unique identifier for the event. Auto-generated if not provided. If you provide an ID that already exists, the event will not be redelivered.
|
||||
timestamp:
|
||||
type: string
|
||||
format: date-time
|
||||
description: Event timestamp. Defaults to current timestamp if not provided.
|
||||
source:
|
||||
type: string
|
||||
description: Event source, default is 'trigger.dev'.
|
||||
options:
|
||||
type: object
|
||||
properties:
|
||||
deliverAt:
|
||||
type: string
|
||||
format: date-time
|
||||
description: Optional Date to deliver the event.
|
||||
deliverAfter:
|
||||
type: integer
|
||||
description: Optional delay in seconds before delivering the event.
|
||||
accountId:
|
||||
type: string
|
||||
description: Optional account ID to associate with the event.
|
||||
EventResponse:
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
description: The ID of the event that was sent.
|
||||
name:
|
||||
type: string
|
||||
description: The name of the event that was sent.
|
||||
payload:
|
||||
$ref: "#/components/schemas/DeserializedJson"
|
||||
context:
|
||||
$ref: "#/components/schemas/DeserializedJson"
|
||||
nullable: true
|
||||
description: The context of the event that was sent. Null if no context was set.
|
||||
timestamp:
|
||||
type: string
|
||||
format: date-time
|
||||
description: The timestamp of the event that was sent.
|
||||
deliverAt:
|
||||
type: string
|
||||
format: date-time
|
||||
nullable: true
|
||||
description: The timestamp when the event will be delivered. Null if not applicable.
|
||||
deliveredAt:
|
||||
type: string
|
||||
format: date-time
|
||||
nullable: true
|
||||
description: The timestamp when the event was delivered. Null if not applicable.
|
||||
cancelledAt:
|
||||
type: string
|
||||
format: date-time
|
||||
nullable: true
|
||||
description: The timestamp when the event was cancelled. Null if the event wasn't cancelled.
|
||||
DeserializedJson:
|
||||
type: object
|
||||
additionalProperties: true
|
||||
description: A JSON object that represents the deserialized payload or context.
|
||||
CreateBatchRequest:
|
||||
type: object
|
||||
required:
|
||||
- runCount
|
||||
properties:
|
||||
runCount:
|
||||
type: integer
|
||||
minimum: 1
|
||||
description: Expected number of items in the batch. Must be a positive integer.
|
||||
parentRunId:
|
||||
type: string
|
||||
description: Parent run ID (friendly ID) for batchTriggerAndWait.
|
||||
resumeParentOnCompletion:
|
||||
type: boolean
|
||||
description: Whether to resume parent on completion. Set to true for batchTriggerAndWait.
|
||||
idempotencyKey:
|
||||
type: string
|
||||
description: Idempotency key for the batch. If provided and a batch with this key already exists, the existing batch will be returned.
|
||||
CreateBatchResponse:
|
||||
type: object
|
||||
required:
|
||||
- id
|
||||
- runCount
|
||||
- isCached
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
description: The batch ID (friendly ID). Use this to stream items via POST /api/v3/batches/{batchId}/items.
|
||||
runCount:
|
||||
type: integer
|
||||
description: The expected run count.
|
||||
isCached:
|
||||
type: boolean
|
||||
description: Whether this response came from a cached/idempotent batch.
|
||||
idempotencyKey:
|
||||
type: string
|
||||
description: The idempotency key if provided.
|
||||
BatchItemNDJSON:
|
||||
type: object
|
||||
required:
|
||||
- index
|
||||
- task
|
||||
properties:
|
||||
index:
|
||||
type: integer
|
||||
minimum: 0
|
||||
description: Zero-based index of this item. Used for idempotency and ordering.
|
||||
task:
|
||||
type: string
|
||||
description: The task identifier to trigger.
|
||||
payload:
|
||||
description: The payload for this task run. Can be any JSON value.
|
||||
options:
|
||||
type: object
|
||||
additionalProperties: true
|
||||
description: Options for this specific item.
|
||||
StreamBatchItemsResponse:
|
||||
type: object
|
||||
required:
|
||||
- id
|
||||
- itemsAccepted
|
||||
- itemsDeduplicated
|
||||
- sealed
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
description: The batch ID.
|
||||
itemsAccepted:
|
||||
type: integer
|
||||
description: Number of items successfully accepted.
|
||||
itemsDeduplicated:
|
||||
type: integer
|
||||
description: Number of items that were deduplicated (already enqueued).
|
||||
sealed:
|
||||
type: boolean
|
||||
description: |
|
||||
Whether the batch was sealed and is ready for processing.
|
||||
If false, the batch needs more items before processing can start.
|
||||
Clients should check this field and retry with missing items if needed.
|
||||
enqueuedCount:
|
||||
type: integer
|
||||
description: Total items currently enqueued. Only present when sealed=false to help with retries.
|
||||
expectedCount:
|
||||
type: integer
|
||||
description: Expected total item count. Only present when sealed=false to help with retries.
|
||||
securitySchemes:
|
||||
BearerAuth:
|
||||
type: http
|
||||
scheme: bearer
|
||||
bearerFormat: JWT
|
||||
Reference in New Issue
Block a user