<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema elementFormDefault="qualified" version="1.0" targetNamespace="http://lightningj.org/xsd/invoices_1_0" xmlns="http://lightningj.org/xsd/lndjapi_1_0" xmlns:verrpc="http://lightningj.org/xsd/verrpc_1_0" xmlns:chainnotifier="http://lightningj.org/xsd/chainnotifier_1_0" xmlns:autopilot="http://lightningj.org/xsd/autopilot_1_0" xmlns:peers="http://lightningj.org/xsd/peers_1_0" xmlns:chainkit="http://lightningj.org/xsd/chainkit_1_0" xmlns:watchtower="http://lightningj.org/xsd/watchtower_1_0" xmlns:walletkit="http://lightningj.org/xsd/walletkit_1_0" xmlns:router="http://lightningj.org/xsd/router_1_0" xmlns:dev="http://lightningj.org/xsd/dev_1_0" xmlns:invoices="http://lightningj.org/xsd/invoices_1_0" xmlns:tns="http://lightningj.org/xsd/invoices_1_0" xmlns:wtclient="http://lightningj.org/xsd/wtclient_1_0" xmlns:stateservice="http://lightningj.org/xsd/stateservice_1_0" xmlns:neutrino="http://lightningj.org/xsd/neutrino_1_0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:walletunlocker="http://lightningj.org/xsd/walletunlocker_1_0" xmlns:signer="http://lightningj.org/xsd/signer_1_0">

  <xs:import namespace="http://lightningj.org/xsd/lndjapi_1_0" schemaLocation="./lnd_v1.xsd"/>

  <xs:element name="AddHoldInvoiceRequest" type="tns:AddHoldInvoiceRequestType"/>

  <xs:element name="AddHoldInvoiceResp" type="tns:AddHoldInvoiceRespType"/>

  <xs:element name="CancelInvoiceMsg" type="tns:CancelInvoiceMsgType"/>

  <xs:element name="CancelInvoiceResp" type="tns:CancelInvoiceRespType"/>

  <xs:element name="LookupInvoiceMsg" type="tns:LookupInvoiceMsgType"/>

  <xs:element name="SettleInvoiceMsg" type="tns:SettleInvoiceMsgType"/>

  <xs:element name="SettleInvoiceResp" type="tns:SettleInvoiceRespType"/>

  <xs:element name="SubscribeSingleInvoiceRequest" type="tns:SubscribeSingleInvoiceRequestType"/>

  <xs:complexType name="CancelInvoiceMsgType">
    <xs:sequence>
      <xs:element name="paymentHash" type="xs:base64Binary" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="CancelInvoiceRespType">
    <xs:all/>
  </xs:complexType>

  <xs:complexType name="AddHoldInvoiceRequestType">
    <xs:sequence>
      <xs:element name="memo" type="xs:string" minOccurs="0"/>
      <xs:element name="hash" type="xs:base64Binary" minOccurs="0"/>
      <xs:element name="value" type="xs:long"/>
      <xs:element name="valueMsat" type="xs:long"/>
      <xs:element name="descriptionHash" type="xs:base64Binary" minOccurs="0"/>
      <xs:element name="expiry" type="xs:long"/>
      <xs:element name="fallbackAddr" type="xs:string" minOccurs="0"/>
      <xs:element name="cltvExpiry" type="xs:long"/>
      <xs:element name="route_hints" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="RouteHint" type="RouteHintType" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="private" type="xs:boolean"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="AddHoldInvoiceRespType">
    <xs:sequence>
      <xs:element name="paymentRequest" type="xs:string" minOccurs="0"/>
      <xs:element name="addIndex" type="xs:long"/>
      <xs:element name="paymentAddr" type="xs:base64Binary" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="SettleInvoiceMsgType">
    <xs:sequence>
      <xs:element name="preimage" type="xs:base64Binary" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="SettleInvoiceRespType">
    <xs:all/>
  </xs:complexType>

  <xs:complexType name="SubscribeSingleInvoiceRequestType">
    <xs:sequence>
      <xs:element name="RHash" type="xs:base64Binary" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="LookupInvoiceMsgType">
    <xs:sequence>
      <xs:element name="paymentHash" type="xs:base64Binary" minOccurs="0"/>
      <xs:element name="paymentAddr" type="xs:base64Binary" minOccurs="0"/>
      <xs:element name="setId" type="xs:base64Binary" minOccurs="0"/>
      <xs:element name="lookupModifier" type="tns:lookupModifier" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="lookupModifier">
    <xs:restriction base="xs:string">
      <xs:enumeration value="DEFAULT"/>
      <xs:enumeration value="HTLC_SET_ONLY"/>
      <xs:enumeration value="HTLC_SET_BLANK"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>

