Server : LiteSpeed System : Linux in-mum-web1949.main-hosting.eu 5.14.0-503.40.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Mon May 5 06:06:04 EDT 2025 x86_64 User : u595547767 ( 595547767) PHP Version : 7.4.33 Disable Function : NONE Directory : /opt/go/pkg/mod/github.com/go-openapi/validate@v0.24.0/fixtures/bugs/2527/ |
swagger: '2.0'
info:
title: Exchange Automator 2
version: '1.0'
description: Exchange trading automator. Internal only service.
host: localhost
basePath: /api/v1
securityDefinitions:
ApiKeyAuth:
name: X-API-Key
description: 'API keys are all predefined for all internal services'
type: apiKey
in: header
security:
- ApiKeyAuth: []
schemes:
- https
consumes:
- application/json
produces:
- application/json
responses:
401:
description: Not authorized
schema:
$ref: '#/definitions/Error'
422:
description: Unprocessable entity
schema:
$ref: '#/definitions/Error'
503:
description: Service temporarily unavailable
schema:
$ref: '#/definitions/Error'
tags:
- name: Currency exchange rate
description: Get exchange currency rate info
- name: Deposit
- name: Trading
parameters:
wrongSchema:
name: wrongSchema
in: body
required: true
schema:
$ref: '#/definitions/WrongSchema'
definitions:
WrongSchema:
descriptions: this is wrong
type: [zilk, zork]
Exchange:
description: Exchange Id
type: string
enum: [kraken, globitex, binance, cex]
CurrencyRate:
type: object
properties:
exchange:
type: string
timestamp:
description: Most likely near to current moment
type: integer
format: int64
source:
type: string
description: Source currency ticker
target:
type: string
description: Target currency ticker
rate:
type: number
format: double
sourceAmount:
type: number
format: double
targetAmount:
type: number
format: double
Deposit:
type: object
description: Field list is not final, will be added during development
properties:
exchange:
$ref: '#/definitions/Exchange'
accountId:
type: string
format: uuid
txId:
description: Transaction Id
type: string
clientId:
description: Client Id, identified via external system, after receiving
ticker:
type: string
amount:
type: number
format: double
ExchangeOrder:
type: object
required:
- exchange
- incomingTxId
- source
- target
- sourceAmount
properties:
id:
type: string
description: Created order Id
type:
type: string
description: defaults to 'market'
enum: [market, limit]
exchange:
$ref: '#/definitions/Exchange'
incomingTxId:
type: string
description: Incoming deposit transaction id
source:
type: string
target:
type: string
sourceAmount:
type: number
format: double
targetAmount:
description: Target currency amount after or during exchange processing. Total of transactions amounts
type: number
format: double
status:
type: string
enum: [pending, processing, executed]
transactions:
type: array
items:
type: string
Error:
type: object
required:
- message
properties:
message:
type: string
description: Error description
paths:
/swagger.yml:
get:
description: Returns swagger api specs
tags:
- Swagger
responses:
200:
description: Swagger specs contents
/exchange_rate:
get:
description: Returns currency exchange rate. If both sourceAmount and targetAmount is provided, targetAmount will be ignored.
tags:
- Currency exchange rate
parameters:
- name: exchange
description: Exchange to query
in: query
type: string
required: true
- name: source
description: Source currency to be converted from
in: query
type: string
required: true
- name: target
description: Target currency to be converted to
in: query
type: string
required: true
- name: sourceAmount
description: If set, returns target currency amount, selling this amount of source currency, default 1
in: query
type: number
format: double
- name: targetAmount
description: If set, returns source currency amount, buying this amount of target currency
in: query
type: number
format: double
responses:
200:
description: Currency rate object
schema:
$ref: '#/definitions/CurrencyRate'
401:
$ref: '#/responses/401'
422:
$ref: '#/responses/422'
503:
$ref: '#/responses/503'
/deposits:
put:
description: Returns deposits list across all exchanges
tags:
- Deposit
parameters:
- name: accountId
description: Filter by account ID
in: query
type: string
format: uuid
- $ref: '#/parameters/wrongSchema'
- name: status
description: Filter by deposit transaction status
type: string
in: query
enum: [pending, mempool, something, else]
responses:
200:
description: Deposit list
schema:
type: object
properties:
deposits:
type: array
items:
$ref: '#/definitions/Deposit'
401:
$ref: '#/responses/401'
/exchange_order/{exchangeOrderId}:
get:
description: Returns exchange order
tags:
- Trading
parameters:
- name: exchangeOrderId
in: path
type: string
required: true
responses:
200:
description: Exchange order
schema:
$ref: '#/definitions/ExchangeOrder'
401:
$ref: '#/responses/401'
/exchange_order:
post:
description: Creates a currency exchange order, depending on order type, might be async
tags:
- Trading
parameters:
- name: X-Idempotency-Token
description: Client generated idempotency token for operation deduplication
in: header
type: string
required: true
- name: exchangeOrder
in: body
required: true
schema:
type: object
required:
- exchange
- incomingTxId
- source
- target
- sourceAmount
properties:
type:
type: string
description: defaults to 'market'
enum: [market, limit]
exchange:
$ref: '#/definitions/Exchange'
incomingTxId:
type: string
description: Incoming deposit transaction id
source:
type: string
target:
type: string
sourceAmount:
type: number
format: double
responses:
200:
description: Exchange order
schema:
$ref: '#/definitions/ExchangeOrder'
401:
$ref: '#/responses/401'