{
  "parameters_schema": {
    "invoker_config": {
      "type": "json_object",
      "default": { "access": "local" },
      "json_schema": {
        "$schema": "http://json-schema.org/draft-04/schema#",
        "type": "object",
        "properties": {
          "min_runs": {
            "description": "Min number of runs",
            "type": "integer",
            "default": 1
          },
          "max_runs": {
            "description": "Max number of runs",
            "type": "integer",
            "default": 3
          },
          "sudo_all": {
            "description": "Use sudo for all actions",
            "type": "boolean"
          },
          "sudo_cmd": {
            "description": "Use sudo to execute command only",
            "type": "boolean"
          },
          "sudo_user": {
            "description": "Username for sudo, if other than root",
            "type": "string"
          },
          "sudo_password": {
            "description": "Password for sudo, if required",
            "type": "string"
          },
          "access": {
            "description": "Currently supported access mechanisms: local, ssh",
            "type": "string",
            "default": "local"
          },
          "ssh_port": {
            "description": "SSH port",
            "type": "integer",
            "default": 22
          },
          "ssh_host": {
            "description": "SSH host (DNS name or IP address)",
            "type": "string"
          },
          "ssh_user": {
            "description": "SSH username",
            "type": "string",
            "default": "ubuntu"
          },
          "ssh_private_key": {
            "description": "SSH private key",
            "type": "string"
          }
        },
        "required": [ "access" ]
      }
    },
    "run_list": {
      "type": "json_array",
      "json_schema": {
        "$schema": "http://json-schema.org/draft-04/schema#",
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "default": []
    }
  },
  "parameters_required": [ "invoker_config", "run_list" ],
  "results_schema": {
    "run_list": {
      "type": "json_object",
      "description": "Chef run list used for invocation"
    },
    "num_of_runs": {
      "type": "number"
    },
    "ps": {
      "type": "string",
      "description": "Running processes after invocation"
    },
    "logs": {
      "type": "string",
      "mapping": "stdout",
      "description": "Log messages put to stdout"
    }
  }
}

