This is used to verify that a queue named QueueName exists; and potentially creates it if no such queue exists.
ChannelName controls what channel the component will send the request over. While any channel can technically be used, keep in mind that the server will close it if a channel error occurs. For this reason, it is good practice to make requests such as this one using a channel that is not involved in message publishing or consumption.
If creating a new queue, empty string can be passed for QueueName to have the server automatically generate a name for the new queue (which can then be retrieved using the QueueName configuration setting). In all other cases, QueueName must be a non-empty string consisting only of letters, digits, hyphens, underscores, periods, and colons. It must be no longer than 255 characters, and must not begin with amq. unless the Passive parameter is True.
If QueuePassive is True, the server will only verify that a queue with the given QueueName actually exists (regardless of how it is configured).
If QueuePassive is False, and no queue named QueueName currently exists, the server will create one.
QueueDurable specifies what happens to the queue in the event of a server restart. A durable queue will be recreated, while non-durable (transient) queue will not. (Note that the messages in durable queues will still be lost unless they are marked as persistent.)
QueueExclusive, if True, indicates that the queue may only be accessed by the current connection. Exclusive queues are deleted when the current connection closes.
QueueAutoDelete specifies whether the server should automatically delete the queue when all consumers have finished using it. (Note that auto-delete queues aren't eligible for deletion until after a consumer attaches to them for the first time.)