packages feed

hledger-web-1.43.1: config/openapi.yaml

# This is an OpenAPI Spec of hledger-web's JSON-over-HTTP API:
#
# https://hledger.org/hledger-web.html#json-api
#
# Originally generated by openapi-devtools:
#
# https://github.com/AndrewWalsh/openapi-devtools
# https://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators/haskell-yesod.md
#
# and then modified by hand.


openapi: 3.1.0

info:
  title: hledger-web API
  description: >
    Provides interaction with hledger, the plaintext accounting tool powered by
    Haskell. Lookup account details, balances, commodity prices, and
    transactions.
  version: 1.0.0

servers:
- url: http://127.0.0.1:5000
  description: Locally hosted server for hledger-web API


paths:

  /version:
    get:
      summary: The hledger version
      description: Returns the hledger version that powers this API as a SemVer string.
      operationId: hledger_version
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema: {}
      security:
      - apikey_cookie__session: []
      - apikey_header_cookie: []

  /accountnames:
    get:
      summary: Account names
      description: Returns all of the account names in a JSON array
      operationId: hledger_account_names
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items: {}
      security:
      - apikey_cookie__session: []
      - apikey_header_cookie: []

  /transactions:
    get:
      summary: Transaction query
      description: >
        Queries the journal for transactions (txs). Returns a list of JSON
        objects describing the tx postings.
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  required:
                  - tcode
                  - tcomment
                  - tdate
                  - tdate2
                  - tdescription
                  - tindex
                  - tpostings
                  - tprecedingcomment
                  - tsourcepos
                  - tstatus
                  - ttags
                  properties:
                    tcode: {}
                    tcomment: {}
                    tdate: {}
                    tdate2: {}
                    tdescription: {}
                    tindex: {}
                    tpostings:
                      items:
                        required:
                        - paccount
                        - pamount
                        - pbalanceassertion
                        - pcomment
                        - pdate
                        - pdate2
                        - poriginal
                        - pstatus
                        - ptags
                        - ptransaction_
                        - ptype
                        properties:
                          paccount: {}
                          pamount:
                            items:
                              required:
                              - acommodity
                              - acost
                              - aquantity
                              - astyle
                              properties:
                                acommodity: {}
                                acost:
                                  anyOf:
                                  - {}
                                  - required:
                                    - contents
                                    - tag
                                    properties:
                                      contents:
                                        required:
                                        - acommodity
                                        - acost
                                        - aquantity
                                        - astyle
                                        properties:
                                          acommodity: {}
                                          acost: {}
                                          aquantity:
                                            required:
                                            - decimalMantissa
                                            - decimalPlaces
                                            - floatingPoint
                                            properties:
                                              decimalMantissa: {}
                                              decimalPlaces: {}
                                              floatingPoint: {}
                                          astyle:
                                            required:
                                            - ascommodityside
                                            - ascommodityspaced
                                            - asdecimalmark
                                            - asdigitgroups
                                            - asprecision
                                            - asrounding
                                            properties:
                                              ascommodityside: {}
                                              ascommodityspaced: {}
                                              asdecimalmark: {}
                                              asdigitgroups: {}
                                              asprecision: {}
                                              asrounding: {}
                                      tag: {}
                                aquantity:
                                  required:
                                  - decimalMantissa
                                  - decimalPlaces
                                  - floatingPoint
                                  properties:
                                    decimalMantissa: {}
                                    decimalPlaces: {}
                                    floatingPoint: {}
                                astyle:
                                  required:
                                  - ascommodityside
                                  - ascommodityspaced
                                  - asdecimalmark
                                  - asdigitgroups
                                  - asprecision
                                  - asrounding
                                  properties:
                                    ascommodityside: {}
                                    ascommodityspaced: {}
                                    asdecimalmark: {}
                                    asdigitgroups: {}
                                    asprecision: {}
                                    asrounding: {}
                          pbalanceassertion: {}
                          pcomment: {}
                          pdate: {}
                          pdate2: {}
                          poriginal: {}
                          pstatus: {}
                          ptags: {}
                          ptransaction_: {}
                          ptype: {}
                    tprecedingcomment: {}
                    tsourcepos:
                      items:
                        required:
                        - sourceColumn
                        - sourceLine
                        - sourceName
                        properties:
                          sourceColumn: {}
                          sourceLine: {}
                          sourceName: {}
                    tstatus: {}
                    ttags: {}
      security:
      - apikey_cookie__session: []
      - apikey_header_cookie: []

  /prices:
    get:
      summary: Commodity prices
      description: >
        Queries the journal for commodity prices. Returns a list of JSON objects
        with commodity price information.
      operationId: hledger_commodity_prices
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  required:
                  - mpdate
                  - mpfrom
                  - mprate
                  - mpto
                  properties:
                    mpdate: {}
                    mpfrom: {}
                    mprate:
                      required:
                      - decimalMantissa
                      - decimalPlaces
                      - floatingPoint
                      properties:
                        decimalMantissa: {}
                        decimalPlaces: {}
                        floatingPoint: {}
                    mpto: {}
      security:
      - apikey_cookie__session: []
      - apikey_header_cookie: []

  /commodities:
    get:
      operationId: hledger_commodity_symbols
      summary: Commodity symbols
      description: >
        List all tracked commodities in the ledger. Returns a JSON list of
        strings of commodity symbols
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items: {}
      security:
      - apikey_cookie__session: []
      - apikey_header_cookie: []

  /accounts:
    get:
      operationId: hledger_accounts
      summary: Account information
      description: >
        Queries the journal for account information. Returns a JSON list of
        account objects
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  required:
                  - aboring
                  - adeclarationinfo
                  - aebalance
                  - aibalance
                  - aname
                  - anumpostings
                  - aparent_
                  - asubs
                  - asubs_
                  properties:
                    aname: {}
                    adeclarationinfo: {}
                    aebalance:
                      items:
                        required:
                        - acommodity
                        - acost
                        - aquantity
                        - astyle
                        properties:
                          acommodity: {}
                          acost:
                            anyOf:
                            - {}
                            - required:
                              - contents
                              - tag
                              properties:
                                contents:
                                  required:
                                  - acommodity
                                  - acost
                                  - aquantity
                                  - astyle
                                  properties:
                                    acommodity: {}
                                    acost: {}
                                    aquantity:
                                      required:
                                      - decimalMantissa
                                      - decimalPlaces
                                      - floatingPoint
                                      properties:
                                        decimalMantissa: {}
                                        decimalPlaces: {}
                                        floatingPoint: {}
                                    astyle:
                                      required:
                                      - ascommodityside
                                      - ascommodityspaced
                                      - asdecimalmark
                                      - asdigitgroups
                                      - asprecision
                                      - asrounding
                                      properties:
                                        ascommodityside: {}
                                        ascommodityspaced: {}
                                        asdecimalmark: {}
                                        asdigitgroups: {}
                                        asprecision: {}
                                        asrounding: {}
                                tag: {}
                          aquantity:
                            required:
                            - decimalMantissa
                            - decimalPlaces
                            - floatingPoint
                            properties:
                              decimalMantissa: {}
                              decimalPlaces: {}
                              floatingPoint: {}
                          astyle:
                            required:
                            - ascommodityside
                            - ascommodityspaced
                            - asdecimalmark
                            - asdigitgroups
                            - asprecision
                            - asrounding
                            properties:
                              ascommodityside: {}
                              ascommodityspaced: {}
                              asdecimalmark: {}
                              asdigitgroups: {}
                              asprecision: {}
                              asrounding: {}
                    aibalance:
                      items:
                        required:
                        - acommodity
                        - acost
                        - aquantity
                        - astyle
                        properties:
                          acommodity: {}
                          acost:
                            anyOf:
                            - {}
                            - required:
                              - contents
                              - tag
                              properties:
                                contents:
                                  required:
                                  - acommodity
                                  - acost
                                  - aquantity
                                  - astyle
                                  properties:
                                    acommodity: {}
                                    acost: {}
                                    aquantity:
                                      required:
                                      - decimalMantissa
                                      - decimalPlaces
                                      - floatingPoint
                                      properties:
                                        decimalMantissa: {}
                                        decimalPlaces: {}
                                        floatingPoint: {}
                                    astyle:
                                      required:
                                      - ascommodityside
                                      - ascommodityspaced
                                      - asdecimalmark
                                      - asdigitgroups
                                      - asprecision
                                      - asrounding
                                      properties:
                                        ascommodityside: {}
                                        ascommodityspaced: {}
                                        asdecimalmark: {}
                                        asdigitgroups: {}
                                        asprecision: {}
                                        asrounding: {}
                                tag: {}
                          aquantity:
                            required:
                            - decimalMantissa
                            - decimalPlaces
                            - floatingPoint
                            properties:
                              decimalMantissa: {}
                              decimalPlaces: {}
                              floatingPoint: {}
                          astyle:
                            required:
                            - ascommodityside
                            - ascommodityspaced
                            - asdecimalmark
                            - asdigitgroups
                            - asprecision
                            - asrounding
                            properties:
                              ascommodityside: {}
                              ascommodityspaced: {}
                              asdecimalmark: {}
                              asdigitgroups: {}
                              asprecision: {}
                              asrounding: {}
                    anumpostings: {}
                    aboring: {}
                    aparent_: {}
                    asubs_:
                      items: {}
                    asubs: {}
      security:
      - apikey_cookie__session: []
      - apikey_header_cookie: []

  /accounttransactions/{name}:
    get:
      operationId: hledger_account_txs
      summary: Account transactions
      description: >
        List transactions in the requested account. Returns a JSON list of
        transaction objects (txs).
      parameters:
        - name: name
          in: path
          required: true
          description: The account name to lookup
          schema:
            type: string
      responses:
        "200":
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  items:
                    anyOf:
                    - {}
                    - items:
                        required:
                        - acommodity
                        - acost
                        - aquantity
                        - astyle
                        properties:
                          acommodity: {}
                          acost: {}
                          aquantity:
                            required:
                            - decimalMantissa
                            - decimalPlaces
                            - floatingPoint
                            properties:
                              decimalMantissa: {}
                              decimalPlaces: {}
                              floatingPoint: {}
                          astyle:
                            required:
                            - ascommodityside
                            - ascommodityspaced
                            - asdecimalmark
                            - asdigitgroups
                            - asprecision
                            - asrounding
                            properties:
                              ascommodityside: {}
                              ascommodityspaced: {}
                              asdecimalmark: {}
                              asdigitgroups: {}
                              asprecision: {}
                              asrounding: {}
                    - required:
                      - tcode
                      - tcomment
                      - tdate
                      - tdate2
                      - tdescription
                      - tindex
                      - tpostings
                      - tprecedingcomment
                      - tsourcepos
                      - tstatus
                      - ttags
                      properties:
                        tcode: {}
                        tcomment: {}
                        tdate: {}
                        tdate2: {}
                        tdescription: {}
                        tindex: {}
                        tpostings:
                          items:
                            required:
                            - paccount
                            - pamount
                            - pbalanceassertion
                            - pcomment
                            - pdate
                            - pdate2
                            - poriginal
                            - pstatus
                            - ptags
                            - ptransaction_
                            - ptype
                            properties:
                              paccount: {}
                              pamount:
                                items:
                                  required:
                                  - acommodity
                                  - acost
                                  - aquantity
                                  - astyle
                                  properties:
                                    acommodity: {}
                                    acost: {}
                                    aquantity:
                                      required:
                                      - decimalMantissa
                                      - decimalPlaces
                                      - floatingPoint
                                      properties:
                                        decimalMantissa: {}
                                        decimalPlaces: {}
                                        floatingPoint: {}
                                    astyle:
                                      required:
                                      - ascommodityside
                                      - ascommodityspaced
                                      - asdecimalmark
                                      - asdigitgroups
                                      - asprecision
                                      - asrounding
                                      properties:
                                        ascommodityside: {}
                                        ascommodityspaced: {}
                                        asdecimalmark: {}
                                        asdigitgroups: {}
                                        asprecision: {}
                                        asrounding: {}
                              pbalanceassertion: {}
                              pcomment: {}
                              pdate: {}
                              pdate2: {}
                              poriginal: {}
                              pstatus: {}
                              ptags: {}
                              ptransaction_: {}
                              ptype: {}
                        tprecedingcomment: {}
                        tsourcepos:
                          items:
                            required:
                            - sourceColumn
                            - sourceLine
                            - sourceName
                            properties:
                              sourceColumn: {}
                              sourceLine: {}
                              sourceName: {}
                        tstatus: {}
                        ttags: {}
      security:
      - apikey_cookie__session: []
      - apikey_header_cookie: []

components:
  schemas: {}
  securitySchemes:
    apikey_cookie__session:
      type: apiKey
      name: _session
      in: cookie
    apikey_header_cookie:
      type: apiKey
      name: COOKIE
      in: header