---
name: Get Performance Data
short_description: Returns the information of the system state which is supported to read as like cpu, memory, network traffic, and battery
  
example_usage:
  java:
    |
      List<List<Object>> performanceData = driver.getPerformanceData("my.app.package", "cpuinfo", 5);
  ruby:
    |
      @driver.get_performance_data package_name: 'io.appium.android.apis', data_type: 'cpuinfo', data_read_timeout: 10
  php:
    |
      // TODO PHP sample
  csharp:
    |
      // TODO C# sample

client_docs:
  java: "http://appium.github.io/java-client/io/appium/java_client/android/HasSupportedPerformanceDataType.html#getSupportedPerformanceDataTypes--"
  ruby: "http://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Android/Device#get_performance_data-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: false
    uiautomation: false
  android:
    uiautomator2: true
    uiautomator: true
  mac:
    mac: false # TODO Confirm this that mouse movements
  windows:
    windows: false # TODO Confirm this
client_support:
  java: true
  python: false
  ruby: true
  php: false
  csharp: false
  javascript_wd: true
  javascript_wdio: true
  

# Information about the HTTP endpoints
endpoint:
  url: /session/:session_id/appium/getPerformanceData
  method: POST
  url_parameters:
    - name: session_id
      description: ID of the session to route the command to
  json_parameters:
    - name: package_name
      type: string
      description: The package name of the application
    - name: data_type
      type: string
      description: The type of system state which wants to read. It should be one of the supported performance data types.
    - name: data_read_timeout
      type: number
      description: The number of attempts to read (optional)
  response:
    - type: array<string>
      description: The information type of the system state which is supported to read as like cpu, memory, network traffic, and battery

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