---
name: Update Device Settings
short_description: Update the current setting on the device
example_usage:
  java:
    |
      driver.setSetting(Setting.WAIT_FOR_IDLE_TIMEOUT, Duration.ofSeconds(5));
  javascript_wd:
    |
      await driver.updateSettings({nativeWebTap: true});
  javascript_wdio:
    |
      driver.settings({nativeWebTap: true});
  ruby:
    |
      @driver.update_settings(sample: 'value')

client_docs:
  java: "http://appium.github.io/java-client/io/appium/java_client/HasSettings.html#setSetting-io.appium.java_client.Setting-java.lang.Object-"
  javascript_wdio: "http://webdriver.io/api/mobile/settings.html"
  javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3032"
  ruby: "http://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#update_settings-instance_method"

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


# Information about the HTTP endpoints
endpoint:
  url: /wd/hub/session/:session_id/appium/settings
  method: POST
  url_parameters:
    - name: session_id
      description: ID of the session to route the command to
  json_parameters:
    - name: settings
      type: array<object>
      description: a JSON hash of settings to update, see [Settings API](/docs/en/advanced-concepts/settings.md).

# 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#L454
