Metadata-Version: 2.1
Name: synology-srm
Version: 0.2.2
Summary: Synology SRM API
Home-page: https://github.com/aerialls/synology-srm
Author: Julien Brochet
Author-email: julien@aerialls.io
License: MIT
Description: 
        # Synology SRM API
        
        [![Build status](https://github.com/aerialls/synology-srm/workflows/Test/badge.svg)](https://github.com/aerialls/synology-srm/actions?query=workflow%3ATest)
        [![PyPi version](https://img.shields.io/pypi/v/synology-srm.svg)](https://pypi.org/project/synology-srm/)
        [![PyPI pyversions](https://img.shields.io/pypi/pyversions/synology-srm.svg)](https://pypi.python.org/pypi/synology-srm/)
        
        Python 3 library to use the Synology SRM (Synology Router Manager) API. This is **NOT** the same thing as Synology DSM (DiskStation Manager).
        
        This library should work with the following devices.
        
        * RT1900ac
        * RT2600ac
        
        > It's not possible to create another account in SRM with admin permissions. You'll need to use your `admin` account (or the one you renamed at creation).
        
        ## Usage
        
        ```python
        import synology_srm
        
        client = synology_srm.Client(
            host='192.168.1.254',
            port=8001,
            https=True,
            username='admin',
            password='admin',
        )
        ```
        
        You can now access all namespaces from the API. The following methods are availabe.
        
        * Base
          * getinfo_encryption()
          * query_info()
        * Core
          * list_ddns_extip()
          * list_ddns_record()
          * get_system_utilization()
          * get_network_nsm_device(filters=`{}`)
          * get_ngfw_traffic(interval=`live|day|week|month`)
          * list_certificate()
          * export_certificate(path=`certificate.zip`)
        * Mesh
          * get_network_wanstatus()
          * get_network_wifidevice()
          * get_system_info()
        
        For instance, to list all endpoints available in the API.
        
        ```python
        endpoints = client.base.query_info()
        
        for endpoint, config in endpoints.items():
            print("API endpoint {} (minVersion={}, maxVersion={})".format(
                endpoint,
                config['minVersion'],
                config['maxVersion'],
            ))
        ```
        
        ## Manual endpoints
        
        It's possible to target endpoints not directly supported by this library by using the raw `http` client.
        
        ```python
        response = client.http.call(
            endpoint='entry.cgi',
            api='SYNO.Core.System.Utilization',
            method='get',
            version=1,
        )
        ```
        
        ## HTTPS auto-signed certificate
        
        You can disable the HTTPS certificate verification if you are using a self-signed certificate.
        
        ```python
        client.http.disable_https_verify()
        ```
        
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.6
Description-Content-Type: text/markdown
