---
name: Toggle Touch ID Enrollment
short_description: Toggle the simulator being [enrolled](https://support.apple.com/en-ca/ht201371) to accept touchId  (iOS Simulator only)

description:
  |
    To enable this feature, the `allowTouchIdEnroll` desired capability must be set to true. When `allowTouchIdEnroll` is set to true
    the Simulator will be enrolled by default, and the 'Toggle Touch ID Enrollment' changes the enrollment state.

    This call will only work if the Appium process or its parent application (e.g., Terminal.app or Appium.app) has access to Mac OS accessibility in System Preferences > Security & Privacy > Privacy > Accessibility list

example_usage:
  java:
    |
      driver.toggleTouchIDEnrollment(true);
  python:
    |
      self.driver.toggle_touch_id_enrollment()
  javascript_wd:
    |
      await driver.toggleTouchIdEnrollment();
  javascript_wdio:
    |
      driver.toggleTouchIdEnrollment(true);
  ruby:
    |
      @driver.toggle_touch_id_enrollment
  php:
    |
      // TODO PHP sample
  csharp:
    |
      // TODO C# sample

client_docs:
  java: "http://appium.github.io/java-client/io/appium/java_client/ios/PerformsTouchID.html#performTouchID-boolean-"
  python: "https://github.com/appium/python-client/blob/master/appium/webdriver/webdriver.py#L670"
  javascript_wdio: "http://webdriver.io/api/mobile/toggleTouchIdEnrollment.html"
  javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3150"
  ruby: "http://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Ios/Device#toggle_touch_id_enrollment-instance_method"
  php: "https://github.com/appium/php-client/" # TODO PHP documentation link
  csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link

# Driver support by platform
driver_support:
  ios:
    xcuitest: true
    uiautomation: false
  android:
    uiautomator2: false
    uiautomator: false
  mac:
    mac: false
  windows:
    windows: false
client_support:
  java: true
  python: true
  ruby: true
  php: true
  csharp: true
  javascript_wd: true
  javascript_wdio: true
  

# Information about the HTTP endpoints
endpoint:
  url: /session/:session_id/appium/simulator/toggle_touch_id_enrollment
  method: 'POST'
  url_parameters:
    - name: session_id
      description: ID of the session to route the command to
  json_parameters:
    - name: enabled
      type: boolean
      description: If true, enable, if falsey disable, otherwise toggle (optional)

# Links to specifications. Should link to at least one specification
specifications: 
  jsonwp: https://github.com/appium/appium-base-driver/blob/master/lib/mjsonwp/routes.js#L427
