Skip to main content

SimpleMDMpy

A python library for simpleMDM API.

SimpleMDM API Documentation

Contributing

Install

Your SimpleMDM API key will need to be set as an environmental variable api_key.

Help available via help(SimpleMDMpy)

Sample Projects

Available Modules

Account

class Account(SimpleMDMpy.SimpleMDM.Connection)
 |  account class provides auth and basic account details
 |
 |  Methods defined here:
 |
 |  __init__(self, api_key)
 |
 |  get_account_details(self)
 |      returns account details as dict
 |
 |  set_account_details(self, name=None, country_code=None)
 |      set account detail

App Groups

class AppGroups(SimpleMDMpy.SimpleMDM.Connection)
 |  App Groups class provides interaction with Application Groups
 |
 |  Methods defined here:
 |
 |  __init__(self, api_key)
 |
 |  assign_app(self, app_group_id, app_id)
 |      remove app group from group
 |
 |  assign_device(self, app_group_id, device_id)
 |      assign device to app group
 |
 |  assign_device_group(self, app_group_id, device_group_id)
 |      assign device group from app group
 |
 |  create_app_group(self, name, auto_deploy='true')
 |      create app group
 |
 |  delete_app_group(self, app_group_id)
 |      remove app group
 |
 |  get_app_group(self, app_group_id='all')
 |      Get an app group, defaults to 'all' if 'app_group_id' is not present
 |
 |  push_apps(self, app_group_id)
 |      push apps in app group
 |
 |  un_assign_app(self, app_group_id, app_id)
 |      unassign app from app group
 |
 |  un_assign_device(self, app_group_id, device_id)
 |      unassign apps in app group
 |
 |  un_assign_device_group(self, app_group_id, device_group_id)
 |      remove device group from app group
 |
 |  update_app_group(self, app_group_id, name=None, auto_deploy='true')
 |      update app group
 |
 |  update_apps(self, app_group_id)
 |      update apps
 |

Apps

class Apps(SimpleMDMpy.SimpleMDM.Connection)
 |  apps module for SimpleMDMpy
 |
 |  Methods defined here:
 |
 |  __init__(self, api_key)
 |
 |  create_app(self, name=None, app_store_id=None, bundle_id=None, binary=None)
 |      upload an app binary
 |
 |  delete_app(self, app_id)
 |      delete an app
 |
 |  get_app(self, app_id='all')
 |      list app, if none specified all return
 |
 |  update_app(self, app_id, binary=None, name=None)
 |      update an apps info binary etc
 |

Assignment Groups

class AssignmentGroups(SimpleMDMpy.SimpleMDM.Connection)
 |  assignment groups module for SimpleMDMpy
 |
 |  Methods defined here:
 |
 |  __init__(self, api_key)
 |
 |  assign_app(self, assignment_group_id, app_id)
 |      assign app to an assignment group
 |
 |  assign_device(self, assignment_group_id, device_id)
 |      assign device to an assignment group
 |
 |  assign_device_group(self, assignment_group_id, device_group_id)
 |      assigns a device group
 |
 |  create_assignment_group(self, name, auto_deploy)
 |      creates an assignment group
 |
 |  delete_assignment_group(self, assignment_group_id)
 |      delete an app to an assignment group
 |
 |  get_assignment_groups(self, assignment_group_id='all')
 |      returns assignment group(s), defaults to all if none specified
 |
 |  push_apps(self, assignment_group_id)
 |      push apps in an assignment group
 |
 |  unassign_app(self, assignment_group_id, app_id)
 |      unassign app to an assignment group
 |
 |  unassign_device(self, assignment_group_id, device_id)
 |      unassign device to an assignment group
 |
 |  unassign_device_group(self, assignment_group_id, device_group_id)
 |      delete a device group assignment
 |
 |  update_apps(self, assignment_group_id)
 |      update apps in an assignment group
 |
 |  update_assignment_group(self, assignment_group_id, name, auto_deploy)
 |      updates an assignment group
 |

Custom Attributes

class CustomAttributes(SimpleMDMpy.SimpleMDM.Connection)
 |  work with custom attributes
 |
 |  Methods defined here:
 |
 |  __init__(self, api_key)
 |
 |  create_custom_attribute(self, name)
 |      create custom attribute
 |
 |  delete_custom_attribute(self, custom_attribute_id)
 |      deletes custom attribute
 |
 |  get_custom_attributes(self)
 |      lists all custom attributes
 |

Custom Configuration Profiles

