Files
gru_emoney_token-factory/api/packages/openapi/v1/paths/packets.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
5.8 KiB
YAML

paths:
/packets:
post:
summary: Generate packet
description: Generate a non-scheme integration packet (PDF + sidecars)
operationId: generatePacket
tags:
- Packets
security:
- oauth2:
- packets:write
x-idempotency: true
parameters:
- $ref: '../components/parameters.yaml#/components/parameters/IdempotencyKey'
requestBody:
required: true
content:
application/json:
schema:
$ref: '../components/schemas.yaml#/components/schemas/GeneratePacketRequest'
responses:
'201':
description: Packet generated
content:
application/json:
schema:
$ref: '../components/schemas.yaml#/components/schemas/Packet'
get:
summary: List packets
description: List packets with optional filtering
operationId: listPackets
tags:
- Packets
security:
- oauth2:
- packets:read
parameters:
- name: triggerId
in: query
schema:
type: string
pattern: '^[a-fA-F0-9]{64}$'
description: Filter by trigger ID
- name: instructionId
in: query
schema:
type: string
pattern: '^[a-fA-F0-9]{64}$'
description: Filter by instruction ID
- name: status
in: query
schema:
type: string
enum: ["GENERATED", "DISPATCHED", "DELIVERED", "ACKNOWLEDGED", "FAILED"]
- 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 packets
content:
application/json:
schema:
type: object
properties:
items:
type: array
items:
$ref: '../components/schemas.yaml#/components/schemas/Packet'
total:
type: integer
limit:
type: integer
offset:
type: integer
/packets/{packetId}:
get:
summary: Get packet
description: Get packet metadata and hashes
operationId: getPacket
tags:
- Packets
security:
- oauth2:
- packets:read
parameters:
- $ref: '../components/parameters.yaml#/components/parameters/PacketId'
responses:
'200':
description: Packet metadata
content:
application/json:
schema:
$ref: '../components/schemas.yaml#/components/schemas/Packet'
'404':
$ref: '../openapi.yaml#/components/responses/NotFound'
/packets/{packetId}/download:
get:
summary: Download packet
description: Download packet file (PDF, etc.) - auth controlled
operationId: downloadPacket
tags:
- Packets
security:
- oauth2:
- packets:read
parameters:
- $ref: '../components/parameters.yaml#/components/parameters/PacketId'
responses:
'200':
description: Packet file
content:
application/pdf:
schema:
type: string
format: binary
'404':
$ref: '../openapi.yaml#/components/responses/NotFound'
/packets/{packetId}/dispatch:
post:
summary: Dispatch packet
description: Dispatch packet via email/AS4/portal
operationId: dispatchPacket
tags:
- Packets
security:
- oauth2:
- packets:write
x-idempotency: true
parameters:
- $ref: '../components/parameters.yaml#/components/parameters/PacketId'
- $ref: '../components/parameters.yaml#/components/parameters/IdempotencyKey'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- channel
properties:
channel:
type: string
enum: ["EMAIL", "AS4", "PORTAL"]
recipient:
type: string
description: Recipient address/identifier
responses:
'200':
description: Packet dispatched
content:
application/json:
schema:
$ref: '../components/schemas.yaml#/components/schemas/Packet'
/packets/{packetId}/ack:
post:
summary: Record packet acknowledgement
description: Record an acknowledgement/receipt for a packet
operationId: acknowledgePacket
tags:
- Packets
security:
- oauth2:
- packets:write
x-idempotency: true
parameters:
- $ref: '../components/parameters.yaml#/components/parameters/PacketId'
- $ref: '../components/parameters.yaml#/components/parameters/IdempotencyKey'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- status
properties:
status:
type: string
enum: ["RECEIVED", "ACCEPTED", "REJECTED"]
ackId:
type: string
description: Acknowledgement identifier
responses:
'200':
description: Acknowledgement recorded
content:
application/json:
schema:
$ref: '../components/schemas.yaml#/components/schemas/Packet'