Files
gru_emoney_token-factory/api/packages/openapi/v1/paths/triggers.yaml
defiQUG 651ff4f7eb Initial project setup: Add contracts, API definitions, tests, and documentation
- Add Foundry project configuration (foundry.toml, foundry.lock)
- Add Solidity contracts (TokenFactory138, BridgeVault138, ComplianceRegistry, etc.)
- Add API definitions (OpenAPI, GraphQL, gRPC, AsyncAPI)
- Add comprehensive test suite (unit, integration, fuzz, invariants)
- Add API services (REST, GraphQL, orchestrator, packet service)
- Add documentation (ISO20022 mapping, runbooks, adapter guides)
- Add development tools (RBC tool, Swagger UI, mock server)
- Update OpenZeppelin submodules to v5.0.0
2025-12-12 10:59:41 -08:00

207 lines
6.0 KiB
YAML

paths:
/triggers:
get:
summary: List triggers
description: List payment rail triggers with filtering
operationId: listTriggers
tags:
- Triggers
security:
- oauth2:
- triggers:read
parameters:
- name: state
in: query
schema:
$ref: '../components/schemas.yaml#/components/schemas/TriggerState'
description: Filter by trigger state
- name: rail
in: query
schema:
$ref: '../components/schemas.yaml#/components/schemas/Rail'
description: Filter by payment rail
- name: msgType
in: query
schema:
type: string
pattern: '^[a-z]+\\.[0-9]{3}$'
description: Filter by ISO-20022 message type
- name: instructionId
in: query
schema:
type: string
pattern: '^[a-fA-F0-9]{64}$'
description: Filter by instruction ID
- name: limit
in: query
schema:
type: integer
minimum: 1
maximum: 100
default: 20
- name: offset
in: query
schema:
type: integer
minimum: 0
default: 0
responses:
'200':
description: List of triggers
content:
application/json:
schema:
type: object
properties:
items:
type: array
items:
$ref: '../components/schemas.yaml#/components/schemas/Trigger'
total:
type: integer
limit:
type: integer
offset:
type: integer
/triggers/{triggerId}:
get:
summary: Get trigger
description: Get trigger details by ID
operationId: getTrigger
tags:
- Triggers
security:
- oauth2:
- triggers:read
parameters:
- $ref: '../components/parameters.yaml#/components/parameters/TriggerId'
responses:
'200':
description: Trigger details
content:
application/json:
schema:
$ref: '../components/schemas.yaml#/components/schemas/Trigger'
'404':
$ref: '../openapi.yaml#/components/responses/NotFound'
/triggers/{triggerId}/validate-and-lock:
post:
summary: Validate and lock trigger
description: Orchestrator step - validate trigger and lock funds
operationId: validateAndLockTrigger
tags:
- Triggers
security:
- oauth2:
- triggers:write
x-roles:
- POLICY_OPERATOR
parameters:
- $ref: '../components/parameters.yaml#/components/parameters/TriggerId'
responses:
'200':
description: Trigger validated and locked
content:
application/json:
schema:
$ref: '../components/schemas.yaml#/components/schemas/Trigger'
'400':
$ref: '../openapi.yaml#/components/responses/BadRequest'
'409':
$ref: '../openapi.yaml#/components/responses/Conflict'
/triggers/{triggerId}/mark-submitted:
post:
summary: Mark trigger as submitted
description: Mark trigger as submitted to rail (includes railTxRef)
operationId: markTriggerSubmitted
tags:
- Triggers
security:
- oauth2:
- triggers:write
x-roles:
- POLICY_OPERATOR
parameters:
- $ref: '../components/parameters.yaml#/components/parameters/TriggerId'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- railTxRef
properties:
railTxRef:
type: string
description: Rail transaction reference
responses:
'200':
description: Trigger marked as submitted
content:
application/json:
schema:
$ref: '../components/schemas.yaml#/components/schemas/Trigger'
/triggers/{triggerId}/confirm-settled:
post:
summary: Confirm trigger settled
description: Confirm trigger has settled on the rail
operationId: confirmTriggerSettled
tags:
- Triggers
security:
- oauth2:
- triggers:write
x-roles:
- POLICY_OPERATOR
x-idempotency: true
parameters:
- $ref: '../components/parameters.yaml#/components/parameters/TriggerId'
- $ref: '../components/parameters.yaml#/components/parameters/IdempotencyKey'
responses:
'200':
description: Trigger confirmed as settled
content:
application/json:
schema:
$ref: '../components/schemas.yaml#/components/schemas/Trigger'
/triggers/{triggerId}/confirm-rejected:
post:
summary: Confirm trigger rejected
description: Confirm trigger was rejected on the rail
operationId: confirmTriggerRejected
tags:
- Triggers
security:
- oauth2:
- triggers:write
x-roles:
- POLICY_OPERATOR
x-idempotency: true
parameters:
- $ref: '../components/parameters.yaml#/components/parameters/TriggerId'
- $ref: '../components/parameters.yaml#/components/parameters/IdempotencyKey'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
reason:
type: string
description: Rejection reason
responses:
'200':
description: Trigger confirmed as rejected
content:
application/json:
schema:
$ref: '../components/schemas.yaml#/components/schemas/Trigger'