Skip to content

Commit 66652d7

Browse files
author
Matthew Sackman
committed
Added exchange.{bind,unbind} documentation to non-stripped 0.9.1 xml
1 parent add636d commit 66652d7

File tree

1 file changed

+217
-0
lines changed

1 file changed

+217
-0
lines changed

docs/specs/amqp0-9-1.xml

Lines changed: 217 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1071,6 +1071,8 @@
10711071
<doc type = "grammar">
10721072
exchange = C:DECLARE S:DECLARE-OK
10731073
/ C:DELETE S:DELETE-OK
1074+
/ C:BIND S:BIND-OK
1075+
/ C:UNBIND S:UNBIND-OK
10741076
</doc>
10751077

10761078
<chassis name = "server" implement = "MUST" />
@@ -1330,6 +1332,221 @@
13301332
<doc>This method confirms the deletion of an exchange.</doc>
13311333
<chassis name = "client" implement = "MUST" />
13321334
</method>
1335+
1336+
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
1337+
1338+
<method name = "bind" synchronous = "1" index = "30"
1339+
label = "bind exchange to an exchange">
1340+
<doc>
1341+
This method binds an exchange to an exchange. Either exchange
1342+
may be of any valid type and may already or subsequently be
1343+
bound to other exchanges or queues.
1344+
</doc>
1345+
1346+
<rule name = "duplicates">
1347+
<doc>
1348+
A server MUST allow and ignore duplicate bindings - that is,
1349+
two or more bind methods for a specific exchanges, with
1350+
identical arguments - without treating these as an error.
1351+
</doc>
1352+
<doc type = "scenario">
1353+
A client binds an exchange to an exchange. The client then
1354+
repeats the bind (with identical arguments).
1355+
</doc>
1356+
</rule>
1357+
1358+
<rule name = "cyclical">
1359+
<doc>
1360+
A server MUST allow cycles of exchange bindings to be
1361+
created including allowing an exchange to be bound to
1362+
itself.
1363+
</doc>
1364+
<doc type = "scenario">
1365+
A client declares an exchange and binds it to itself.
1366+
</doc>
1367+
</rule>
1368+
1369+
<rule name = "unique">
1370+
<doc>
1371+
A server MUST not deliver the same message more than once to
1372+
a destination exchange, even if the topology of exchanges
1373+
and bindings results in multiple (even infinite) routes to
1374+
the exchange.
1375+
</doc>
1376+
<doc type = "scenario">
1377+
A client declares an exchange and binds it using multiple
1378+
bindings to the amq.topic exchange. The client then
1379+
publishes a message that matches all the bindings.
1380+
</doc>
1381+
</rule>
1382+
1383+
<chassis name = "server" implement = "MUST"/>
1384+
1385+
<response name = "bind-ok"/>
1386+
1387+
<!-- Deprecated: "ticket", must be zero -->
1388+
<field name = "reserved-1" type = "short" reserved = "1"/>
1389+
1390+
<field name = "destination" domain = "exchange-name"
1391+
label = "name of the destination exchange to bind to">
1392+
<doc>Specifies the name of the destination exchange to bind to.</doc>
1393+
<rule name = "exchange-existence" on-failure = "not-found">
1394+
<doc>
1395+
A client MUST NOT be allowed to bind to a non-existent
1396+
destination exchange.
1397+
</doc>
1398+
<doc type = "scenario">
1399+
A client attempts to bind an exchange to an undeclared
1400+
exchange.
1401+
</doc>
1402+
</rule>
1403+
<rule name = "default-exchange">
1404+
<doc>
1405+
The server MUST accept a blank exchange name to mean the
1406+
default exchange.
1407+
</doc>
1408+
<doc type = "scenario">
1409+
The client declares an exchange and binds it to a blank
1410+
exchange name.
1411+
</doc>
1412+
</rule>
1413+
</field>
1414+
1415+
<field name = "source" domain = "exchange-name"
1416+
label = "name of the source exchange to bind to">
1417+
<doc>Specifies the name of the source exchange to bind to.</doc>
1418+
<rule name = "exchange-existence" on-failure = "not-found">
1419+
<doc>
1420+
A client MUST NOT be allowed to bind to a non-existent
1421+
source exchange.
1422+
</doc>
1423+
<doc type = "scenario">
1424+
A client attempts to bind an undeclared exchange to an
1425+
exchange.
1426+
</doc>
1427+
</rule>
1428+
<rule name = "default-exchange">
1429+
<doc>
1430+
The server MUST accept a blank exchange name to mean the
1431+
default exchange.
1432+
</doc>
1433+
<doc type = "scenario">
1434+
The client declares an exchange and binds a blank exchange
1435+
name to it.
1436+
</doc>
1437+
</rule>
1438+
</field>
1439+
1440+
<field name = "routing-key" domain = "shortstr"
1441+
label = "message routing key">
1442+
<doc>
1443+
Specifies the routing key for the binding. The routing key
1444+
is used for routing messages depending on the exchange
1445+
configuration. Not all exchanges use a routing key - refer
1446+
to the specific exchange documentation.
1447+
</doc>
1448+
</field>
1449+
1450+
<field name = "no-wait" domain = "no-wait"/>
1451+
1452+
<field name = "arguments" domain = "table"
1453+
label = "arguments for binding">
1454+
<doc>
1455+
A set of arguments for the binding. The syntax and semantics
1456+
of these arguments depends on the exchange class.
1457+
</doc>
1458+
</field>
1459+
</method>
1460+
1461+
<method name="bind-ok" synchronous="1" index="31"
1462+
label = "confirm bind successful">
1463+
<doc>This method confirms that the bind was successful.</doc>
1464+
1465+
<chassis name="client" implement="MUST"/>
1466+
</method>
1467+
1468+
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
1469+
1470+
<method name = "unbind" synchronous = "1" index = "40"
1471+
label = "unbind an exchange from an exchange">
1472+
<doc>This method unbinds an exchange from an exchange.</doc>
1473+
<rule name = "01">
1474+
<doc>If a unbind fails, the server MUST raise a connection exception.</doc>
1475+
</rule>
1476+
<chassis name = "server" implement = "MUST"/>
1477+
<response name = "unbind-ok"/>
1478+
1479+
<!-- Deprecated: "ticket", must be zero -->
1480+
<field name = "reserved-1" type = "short" reserved = "1"/>
1481+
1482+
<field name = "destination" domain = "exchange-name">
1483+
<doc>Specifies the name of the destination exchange to unbind from.</doc>
1484+
<rule name = "must-exist" on-failure = "not-found">
1485+
<doc>
1486+
The client MUST NOT attempt to unbind an exchange from an
1487+
exchange that does not exist.
1488+
</doc>
1489+
<doc type = "scenario">
1490+
The client attempts to unbind an exchange from a
1491+
non-existent exchange.
1492+
</doc>
1493+
</rule>
1494+
<rule name = "default-exchange">
1495+
<doc>
1496+
The server MUST accept a blank exchange name to mean the
1497+
default exchange.
1498+
</doc>
1499+
<doc type = "scenario">
1500+
The client declares an exchange, binds it to a blank
1501+
exchange name, and then unbinds it from a blank exchange
1502+
name.
1503+
</doc>
1504+
</rule>
1505+
</field>
1506+
1507+
<field name = "source" domain = "exchange-name">
1508+
<doc>Specifies the name of the source exchange to unbind from.</doc>
1509+
<rule name = "must-exist" on-failure = "not-found">
1510+
<doc>
1511+
The client MUST NOT attempt to unbind an exchange that
1512+
does not exist from an exchange.
1513+
</doc>
1514+
<doc type = "scenario">
1515+
The client attempts to unbind a non-existent exchange from
1516+
an exchange.
1517+
</doc>
1518+
</rule>
1519+
<rule name = "default-exchange">
1520+
<doc>
1521+
The server MUST accept a blank exchange name to mean the
1522+
default exchange.
1523+
</doc>
1524+
<doc type = "scenario">
1525+
The client declares an exchange, binds a blank exchange
1526+
name to it, and then unbinds a black exchange from it.
1527+
</doc>
1528+
</rule>
1529+
</field>
1530+
1531+
<field name = "routing-key" domain = "shortstr"
1532+
label = "routing key of binding">
1533+
<doc>Specifies the routing key of the binding to unbind.</doc>
1534+
</field>
1535+
1536+
<field name = "no-wait" domain = "no-wait"/>
1537+
1538+
<field name = "arguments" domain = "table"
1539+
label = "arguments of binding">
1540+
<doc>Specifies the arguments of the binding to unbind.</doc>
1541+
</field>
1542+
</method>
1543+
1544+
<method name = "unbind-ok" synchronous = "1" index = "41"
1545+
label = "confirm unbind successful">
1546+
<doc>This method confirms that the unbind was successful.</doc>
1547+
<chassis name = "client" implement = "MUST"/>
1548+
</method>
1549+
13331550
</class>
13341551

13351552
<!-- == QUEUE ============================================================ -->

0 commit comments

Comments
 (0)