Files
gru_emoney_token-factory/api/packages/openapi/v1/paths/liens.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

239 lines
6.6 KiB
YAML

paths:
/liens:
post:
summary: Place a lien
description: Place a lien (encumbrance) on an account
operationId: placeLien
tags:
- Liens
security:
- oauth2:
- liens:write
x-roles:
- DEBT_AUTHORITY
requestBody:
required: true
content:
application/json:
schema:
$ref: '../components/schemas.yaml#/components/schemas/PlaceLienRequest'
responses:
'201':
description: Lien placed successfully
content:
application/json:
schema:
$ref: '../components/schemas.yaml#/components/schemas/Lien'
'400':
$ref: '../openapi.yaml#/components/responses/BadRequest'
'403':
$ref: '../openapi.yaml#/components/responses/Forbidden'
get:
summary: List liens
description: List liens with optional filtering
operationId: listLiens
tags:
- Liens
security:
- oauth2:
- liens:read
parameters:
- name: debtor
in: query
schema:
type: string
pattern: '^(0x[a-fA-F0-9]{40}|0x[a-fA-F0-9]{64})$'
description: Filter by debtor address or account reference
- name: active
in: query
schema:
type: boolean
description: Filter by active status
- 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 liens
content:
application/json:
schema:
type: object
properties:
items:
type: array
items:
$ref: '../components/schemas.yaml#/components/schemas/Lien'
total:
type: integer
limit:
type: integer
offset:
type: integer
/liens/{lienId}:
get:
summary: Get lien
description: Get lien details by ID
operationId: getLien
tags:
- Liens
security:
- oauth2:
- liens:read
parameters:
- $ref: '../components/parameters.yaml#/components/parameters/LienId'
responses:
'200':
description: Lien details
content:
application/json:
schema:
$ref: '../components/schemas.yaml#/components/schemas/Lien'
'404':
$ref: '../openapi.yaml#/components/responses/NotFound'
patch:
summary: Reduce lien
description: Reduce lien amount
operationId: reduceLien
tags:
- Liens
security:
- oauth2:
- liens:write
x-roles:
- DEBT_AUTHORITY
parameters:
- $ref: '../components/parameters.yaml#/components/parameters/LienId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '../components/schemas.yaml#/components/schemas/ReduceLienRequest'
responses:
'200':
description: Lien reduced
content:
application/json:
schema:
$ref: '../components/schemas.yaml#/components/schemas/Lien'
delete:
summary: Release lien
description: Release (remove) a lien
operationId: releaseLien
tags:
- Liens
security:
- oauth2:
- liens:write
x-roles:
- DEBT_AUTHORITY
parameters:
- $ref: '../components/parameters.yaml#/components/parameters/LienId'
responses:
'200':
description: Lien released
content:
application/json:
schema:
type: object
properties:
lienId:
type: string
released:
type: boolean
/accounts/{accountRefId}/liens:
get:
summary: List liens for account
description: Get all liens for a specific account
operationId: getAccountLiens
tags:
- Liens
security:
- oauth2:
- liens:read
parameters:
- $ref: '../components/parameters.yaml#/components/parameters/AccountRefId'
- name: active
in: query
schema:
type: boolean
description: Filter by active status
responses:
'200':
description: List of liens
content:
application/json:
schema:
type: object
properties:
accountRefId:
type: string
liens:
type: array
items:
$ref: '../components/schemas.yaml#/components/schemas/Lien'
activeEncumbrance:
type: string
description: Total active encumbrance amount
/accounts/{accountRefId}/encumbrance:
get:
summary: Get encumbrance summary
description: Get active encumbrance and free balance for an account by token
operationId: getEncumbrance
tags:
- Liens
security:
- oauth2:
- liens:read
parameters:
- $ref: '../components/parameters.yaml#/components/parameters/AccountRefId'
- name: token
in: query
schema:
type: string
pattern: '^0x[a-fA-F0-9]{40}$'
description: Token address (optional, returns for all tokens if omitted)
responses:
'200':
description: Encumbrance summary
content:
application/json:
schema:
type: object
properties:
accountRefId:
type: string
encumbrances:
type: array
items:
type: object
properties:
token:
type: string
tokenCode:
type: string
balance:
type: string
activeEncumbrance:
type: string
freeBalance:
type: string