// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

[
  {
    "namespace": "systemPrivate",
    "description": "none",
    "types": [
      {
        "id": "UpdateStatus",
        "type": "object",
        "description": "Information about the system update.",
        "properties": {
          "state": {
            "type": "string",
            "enum": ["NotAvailable", "Updating", "NeedRestart"],
            "description": "State of system update.  NotAvailable when there is no available update or the update system is in error state, Updating when a system update is in progress, NeedRestart when a system update is finished and restart is needed."
          },
          "downloadProgress": {
            "type": "number",
            "description": "Value between 0 and 1 describing the progress of system update download.  This value will be set to 0 when |state| is NotAvailable, 1 when NeedRestart."
          }
        }
      },
      {
        "id": "VolumeInfo",
        "type": "object",
        "description": "Information about the volume.",
        "properties": {
          "volume": {"type": "number", "description": "The value of the volume percent. This must be between 0.0 and 100.0."},
          "isVolumeMuted": {"type": "boolean", "description": "True if the volume is muted."}
        }
      },
      {
        "id": "BrightnessChangeInfo",
        "type": "object",
        "description": "Information about a change to the screen brightness.",
        "properties": {
          "brightness": {
            "type": "number",
            "description": "The value of the current screen brightness in percent, between 0.0 and 100.0."
          },
          "userInitiated": {
            "type": "boolean",
            "description": "Whether this change was initiated by user."
          }
        }
      }
    ],
    "functions": [
      {
        "name": "getIncognitoModeAvailability",
        "type": "function",
        "description": "Returns whether the incognito mode is enabled, disabled or forced",
        "parameters": [
          {
            "name": "callback",
            "type": "function",
            "description": "Called with the result.",
            "parameters": [
              {
                "name": "value",
                "type": "string",
                "enum": ["enabled", "disabled", "forced"],
                "description": "Exposes whether the incognito mode is available to windows. One of 'enabled', 'disabled' (user cannot browse pages in Incognito mode), 'forced' (all pages/sessions are forced into Incognito mode)."
              }
            ]
          }
        ]
      },
      {
        "name": "getUpdateStatus",
        "type": "function",
        "description": "Gets information about the system update.",
        "parameters": [
          {
            "type": "function",
            "name": "callback",
            "parameters": [
              {
                "$ref": "UpdateStatus",
                "name": "status",
                "description": "Details of the system update"
              }
            ]
          }
        ]
      }
    ],
    "events": [
      {
        "name": "onVolumeChanged",
        "type": "function",
        "description": "Fired when the volume is changed.",
        "parameters": [
          {
            "$ref": "VolumeInfo",
            "name": "volume",
            "description": "Information about the current state of the system volume control, including whether it is muted."
          }
        ]
      },
      {
        "name": "onBrightnessChanged",
        "type": "function",
        "description": "Fired when the screen brightness is changed.",
        "parameters": [
          {
            "$ref": "BrightnessChangeInfo",
            "name": "brightness",
            "description": "Information about a change to the screen brightness."
          }
        ]
      },
      {
        "name": "onScreenUnlocked",
        "type": "function",
        "description": "Fired when the screen is unlocked.",
        "parameters": []
      },
      {
        "name": "onWokeUp",
        "type": "function",
        "description": "Fired when the device wakes up from sleep.",
        "parameters": []
      }
    ]
  }
]
