{
"info": {
"author": "kolatz",
"author_email": "private@example.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 5 - Production/Stable",
"Environment :: Console",
"Intended Audience :: Education",
"Intended Audience :: System Administrators",
"License :: OSI Approved :: MIT License",
"Operating System :: MacOS",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: Implementation :: CPython",
"Topic :: Internet :: Name Service (DNS)",
"Topic :: Security",
"Topic :: Utilities"
],
"description": "======\nREADME\n======\n\n.. list-table::\n :stub-columns: 1\n\n * - Docs\n - | |docs|\n * - Tests\n - | |travis| |requires|\n | |appveyor| |coveralls|\n | |codacy| |codeclimate|\n * - Package\n - | |supported-versions| |supported-implementations|\n | |dev-status| |pypi-version| |license|\n * - GitHub\n - | |gh-tag| |gh-issues|\n * - Guidelines\n - | |code-style| |editor-config| |linter-pylint|\n\n.. |docs| image:: https://readthedocs.org/projects/umbr-api/badge/?style=flat\n :target: https://readthedocs.org/projects/umbr_api\n :alt: Documentation Status\n\n.. |travis| image:: https://travis-ci.org/kolatz/umbr_api.svg?branch=master\n :target: https://travis-ci.org/kolatz/umbr_api\n :alt: Travis Build Status\n\n.. |requires| image:: https://requires.io/github/kolatz/umbr_api/requirements.svg?branch=master\n :target: https://requires.io/github/kolatz/umbr_api/requirements/?branch=master\n :alt: Requirements Status\n\n.. |appveyor| image:: https://ci.appveyor.com/api/projects/status/hptdwfa7mcsu5tla/branch/master?svg=true\n :target: https://ci.appveyor.com/project/kolatz/umbr-api/\n :alt: Appveyor Build Status\n\n.. |coveralls| image:: https://coveralls.io/repos/github/kolatz/umbr_api/badge.svg?branch=master\n :target: https://coveralls.io/github/kolatz/umbr_api?branch=master\n :alt: coveralls\n\n.. |codacy| image:: https://api.codacy.com/project/badge/Grade/af8d1fa5bca74a029a3be10afc51b857\n :target: https://www.codacy.com/app/kolatz/umbr_api?utm_source=github.com&utm_medium=referral&utm_content=kolatz/umbr_api&utm_campaign=Badge_Grade\n :alt: Codacy Code Quality Status\n\n.. |codeclimate| image:: https://api.codeclimate.com/v1/badges/fc9257657747094f8f5b/maintainability\n :target: https://codeclimate.com/github/kolatz/umbr_api\n :alt: Maintainability\n\n.. |supported-versions| image:: https://img.shields.io/pypi/pyversions/umbr_api.svg\n :target: https://pypi.python.org/pypi/umbr_api\n :alt: Supported versions\n\n.. |supported-implementations| image:: https://img.shields.io/pypi/implementation/umbr_api.svg\n :target: https://pypi.python.org/pypi/umbr_api\n :alt: Supported implementation\n\n.. |dev-status| image:: https://img.shields.io/pypi/status/umbr_api.svg\n :target: https://pypi.python.org/pypi/umbr_api\n :alt: Development status\n\n.. |pypi-version| image:: https://img.shields.io/pypi/v/umbr_api.svg\n :target: https://pypi.python.org/pypi/umbr_api\n :alt: PyPI Package\n\n.. |license| image:: https://img.shields.io/pypi/l/umbr_api.svg\n :target: https://pypi.python.org/pypi/umbr_api\n :alt: License\n\n.. |gh-tag| image:: https://img.shields.io/github/tag/kolatz/umbr_api.svg\n :target: https://GitHub.com/kolatz/umbr_api/tags\n :alt: GitHub tag\n\n.. |gh-issues| image:: https://img.shields.io/github/issues/kolatz/umbr_api.svg\n :target: https://GitHub.com/kolatz/umbr_api/issues\n :alt: GitHub issues\n\n.. |code-style| image:: https://img.shields.io/badge/code%20style-black-000000.svg\n :target: https://github.com/python/black\n :alt: Code style: black\n\n.. |editor-config| image:: https://img.shields.io/static/v1.svg?label=&message=EditorConfig&color=blue\n :target: https://editorconfig.org\n :alt: EditorConfig\n\n.. |linter-pylint| image:: https://img.shields.io/static/v1.svg?label=Linter&message=Pylint&color=blue\n :target: https://www.pylint.org/\n :alt: Pylint\n\n**umbr_api** is Cisco Umbrella APIs wrapper and a command-line utility.\n\n`Cisco Umbrella `__ uses the internet\u2019s\nDNS infrastructure to block malicious destinations before a connection is\never established. By delivering security from the cloud, it also provide\nmore effective security and easy deployment options.\n\n**umbr_api** supports Enforcement API, Reporting API, and Management API\nwith some limitations. With help of **umbr_api** you can add new sites and\nURLs to black lists, remove or show current entries, quickly check\nthe latest security events, or check a status of registered computers\nor networks.\n\nUsing of command line tools, like **umbr_api** can immediately provide\ninformation to administrators of the system without myriads of clicks\nthrough GUI interfaces, two-factor authentications, etc.\n\nReferences:\n * `Cisco Umbrella Enforcement API `__\n * `Cisco Umbrella Reporting API `__\n * `Cisco Umbrella Management API `__\n\nWas created mostly for educational purposes.\n\nInstallation\n------------\n\nTo install from a local folder execute at the \u2018umbr_api\u2019 root directory:\n\n.. code:: bash\n\n pip3 install -e . --no-use-pep517\n\nTo install extra requirements from a local folder execute at the \u2018umbr_api\u2019\nroot directory:\n\n.. code:: bash\n\n pip3 install -e .[dev] --no-use-pep517\n pip3 install -e .[doc] --no-use-pep517\n pip3 install -e .[dev_lint] --no-use-pep517\n\nTo install from production The Python Package Index (PyPI) https://pypi.org\nexecute:\n\n.. code:: bash\n\n pip3 install umbr_api\n\nTo install from GitHub:\n\n.. code:: bash\n\n pip3 install git+https://github.com/kolatz/umbr_api.git\n\nTo install from a local archive:\n\n.. code:: bash\n\n pip3 install filename.tar.gz\n\nPlease note, that you still need to register and activate API key from Cisco\nto enable functionality.\n\nUse of command-line utility\n---------------------------\n\n``main()`` in ``umbrella.py`` will be registered as ``umbrella`` executable.\nSo, you can run it directly.\n\nExamples (Enforcement API):\n\n.. code-block:: bash\n\n umbrella add www.example.com http://www.example.com/images\n umbrella add example.com example.com --force\n umbrella del www.example.com\n umbrella del 555XXXXX --key YOUR-CUSTOMER-KEY-IS-HERE-0123456789\n umbrella get 100\n umbrella get --key YOUR-CUSTOMER-KEY-IS-HERE-0123456789\n\nUse API wrapper\n---------------\nYou need to import particular functions or modules from ``umbr_api``. For example:\n\n.. code-block:: python\n\n from umbr_api import get\n get.get_list(key='YOUR-CUSTOMER-KEY-IS-HERE-0123456789')\n\n from umbr_api.add import add\n add(domain='example.com', url='example.com', key='YOUR-CUSTOMER-KEY-IS-HERE-0123456789')\n\nThere three main functions:\n - ``umbr_api.get.get_list``\n - ``umbr_api.add.add``\n - ``umbr_api.remove.remove``\n\nThe API key should be specified via CLI, or it could be read it from\n``enforcement.json`` within package ``data\\`` folder.\n\nAPI key\n-------\n\nHow to obtain API key\n^^^^^^^^^^^^^^^^^^^^^\n\nYou can sign up for 14 day free trial here: https://signup.umbrella.com/\n\nHow to use API key\n^^^^^^^^^^^^^^^^^^\n\n#. Provide it as an argument for command-line utility\n\n.. code:: bash\n\n umbrella del www.example.com --key YOUR-CUSTOMER-KEY-IS-HERE-0123456789\n\n#. Provide it as part of a program call\n\n.. code-block:: python\n\n from umbr_api.get import get_list\n response = get_list(key='YOUR-CUSTOMER-KEY-IS-HERE-0123456789')\n\n#. Create ``data/enforcement.json`` file in **umbr_api** package directory.\nThis is an unsecured and unsupported way because of storing key in clear text\nformat. To find package directory:\n\n.. code-block:: python\n\n import os\n import umbr_api\n print(os.path.abspath(umbr_api.__file__))\n\n#. API key can be read from a keyring for command-line execution. To save\nAPI key you can use:\n\n.. code-block:: bash\n\n umbrella keyring --add YOUR-CUSTOMER-KEY-IS-HERE-0123456789\n umbrella keyring --show\n\n.. note::\n - Only macOS platform is tested for keyrings\n - By default all python apps can read the values of the keys from a keyring\n - ``umbrella`` will try to use ``--key`` firstly, then keychain, and finally ``data/enforcement.json`` file within **umbr_api** package directory.\n\nSupported methods\n-----------------\n\nEnforcement API\n^^^^^^^^^^^^^^^\n#. Add (POST)\n#. Get (GET)\n#. Remove (DELETE)\n\nManagement API\n^^^^^^^^^^^^^^\n#. Networks (GET)\n#. Roaming Computers (GET)\n#. Internal Networks (GET)\n#. Virtual Appliances (GET)\n#. Sites (GET)\n#. Users (GET)\n#. Roles (GET)\n\nReporting API\n^^^^^^^^^^^^^\n#. Security Activity Report (GET)\n#. Destinations: Top Identities (GET)\n#. Destinations: Most recent requests (GET)\n\nLimitations\n-----------\n\n#. Lack of documentation\n#. You heed to have an active subscription or evaluation\n#. Asserts will be removed with compiling to optimized byte code. This caused various protections to be removed.\n#. Other methods for change or delete entities are not supported and no plans to do that\n\nKnown issues\n------------\n\nError while accessing macOS keyring\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nPython's binaries may not be signed and they will fail to get an access to\nmacOS keyring. You should resign them manually to fix it. Error message::\n\n keyring.backends._OS_X_API.SecAuthFailure: (-25293, 'Security Auth Failure: make sure python is signed with codesign util')\n\n.. code-block:: bash\n\n $ codesign -v `which python`\n /Users/user/.virtualenvs/builings/bin/python: invalid Info.plist (plist or signature have been modified)\n In architecture: x86_64\n $ codesign -f -s - `which python`\n /Users/user/.virtualenvs/builings/bin/python: replacing existing signature\n\nDocumentation\n-------------\n\nDocumentation pages based on README.rst file and docstrings.\n\n- http://umbr-api.readthedocs.io/en/latest/\n\n.. note::\n - A symbolic link README.rst --> docs/README.rst was used to create ToC in Sphinx, which doesn't support relative paths for ToC.\n\nContribution guidelines\n-----------------------\n\n- https://github.com/kolatz/umbr_api/blob/master/docs/CONTRIBUTING.md\n\nWho do I talk to\n----------------\n\n- https://github.com/kolatz/",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/kolatz/umbr_api",
"keywords": "cisco umbrella opendns security",
"license": "MIT",
"maintainer": "",
"maintainer_email": "",
"name": "umbr-api",
"package_url": "https://pypi.org/project/umbr-api/",
"platform": "Darwin",
"project_url": "https://pypi.org/project/umbr-api/",
"project_urls": {
"Cisco Umbrella": "https://umbrella.cisco.com/",
"Cisco Umbrella Enforcement API": "https://docs.umbrella.com/developer/enforcement-api/",
"Homepage": "https://github.com/kolatz/umbr_api"
},
"release_url": "https://pypi.org/project/umbr-api/1.0.3/",
"requires_dist": null,
"requires_python": "",
"summary": "Cisco Umbrella APIs wrapper and command-line utility",
"version": "1.0.3"
},
"last_serial": 5243099,
"releases": {
"0.4.1": [
{
"comment_text": "",
"digests": {
"md5": "4ae7a6b394a2ecc2e47e6443230af086",
"sha256": "8080febe3891315d593dda0e66a356cb69d01bc17e3ffa08b2e7aa6a37b4e496"
},
"downloads": -1,
"filename": "umbr_api-0.4.1.tar.gz",
"has_sig": false,
"md5_digest": "4ae7a6b394a2ecc2e47e6443230af086",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13687,
"upload_time": "2018-05-27T11:04:27",
"url": "https://files.pythonhosted.org/packages/d3/18/9c260183f6cc479483d6ea0e43f893b73229f0d0f6b9736a6f5be2143d9c/umbr_api-0.4.1.tar.gz"
}
],
"0.4.2": [
{
"comment_text": "",
"digests": {
"md5": "455a27d10e05f2a754ec8747a756249c",
"sha256": "4fcd8390c6684f6ec8291d853d00b42ff089bad272847f6073ab70ebe5f69751"
},
"downloads": -1,
"filename": "umbr_api-0.4.2.tar.gz",
"has_sig": false,
"md5_digest": "455a27d10e05f2a754ec8747a756249c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13693,
"upload_time": "2018-09-06T17:41:56",
"url": "https://files.pythonhosted.org/packages/3d/0a/cef342a56bdb87d0f19b065ffbfbb912070113659469c562aa62d531f04d/umbr_api-0.4.2.tar.gz"
}
],
"1.0.0": [
{
"comment_text": "",
"digests": {
"md5": "e6cdfb3499b2665335873446a70ec77d",
"sha256": "727ac651e1e77cc8b91b39666385fab6745f7be469e1473b0ee6ae4a8cc6ab89"
},
"downloads": -1,
"filename": "umbr_api-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "e6cdfb3499b2665335873446a70ec77d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 19993,
"upload_time": "2018-10-21T00:48:08",
"url": "https://files.pythonhosted.org/packages/0b/c8/862f0f321bdf4e2afb3f4c1856148ecff0e546ef67f2eb1165b25c3dbff4/umbr_api-1.0.0.tar.gz"
}
],
"1.0.1": [
{
"comment_text": "",
"digests": {
"md5": "5505a7d0c8ffda7cef7f6efaf995d43f",
"sha256": "31825693308d7c69261c376e396cf33971c4082e11b98feb4230c39b5497f96e"
},
"downloads": -1,
"filename": "umbr_api-1.0.1.tar.gz",
"has_sig": false,
"md5_digest": "5505a7d0c8ffda7cef7f6efaf995d43f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 19639,
"upload_time": "2019-01-02T15:52:15",
"url": "https://files.pythonhosted.org/packages/90/3b/22b341b785035200ede7571dca5290ae6a100d29fc4ac59434968bbcaa88/umbr_api-1.0.1.tar.gz"
}
],
"1.0.2": [
{
"comment_text": "",
"digests": {
"md5": "a01cfea1dff860769262d2db7440f917",
"sha256": "cec6de262201d23d700a385a63f457dc9bf80a8a914e234a1ca028e259d567ce"
},
"downloads": -1,
"filename": "umbr_api-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "a01cfea1dff860769262d2db7440f917",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 55099,
"upload_time": "2019-05-06T19:52:03",
"url": "https://files.pythonhosted.org/packages/2a/18/f54d2b29f4c355cc118799b496504e177669ba0d4d47205034cc7db7a500/umbr_api-1.0.2.tar.gz"
}
],
"1.0.3": [
{
"comment_text": "",
"digests": {
"md5": "1915bf5a505ee6b762d0ebf6d81b7d95",
"sha256": "1f2d4cc938980db19b4e35281699ccba9596be8b93f43eb0a626e0852033df1e"
},
"downloads": -1,
"filename": "umbr_api-1.0.3.tar.gz",
"has_sig": false,
"md5_digest": "1915bf5a505ee6b762d0ebf6d81b7d95",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 56074,
"upload_time": "2019-05-08T14:30:57",
"url": "https://files.pythonhosted.org/packages/bb/d8/4d711dd1c0bdb3768283b6dcde063a7d0a3d45eb12d59f646fe69fa8626e/umbr_api-1.0.3.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "1915bf5a505ee6b762d0ebf6d81b7d95",
"sha256": "1f2d4cc938980db19b4e35281699ccba9596be8b93f43eb0a626e0852033df1e"
},
"downloads": -1,
"filename": "umbr_api-1.0.3.tar.gz",
"has_sig": false,
"md5_digest": "1915bf5a505ee6b762d0ebf6d81b7d95",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 56074,
"upload_time": "2019-05-08T14:30:57",
"url": "https://files.pythonhosted.org/packages/bb/d8/4d711dd1c0bdb3768283b6dcde063a7d0a3d45eb12d59f646fe69fa8626e/umbr_api-1.0.3.tar.gz"
}
]
}