{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "Trustline",
  "description": "A simplified Trustline object used by the ripple-rest API",
  "type": "object",
  "properties": {
    "account": {
      "description": "The account from whose perspective this trustline is being viewed",
      "$ref": "RippleAddress"
    },
    "counterparty": {
      "description": "The other party in this trustline",
      "$ref": "RippleAddress"
    },
    "currency": {
      "description": "The code of the currency in which this trustline denotes trust",
      "$ref": "Currency"
    },
    "limit": {
      "description": "The maximum value of the currency that the account may hold issued by the counterparty",
      "$ref": "FloatString"
    },
    "reciprocated_limit": {
      "description": "The maximum value of the currency that the counterparty may hold issued by the account",
      "$ref": "FloatString"
    },
    "authorized_by_account": {
      "description": "Set to true if the account has explicitly authorized the counterparty to hold currency it issues. This is only necessary if the account's settings include require_authorization_for_incoming_trustlines",
      "type": "boolean"
    },
    "authorized_by_counterparty": {
      "description": "Set to true if the counterparty has explicitly authorized the account to hold currency it issues. This is only necessary if the counterparty's settings include require_authorization_for_incoming_trustlines",
      "type": "boolean"
    },
    "account_allows_rippling": {
      "description": "If true it indicates that the account allows pairwise rippling out through this trustline",
      "type": "boolean"
    },
    "counterparty_allows_rippling": {
      "description": "If true it indicates that the counterparty allows pairwise rippling out through this trustline",
      "type": "boolean"
    },
    "ledger": {
      "description": "The string representation of the index number of the ledger containing this trustline or, in the case of historical queries, of the transaction that modified this Trustline",
      "type": "string",
      "pattern": "^[0-9]+$"
    },
    "hash": {
      "description": "If this object was returned by a historical query this value will be the hash of the transaction that modified this Trustline. The transaction hash is used throughout the Ripple Protocol to uniquely identify a particular transaction",
      "$ref": "Hash256"
    },
    "previous": {
      "description": "If the trustline was changed this will be a full Trustline object representing the previous values. If the previous object also had a previous object that will be removed to reduce data complexity. Trustline changes can be walked backwards by querying the API for previous.hash repeatedly",
      "$ref": "Trustline"
    }
  },
  "required": ["account", "limit"]
}