class CustomConfigurationProfiles(SimpleMDMpy.SimpleMDM.Connection)
 |  work with custom profiles
 |
 |  Methods defined here:
 |
 |  __init__(self, api_key)
 |
 |  assign_to_device_group(self, profile_id, device_group_id)
 |      assigns custom profile to group
 |
 |  create_profile(self, name, mobileconfig, user_scope=None, attribute_support=False)
 |      upload a config file
 |
 |  delete_profile(self, profile_id)
 |      deletes custom profile
 |
 |  download_profile(self, profile_id)
 |      downloads custom profile
 |
 |  get_profiles(self)
 |      returns profiles
 |
 |  unassign_from_device_group(self, profile_id, device_group_id)
 |      deletes profile from device group
 |
 |  update_profile(self, profile_id, name=None, mobileconfig=None, user_scope=None, attribute_support=None)
 |      update a config file
 |

DEP Servers

class DepServers(SimpleMDMpy.SimpleMDM.Connection)
 |  module for interacting with dep server configurations
 |
 |  Methods defined here:
 |
 |  __init__(self, api_key)
 |
 |  get_dep_devices(self, dep_server_id, dep_device_id='all')
 |      return a DEP device via an ID, defaults to all if none specified
 |
 |  get_dep_servers(self, dep_server_id='all')
 |      returns dep servers, defaults to all if none specified
 |
 |  sync_dep_servers(self, dep_server_id)
 |      syncs specified server with Apple DEP
 |

Devices

class Devices(SimpleMDMpy.SimpleMDM.Connection)
 |  devices module for SimpleMDMpy
 |
 |  Methods defined here:
 |
 |  __init__(self, api_key)
 |
 |  clear_firmware_password(self, device_id)
 |      You can use this method to remove the firmware password from a device.
 |      The firmware password must have been originally set using SimpleMDM for
 |      this to complete successfully.
 |
 |  clear_passcode_device(self, device_id)
 |      You can use this method to unlock and remove the passcode of a device.
 |
 |  create_device(self, name, group_id)
 |      Creates a new device object in SimpleMDM. The response
 |      body includes an enrollment URL that can be used once to
 |      enroll a physical device.
 |
 |  delete_device(self, device_id)
 |      Unenroll a device and remove it from the account.
 |
 |  get_custom_attribute(self, device_id, custom_attribute_name)
 |      get a devices custom attributes
 |
 |  get_device(self, device_id='all', search=None, include_awaiting_enrollment=False)
 |      Returns a device specified by id. If no ID or search is
 |      specified all devices will be returned. Default does not include devices
 |      waiting for enrollment
 |
 |  list_installed_apps(self, device_id)
 |      Returns a listing of the apps installed on a device.
 |
 |  lock_device(self, device_id, message, phone_number, pin=None)
 |      You can use this method to lock a device and optionally display
 |      a message and phone number. The device can be unlocked with the
 |      existing passcode of the device.
 |
 |  push_apps_device(self, device_id)
 |      You can use this method to push all assigned apps
 |      to a device that are not already installed.
 |
 |  refresh_device(self, device_id)
 |      Request a refresh of the device information and app inventory.
 |      SimpleMDM will update the inventory information when the device responds
 |      to the request.
 |
 |  restart_device(self, device_id)
 |      This command sends a restart command to the device.
 |
 |  set_custom_attribute(self, value, device_id, custom_attribute_name)
 |      set a devices custom attribute to a specific value
 |
 |  shutdown_device(self, device_id)
 |      This command sends a shutdown command to the device.
 |
 |  update_device(self, device_id, name=None, device_name=None)
 |      Update the SimpleMDM name or device name of a device object.
 |
 |  update_os(self, device_id)
 |      You can use this method to update a device to the latest OS version.
 |      Currently supported by iOS devices only.
 |
 |  wipe_device(self, device_id)
 |      You can use this method to erase all content and settings stored on a
 |      device. The device will be unenrolled from SimpleMDM and returned to a
 |      factory default configuration.
 |

Device Groups

class DeviceGroups(SimpleMDMpy.SimpleMDM.Connection)
 |  device groups module for SimpleMDMpy
 |
 |  Methods defined here:
 |
 |  __init__(self, api_key)
 |
 |  assign_device(self, device_id, device_group_id)
 |      assign device to a group
 |
 |  get_device_group(self, device_group_id='all')
 |      get a devices group
 |

Enrollments

class Enrollments(SimpleMDMpy.SimpleMDM.Connection)
 |  enrollments module for SimpleMDMpy
 |
 |  Methods defined here:
 |
 |  __init__(self, api_key)
 |
 |  delete_enrollment(self, enrollment_id)
 |      delete enrollment
 |
 |  get_enrollments(self, enrollment_id='all')
 |      get a devices group
 |
 |  send_invitation(self, enrollment_id, contact)
 |      Send an enrollment invitation to an email address or phone number.
 |

