{"id":23290812,"url":"https://github.com/imega/rabbitmq-management-api","last_synced_at":"2025-04-06T17:43:44.754Z","repository":{"id":56990311,"uuid":"53646167","full_name":"iMega/rabbitmq-management-api","owner":"iMega","description":"A simple object oriented wrapper for the RabbitMQ Management HTTP Api","archived":false,"fork":false,"pushed_at":"2016-03-14T06:54:09.000Z","size":21,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-12T23:46:14.649Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iMega.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-03-11T06:50:44.000Z","updated_at":"2016-11-29T10:21:07.000Z","dependencies_parsed_at":"2022-08-21T13:50:25.207Z","dependency_job_id":null,"html_url":"https://github.com/iMega/rabbitmq-management-api","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iMega%2Frabbitmq-management-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iMega%2Frabbitmq-management-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iMega%2Frabbitmq-management-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iMega%2Frabbitmq-management-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iMega","download_url":"https://codeload.github.com/iMega/rabbitmq-management-api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247526675,"owners_count":20953141,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-20T05:12:48.395Z","updated_at":"2025-04-06T17:43:44.730Z","avatar_url":"https://github.com/iMega.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rabman\n\nA simple object oriented wrapper for the [RabbitMQ](https://www.rabbitmq.com) Management HTTP Api.\n\n## Installation\n\nInstallable through composer via:\n\n```\n$ composer require iMega/rabbitmq-management-api\n```\n\n## Table of Contents\n\n * [Installation](#installation)\n * [Modificators](#modificators)\n * [Overview](#overview)\n * [Cluster](#cluster)\n * [Nodes](#nodes)\n * [Extensions](#extensions)\n * [Definition](#definition)\n * [Connections](#connections)\n * [Channels](#channels)\n * [Consumers](#consumers)\n * [Exchanges](#exchanges)\n * [Queues](#queues)\n * [Bindings](#bindings)\n * [Vhosts](#vhosts)\n * [Users](#users)\n * [Whoami](#whoami)\n * [Permissions](#permissions)\n * [Parameters](#parameter)\n * [Policies](#policies)\n * [Aliveness](#aliveness)\n * [License](#license)\n\n### Modificators\n\n * sort\n * columns\n\n`Sort` allows you to select a primary field to sort by, and second paramenter will reverse the sort order if set to true. The sort first parameter can contain subfields separated by dots. This allows you to sort by a nested component of the listed items; it does not allow you to sort by more than one field. See the example below.\n\n```\n$exchanges = $source-\u003eexchanges()-\u003ecolumns(['name'])-\u003esort('name', true);\nforeach ($exchanges as $item) {\n    var_dump($item);\n}\n```\n\nYou can also restrict what information is returned per item with the columns parameter.\n\n```\n$exchanges = $source-\u003eexchanges()-\u003ecolumns(['name', 'vhost']);\nforeach ($exchanges as $item) {\n    var_dump($item);\n}\n```\n\n[Back to TOC](#table-of-contents)\n\n### Overview\n\nVarious random bits of information that describe the whole system.\n\n```\n$overview = $source-\u003eoverview()-\u003ecolumns(['exchange_types.name']);\nforeach ($exchanges as $item) {\n    var_dump($item);\n}\n```\n\n[Back to TOC](#table-of-contents)\n\n### Cluster\n\nName identifying this RabbitMQ cluster.\n\n```\n$cluster = $source-\u003ecluster();\nforeach ($cluster as $item) {\n    var_dump($item);\n}\n```\n\nand rename cluster\n```\n$source-\u003ecluster()-\u003ecreate(['name' =\u003e 'rabbit@my-rabbit']);\n```\n\n[Back to TOC](#table-of-contents)\n\n### Nodes\n\nA list of nodes in the RabbitMQ cluster.\n\n```\n$nodes = $source-\u003enodes();\nforeach ($nodes as $item) {\n    var_dump($item);\n}\n```\n\nAn individual node in the RabbitMQ cluster.\n\n```\n$nodes = $source-\u003enodes('my-node');\nforeach ($nodes as $item) {\n    var_dump($item);\n}\n```\n\n[Back to TOC](#table-of-contents)\n\n### Extensions\n\nA list of extensions to the management plugin.\n\n```\n$extensions = $source-\u003eextensions();\nforeach ($extensions as $item) {\n    var_dump($item);\n}\n```\n\n[Back to TOC](#table-of-contents)\n\n### Definition\n\nThe server definitions - exchanges, queues, bindings, users, virtual hosts, permissions and parameters. Everything apart from messages.\n\n```\n$items = $source-\u003edefinitions();\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nCreate to upload an existing set of definitions. Note that:\n\n * The definitions are merged. Anything already existing on the server but not in the uploaded definitions is untouched.\n * Conflicting definitions on immutable objects (exchanges, queues and bindings) will cause an error.\n * Conflicting definitions on mutable objects will cause the object in the server to be overwritten with the object from the definitions.\n * In the event of an error you will be left with a part-applied set of definitions.\n\n```\n$source-\u003edefinitions()-\u003ecreate(\u003cvery-very-big-array\u003e);\n```\n\nThe server definitions for a given virtual host - exchanges, queues, bindings and policies.\n\n```\n$items = $source-\u003edefinitions()-\u003evhost('second_virtual_host');\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nCreate to upload an existing set of definitions for a given virtual host. Note that:\n\n * The definitions are merged. Anything already existing on the server but not in the uploaded definitions is untouched.\n * Conflicting definitions on immutable objects (exchanges, queues and bindings) will cause an error.\n * Conflicting definitions on mutable objects will cause the object in the server to be overwritten with the object from the definitions.\n * In the event of an error you will be left with a part-applied set of definitions.\n\n```\n$source-\u003edefinitions()-\u003evhost('second_virtual_host')-\u003ecreate(\u003cvery-very-big-array\u003e);\n```\n\n[Back to TOC](#table-of-contents)\n\n### Connections\n\nA list of all open connections.\n\n```\n$connections = $source-\u003econnections();\nforeach ($connections as $item) {\n    var_dump($item);\n}\n```\n\nA list of all open connections in a specific vhost.\n```\n$connections = $source-\u003evhosts('second_virtual_host')-\u003econnections();\nforeach ($connections as $item) {\n    var_dump($item);\n}\n```\n\nAn individual connection.\n\n```\n$connections = $source-\u003econnections(\"127.0.0.1:35003 -\u003e 127.0.0.1:5672\");\nforeach ($connections as $item) {\n    var_dump($item);\n}\n```\n\nDELETEing it will close the connection.\n```\n$source-\u003econnections(\"127.0.0.1:35003 -\u003e 127.0.0.1:5672\")-\u003edelete();\n```\n\nList of all channels for a given connection.\n\n```\n$connections = $source-\u003econnections(\"127.0.0.1:35003 -\u003e 127.0.0.1:5672\")-\u003echannels();\nforeach ($connections as $item) {\n    var_dump($item);\n}\n```\n\n[Back to TOC](#table-of-contents)\n\n### Channels\n\nA list of all open channels.\n\n```\n$items = $source-\u003echannels();\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nA list of all open channels in a specific vhost.\n\n```\n$items = $source-\u003evhosts('second_virtual_host')-\u003echannels();\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nDetails about an individual channel.\n\n```\n$items = $source-\u003echannels('channnel');\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\n[Back to TOC](#table-of-contents)\n\n### Consumers\n\nA list of all consumers.\n\n```\n$items = $source-\u003econsumers();\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nA list of all consumers in a given virtual host.\n\n```\n$items = $source-\u003econsumers()-\u003evhost('second_virtual_host');\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\n[Back to TOC](#table-of-contents)\n\n### Exchanges\n\nA list of all exchanges.\n\n```\n$exchanges = $source-\u003eexchanges();\nforeach ($exchanges as $item) {\n    var_dump($item);\n}\n```\n\nA list of all exchanges in a given virtual host.\n\n```\n$exchanges = $source-\u003eexchanges()-\u003evhost('second_virtual_host');\nforeach ($exchanges as $item) {\n    var_dump($item);\n}\n```\n\nAn individual exchange.\n\n```\n$exchanges = $source-\u003eexchanges('second.exchange')-\u003evhost('second_virtual_host');\nforeach ($exchanges as $item) {\n    var_dump($item);\n}\n```\n\nCreate an exchange.\n\n```\n$source-\u003eexchanges('example.exchange')-\u003evhost('second_virtual_host')-\u003ecreate([\n    'type' =\u003e 'topic',\n]);\n```\n\nWhen DELETEing an exchange you can add the options 'if-unused' =\u003e true. This prevents the delete from succeeding if the exchange is bound to a queue or as a source to another exchange.\n\n```\n$source-\u003eexchanges('example.exchange')-\u003evhost('second_virtual_host')-\u003edelete([\n    'if-unused' =\u003e true\n]);\n```\n\nA list of all bindings in which a given exchange is the source.\n\n```\n$exchanges = $source-\u003eexchanges('second.exchange')-\u003evhost('second_virtual_host')-\u003ebindings()-\u003esource();\nforeach ($exchanges as $item) {\n    var_dump($item);\n}\n```\n\nA list of all bindings in which a given exchange is the destination.\n\n```\n$exchanges = $source-\u003eexchanges('second.exchange')-\u003evhost('second_virtual_host')-\u003ebindings()-\u003edestination();\nforeach ($exchanges as $item) {\n    var_dump($item);\n}\n```\n\nPublish a message to a given exchange. You will need the options looking something like:\n\n```\n$source-\u003eexchanges('second.exchange')-\u003evhost('second_virtual_host')-\u003epublish([\n    \"properties\"       =\u003e {},\n    \"routing_key\"      =\u003e \"my key\",\n    \"payload\"          =\u003e \"my body\",\n    \"payload_encoding\" =\u003e \"string\",\n]);\n```\n`\"routed\" =\u003e true` routed will be true if the message was sent to at least one queue.\n\n[Back to TOC](#table-of-contents)\n\n### Queues\n\nA list of all queues.\n\n```\n$items = $source-\u003equeues();\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nA list of all queues in a given virtual host.\n\n```\n$items = $source-\u003equeues()-\u003evhost('second_virtual_host');\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nAn individual queue.\n\n```\n$items = $source-\u003equeues('name-queue')-\u003evhost('second_virtual_host');\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nTo create a queue, you will need the parameters looking something like this (All keys are optional):\n\n```\n$source-\u003equeues('name-queue')-\u003evhost('second_virtual_host')-\u003ecreate([\n    \"auto_delete\" =\u003e false,\n    \"durable\" =\u003e true,\n]);\n```\n\nWhen DELETEing a queue you can add the query string parameters if-empty=true and / or if-unused=true. These prevent the delete from succeeding if the queue contains messages, or has consumers, respectively.\n\n```\n$source-\u003equeues('name-queue')-\u003evhost('second_virtual_host')-\u003edelete([\n    \"if-empty\" =\u003e true,\n]);\n```\n\nA list of all bindings on a given queue.\n\n```\n$items = $source-\u003equeues('name-queue')-\u003evhost('second_virtual_host')-\u003ebindings();\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nContents of a queue to purge.\n\n```\n$source-\u003equeues('example.queues')-\u003evhost('second_virtual_host')-\u003econtents();\n```\n\nActions that can be taken on a queue.\n\n```\n$source-\u003equeues('example.queues')-\u003evhost('second_virtual_host')-\u003eactions([\n\t\"action\" =\u003e \"sync\"\n]);\n```\nCurrently the actions which are supported are sync and cancel_sync.\n\nGet messages from a queue.\n\n```\n$items = $source-\u003equeues('name-queue')-\u003evhost('second_virtual_host')-\u003eget([\n    \"count\"    =\u003e 5,\n    \"requeue\"  =\u003e true,\n    \"encoding\" =\u003e \"auto\",\n]);\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n * count controls the maximum number of messages to get. You may get fewer messages than this if the queue cannot immediately provide them.\n * requeue determines whether the messages will be removed from the queue. If requeue is true they will be requeued - but their redelivered flag will be set.\n * encoding must be either \"auto\" (in which case the payload will be returned as a string if it is valid UTF-8, and base64 encoded otherwise), or \"base64\" (in which case the payload will always be base64 encoded).\n * If truncate is present it will truncate the message payload if it is larger than the size given (in bytes).\n\ntruncate is optional; all other keys are mandatory.\n\nPlease note that the get path in the HTTP API is intended for diagnostics etc - it does not implement reliable delivery and so should be treated as a sysadmin's tool rather than a general API for messaging.\n\n[Back to TOC](#table-of-contents)\n\n### Bindings\n\nA list of all bindings.\n\n```\n$items = $source-\u003ebindings();\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nA list of all bindings in a given virtual host.\n\n```\n$items = $source-\u003ebindings()-\u003evhost('second_virtual_host');\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nA list of all bindings between an exchange and a queue.\n\n```\n$items = $source-\u003ebindings()-\u003evhost('second_virtual_host')-\u003eexchange('name')-\u003equeue('name');\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nRemember, an exchange and a queue can be bound together many times! To create a new binding, POST to this URI. You will need a body looking something like this:\n\n```\n$source-\u003ebindings()-\u003evhost('second_virtual_host')-\u003eexchange('name')-\u003equeue('name')-\u003ecreate([\n    \"routing_key\" =\u003e \"my_routing_key\",\n    \"arguments\"   =\u003e [],\n]);\n```\n\nAn individual binding between an exchange and a queue. The props is a \"name\" for the binding composed of its routing key and a hash of its arguments.\n\n```\n$items = $source-\u003ebindings('props')-\u003evhost('second_virtual_host')-\u003eexchange('name')-\u003equeue('name');\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nand delete the binding\n\n```\n$source-\u003ebindings('props')-\u003evhost('second_virtual_host')-\u003eexchange('name')-\u003equeue('name')-\u003edelete();\n```\n\nA list of all bindings between two exchanges. Similar to the list of all bindings between an exchange and a queue, above.\n\n```\n$items = $source-\u003ebindings()-\u003evhost('second_virtual_host')-\u003esource('name')-\u003edestination('name');\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nAn individual binding between two exchanges. Similar to the individual binding between an exchange and a queue, above. The props is a \"name\" for the binding composed of its routing key and a hash of its arguments.\n\n```\n$items = $source-\u003ebindings('props')-\u003evhost('second_virtual_host')-\u003esource('name')-\u003edestination('name');\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nand delete\n\n```\n$source-\u003ebindings('props')-\u003evhost('second_virtual_host')-\u003esource('name')-\u003edestination('name')-\u003edelete();\n```\n\n[Back to TOC](#table-of-contents)\n\n### Vhosts\n\nA list of all vhosts.\n\n```\n$items = $source-\u003evhosts();\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nAn individual virtual host.\n\n```\n$items = $source-\u003evhosts('name');\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nA list of all permissions for a given virtual host.\n\n```\n$items = $source-\u003evhosts('name')-\u003epermissions();\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\n[Back to TOC](#table-of-contents)\n\n### Users\n\nA list of all users.\n\n```\n$items = $source-\u003eusers();\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nAn individual user.\n\n```\n$items = $source-\u003eusers('name');\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nTo create a user, you will need the parameters looking something like this:\n\n```\n$source-\u003eusers('name')-\u003ecreate([\n    \"password\" =\u003e \"secret\",\n    \"tags\"     =\u003e \"administrator\",\n]);\n```\n\nor\n\n```\n$source-\u003eusers('name')-\u003ecreate([\n    \"password_hash\" =\u003e \"2lmoth8l4H0DViLaK9Fxi6l9ds8=\",\n    \"tags\"          =\u003e \"administrator\",\n]);\n```\n\nThe tags key is mandatory. Either password or password_hash must be set. Setting password_hash to \"\" will ensure the user cannot use a password to log in. tags is a comma-separated list of tags for the user. Currently recognised tags are \"administrator\", \"monitoring\" and \"management\".\n\nand delete a user\n\n```\n$source-\u003eusers('name')-\u003edelete();\n```\n\nA list of all permissions for a given user.\n\n```\n$items = $source-\u003eusers('name')-\u003epermissions();\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\n[Back to TOC](#table-of-contents)\n\n### Whoami\n\nDetails of the currently authenticated user.\n\n```\n$items = $source-\u003ewhoami();\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\n[Back to TOC](#table-of-contents)\n\n### Permissions\n\nA list of all permissions for all users.\n\n```\n$items = $source-\u003epermissions();\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nAn individual permission of a user and virtual host.\n\n```\n$items = $source-\u003epermissions()-\u003evhost('second_virtual_host')-\u003euser('name');\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nTo create a permission, you will need the parameters looking something like this (All keys are mandatory):\n\n```\n$source-\u003epermissions()-\u003evhost('second_virtual_host')-\u003euser('name')-\u003ecreate([\n    \"configure\" =\u003e \".*\",\n    \"write\"     =\u003e \".*\",\n    \"read\"      =\u003e \".*\",\n]);\n```\n\nand delete a user\n\n```\n$source-\u003epermissions()-\u003evhost('second_virtual_host')-\u003euser('name')-\u003edelete();\n```\n\n[Back to TOC](#table-of-contents)\n\n### Parameters\n\nA list of all parameters.\n\n```\n$items = $source-\u003eparameters();\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nA list of all parameters for a given component.\n\n```\n$items = $source-\u003eparameters()-\u003ecomponent('name');\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nA list of all parameters for a given component and virtual host.\n\n```\n$items = $source-\u003eparameters()-\u003evhost('second_virtual_host')-\u003ecomponent('name');\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nAn individual parameter.\n\n```\n$items = $source-\u003eparameters('parameter-name')-\u003evhost('second_virtual_host')-\u003ecomponent('component-name');\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nTo create a parameter, you will need the parameters looking something like this:\n\n```\n$source-\u003eparameters('parameter-name')-\u003evhost('second_virtual_host')-\u003ecomponent('component-name')-\u003ecreate([\n    \"vhost\"     =\u003e \"/\",\n    \"component\" =\u003e \"federation\",\n    \"name\"      =\u003e \"local_username\",\n    \"value\"     =\u003e \"guest\",\n]);\n```\n\nand delete a parameter\n\n```\n$source-\u003eparameters('parameter-name')-\u003evhost('second_virtual_host')-\u003ecomponent('component-name')-\u003edelete();\n```\n\n[Back to TOC](#table-of-contents)\n\n### Policies\n\nA list of all policies.\n\n```\n$items = $source-\u003epolicies();\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nA list of all policies in a given virtual host.\n\n```\n$items = $source-\u003epolicies()-\u003evhost('second_virtual_host');\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nAn individual policy.\n\n```\n$items = $source-\u003epolicies('name-policy')-\u003evhost('second_virtual_host');\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nTo create a policy, you will need the parameters looking something like this:\n\n```\n$source-\u003epolicies('name-policy')-\u003evhost('second_virtual_host')-\u003ecreate([\n    \"pattern\"    =\u003e \"^amq.\",\n    \"definition\" =\u003e [\n        \"federation-upstream-set\" =\u003e \"all\"\n    ],\n    \"priority\"   =\u003e 0,\n    \"apply-to\"   =\u003e \"all\",\n]);\n```\n\nand delete a policy\n\n```\n$source-\u003epolicies('name-policy')-\u003evhost('second_virtual_host')-\u003edelete();\n```\n\n[Back to TOC](#table-of-contents)\n\n### Aliveness\n\nDeclares a test queue, then publishes and consumes a message. Intended for use by monitoring tools. If everything is working correctly, will return `\"status\" =\u003e \"ok\"`\n\n```\n$items = $source-\u003ealiveness()-\u003evhost('second_virtual_host');\nforeach ($items as $item) {\n    var_dump($item);\n}\n```\n\nNote: the test queue will not be deleted (to to prevent queue churn if this is repeatedly pinged).\n\n[Back to TOC](#table-of-contents)\n\n### License\n\nThe MIT License (MIT)\n\nCopyright (c) 2015 Dmitry Gavrilov \u003cinfo@imega.ru\u003e\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimega%2Frabbitmq-management-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimega%2Frabbitmq-management-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimega%2Frabbitmq-management-api/lists"}