This is used to verify that an exchange named ExchangeName exists, and potentially creates it if no such exchange 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.
ExchangeName 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 ExchangePassive is True.
ExchangeType specifies the exchange type. All servers support the direct and fanout exchange types, and most should also support the topic and header exchange types. Some servers may support additional, custom exchange types as well. Refer to your server's documentation for more information about each exchange type, and to determine what exchange types it supports other than direct and fanout.
ExchangeType specifies what happens to the exchange in the event of a server restart. Durable exchanges will be recreated, while non-durable (transient) exchanges will not.
ExchangeAutoDelete specifies whether the server should automatically delete the exchange when all queues have been unbound from it. Note that this parameter is only sent if the RabbitMQCompatible configuration setting is enabled; it is ignored otherwise.