From c829a038f3f810755aeb219c373f7c24ab9fc966 Mon Sep 17 00:00:00 2001 From: Travis Abram Date: Sun, 16 Feb 2020 17:40:26 -0800 Subject: [PATCH] Add cellular_uplink_configurations module --- meraki/__init__.py | 2 + meraki/api/cellular_uplink_configurations.py | 88 ++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 meraki/api/cellular_uplink_configurations.py diff --git a/meraki/__init__.py b/meraki/__init__.py index aeef2230..86bed8ea 100644 --- a/meraki/__init__.py +++ b/meraki/__init__.py @@ -11,6 +11,7 @@ from .api.bluetooth_clients import BluetoothClients from .api.camera_quality_retention_profiles import CameraQualityRetentionProfiles from .api.cameras import Cameras +from .api.cellular_uplink_configurations import CellularUplinkConfigurations from .api.clients import Clients from .api.config_templates import ConfigTemplates from .api.connectivity_monitoring_destinations import ConnectivityMonitoringDestinations @@ -149,6 +150,7 @@ def __init__(self, api_key=None, base_url=DEFAULT_BASE_URL, single_request_timeo self.bluetooth_clients = BluetoothClients(self._session) self.camera_quality_retention_profiles = CameraQualityRetentionProfiles(self._session) self.cameras = Cameras(self._session) + self.cellular_uplink_configurations = CellularUplinkConfigurations(self._session) self.clients = Clients(self._session) self.config_templates = ConfigTemplates(self._session) self.connectivity_monitoring_destinations = ConnectivityMonitoringDestinations(self._session) diff --git a/meraki/api/cellular_uplink_configurations.py b/meraki/api/cellular_uplink_configurations.py new file mode 100644 index 00000000..56c5a243 --- /dev/null +++ b/meraki/api/cellular_uplink_configurations.py @@ -0,0 +1,88 @@ +class CellularUplinkConfigurations(object): + def __init__(self, session): + super(CellularUplinkConfigurations, self).__init__() + self._session = session + + def getCellularUplinkConfigurations(self, networkId: str, serial: str): + """ + **Return the cellular uplink configurations for a device.** + https://api.meraki.com/api_docs + + - networkId (string) + - serial (string) + """ + + metadata = { + 'tags': ['Cellular Uplink Configurations'], + 'operation': 'getCellularUplinkConfigurations', + } + resource = f'/networks/{networkId}/devices/{serial}/uplink/cellular' + + return self._session.get(metadata, resource) + + def createCellularUplinkConfigurations(self, networkId: str, serial: str, **kwargs): + """ + **Create an uplink configuration for a device** + https://api.meraki.com/api_docs + + - networkId (string) + - serial (string) + - apn (string): Access Point Name (APN) to send to carrier (optional) + - enabled (boolean): Whether this uplink is enabled (optional) + """ + + kwargs.update(locals()) + + metadata = { + 'tags': ['Cellular Uplink Configurations'], + 'operation': 'createCellularUplinkConfigurations', + } + resource = f'/networks/{networkId}/devices/{serial}/uplink/cellular' + + body_params = ['apn', 'enabled'] + payload = {k: v for (k, v) in kwargs.items() if k in body_params} + + return self._session.post(metadata, resource, payload) + + def getCellularUplinkConfiguration(self, networkId: str, serial: str, id: str): + """ + **Return the cellular uplink configuration.** + https://api.meraki.com/api_docs + + - networkId (string) + - serial (string) + - id (string): id for the cellular uplink configuration + """ + + metadata = { + 'tags': ['Cellular Uplink Configurations'], + 'operation': 'getCellularUplinkConfiguration', + } + resource = f'/networks/{networkId}/devices/{serial}/uplink/cellular/{id}' + + return self._session.get(metadata, resource) + + def updateCellularUplinkConfiguration(self, networkId: str, serial: str, id: str, **kwargs): + """ + **Update cellular uplink configuration** + https://api.meraki.com/api_docs + + - networkId (string) + - serial (string) + - id (string): id for the cellular uplink configuration + - apn (string): Access Point Name (APN) to send to carrier (optional) + - enabled (boolean): Whether this uplink is enabled (optional) + """ + + kwargs.update(locals()) + + metadata = { + 'tags': ['Cellular Uplink Configurations'], + 'operation': 'updateCellularUplinkConfiguration', + } + resource = f'/networks/{networkId}/devices/{serial}/uplink/cellular/{id}' + + body_params = ['apn', 'enabled'] + payload = {k: v for (k, v) in kwargs.items() if k in body_params} + + return self._session.put(metadata, resource, payload)