CollabConnector


NameCollabConnector JSON
Version 0.1.1754924847 PyPI version JSON
download
home_pageNone
SummaryAn attempt at a simplified API collection for Cisco Collab products
upload_time2025-08-11 15:07:42
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords api cisco collaboration cucm webex
VCS
bugtrack_url
requirements requests xmltodict zeep netmiko netconf pandas openpyxl
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # CollabConnector
 Cisco Collab Connector Library

This library is made to try and be a single source for all Cisco Collab APIs (which can be lots). The goal is to unify requests and responses across different REST and SOAP APIs availble to make connecting to and scripting Collab tasks easier.  Hopefully.  Maybe.

Install:
```
pip3 install CollabConnector
```

Usage:
```commandline
>>> from CollabConnector import CUCM
>>> from CollabConnector import CUCX
>>> from CollabConnector import UCCX
>>> from CollabConnector.Webex import Webex

>>> cucm = CUCM.Connect("10.10.10.10", "admin", "P@ssw0rd")
>>> cucm.query("select count(*) from enduser")
[{'count': '5'}]
>>> cucm.get.Phone(name="SEP3C08F67A9618")
[{'name': 'SEP3C08F67A9618', 'description': 'Auto 1000', 'product': 'Cisco 7841', 'mod... }]
>>> cucm.uds.get("version")
{'@uri': 'https://10.10.10.10:8443/cucm-uds/version', '@version': '12.5.1', 'version': '12.5.1', 'capabil... }]
>>> cucm.ast.cluster
{'cluster_name': 'StandAloneCluster', 'nodes': ['cucm-01.lab-01.mycollablab.org', 'cucm-02.lab-01.mycollablab.org'], 'service...}]
>>> cucm.serviceability.status("Cisco Tftp")
{'cucm-01.lab-01.mycollablab.org': {'Cisco Tftp': {'ServiceName': 'Cisco Tftp', 'ServiceStatus': 'Started', 'ReasonCode': -1, 'Rea...}]
>>> cucm.registration_status("SEP3C08F67A9618")
{'SEP3C08F67A9618': {'name': 'SEP3C08F67A9618', 'node': ..., 'firmware': 'sip78xx.12-7-1-0001-393', 'IPAddress': ..., 'dirn': '1000', 'status': 'Registered'}}

>>> unity = CUCX.Connect("10.10.10.20", "admin", "P@ssw0rd")
>>> unity.get("users")
[{'URI': '/vmrest/users/a151...123', 'ObjectId': 'a151...123', 'Alias': 'undeliverablemess... }]
>>> unity.get("/vmrest/users", DtmfAccessId="10*", sort="DtmfAccessId")
[{'URI': ..., 'ObjectId': ..., 'FirstName': '', 'LastName': '', 'Alias': '1000', 'DisplayName': '1000', 'EmailAddress': '', ... }]

>>> ccx = UCCX.Connect("10.10.10.40", "admin", "P@ssw0rd")
>>> ccx.get("application")
[{'@type': 'applicationXMLList', 'application': []}]

>>> wbx = Webex.Connect(token)
>>> wbx.get("/v1/people/me")
{'id': 'Y2l...mYTg', 'emails': ['jsn....com'], 'phoneNumbers': [{'type': 'work', 'value': '2001'}, ...}]
```

