github.com/thetreep/go-swagger@v0.0.0-20240223100711-35af64f14f01/fixtures/bugs/2527/swagger-fixed.yml (about)

     1  swagger: '2.0'
     2  info:
     3    title: Exchange Automator 2
     4    version: '1.0'
     5    description: Exchange trading automator. Internal only service.
     6  host: localhost
     7  basePath: /api/v1
     8  securityDefinitions:
     9    ApiKeyAuth:
    10      name: X-API-Key
    11      description: 'API keys are all predefined for all internal services'
    12      type: apiKey
    13      in: header
    14  security:
    15    - ApiKeyAuth: []
    16  schemes:
    17    - https
    18  consumes:
    19    - application/json
    20  produces:
    21    - application/json
    22  responses:
    23    401:
    24      description: Not authorized
    25      schema:
    26        $ref: '#/definitions/Error'
    27    422:
    28      description: Unprocessable entity
    29      schema:
    30        $ref: '#/definitions/Error'
    31    503:
    32      description: Service temporarily unavailable
    33      schema:
    34        $ref: '#/definitions/Error'
    35  tags:
    36    - name: Currency exchange rate
    37      description: Get exchange currency rate info
    38    - name: Deposit
    39    - name: Trading
    40  parameters:
    41    Exchange:
    42      name: exchange
    43      in: query
    44      type: string
    45      enum: [kraken, globitex, binance, cex]
    46      description: Exchange Id
    47  definitions:
    48    Exchange:
    49      type: string
    50      enum: [kraken, globitex, binance, cex]
    51      description: Exchange Id
    52    CurrencyRate:
    53      type: object
    54      properties:
    55        exchange:
    56          type: string
    57        timestamp:
    58          description: Most likely near to current moment
    59          type: integer
    60          format: int64
    61        source:
    62          type: string
    63          description: Source currency ticker
    64        target:
    65          type: string
    66          description: Target currency ticker
    67        rate:
    68          type: number
    69          format: double
    70        sourceAmount:
    71          type: number
    72          format: double
    73        targetAmount:
    74          type: number
    75          format: double
    76    Deposit:
    77      type: object
    78      description: Field list is not final, will be added during development
    79      properties:
    80        exchange:
    81          $ref: '#/definitions/Exchange'
    82        accountId:
    83          type: string
    84          format: uuid
    85        txId:
    86          description: Transaction Id
    87          type: string
    88        clientId:
    89          description: Client Id, identified via external system, after receiving
    90        ticker:
    91          type: string
    92        amount:
    93          type: number
    94          format: double
    95    ExchangeOrder:
    96      type: object
    97      required:
    98        - exchange
    99        - incomingTxId
   100        - source
   101        - target
   102        - sourceAmount
   103      properties:
   104        id:
   105          type: string
   106          description: Created order Id
   107        type:
   108          type: string
   109          description: defaults to 'market'
   110          enum: [market, limit]
   111        exchange:
   112          $ref: '#/definitions/Exchange'
   113        incomingTxId:
   114          type: string
   115          description: Incoming deposit transaction id
   116        source:
   117          type: string
   118        target:
   119          type: string
   120        sourceAmount:
   121          type: number
   122          format: double
   123        targetAmount:
   124          description: Target currency amount after or during exchange processing. Total of transactions amounts
   125          type: number
   126          format: double
   127        status:
   128          type: string
   129          enum: [pending, processing, executed]
   130        transactions:
   131          type: array
   132          items:
   133            type: string
   134  
   135    Error:
   136      type: object
   137      required:
   138        - message
   139      properties:
   140        message:
   141          type: string
   142          description: Error description
   143  paths:
   144    /swagger.yml:
   145      get:
   146        description: Returns swagger api specs
   147        tags:
   148          - Swagger
   149        responses:
   150          200:
   151            description: Swagger specs contents
   152    /exchange_rate:
   153      get:
   154        description: Returns currency exchange rate. If both sourceAmount and targetAmount is provided, targetAmount will be ignored.
   155        tags:
   156          - Currency exchange rate
   157        parameters:
   158          - name: exchange
   159            description: Exchange to query
   160            in: query
   161            type: string
   162            required: true
   163          - name: source
   164            description: Source currency to be converted from
   165            in: query
   166            type: string
   167            required: true
   168          - name: target
   169            description: Target currency to be converted to
   170            in: query
   171            type: string
   172            required: true
   173          - name: sourceAmount
   174            description: If set, returns target currency amount, selling this amount of source currency, default 1
   175            in: query
   176            type: number
   177            format: double
   178          - name: targetAmount
   179            description: If set, returns source currency amount, buying this amount of target currency
   180            in: query
   181            type: number
   182            format: double
   183        responses:
   184          200:
   185            description: Currency rate object
   186            schema:
   187              $ref: '#/definitions/CurrencyRate'
   188          401:
   189            $ref: '#/responses/401'
   190          422:
   191            $ref: '#/responses/422'
   192          503:
   193            $ref: '#/responses/503'
   194    /deposits:
   195      get:
   196        description: Returns deposits list across all exchanges
   197        tags:
   198          - Deposit
   199        parameters:
   200          - name: accountId
   201            description: Filter by account ID
   202            in: query
   203            type: string
   204            format: uuid
   205          - $ref: '#/parameters/Exchange'
   206          - name: status
   207            description: Filter by deposit transaction status
   208            type: string
   209            in: query
   210            enum: [pending, mempool, something, else]
   211        responses:
   212          200:
   213            description: Deposit list
   214            schema:
   215              type: object
   216              properties:
   217                deposits:
   218                  type: array
   219                  items:
   220                    $ref: '#/definitions/Deposit'
   221          401:
   222            $ref: '#/responses/401'
   223    /exchange_order/{exchangeOrderId}:
   224      get:
   225        description: Returns exchange order
   226        tags:
   227          - Trading
   228        parameters:
   229          - name: exchangeOrderId
   230            in: path
   231            type: string
   232            required: true
   233        responses:
   234          200:
   235            description: Exchange order
   236            schema:
   237              $ref: '#/definitions/ExchangeOrder'
   238          401:
   239            $ref: '#/responses/401'
   240    /exchange_order:
   241      post:
   242        description: Creates a currency exchange order, depending on order type, might be async
   243        tags:
   244          - Trading
   245        parameters:
   246          - name: X-Idempotency-Token
   247            description: Client generated idempotency token for operation deduplication
   248            in: header
   249            type: string
   250            required: true
   251          - name: exchangeOrder
   252            in: body
   253            required: true
   254            schema:
   255              type: object
   256              required:
   257                - exchange
   258                - incomingTxId
   259                - source
   260                - target
   261                - sourceAmount
   262              properties:
   263                type:
   264                  type: string
   265                  description: defaults to 'market'
   266                  enum: [market, limit]
   267                exchange:
   268                  $ref: '#/definitions/Exchange'
   269                incomingTxId:
   270                  type: string
   271                  description: Incoming deposit transaction id
   272                source:
   273                  type: string
   274                target:
   275                  type: string
   276                sourceAmount:
   277                  type: number
   278                  format: double
   279        responses:
   280          200:
   281            description: Exchange order
   282            schema:
   283              $ref: '#/definitions/ExchangeOrder'
   284          401:
   285            $ref: '#/responses/401'