Installed Apps

class InstalledApps(SimpleMDMpy.SimpleMDM.Connection)
 |  Installed apps represent apps that are installed and exist on devices.
 |
 |  Methods defined here:
 |
 |  __init__(self, api_key)
 |
 |  delete_app(self, installed_app_id)
 |      This submits a request to the device to uninstall the specified app.
 |      The app must be managed for this request to succeed.
 |
 |  get_app(self, installed_app_id)
 |      retrieve an installed app
 |
 |  update(self, installed_app_id)
 |      This submits a request to the device to update the specified app to
 |      the latest version. The app must be managed for this request to succeed.
 |

Logs

class Logs(SimpleMDMpy.SimpleMDM.Connection)
 |  GET all the LOGS
 |
 |  Methods defined here:
 |
 |  __init__(self, api_key)
 |
 |  get_logs(self, starting_after=None, limit=None)
 |      And I mean all the LOGS, before pagination
 |

Lost Mode

class LostMode(SimpleMDMpy.SimpleMDM.Connection)
 |  Interact with lost mode on a device.
 |
 |  Methods defined here:
 |
 |  __init__(self, api_key)
 |
 |  disable(self, device_id)
 |      Disable lost mode on a device.
 |
 |  enable(self, device_id)
 |      Activate lost mode on a device.
 |
 |  play_sound(self, device_id)
 |      Request that the device play a sound to assist
 |      with locating it.
 |
 |  update_location(self, device_id)
 |      Request that the device provide its current,
 |      up-to-date location. Location data can be viewed
 |      using the devices endpoint.
 |

Managed App Configs

class ManagedAppConfigs(SimpleMDMpy.SimpleMDM.Connection)
 |  Create, modify, and remove the managed app configuration
 |  associated with an app.
 |
 |  Methods defined here:
 |
 |  __init__(self, api_key)
 |
 |  delete_config(self, app_id, managed_config_id)
 |      Delete managed config from an app by ID.
 |
 |  get_managed_configs(self, app_id)
 |      "Retrieve the managed configs for an app.
 |
 |  push_updates(self, app_id)
 |      Push any updates to the managed configurations
 |      for an app to all devices. This is not necessary
 |      when making managed config changes through the UI.
 |      This is necessary after making changes through the API.
 |

Push Certificate

class PushCertificate(SimpleMDMpy.SimpleMDM.Connection)
 |  Push cert module actions
 |
 |  Methods defined here:
 |
 |  __init__(self, api_key)
 |
 |  get_signed_csr(self)
 |      Download a signed CSR file. This file is
 |      provided to Apple when creating and renewing a
 |      push certificate. The API returns a base64
 |      encoded plist for upload to the Apple Push
 |      Certificates Portal. The value of the data
 |      key can be uploaded to Apple as is
 |
 |  getpush_certificate(self)
 |      Show details related to the current push
 |      certificate being used.
 |
 |  update_certificate(self, file, apple_id)
 |      Upload a new certificate and replace the
 |      existing certificate for your account.
 |

Metadata

Release files for SimpleMDMpy 3.0.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for SimpleMDMpy 3.0.7
File Size Uploaded Provenance Actions
SimpleMDMpy-3.0.7.tar.gz 15.9 kB Without provenance Details for SimpleMDMpy-3.0.7.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for SimpleMDMpy 3.0.7
File Interpreter ABI Platform Actions
SimpleMDMpy-3.0.7-py3-none-any.whl Python 3 none any Details for SimpleMDMpy-3.0.7-py3-none-any.whl

Total release size: 36.3 kB

Release files / SimpleMDMpy-3.0.7.tar.gz

Download URL SimpleMDMpy-3.0.7.tar.gz
Size 15.9 kB
Tags Source
SHA-256 checksum
How to use checksums
f1f60e5f4dd4fa077b72a6fd8b628084a83438075ec2719da48b0719770f17ee
BLAKE2b-256 checksum
How to use checksums
79344207fe4f4ca95cc3f7df69d9fa5b7fa17075572c343d1de7821b8eea054a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.13

Release files / SimpleMDMpy-3.0.7-py3-none-any.whl

Download URL SimpleMDMpy-3.0.7-py3-none-any.whl
Size 20.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fdeec26e85a85cc26d5ea463beb947a4ae60fe4f0add87ddb7a7d0dc461cea3b
BLAKE2b-256 checksum
How to use checksums
7f8ac4094817d35a74e872cae8ae4d2344931496f8c2515cf4b731c1ee88cb18
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.13

Security for SimpleMDMpy 3.0.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page