- 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
207 lines
5.8 KiB
YAML
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'
|
|
|