Add UPower Device interface
Add a YAML description of the UPower Device interface defined at
https://upower.freedesktop.org/docs/Device.html
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
Change-Id: Ib70d6525b913cf06da4e93a53e332487126f1db0
diff --git a/yaml/org/freedesktop/UPower/Device.interface.yaml b/yaml/org/freedesktop/UPower/Device.interface.yaml
new file mode 100644
index 0000000..9f13d61
--- /dev/null
+++ b/yaml/org/freedesktop/UPower/Device.interface.yaml
@@ -0,0 +1,290 @@
+description: >
+ "org.freedesktop.UPower.Device -- Device interface
+ Defined at https://upower.freedesktop.org/docs/Device.html
+ Objects implementing org.freedesktop.UPower.Device also implement the
+ org.freedesktop.DBus.Introspectable and org.freedesktop.DBus.Properties
+ interfaces. Unless otherwise noted, an empty string or the value 0 in a
+ property on this interface means not set."
+
+methods:
+ - name: Refresh
+ description: >
+ "Refreshes the data collected from the power source. Callers need the
+ org.freedesktop.upower.refresh-power-source authorization"
+
+ - name: GetHistory
+ description: >
+ "Gets history for the power device that is persistent across
+ reboots."
+ parameters:
+ - name: type
+ type: string
+ description: >
+ "The type of history. Valid types are rate or charge."
+ - name: timespan
+ type: uint32
+ description: >
+ "The amount of data to return in seconds, or 0 for all."
+ - name: resolution
+ type: uint32
+ description: >
+ "The approximate number of points to return. A higher resolution is
+ more accurate, at the expense of plotting speed."
+ returns:
+ - name: data
+ type: array[struct[uint32, double, uint32]]
+ description: >
+ "The history data for the power device, if the device supports
+ history. Data is ordered from the earliest in time, to the newest
+ data point. Each element contains the following members:
+ time: The time value in seconds from the gettimeofday() method.
+ value: The data value, for instance the rate in W or the charge
+ in %.
+ state: The state of the device, for instance charging or
+ discharging."
+
+ - name: GetStatistics
+ description: >
+ "Gets statistics for the power device that may be interesting to show
+ on a graph in the session."
+ parameters:
+ - name: type
+ type: string
+ description: >
+ "The mode for the statistics. Valid types are charging or
+ discharging."
+ returns:
+ - name: data
+ type: array[struct[double, double]]
+ description: >
+ "The statistics data for the power device. Each element contains the
+ following members:
+ value: The value of the percentage point, usually in seconds.
+ accuracy: The accuracy of the prediction in percent."
+
+properties:
+ - name: NativePath
+ default: ""
+ type: string
+ description: >
+ "OS specific native path of the power source. On Linux this is the
+ sysfs path, for example
+ /sys/devices/LNXSYSTM:00/device:00/PNP0C0A:00/power_supply/BAT0. Is
+ blank if the device is being driven by a user space driver."
+ - name: Vendor
+ default: ""
+ type: string
+ description: >
+ "Name of the vendor of the battery."
+ - name: Model
+ default: ""
+ type: string
+ description: >
+ "Name of the model of this battery."
+ - name: Serial
+ default: ""
+ type: string
+ description: >
+ "Unique serial number of the battery."
+ - name: UpdateTime
+ default: 0
+ type: uint64
+ description: >
+ "The point in time (seconds since the Epoch Jan 1, 1970 0:00 UTC)
+ that data was read from the power source."
+ - name: Type
+ default: 0
+ type: uint32
+ description: >
+ "Type of power source.
+ 0: Unknown
+ 1: Line Power
+ 2: Battery
+ 3: Ups
+ 4: Monitor
+ 5: Mouse
+ 6: Keyboard
+ 7: Pda
+ 8: Phone"
+ - name: PowerSupply
+ default: false
+ type: boolean
+ description: >
+ "If the power device is used to supply the system. This would be set
+ TRUE for laptop batteries and UPS devices, but set FALSE for wireless
+ mice or PDAs."
+ - name: HasHistory
+ default: false
+ type: boolean
+ description: >
+ "If the power device has history."
+ - name: HasStatistics
+ default: false
+ type: boolean
+ description: >
+ "If the power device has statistics."
+ - name: Online
+ default: false
+ type: boolean
+ description: >
+ "Whether power is currently being provided through line power. This
+ property is only valid if the property type has the value
+ 'line-power'."
+ - name: Energy
+ default: 0.0
+ type: double
+ description: >
+ "Amount of energy (measured in Wh) currently available in the power
+ source. This property is only valid if the property type has the
+ value 'battery'."
+ - name: EnergyEmpty
+ default: 0.0
+ type: double
+ description: >
+ "Amount of energy (measured in Wh) in the power source when it's
+ considered to be empty. This property is only valid if the property
+ type has the value 'battery'."
+ - name: EnergyFull
+ default: 0.0
+ type: double
+ description: >
+ "Amount of energy (measured in Wh) in the power source when it's
+ considered full. This property is only valid if the property type
+ has the value 'battery'."
+ - name: EnergyFullDesign
+ default: 0.0
+ type: double
+ description: >
+ "Amount of energy (measured in Wh) the power source is designed to
+ hold when it's considered full. This property is only valid if the
+ property type has the value 'battery'."
+ - name: EnergyRate
+ default: 0.0
+ type: double
+ description: >
+ "Amount of energy being drained from the source, measured in W. If
+ positive, the source is being discharged, if negative it's being
+ charged. This property is only valid if the property type has the
+ value 'battery'."
+ - name: Voltage
+ default: 0.0
+ type: double
+ description: >
+ "Voltage in the Cell or being recorded by the meter."
+ - name: Luminosity
+ default: 0.0
+ type: double
+ description: >
+ "Luminosity being recorded by the meter."
+ - name: TimeToEmpty
+ default: 0
+ type: int64
+ description: >
+ "Number of seconds until the power source is considered empty. Is set
+ to 0 if unknown. This property is only valid if the property type
+ has the value 'battery'."
+ - name: TimeToFull
+ default: 0
+ type: int64
+ description: >
+ "Number of seconds until the power source is considered full. Is set
+ to 0 if unknown. This property is only valid if the property type
+ has the value 'battery'."
+ - name: Percentage
+ default: 0.0
+ type: double
+ description: >
+ "The amount of energy left in the power source expressed as a
+ percentage between 0 and 100. Typically this is the same as (energy -
+ energy-empty) / (energy-full - energy-empty). However, some primitive
+ power sources are capable of only reporting percentages and in this
+ case the energy-* properties will be unset while this property is
+ set. This property is only valid if the property type has the value
+ 'battery'."
+ - name: Temperature
+ default: 0.0
+ type: double
+ description: >
+ "The temperature of the device in degrees Celsius. This property is
+ only valid if the property type has the value 'battery'."
+ - name: IsPresent
+ default: false
+ type: boolean
+ description: >
+ "If the power source is present in the bay. This field is required as
+ some batteries are hot-removable, for example expensive UPS and most
+ laptop batteries. This property is only valid if the property type
+ has the value 'battery'."
+ - name: State
+ default: 0
+ type: uint32
+ description: >
+ "The battery power state.
+ 0: Unknown
+ 1: Charging
+ 2: Discharging
+ 3: Empty
+ 4: Fully charged
+ 5: Pending charge
+ 6: Pending discharge
+ This property is only valid if the property type has the value
+ 'battery'."
+ - name: IsRechargeable
+ default: false
+ type: boolean
+ description: >
+ "If the power source is rechargeable. This property is only valid if
+ the property type has the value 'battery'."
+ - name: Capacity
+ default: 0.0
+ type: double
+ description: >
+ "The capacity of the power source expressed as a percentage between 0
+ and 100. The capacity of the battery will reduce with age. A capacity
+ value less than 75% is usually a sign that you should renew your
+ battery. Typically this value is the same as (full-design / full) *
+ 100. However, some primitive power sources are not capable reporting
+ capacity and in this case the capacity property will be unset. This
+ property is only valid if the property type has the value 'battery'."
+ - name: Technology
+ default: 0
+ type: uint32
+ description: >
+ "Technology used in the battery:
+ 0: Unknown
+ 1: Lithium ion
+ 2: Lithium polymer
+ 3: Lithium iron phosphate
+ 4: Lead acid
+ 5: Nickel cadmium
+ 6: Nickel metal hydride
+ This property is only valid if the property type has the value
+ 'battery'."
+ - name: WarningLevel
+ default: 0
+ type: uint32
+ description: >
+ "Warning level of the battery:
+ 0: Unknown
+ 1: None
+ 2: Discharging (only for UPSes)
+ 3: Low
+ 4: Critical
+ 5: Action"
+ - name: BatteryLevel
+ default: 0
+ type: uint32
+ description: >
+ "Level of the battery:
+ 0: Unknown
+ 1: None (the battery does not use a coarse level of battery reporting)
+ 3: Low
+ 4: Critical
+ 6: Normal
+ 7: High
+ 8: Full"
+ - name: IconName
+ default: ""
+ type: string
+ description: >
+ "An icon name, following the Icon Naming Specification"