{ "info": { "author": "Felipe Barros", "author_email": "felipe.barros@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Topic :: Software Development :: Libraries", "Topic :: System :: Networking" ], "description": "# Meraki Dashboard API\n\nAccess to your Cisco Meraki cloud-managed in a pythonic way. Also available via PIP\n\n## Prerequisites\nYou need to enable APIs in your Meraki dashboard and obtain an APIKey: [Instructions](https://documentation.meraki.com/zGeneral_Administration/Other_Topics/The_Cisco_Meraki_Dashboard_API) \n\n## Example\n\n```python\nfrom meraki_dashboard_api import Dashboard\n\napikey = \"jkhsfsdhk32424******example*****jlasdfsdfl3245345\"\n\ndash = Dashboard(apikey)\n\n# list all organizations\nmyOrgs = dash.organizations.list()\nprint(myOrgs)\n\n# list all organization's networks\nmyNets = dash.organizations.networks()\nprint(myNets)\n\n```\n\n\nSince the other options available are complex or old school, my need was a more pythonic and object oriented way.\n\nThe 90% of que API belong to the **/networks** endpoint and from there appears some groups, in the Meraki documentation these groups are represented as isolated, but most of them belong to the same parent endpoint.\n\nThe [oficial](https://github.com/meraki/dashboard-api-python) implementation is a simple functional programming (old school) and the [guzmonne](https://github.com/guzmonne/meraki_api) implementation is, I think, a really complex approach returning instances inside another instances.\n\nEx:\n```python\nresponse = meraki.organizations().index()\njson = response.json()\n```\n\nInstead I use some magic methods to instantiate the classes following a strict URL pattern.\n\nEx:\n```python\nclient = dash.networks.clients.get(, )\nprint(client)\n```\n\nI use args to build the URL path and kwargs to pass query parameters each endpoint .\n\nEx:\n```python\ndev = dash.networks.devices.loss_and_latency(, , uplink=\u2018wan1\u2019, ip=\u20181.2.3.4\u2019, timespan=7200)\nprint(dev)\n```\n\nFor POST and PUT methods you can use a kwargs data or update.\n\nEx.\n```python\npayload = {\n\t'name': 'My AP',\n\t'tags': 'recently-added ',\n\t'lat': 37.4180951010362,\n\t'lng': -122.098531723022,\n\t'address': 'some place',\n\t'notes': 'no notes',\n\t'moveMapMarker': True\n}\ndev = dash.networks.devices.update(, , update=payload)\nprint(dev)\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/fgbs/meraki-dashboard-api", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "meraki-dashboard-api", "package_url": "https://pypi.org/project/meraki-dashboard-api/", "platform": "", "project_url": "https://pypi.org/project/meraki-dashboard-api/", "project_urls": { "Homepage": "https://github.com/fgbs/meraki-dashboard-api" }, "release_url": "https://pypi.org/project/meraki-dashboard-api/1.0.0/", "requires_dist": [ "requests", "requests-toolbelt", "urllib3" ], "requires_python": "", "summary": "Meraki Dashboard API", "version": "1.0.0" }, "last_serial": 4779562, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "3bd1929486b730757a05225fb40abae3", "sha256": "967723ab393aa25d23b398ceb087dd118a9517d4cea55e160400d58a6a84dd2e" }, "downloads": -1, "filename": "meraki_dashboard_api-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3bd1929486b730757a05225fb40abae3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14718, "upload_time": "2019-02-04T21:09:17", "url": "https://files.pythonhosted.org/packages/44/8b/b689ff2aae3f12caf3a831d0b4a8b13f7dd75e686e2fd4c2b47d93d4a014/meraki_dashboard_api-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2eb78c8427f4b9a57040ac5698e02457", "sha256": "5710a77047c4a6d86cb2b2b1dc5ebbf429339a7f701f4b7162d7ce48bc9aea76" }, "downloads": -1, "filename": "meraki-dashboard-api-1.0.0.tar.gz", "has_sig": false, "md5_digest": "2eb78c8427f4b9a57040ac5698e02457", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10809, "upload_time": "2019-02-04T21:09:20", "url": "https://files.pythonhosted.org/packages/b1/37/068172dd82568aa917747caa27728c933b4b1d49f94d3c1bb2f200f8c246/meraki-dashboard-api-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3bd1929486b730757a05225fb40abae3", "sha256": "967723ab393aa25d23b398ceb087dd118a9517d4cea55e160400d58a6a84dd2e" }, "downloads": -1, "filename": "meraki_dashboard_api-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3bd1929486b730757a05225fb40abae3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14718, "upload_time": "2019-02-04T21:09:17", "url": "https://files.pythonhosted.org/packages/44/8b/b689ff2aae3f12caf3a831d0b4a8b13f7dd75e686e2fd4c2b47d93d4a014/meraki_dashboard_api-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2eb78c8427f4b9a57040ac5698e02457", "sha256": "5710a77047c4a6d86cb2b2b1dc5ebbf429339a7f701f4b7162d7ce48bc9aea76" }, "downloads": -1, "filename": "meraki-dashboard-api-1.0.0.tar.gz", "has_sig": false, "md5_digest": "2eb78c8427f4b9a57040ac5698e02457", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10809, "upload_time": "2019-02-04T21:09:20", "url": "https://files.pythonhosted.org/packages/b1/37/068172dd82568aa917747caa27728c933b4b1d49f94d3c1bb2f200f8c246/meraki-dashboard-api-1.0.0.tar.gz" } ] }