Notes:
The AXL SOAP API was generated based on the version 14 WSDL files and may not be complete or function depending on version. A version specific SOAP client is built at CollabConnector.CUCM.axl and can be leveraged as a backup as needed, however no post call treatment is made so soap responses will need to be sterilized etc if used.
```commandline
>>> from CollabConnector import CUCM

>>> cucm = CUCM.Connect("10.10.10.10", "admin", "P@ssw0rd")
>>> cucm.axl.getPhone(name="SEPAAAABBBBCCCC")
[{'name': 'SEP3C08F67A9618', 'description': 'Auto 1000', 'product': 'Cisco 7841', 'mod... }]
```
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "CollabConnector",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "api, cisco, collaboration, cucm, webex",
    "author": null,
    "author_email": "Jon Snipes <jsnipes@mycollablab.org>",
    "download_url": "https://files.pythonhosted.org/packages/ea/b1/5b1541fe74638a9d57b9c34ad6e4973f95ebd67e7c3d23c9c359912e0099/collabconnector-0.1.1754924847.tar.gz",
    "platform": null,
    "description": "# CollabConnector\n Cisco Collab Connector Library\n\nThis library is made to try and be a single source for all Cisco Collab APIs (which can be lots). The goal is to unify requests and responses across different REST and SOAP APIs availble to make connecting to and scripting Collab tasks easier.  Hopefully.  Maybe.\n\nInstall:\n```\npip3 install CollabConnector\n```\n\nUsage:\n```commandline\n>>> from CollabConnector import CUCM\n>>> from CollabConnector import CUCX\n>>> from CollabConnector import UCCX\n>>> from CollabConnector.Webex import Webex\n\n>>> cucm = CUCM.Connect(\"10.10.10.10\", \"admin\", \"P@ssw0rd\")\n>>> cucm.query(\"select count(*) from enduser\")\n[{'count': '5'}]\n>>> cucm.get.Phone(name=\"SEP3C08F67A9618\")\n[{'name': 'SEP3C08F67A9618', 'description': 'Auto 1000', 'product': 'Cisco 7841', 'mod... }]\n>>> cucm.uds.get(\"version\")\n{'@uri': 'https://10.10.10.10:8443/cucm-uds/version', '@version': '12.5.1', 'version': '12.5.1', 'capabil... }]\n>>> cucm.ast.cluster\n{'cluster_name': 'StandAloneCluster', 'nodes': ['cucm-01.lab-01.mycollablab.org', 'cucm-02.lab-01.mycollablab.org'], 'service...}]\n>>> cucm.serviceability.status(\"Cisco Tftp\")\n{'cucm-01.lab-01.mycollablab.org': {'Cisco Tftp': {'ServiceName': 'Cisco Tftp', 'ServiceStatus': 'Started', 'ReasonCode': -1, 'Rea...}]\n>>> cucm.registration_status(\"SEP3C08F67A9618\")\n{'SEP3C08F67A9618': {'name': 'SEP3C08F67A9618', 'node': ..., 'firmware': 'sip78xx.12-7-1-0001-393', 'IPAddress': ..., 'dirn': '1000', 'status': 'Registered'}}\n\n>>> unity = CUCX.Connect(\"10.10.10.20\", \"admin\", \"P@ssw0rd\")\n>>> unity.get(\"users\")\n[{'URI': '/vmrest/users/a151...123', 'ObjectId': 'a151...123', 'Alias': 'undeliverablemess... }]\n>>> unity.get(\"/vmrest/users\", DtmfAccessId=\"10*\", sort=\"DtmfAccessId\")\n[{'URI': ..., 'ObjectId': ..., 'FirstName': '', 'LastName': '', 'Alias': '1000', 'DisplayName': '1000', 'EmailAddress': '', ... }]\n\n>>> ccx = UCCX.Connect(\"10.10.10.40\", \"admin\", \"P@ssw0rd\")\n>>> ccx.get(\"application\")\n[{'@type': 'applicationXMLList', 'application': []}]\n\n>>> wbx = Webex.Connect(token)\n>>> wbx.get(\"/v1/people/me\")\n{'id': 'Y2l...mYTg', 'emails': ['jsn....com'], 'phoneNumbers': [{'type': 'work', 'value': '2001'}, ...}]\n```\n\nNotes:\nThe AXL SOAP API was generated based on the version 14 WSDL files and may not be complete or function depending on version. A version specific SOAP client is built at CollabConnector.CUCM.axl and can be leveraged as a backup as needed, however no post call treatment is made so soap responses will need to be sterilized etc if used.\n```commandline\n>>> from CollabConnector import CUCM\n\n>>> cucm = CUCM.Connect(\"10.10.10.10\", \"admin\", \"P@ssw0rd\")\n>>> cucm.axl.getPhone(name=\"SEPAAAABBBBCCCC\")\n[{'name': 'SEP3C08F67A9618', 'description': 'Auto 1000', 'product': 'Cisco 7841', 'mod... }]\n```",
    "bugtrack_url": null,
    "license": null,
    "summary": "An attempt at a simplified API collection for Cisco Collab products",
    "version": "0.1.1754924847",
    "project_urls": {
        "Bug Tracker": "https://github.com/mycollablab/CollabConnector/issues",
        "Homepage": "https://github.com/mycollablab/CollabConnector",
        "Repository": "https://github.com/mycollablab/CollabConnector"
    },
    "split_keywords": [
        "api",
        " cisco",
        " collaboration",
        " cucm",
        " webex"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ee57b572ec9be35b4139f7f62231469070f6b72238a6937379eb6e8b418044a8",
                "md5": "c8f9a559d0c744f04ee3a766ceec2a45",
                "sha256": "ab8d7abf4db5d5a430b4f35d366dadda5b4b25f7989b0eac5be51a2be27493e1"
            },
            "downloads": -1,
            "filename": "collabconnector-0.1.1754924847-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c8f9a559d0c744f04ee3a766ceec2a45",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 3441224,
            "upload_time": "2025-08-11T15:07:38",
            "upload_time_iso_8601": "2025-08-11T15:07:38.545090Z",
            "url": "https://files.pythonhosted.org/packages/ee/57/b572ec9be35b4139f7f62231469070f6b72238a6937379eb6e8b418044a8/collabconnector-0.1.1754924847-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "eab15b1541fe74638a9d57b9c34ad6e4973f95ebd67e7c3d23c9c359912e0099",
                "md5": "56f109e15d8521de1720c32bac0cd4fa",
                "sha256": "a662009a81d3469b22798b17cad8aec28b91d8c06fe8952967e40f5cbf9ff050"
            },
            "downloads": -1,
            "filename": "collabconnector-0.1.1754924847.tar.gz",
            "has_sig": false,
            "md5_digest": "56f109e15d8521de1720c32bac0cd4fa",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 3263451,
            "upload_time": "2025-08-11T15:07:42",
            "upload_time_iso_8601": "2025-08-11T15:07:42.895831Z",
            "url": "https://files.pythonhosted.org/packages/ea/b1/5b1541fe74638a9d57b9c34ad6e4973f95ebd67e7c3d23c9c359912e0099/collabconnector-0.1.1754924847.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-11 15:07:42",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "mycollablab",
    "github_project": "CollabConnector",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "requests",
            "specs": [
                [
                    "==",
                    "2.28.1"
                ]
            ]
        },
        {
            "name": "xmltodict",
            "specs": [
                [
                    "==",
                    "0.13.0"
                ]
            ]
        },
        {
            "name": "zeep",
            "specs": [
                [
                    "==",
                    "4.2.1"
                ]
            ]
        },
        {
            "name": "netmiko",
            "specs": [
                [
                    ">=",
                    "4.1.2"
                ]
            ]
        },
        {
            "name": "netconf",
            "specs": [
                [
                    ">=",
                    "2.1.0"
                ]
            ]
        },
        {
            "name": "pandas",
            "specs": [
                [
                    ">=",
                    "1.5.3"
                ]
            ]
        },
        {
            "name": "openpyxl",
            "specs": [
                [
                    ">=",
                    "3.1.2"
                ]
            ]
        }
    ],
    "lcname": "collabconnector"
}
        
Elapsed time: 1.55322s