<?xml version="1.0" encoding="utf-8" ?>
<amqp xmlns="http://tempuri.org/amqp_definitions" name="root">
  <section name="1">
    <type name="role" class="restricted" source="boolean">
      <choice name="sender" value="false"/>
      <choice name="receiver" value="true"/>
    </type>
    <type name="sender-settle-mode" class="restricted" source="ubyte">
      <choice name="unsettled" value="0"/>
      <choice name="settled" value="1"/>
      <choice name="mixed" value="2"/>
    </type>
    <type name="receiver-settle-mode" class="restricted" source="ubyte">
      <choice name="first" value="0"/>
      <choice name="second" value="1"/>
    </type>
    <type name="handle" class="restricted" source="uint"/>
    <type name="seconds" class="restricted" source="uint"/>
    <type name="milliseconds" class="restricted" source="uint"/>
    <type name="delivery-tag" class="restricted" source="binary"/>
    <type name="sequence-no" class="restricted" source="uint"/>
    <type name="delivery-number" class="restricted" source="sequence-no"/>
    <type name="transfer-number" class="restricted" source="sequence-no"/>
    <type name="message-format" class="restricted" source="uint"/>
    <type name="ietf-language-tag" class="restricted" source="symbol"/>
    <type name="fields" class="restricted" source="map"/>
    <type name="error" class="composite" source="list">
      <descriptor name="amqp:error:list" code="0x00000000:0x0000001d"/>
      <field name="condition" type="symbol" requires="error-condition" mandatory="true"/>
      <field name="description" type="string"/>
      <field name="info" type="fields"/>
    </type>
    <type name="amqp-error" class="restricted" source="symbol" provides="error-condition">
      <choice name="internal-error" value="amqp:internal-error"/>
      <choice name="not-found" value="amqp:not-found"/>
      <choice name="unauthorized-access" value="amqp:unauthorized-access"/>
      <choice name="decode-error" value="amqp:decode-error"/>
      <choice name="resource-limit-exceeded" value="amqp:resource-limit-exceeded"/>
      <choice name="not-allowed" value="amqp:not-allowed"/>
      <choice name="invalid-field" value="amqp:invalid-field"/>
      <choice name="not-implemented" value="amqp:not-implemented"/>
      <choice name="resource-locked" value="amqp:resource-locked"/>
      <choice name="precondition-failed" value="amqp:precondition-failed"/>
      <choice name="resource-deleted" value="amqp:resource-deleted"/>
      <choice name="illegal-state" value="amqp:illegal-state"/>
      <choice name="frame-size-too-small" value="amqp:frame-size-too-small"/>
    </type>
    <type name="connection-error" class="restricted" source="symbol" provides="error-condition">
      <choice name="connection-forced" value="amqp:connection:forced"/>
      <choice name="framing-error" value="amqp:connection:framing-error"/>
      <choice name="redirect" value="amqp:connection:redirect"/>
    </type>
    <type name="session-error" class="restricted" source="symbol" provides="error-condition">
      <choice name="window-violation" value="amqp:session:window-violation"/>
      <choice name="errant-link" value="amqp:session:errant-link"/>
      <choice name="handle-in-use" value="amqp:session:handle-in-use"/>
      <choice name="unattached-handle" value="amqp:session:unattached-handle"/>
    </type>
    <type name="link-error" class="restricted" source="symbol" provides="error-condition">
      <choice name="detach-forced" value="amqp:link:detach-forced"/>
      <choice name="transfer-limit-exceeded" value="amqp:link:transfer-limit-exceeded"/>
      <choice name="message-size-exceeded" value="amqp:link:message-size-exceeded"/>
      <choice name="redirect" value="amqp:link:redirect"/>
      <choice name="stolen" value="amqp:link:stolen"/>
    </type>

    <type name="open" class="composite" source="list" provides="frame">
      <descriptor name="amqp:open:list" code="0x00000000:0x00000010"/>
      <field name="container-id" type="string" mandatory="true"/>
      <field name="hostname" type="string"/>
      <field name="max-frame-size" type="uint" default="4294967295u"/>
      <field name="channel-max" type="ushort" default="65535"/>
      <field name="idle-time-out" type="milliseconds"/>
      <field name="outgoing-locales" type="ietf-language-tag" multiple="true"/>
      <field name="incoming-locales" type="ietf-language-tag" multiple="true"/>
      <field name="offered-capabilities" type="symbol" multiple="true"/>
      <field name="desired-capabilities" type="symbol" multiple="true"/>
      <field name="properties" type="fields"/>
    </type>
    <type name="begin" class="composite" source="list" provides="frame">
      <descriptor name="amqp:begin:list" code="0x00000000:0x00000011"/>
      <field name="remote-channel" type="ushort"/>
      <field name="next-outgoing-id" type="transfer-number" mandatory="true"/>
      <field name="incoming-window" type="uint" mandatory="true"/>
      <field name="outgoing-window" type="uint" mandatory="true"/>
      <field name="handle-max" type="handle" default="4294967295u"/>
      <field name="offered-capabilities" type="symbol" multiple="true"/>
      <field name="desired-capabilities" type="symbol" multiple="true"/>
      <field name="properties" type="fields"/>
    </type>
    <type name="attach" class="composite" source="list" provides="frame">
      <descriptor name="amqp:attach:list" code="0x00000000:0x00000012"/>
      <field name="name" type="string" mandatory="true"/>
      <field name="handle" type="handle" mandatory="true"/>
      <field name="role" type="role" mandatory="true"/>
      <field name="snd-settle-mode" type="sender-settle-mode" default="mixed"/>
      <field name="rcv-settle-mode" type="receiver-settle-mode" default="first"/>
      <field name="source" type="*" requires="source"/>
      <field name="target" type="*" requires="target"/>
      <field name="unsettled" type="map"/>
      <field name="incomplete-unsettled" type="boolean" default="false"/>
      <field name="initial-delivery-count" type="sequence-no"/>
      <field name="max-message-size" type="ulong"/>
      <field name="offered-capabilities" type="symbol" multiple="true"/>
      <field name="desired-capabilities" type="symbol" multiple="true"/>
      <field name="properties" type="fields"/>
    </type>
    <type name="flow" class="composite" source="list" provides="frame">
      <descriptor name="amqp:flow:list" code="0x00000000:0x00000013"/>
      <field name="next-incoming-id" type="transfer-number"/>
      <field name="incoming-window" type="uint" mandatory="true"/>
      <field name="next-outgoing-id" type="transfer-number" mandatory="true"/>
      <field name="outgoing-window" type="uint" mandatory="true"/>
      <field name="handle" type="handle"/>
      <field name="delivery-count" type="sequence-no"/>
      <field name="link-credit" type="uint"/>
      <field name="available" type="uint"/>
      <field name="drain" type="boolean" default="false"/>
      <field name="echo" type="boolean" default="false"/>
      <field name="properties" type="fields"/>
    </type>
    <type name="transfer" class="composite" source="list" provides="frame">
      <descriptor name="amqp:transfer:list" code="0x00000000:0x00000014"/>
      <field name="handle" type="handle" mandatory="true"/>
      <field name="delivery-id" type="delivery-number"/>
      <field name="delivery-tag" type="delivery-tag"/>
      <field name="message-format" type="message-format"/>
      <field name="settled" type="boolean"/>
      <field name="more" type="boolean" default="false"/>
      <field name="rcv-settle-mode" type="receiver-settle-mode"/>
      <field name="state" type="*" requires="delivery-state"/>
      <field name="resume" type="boolean" default="false"/>
      <field name="aborted" type="boolean" default="false"/>
      <field name="batchable" type="boolean" default="false"/>
    </type>
    <type name="disposition" class="composite" source="list" provides="frame">
      <descriptor name="amqp:disposition:list" code="0x00000000:0x00000015"/>
      <field name="role" type="role" mandatory="true"/>
      <field name="first" type="delivery-number" mandatory="true"/>
      <field name="last" type="delivery-number"/>
      <field name="settled" type="boolean" default="false"/>
      <field name="state" type="*" requires="delivery-state"/>
      <field name="batchable" type="boolean" default="false"/>
    </type>
    <type name="detach" class="composite" source="list" provides="frame">
      <descriptor name="amqp:detach:list" code="0x00000000:0x00000016"/>
      <field name="handle" type="handle" mandatory="true"/>
      <field name="closed" type="boolean" default="false"/>
      <field name="error" type="error"/>
    </type>
    <type name="end" class="composite" source="list" provides="frame">
      <descriptor name="amqp:end:list" code="0x00000000:0x00000017"/>
      <field name="error" type="error"/>
    </type>
    <type name="close" class="composite" source="list" provides="frame">
      <descriptor name="amqp:close:list" code="0x00000000:0x00000018"/>
      <field name="error" type="error"/>
    </type>
    <type name="sasl-code" class="restricted" source="ubyte">
      <choice name="ok" value="0"/>
      <choice name="auth" value="1"/>
      <choice name="sys" value="2"/>
      <choice name="sys-perm" value="3"/>
      <choice name="sys-temp" value="4"/>
    </type>
    <type name="sasl-mechanisms" class="composite" source="list" provides="sasl-frame">
      <descriptor name="amqp:sasl-mechanisms:list" code="0x00000000:0x00000040"/>
      <field name="sasl-server-mechanisms" type="symbol" multiple="true" mandatory="true"/>
    </type>
    <type name="sasl-init" class="composite" source="list" provides="sasl-frame">
      <descriptor name="amqp:sasl-init:list" code="0x00000000:0x00000041"/>
      <field name="mechanism" type="symbol" mandatory="true"/>
      <field name="initial-response" type="binary"/>
      <field name="hostname" type="string"/>
    </type>
    <type name="sasl-challenge" class="composite" source="list" provides="sasl-frame">
      <descriptor name="amqp:sasl-challenge:list" code="0x00000000:0x00000042"/>
      <field name="challenge" type="binary" mandatory="true"/>
    </type>
    <type name="sasl-response" class="composite" source="list" provides="sasl-frame">
      <descriptor name="amqp:sasl-response:list" code="0x00000000:0x00000043"/>
      <field name="response" type="binary" mandatory="true"/>
    </type>
    <type name="sasl-outcome" class="composite" source="list" provides="sasl-frame">
      <descriptor name="amqp:sasl-outcome:list" code="0x00000000:0x00000044"/>
      <field name="code" type="sasl-code" mandatory="true"/>
      <field name="additional-data" type="binary"/>
    </type>
    <type name="terminus-durability" class="restricted" source="uint">
      <choice name="none" value="0"/>
      <choice name="configuration" value="1"/>
      <choice name="unsettled-state" value="2"/>
    </type>
    <type name="terminus-expiry-policy" class="restricted" source="symbol">
      <choice name="link-detach" value="link-detach"/>
      <choice name="session-end" value="session-end"/>
      <choice name="connection-close" value="connection-close"/>
      <choice name="never" value="never"/>
    </type>
    <type name="node-properties" class="restricted" source="fields"/>
    <type name="filter-set" class="restricted" source="map"/>
    <type name="source" class="composite" source="list" provides="source">
      <descriptor name="amqp:source:list" code="0x00000000:0x00000028"/>
      <field name="address" type="*" requires="address"/>
      <field name="durable" type="terminus-durability" default="none"/>
      <field name="expiry-policy" type="terminus-expiry-policy" default="session-end"/>
      <field name="timeout" type="seconds" default="0"/>
      <field name="dynamic" type="boolean" default="false"/>
      <field name="dynamic-node-properties" type="node-properties"/>
      <field name="distribution-mode" type="symbol" requires="distribution-mode"/>
      <field name="filter" type="filter-set"/>
      <field name="default-outcome" type="*" requires="outcome"/>
      <field name="outcomes" type="symbol" multiple="true"/>
      <field name="capabilities" type="symbol" multiple="true"/>
    </type>
    <type name="target" class="composite" source="list" provides="target">
      <descriptor name="amqp:target:list" code="0x00000000:0x00000029"/>
      <field name="address" type="*" requires="address"/>
      <field name="durable" type="terminus-durability" default="none"/>
      <field name="expiry-policy" type="terminus-expiry-policy" default="session-end"/>
      <field name="timeout" type="seconds" default="0"/>
      <field name="dynamic" type="boolean" default="false"/>
      <field name="dynamic-node-properties" type="node-properties"/>
      <field name="capabilities" type="symbol" multiple="true"/>
    </type>
    <type name="annotations" class="restricted" source="map"/>
    <type name="message-id-ulong" class="restricted" source="ulong" provides="message-id"/>
    <type name="message-id-uuid" class="restricted" source="uuid" provides="message-id"/>
    <type name="message-id-binary" class="restricted" source="binary" provides="message-id"/>
    <type name="message-id-string" class="restricted" source="string" provides="message-id"/>
    <type name="address-string" class="restricted" source="string" provides="address"/>
    <type name="header" class="composite" source="list" provides="section">
      <descriptor name="amqp:header:list" code="0x00000000:0x00000070"/>
      <field name="durable" type="boolean" default="false"/>
      <field name="priority" type="ubyte" default="4"/>
      <field name="ttl" type="milliseconds"/>
      <field name="first-acquirer" type="boolean" default="false"/>
      <field name="delivery-count" type="uint" default="0"/>
    </type>
    <type name="delivery-annotations" class="restricted" source="annotations" provides="section">
      <descriptor name="amqp:delivery-annotations:map" code="0x00000000:0x00000071"/>
    </type>
    <type name="message-annotations" class="restricted" source="annotations" provides="section">
      <descriptor name="amqp:message-annotations:map" code="0x00000000:0x00000072"/>
    </type>
    <type name="application-properties" class="restricted" source="map" provides="section">
      <descriptor name="amqp:application-properties:map" code="0x00000000:0x00000074"/>
    </type>
    <type name="data" class="restricted" source="binary" provides="section">
      <descriptor name="amqp:data:binary" code="0x00000000:0x00000075"/>
    </type>
    <type name="amqp-sequence" class="restricted" source="list" provides="section">
      <descriptor name="amqp:amqp-sequence:list" code="0x00000000:0x00000076"/>
    </type>
    <type name="amqp-value" class="restricted" source="*" provides="section">
      <descriptor name="amqp:amqp-value:*" code="0x00000000:0x00000077"/>
    </type>
    <type name="footer" class="restricted" source="annotations" provides="section">
      <descriptor name="amqp:footer:map" code="0x00000000:0x00000078"/>
    </type>
    <type name="properties" class="composite" source="list" provides="section">
      <descriptor name="amqp:properties:list" code="0x00000000:0x00000073"/>
      <field name="message-id" type="*" requires="message-id"/>
      <field name="user-id" type="binary"/>
      <field name="to" type="*" requires="address"/>
      <field name="subject" type="string"/>
      <field name="reply-to" type="*" requires="address"/>
      <field name="correlation-id" type="*" requires="message-id"/>
      <field name="content-type" type="symbol"/>
      <field name="content-encoding" type="symbol"/>
      <field name="absolute-expiry-time" type="timestamp"/>
      <field name="creation-time" type="timestamp"/>
      <field name="group-id" type="string"/>
      <field name="group-sequence" type="sequence-no"/>
      <field name="reply-to-group-id" type="string"/>
    </type>
    <type name="received" class="composite" source="list" provides="delivery-state">
      <descriptor name="amqp:received:list" code="0x00000000:0x00000023"/>
      <field name="section-number" type="uint" mandatory="true"/>
      <field name="section-offset" type="ulong" mandatory="true"/>
    </type>
    <type name="accepted" class="composite" source="list" provides="delivery-state, outcome">
      <descriptor name="amqp:accepted:list" code="0x00000000:0x00000024"/>
    </type>
    <type name="rejected" class="composite" source="list" provides="delivery-state, outcome">
      <descriptor name="amqp:rejected:list" code="0x00000000:0x00000025"/>
      <field name="error" type="error"/>
    </type>
    <type name="released" class="composite" source="list" provides="delivery-state, outcome">
      <descriptor name="amqp:released:list" code="0x00000000:0x00000026"/>
    </type>
    <type name="modified" class="composite" source="list" provides="delivery-state, outcome">
      <descriptor name="amqp:modified:list" code="0x00000000:0x00000027"/>
      <field name="delivery-failed" type="boolean"/>
      <field name="undeliverable-here" type="boolean"/>
      <field name="message-annotations" type="fields"/>
    </type>
  </section>
</amqp>
