POST /command/plan_run
On this page:
Use the plan executor to run a plan.
Request format
When Forming orchestrator API requests to this endpoint, the content
        type is application/json. The body must be a JSON object
        using these keys:
| Key | Format | Definition | 
|---|---|---|
| plan_name | String | Required: The name of the plan to run. Use the GET /plans endpoint to find plan
                  names. | 
| params | JSON object | The parameters you want the plan to use. | 
| environment | String | The environment to load the plan from. The default is production. | 
| description | String | A description of the job. | 
| timeout | Integer | The maximum number of seconds allowed for the plan to run. Reaching the
                  timeout limit cancels queued plan actions and attempts to interrupt in-progress
                  actions. If unspecified, this key takes the value of default-plan-timeout, which is one of the Orchestrator and pe-orchestration-services parameters. | 
| userdata | JSON object | Arbitrary key/value data supplied to the job. | 
For example, this body starts the canary plan on two specific
        nodes:
{
  "plan_name" : "canary",
  "description" : "Start the canary plan on node1 and node2",
  "params" : {
    "nodes" : ["node1.example.com", "node2.example.com"],
    "command" : "whoami",
    "canary" : 1
  }
}
                                            A complete curl request using this body might look like:
type_header='Content-Type: application/json'
auth_header="X-Authentication: $(puppet-access show)"
uri="https://$(puppet config print server):8143/orchestrator/v1/command/plan_run"
data='{"plan_name" : "canary", "description" : "Start the canary plan on node1 and node2", "params" : { "nodes" : ["node1.example.com", "node2.example.com"], "command" : "whoami", "canary" : 1}}'
curl --insecure --header "$type_header" --header "$auth_header" --request POST "$uri" --data "$data"
                                            Response format
If the plan starts successfully, the server returns 202 and a JSON object
        containing the name of the newly created plan job. For
        example:
{
  "name" : "1234"
}
                                            If you need to stop this plan while it is running, use the name ID with POST /command/stop_plan.
Error responses
If there is an error, Orchestrator API error responses provide error
        information in the kind key:
| Response code | Key | Description | 
|---|---|---|
| 400 | puppetlabs.orchestrator/validation-error | The plan_nameis not valid. Most likely, it
                  is not a properly-formatted string. | 
| 403 | puppetlabs.orchestrator/not-permitted | This error occurs when a user does not have permission to run the plan, cannot run the plan on the specified nodes, or otherwise lacks permission to complete the request. | 






