20. Digital Rebar Provision API

In general, the Digital Rebar Provision API is documented via the Swagger spec and introspectable for machines via /swagger.json and for humans via /swagger-ui.

All API calls are available under /api/v3 based on the Digital Rebar API convention.

20.1. API Filters

The API includes index driven filters for large deployments that can be used to pre-filter requests from the API.

The list of available indexes is provided by the /api/v3/indexes and /api/v3/indexes/[model] calls. These hashs provide a list of all keys that can be used for filters with some additional metadata.

To use the index, simply include one or more indexs and values on the request URI. For example:

/api/v3/machines?Runnable=true&Available=true

The filter specification allows more complex filters using functions:

  • Key=Eq(Value) (that is the same as Key=Value)
  • Lt(Value)
  • Lte(Value)
  • Gt(Value)
  • Gte(Value)
  • Ne(Value)
  • Ranges: * Between(Value1,Value2) (edited) * Except(Value1,Value2)

The query string applies ALL parameters are to be applied (as implied by the & separator). All must match to be returned.

20.2. Filtering by Param Value

The API includes specialized filter behavior for Params that allows deep searching models for Param values.

To filter Machines or Profiles by Param values, pass the Param name and value using the normal Field filter specification. When the Field is not found, the backend will search model’s Params keys and evalute the filter against the Param value.

20.3. Payload Reduction (slim)

Since Params and Meta may contain a lot of data, the API supports the ?slim=[Params,Meta] option to allow requests to leave these fields unpopulated. If this data is needed, operators will have to request the full object or object’s Params or Meta in secondary calls.

/api/v3/machines?slim=Params,Meta

Only endpoints that offer the slim-objects feature flag (v3.9+) will accept this flag.

20.4. API Exception & Deprecation Notes

There are times when the API and models have exceptions or changes that do not follow the normal pattern. This section is designed to provide a reference for those exceptions.

This section is intended to provide general information about and functional of the API. We maintain this section for legacy operators, when possible avoid using deprecated features!

Machines.Profile (deprecated by flag: profileless-machine)
What would otherwise be Machine.Params is actually embedded under Machines.Profile.Params. This deprecated composition simplifies that precedence calculation for Params by making Machines the top of the Profiles stack. All the other fields in the Machines.Profile are ignored.

20.4.1. Methods

20.4.1.1. System

GET /system/actions

List system actions System

  • Description: List System actions Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
plugin query string

Responses

Code Type
200 ActionsResponse
404 ErrorResponse
403 NoSystemResponse
401 NoSystemResponse

POST /system/actions/{cmd}

Call an action on the system.

  • Description: Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
cmd* path string
plugin query string
Body* body map of strings to object

Responses

Code Type
200 ActionPostResponse
404 ErrorResponse
403 NoSystemResponse
401 NoSystemResponse
400 ErrorResponse
409 ErrorResponse

GET /system/actions/{cmd}

List specific action for System

  • Description: List specific {cmd} action for System Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
cmd* path string
plugin query string

Responses

Code Type
200 ActionResponse
404 ErrorResponse
403 NoSystemResponse
401 NoSystemResponse
400 ErrorResponse

20.4.1.2. PluginProviders

POST /plugin_providers/{name}

Upload a plugin provider to a specific {name}.

  • Produces: [u’application/json’]
  • Consumes: [u’application/octet-stream’]

Parameters

Name Position Description Type
name* path string
Body body Raw Octet Stream

Responses

Code Type
201 PluginProviderInfoResponse
415 ErrorResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
507 ErrorResponse
409 ErrorResponse

DELETE /plugin_providers/{name}

Delete a plugin provider

  • Description: The plugin provider will be removed from the system.

Parameters

Name Position Description Type
name* path string

Responses

Code Type
422 ErrorResponse
404 ErrorResponse
403 NoContentResponse
204 NoContentResponse
401 NoContentResponse

HEAD /plugin_providers/{name}

See if a Plugin Provider exists

  • Description: Return 200 if the Plugin Provider specified by {name} exists, or return NotFound.

Responses

Code Type
200 NoContentResponse
404 NoContentResponse
403 NoContentResponse
401 NoContentResponse

GET /plugin_providers/{name}

Get a specific plugin with {name}

  • Produces: [u’application/json’]
  • Description: Get a specific plugin specified by {name}.

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 PluginProviderResponse
404 ErrorResponse
403 NoContentResponse
500 ErrorResponse
401 NoContentResponse

HEAD /plugin_providers

  • Produces: [u’application/json’]
  • Description: Stats of the list of plugin_provider on the system to create plugins

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 PluginProvidersResponse
403 NoContentResponse
500 ErrorResponse
401 NoContentResponse
406 ErrorResponse

GET /plugin_providers

  • Produces: [u’application/json’]
  • Description: Lists possible plugin_provider on the system to create plugins

Responses

Code Type
200 PluginProvidersResponse
403 NoContentResponse
500 ErrorResponse
401 NoContentResponse

20.4.1.3. Indexes

GET /indexes

  • Produces: [u’application/json’]
  • Description: List all static indexes for objects

Responses

Code Type
200 IndexesResponse
403 NoContentResponse
500 ErrorResponse
401 NoContentResponse

GET /indexes/{prefix}

  • Produces: [u’application/json’]
  • Description: Get static indexes for a specific object type

Parameters

Name Position Description Type
prefix* path string

Responses

Code Type
200 IndexResponse
404 ErrorResponse
403 NoContentResponse
500 ErrorResponse
401 NoContentResponse

GET /indexes/{prefix}/{param}

Get information on a specific index for a specific object type.

  • Produces: [u’application/json’]
  • Description: Unlike the other routes, you can probe for parameter-defined indexes using this route.

Parameters

Name Position Description Type
prefix* path string
param* path string

Responses

Code Type
200 IndexResponse
404 ErrorResponse
403 NoContentResponse
500 ErrorResponse
401 NoContentResponse

20.4.1.4. Params

POST /params

Create a Param

  • Description: Create a Param from the provided object

Parameters

Name Position Description Type
Body* body Param

Responses

Code Type
201 ParamResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /params

Stats of the List Params filtered by some parameters.

  • Description: This will return headers with the stats of the list. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Name = string Available = boolean Valid = boolean ReadOnly = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred.

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Name query string

Responses

Code Type
200 NoContentResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

GET /params

Lists Params filtered by some parameters.

  • Description: This will show all Params by default. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Name = string Available = boolean Valid = boolean ReadOnly = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred.

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Name query string

Responses

Code Type
200 ParamsResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

PUT /params/{name}

Put a Param

  • Description: Update a Param specified by {name} using a JSON Param

Parameters

Name Position Description Type
Body* body Param
name* path string

Responses

Code Type
200 ParamResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

PATCH /params/{name}

Patch a Param

  • Description: Update a Param specified by {name} using a RFC6902 Patch structure

Parameters

Name Position Description Type
Body* body Patch
name* path string

Responses

Code Type
200 ParamResponse
406 ErrorResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /params/{name}

See if a Param exists

  • Description: Return 200 if the Param specifiec by {name} exists, or return NotFound.

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 NoContentResponse
404 NoContentResponse
403 NoContentResponse
401 NoContentResponse

DELETE /params/{name}

Delete a Param

  • Description: Delete a Param specified by {name}

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 ParamResponse
404 ErrorResponse
403 NoContentResponse
422 ErrorResponse
401 NoContentResponse

GET /params/{name}

Get a Param

  • Description: Get the Param specified by {name} or return NotFound.

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 ParamResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

20.4.1.5. Prefs

POST /prefs

Create a Pref

  • Description: Create a Pref from the provided object

Parameters

Name Position Description Type
Body body map of strings to string

Responses

Code Type
201 PrefsResponse
422 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse

GET /prefs

Lists Prefs

  • Description: This will show all Prefs by default

Responses

Code Type
200 PrefsResponse
403 NoContentResponse
401 NoContentResponse

20.4.1.6. Events

POST /events

Create an Event

  • Description: Create an Event from the provided object

Parameters

Name Position Description Type
Body body Event

Responses

Code Type
422 ErrorResponse
403 NoContentResponse
204 NoContentResponse
401 NoContentResponse
400 ErrorResponse

20.4.1.7. Templates

POST /templates/{id}/actions/{cmd}

Call an action on the node.

  • Description: Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
id* path string
cmd* path string
plugin query string
Body* body map of strings to object

Responses

Code Type
200 ActionPostResponse
404 ErrorResponse
403 NoTemplateResponse
401 NoTemplateResponse
400 ErrorResponse
409 ErrorResponse

GET /templates/{id}/actions/{cmd}

List specific action for a template Template

  • Description: List specific {cmd} action for a Template specified by {id} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
id* path string
cmd* path string
plugin query string

Responses

Code Type
200 ActionResponse
404 ErrorResponse
403 NoTemplateResponse
401 NoTemplateResponse
400 ErrorResponse

PUT /templates/{id}

Put a Template

  • Description: Update a Template specified by {id} using a JSON Template

Parameters

Name Position Description Type
Body* body Template
id* path string

Responses

Code Type
200 TemplateResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

PATCH /templates/{id}

Patch a Template

  • Description: Update a Template specified by {id} using a RFC6902 Patch structure

Parameters

Name Position Description Type
Body* body Patch
id* path string

Responses

Code Type
200 TemplateResponse
406 ErrorResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /templates/{id}

See if a Template exists

  • Description: Return 200 if the Template specifiec by {id} exists, or return NotFound.

Parameters

Name Position Description Type
id* path string

Responses

Code Type
200 NoContentResponse
404 NoContentResponse
403 NoContentResponse
401 NoContentResponse

DELETE /templates/{id}

Delete a Template

  • Description: Delete a Template specified by {id}

Parameters

Name Position Description Type
id* path string

Responses

Code Type
200 TemplateResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
422 ErrorResponse
409 ErrorResponse

GET /templates/{id}

Get a Template

  • Description: Get the Template specified by {id} or return NotFound.

Parameters

Name Position Description Type
id* path string

Responses

Code Type
200 TemplateResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

GET /templates/{id}/actions

List template actions Template

  • Description: List Template actions for a Template specified by {id} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
id* path string
plugin query string

Responses

Code Type
200 ActionsResponse
404 ErrorResponse
403 NoTemplateResponse
401 NoTemplateResponse

POST /templates

Create a Template

  • Description: Create a Template from the provided object

Parameters

Name Position Description Type
Body* body Template

Responses

Code Type
201 TemplateResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /templates

Stats of the List Templates filtered by some parameters.

  • Description: This will return headers with the stats of the list. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: ID = string Available = boolean Valid = boolean ReadOnly = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: ID=fred - returns items named fred ID=Lt(fred) - returns items that alphabetically less than fred.

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
ID query string

Responses

Code Type
200 NoContentResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

GET /templates

Lists Templates filtered by some parameters.

  • Description: This will show all Templates by default. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: ID = string Available = boolean Valid = boolean ReadOnly = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: ID=fred - returns items named fred ID=Lt(fred) - returns items that alphabetically less than fred.

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
ID query string

Responses

Code Type
200 TemplatesResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

20.4.1.8. Subnets

PUT /subnets/{name}

Put a Subnet

  • Description: Update a Subnet specified by {name} using a JSON Subnet

Parameters

Name Position Description Type
Body* body Subnet
name* path string

Responses

Code Type
200 SubnetResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

PATCH /subnets/{name}

Patch a Subnet

  • Description: Update a Subnet specified by {name} using a RFC6902 Patch structure

Parameters

Name Position Description Type
Body* body Patch
name* path string

Responses

Code Type
200 SubnetResponse
406 ErrorResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /subnets/{name}

See if a Subnet exists

  • Description: Return 200 if the Subnet specifiec by {name} exists, or return NotFound.

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 NoContentResponse
404 NoContentResponse
403 NoContentResponse
401 NoContentResponse

DELETE /subnets/{name}

Delete a Subnet

  • Description: Delete a Subnet specified by {name}

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 SubnetResponse
404 ErrorResponse
403 NoContentResponse
422 ErrorResponse
401 NoContentResponse

GET /subnets/{name}

Get a Subnet

  • Description: Get the Subnet specified by {name} or return NotFound.

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 SubnetResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

GET /subnets/{name}/actions

List subnet actions Subnet

  • Description: List Subnet actions for a Subnet specified by {name} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
plugin query string

Responses

Code Type
200 ActionsResponse
404 ErrorResponse
403 NoSubnetResponse
401 NoSubnetResponse

POST /subnets/{name}/actions/{cmd}

Call an action on the node.

  • Description: Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
cmd* path string
plugin query string
Body* body map of strings to object

Responses

Code Type
200 ActionPostResponse
404 ErrorResponse
403 NoSubnetResponse
401 NoSubnetResponse
400 ErrorResponse
409 ErrorResponse

GET /subnets/{name}/actions/{cmd}

List specific action for a subnet Subnet

  • Description: List specific {cmd} action for a Subnet specified by {name} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
cmd* path string
plugin query string

Responses

Code Type
200 ActionResponse
404 ErrorResponse
403 NoSubnetResponse
401 NoSubnetResponse
400 ErrorResponse

POST /subnets

Create a Subnet

  • Description: Create a Subnet from the provided object

Parameters

Name Position Description Type
Body* body Subnet

Responses

Code Type
201 SubnetResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /subnets

Stats of the List Subnets filtered by some parameters.

  • Description: This will return headers with the stats of the list. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Name = string NextServer = IP Address Subnet = CIDR Address Strategy = string Available = boolean Valid = boolean ReadOnly = boolean Enabled = boolean Proxy = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred. Name=Lt(fred)&Available=true - returns items with Name less than fred and Available is true

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Strategy query string
NextServer query string
Subnet query string
Name query string
Enabled query string
Proxy query string

Responses

Code Type
200 NoContentResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

GET /subnets

Lists Subnets filtered by some parameters.

  • Description: This will show all Subnets by default. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Name = string NextServer = IP Address Subnet = CIDR Address Strategy = string Available = boolean Valid = boolean ReadOnly = boolean Enabled = boolean Proxy = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred. Name=Lt(fred)&Available=true - returns items with Name less than fred and Available is true

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Strategy query string
NextServer query string
Subnet query string
Name query string
Enabled query string
Proxy query string

Responses

Code Type
200 SubnetsResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

20.4.1.9. Jobs

POST /jobs/{uuid}/plugin_actions/{cmd}

Call an action on the node.

  • Description: Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
uuid* path string
cmd* path string
plugin query string
Body* body map of strings to object

Responses

Code Type
200 ActionPostResponse
404 ErrorResponse
403 NoJobResponse
401 NoJobResponse
400 ErrorResponse
409 ErrorResponse

GET /jobs/{uuid}/plugin_actions/{cmd}

List specific action for a job Job

  • Description: List specific {cmd} action for a Job specified by {uuid} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
uuid* path string
cmd* path string
plugin query string

Responses

Code Type
200 ActionResponse
404 ErrorResponse
403 NoJobResponse
401 NoJobResponse
400 ErrorResponse

GET /jobs/{uuid}/plugin_actions

List job plugin_actions Job

  • Description: List Job plugin_actions for a Job specified by {uuid} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
uuid* path string
plugin query string
os query string

Responses

Code Type
200 ActionsResponse
404 ErrorResponse
403 NoJobResponse
401 NoJobResponse

POST /jobs

Create a Job

  • Description: Create a Job from the provided object, Only Machine and UUID are used.

Parameters

Name Position Description Type
Body* body Job

Responses

Code Type
201 JobResponse
202 JobResponse
204 NoContentResponse
403 NoContentResponse
500 ErrorResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /jobs

Stats of the List Jobs filtered by some parameters.

  • Description: This will return headers with the stats of the list. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Uuid = string Stage = string Task = string State = string Machine = string Archived = boolean StartTime = datetime EndTime = datetime Available = boolean Valid = boolean ReadOnly = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Uuid=fred - returns items named fred Uuid=Lt(fred) - returns items that alphabetically less than fred. Uuid=Lt(fred)&Archived=true - returns items with Uuid less than fred and Archived is true

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Uuid query string
Stage query string
Task query string
State query string
Machine query string
Archived query string
StartTime query string
EndTime query string

Responses

Code Type
200 NoContentResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

GET /jobs

Lists Jobs filtered by some parameters.

  • Description: This will show all Jobs by default. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Uuid = string Stage = string Task = string State = string Machine = string Archived = boolean StartTime = datetime EndTime = datetime Available = boolean Valid = boolean ReadOnly = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Uuid=fred - returns items named fred Uuid=Lt(fred) - returns items that alphabetically less than fred. Uuid=Lt(fred)&Archived=true - returns items with Uuid less than fred and Archived is true

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Uuid query string
Stage query string
Task query string
State query string
Machine query string
Archived query string
StartTime query string
EndTime query string

Responses

Code Type
200 JobsResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

PUT /jobs/{uuid}

Put a Job

  • Description: Update a Job specified by {uuid} using a JSON Job

Parameters

Name Position Description Type
Body* body Job
uuid* path string

Responses

Code Type
200 JobResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse

PATCH /jobs/{uuid}

Patch a Job

  • Description: Update a Job specified by {uuid} using a RFC6902 Patch structure

Parameters

Name Position Description Type
Body* body Patch
uuid* path string

Responses

Code Type
200 JobResponse
406 ErrorResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse

HEAD /jobs/{uuid}

See if a Job exists

  • Description: Return 200 if the Job specifiec by {uuid} exists, or return NotFound.

Parameters

Name Position Description Type
uuid* path string

Responses

Code Type
200 NoContentResponse
404 NoContentResponse
403 NoContentResponse
401 NoContentResponse

DELETE /jobs/{uuid}

Delete a Job

  • Description: Delete a Job specified by {uuid}

Parameters

Name Position Description Type
uuid* path string

Responses

Code Type
200 JobResponse
404 ErrorResponse
403 NoContentResponse
422 ErrorResponse
401 NoContentResponse

GET /jobs/{uuid}

Get a Job

  • Description: Get the Job specified by {uuid} or return NotFound.

Parameters

Name Position Description Type
uuid* path string

Responses

Code Type
200 JobResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

GET /jobs/{uuid}/actions

List job plugin_actions Job

  • Description: List Job plugin_actions for a Job specified by {uuid} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
uuid* path string
plugin query string
os query string

Responses

Code Type
200 ActionsResponse
404 ErrorResponse
403 NoJobResponse
401 NoJobResponse

PUT /jobs/{uuid}/log

Append the string to the end of the job’s log.

  • Produces: [u’application/json’]
  • Consumes: [u’application/octet-stream’]

Parameters

Name Position Description Type
Body* body Raw Octet Stream
uuid* path string

Responses

Code Type
204 NoContentResponse
415 ErrorResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
500 ErrorResponse

GET /jobs/{uuid}/log

Get the log for this job

  • Produces: [u’application/octet-stream’, u’application/json’]
  • Description: Get log for the Job specified by {uuid} or return NotFound.

Parameters

Name Position Description Type
uuid* path string

Responses

Code Type
200 JobLogResponse
404 ErrorResponse
403 NoContentResponse
500 ErrorResponse
401 NoContentResponse

20.4.1.10. Users

PUT /users/{name}

Put a User

  • Description: Update a User specified by {name} using a JSON User

Parameters

Name Position Description Type
Body* body User
name* path string

Responses

Code Type
200 UserResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

PATCH /users/{name}

Patch a User

  • Description: Update a User specified by {name} using a RFC6902 Patch structure

Parameters

Name Position Description Type
Body* body Patch
name* path string

Responses

Code Type
200 UserResponse
406 ErrorResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /users/{name}

See if a User exists

  • Description: Return 200 if the User specifiec by {name} exists, or return NotFound.

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 NoContentResponse
404 NoContentResponse
403 NoContentResponse
401 NoContentResponse

DELETE /users/{name}

Delete a User

  • Description: Delete a User specified by {name}

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 UserResponse
404 ErrorResponse
403 NoContentResponse
422 ErrorResponse
401 NoContentResponse

GET /users/{name}

Get a User

  • Description: Get the User specified by {name} or return NotFound.

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 UserResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

GET /users/{name}/token

Get a User Token

  • Description: Get a token for the User specified by {name} or return error

Parameters

Name Position Description Type
name* path string
ttl query integer
roles query string

Responses

Code Type
200 UserTokenResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse

GET /users/{name}/actions

List user actions User

  • Description: List User actions for a User specified by {name} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
plugin query string

Responses

Code Type
200 ActionsResponse
404 ErrorResponse
403 NoUserResponse
401 NoUserResponse

POST /users/{name}/actions/{cmd}

Call an action on the node.

  • Description: Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
cmd* path string
plugin query string
Body* body map of strings to object

Responses

Code Type
200 ActionPostResponse
404 ErrorResponse
403 NoUserResponse
401 NoUserResponse
400 ErrorResponse
409 ErrorResponse

GET /users/{name}/actions/{cmd}

List specific action for a user User

  • Description: List specific {cmd} action for a User specified by {name} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
cmd* path string
plugin query string

Responses

Code Type
200 ActionResponse
404 ErrorResponse
403 NoUserResponse
401 NoUserResponse
400 ErrorResponse

PUT /users/{name}/password

Set the password for a user.

  • Description: Update a User specified by {name} using a JSON User

Parameters

Name Position Description Type
Body* body UserPassword
name* path string

Responses

Code Type
200 UserResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

POST /users

Create a User

  • Description: Create a User from the provided object

Parameters

Name Position Description Type
Body* body User

Responses

Code Type
201 UserResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /users

Stats of the List Users filtered by some parameters.

  • Description: This will return headers with the stats of the list. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Name = string Available = boolean Valid = boolean ReadOnly = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred.

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Name query string

Responses

Code Type
200 NoContentResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

GET /users

Lists Users filtered by some parameters.

  • Description: This will show all Users by default. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Name = string Available = boolean Valid = boolean ReadOnly = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred.

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Name query string

Responses

Code Type
200 UsersResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

20.4.1.11. Interfaces

GET /interfaces

  • Produces: [u’application/json’]
  • Description: Lists possible interfaces on the system to serve DHCP

Responses

Code Type
200 InterfacesResponse
403 NoContentResponse
500 ErrorResponse
401 NoContentResponse

GET /interfaces/{name}

Get a specific interface with {name}

  • Produces: [u’application/json’]
  • Description: Get a specific interface specified by {name}.

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 InterfaceResponse
404 ErrorResponse
403 NoContentResponse
500 ErrorResponse
401 NoContentResponse

20.4.1.12. Isos

GET /isos

Lists isos in isos directory

  • Description: Lists the isos in a directory under /isos.

Responses

Code Type
200 IsosResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

POST /isos/{path}

Upload an iso to a specific {path} in the tree under isos.

  • Produces: [u’application/json’]
  • Description: The iso will be uploaded to the {path} in /isos. The {path} will be created.
  • Consumes: [u’application/octet-stream’]

Parameters

Name Position Description Type
path* path string
Body body Raw Octet Stream

Responses

Code Type
201 IsoInfoResponse
415 ErrorResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
507 ErrorResponse
409 ErrorResponse

DELETE /isos/{path}

Delete an iso to a specific {path} in the tree under isos.

  • Description: The iso will be removed from the {path} in /isos.

Parameters

Name Position Description Type
path* path string

Responses

Code Type
422 ErrorResponse
404 ErrorResponse
403 NoContentResponse
204 NoContentResponse
401 NoContentResponse

GET /isos/{path}

Get a specific Iso with {path}

  • Produces: [u’application/octet-stream’, u’application/json’]
  • Description: Get a specific iso specified by {path} under isos.

Parameters

Name Position Description Type
path* path string

Responses

Code Type
200 IsoResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

20.4.1.13. Workflows

POST /workflows

Create a Workflow

  • Description: Create a Workflow from the provided object

Parameters

Name Position Description Type
Body* body Workflow

Responses

Code Type
201 WorkflowResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /workflows

Stats of the List Workflows filtered by some parameters.

  • Description: This will return headers with the stats of the list. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Name = string Reboot = boolean BootEnv = string Available = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred. Name=Lt(fred)&Available=true - returns items with Name less than fred and Available is true

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Name query string
Reboot query string
BootEnv query string

Responses

Code Type
200 NoContentResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

GET /workflows

Lists Workflows filtered by some parameters.

  • Description: This will show all Workflows by default. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Name = string Reboot = boolean BootEnv = string Available = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred. Name=Lt(fred)&Available=true - returns items with Name less than fred and Available is true

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Name query string
Reboot query string
BootEnv query string

Responses

Code Type
200 WorkflowsResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

GET /workflows/{name}/actions

List workflow actions Workflow

  • Description: List Workflow actions for a Workflow specified by {name} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
plugin query string

Responses

Code Type
200 ActionsResponse
404 ErrorResponse
403 NoWorkflowResponse
401 NoWorkflowResponse

POST /workflows/{name}/actions/{cmd}

Call an action on the node.

  • Description: Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
cmd* path string
plugin query string
Body* body map of strings to object

Responses

Code Type
200 ActionPostResponse
404 ErrorResponse
403 NoWorkflowResponse
401 NoWorkflowResponse
400 ErrorResponse
409 ErrorResponse

GET /workflows/{name}/actions/{cmd}

List specific action for a workflow Workflow

  • Description: List specific {cmd} action for a Workflow specified by {name} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
cmd* path string
plugin query string

Responses

Code Type
200 ActionResponse
404 ErrorResponse
403 NoWorkflowResponse
401 NoWorkflowResponse
400 ErrorResponse

PUT /workflows/{name}

Put a Workflow

  • Description: Update a Workflow specified by {name} using a JSON Workflow

Parameters

Name Position Description Type
Body* body Workflow
name* path string

Responses

Code Type
200 WorkflowResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

PATCH /workflows/{name}

Patch a Workflow

  • Description: Update a Workflow specified by {name} using a RFC6902 Patch structure

Parameters

Name Position Description Type
Body* body Patch
name* path string

Responses

Code Type
200 WorkflowResponse
406 ErrorResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /workflows/{name}

See if a Workflow exists

  • Description: Return 200 if the Workflow specifiec by {name} exists, or return NotFound.

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 NoContentResponse
404 NoContentResponse
403 NoContentResponse
401 NoContentResponse

DELETE /workflows/{name}

Delete a Workflow

  • Description: Delete a Workflow specified by {name}

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 WorkflowResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
422 ErrorResponse
409 ErrorResponse

GET /workflows/{name}

Get a Workflow

  • Description: Get the Workflow specified by {name} or return NotFound.

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 WorkflowResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

20.4.1.14. Leases

POST /leases/{address}/actions/{cmd}

Call an action on the node.

  • Description: Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
address* path string
cmd* path string
plugin query string
Body* body map of strings to object

Responses

Code Type
200 ActionPostResponse
404 ErrorResponse
403 NoLeaseResponse
401 NoLeaseResponse
400 ErrorResponse
409 ErrorResponse

GET /leases/{address}/actions/{cmd}

List specific action for a lease Lease

  • Description: List specific {cmd} action for a Lease specified by {address} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
address* path string
cmd* path string
plugin query string

Responses

Code Type
200 ActionResponse
404 ErrorResponse
403 NoLeaseResponse
401 NoLeaseResponse
400 ErrorResponse

GET /leases/{address}/actions

List lease actions Lease

  • Description: List Lease actions for a Lease specified by {address} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
address* path string
plugin query string

Responses

Code Type
200 ActionsResponse
404 ErrorResponse
403 NoLeaseResponse
401 NoLeaseResponse

HEAD /leases

Stats of the List Leases filtered by some parameters.

  • Description: This return headers with the stats of the list. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Addr = IP Address Token = string Strategy = string ExpireTime = Date/Time Available = boolean Valid = boolean ReadOnly = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred. Name=Lt(fred)&Available=true - returns items with Name less than fred and Available is true

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Addr query string
Token query string
Strategy query string
ExpireTime query string

Responses

Code Type
200 NoContentResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

GET /leases

Lists Leases filtered by some parameters.

  • Description: This will show all Leases by default. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Addr = IP Address Token = string Strategy = string ExpireTime = Date/Time Available = boolean Valid = boolean ReadOnly = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred. Name=Lt(fred)&Available=true - returns items with Name less than fred and Available is true

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Addr query string
Token query string
Strategy query string
ExpireTime query string

Responses

Code Type
200 LeasesResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

HEAD /leases/{address}

See if a Lease exists

  • Description: Return 200 if the Lease specifiec by {address} exists, or return NotFound.

Parameters

Name Position Description Type
address* path string

Responses

Code Type
200 NoContentResponse
404 NoContentResponse
403 NoContentResponse
401 NoContentResponse

DELETE /leases/{address}

Delete a Lease

  • Description: Delete a Lease specified by {address}

Parameters

Name Position Description Type
address* path string

Responses

Code Type
200 LeaseResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

GET /leases/{address}

Get a Lease

  • Description: Get the Lease specified by {address} or return NotFound.

Parameters

Name Position Description Type
address* path string

Responses

Code Type
200 LeaseResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse

20.4.3.32. Info

GET /info

Return current system info.

  • Produces: [u’application/json’]

Responses

Code Type
200 InfoResponse
403 NoContentResponse
500 ErrorResponse
401 NoContentResponse

20.4.1.16. Files

GET /files

Lists files in files directory or subdirectory per query parameter

  • Description: Lists the files in a directory under /files. path=<path to return> Path defaults to /

Parameters

Name Position Description Type
path query string

Responses

Code Type
200 FilesResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

POST /files/{path}

Upload a file to a specific {path} in the tree under files.

  • Produces: [u’application/json’]
  • Description: The file will be uploaded to the {path} in /files. The {path} will be created.
  • Consumes: [u’application/octet-stream’]

Parameters

Name Position Description Type
path* path string
Body body Raw Octet Stream

Responses

Code Type
201 FileInfoResponse
415 ErrorResponse
404 ErrorResponse
403 ErrorResponse
401 NoContentResponse
400 ErrorResponse
507 ErrorResponse
409 ErrorResponse

DELETE /files/{path}

Delete a file to a specific {path} in the tree under files.

  • Description: The file will be removed from the {path} in /files.

Parameters

Name Position Description Type
path* path string

Responses

Code Type
422 ErrorResponse
404 ErrorResponse
403 NoContentResponse
204 NoContentResponse
401 NoContentResponse

GET /files/{path}

Get a specific File with {path}

  • Produces: [u’application/octet-stream’, u’application/json’]
  • Description: Get a specific file specified by {path} under files.

Parameters

Name Position Description Type
path* path string

Responses

Code Type
200 FileResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

20.4.1.17. Roles

POST /roles/{name}/actions/{cmd}

Call an action on the node.

  • Description: Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
cmd* path string
plugin query string
Body* body map of strings to object

Responses

Code Type
200 ActionPostResponse
404 ErrorResponse
403 NoRoleResponse
401 NoRoleResponse
400 ErrorResponse
409 ErrorResponse

GET /roles/{name}/actions/{cmd}

List specific action for a role Role

  • Description: List specific {cmd} action for a Role specified by {name} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
cmd* path string
plugin query string

Responses

Code Type
200 ActionResponse
404 ErrorResponse
403 NoRoleResponse
401 NoRoleResponse
400 ErrorResponse

POST /roles

Create a Role

  • Description: Create a Role from the provided object

Parameters

Name Position Description Type
Body* body Role

Responses

Code Type
201 RoleResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /roles

Stats of the List Roles filtered by some parameters.

  • Description: This will return headers with the stats of the list. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Name = string Reboot = boolean BootEnv = string Available = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred. Name=Lt(fred)&Available=true - returns items with Name less than fred and Available is true

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Name query string

Responses

Code Type
200 NoContentResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

GET /roles

Lists Roles filtered by some parameters.

  • Description: This will show all Roles by default. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Name = string Reboot = boolean BootEnv = string Available = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred. Name=Lt(fred)&Available=true - returns items with Name less than fred and Available is true

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Name query string

Responses

Code Type
200 RolesResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

PUT /roles/{name}

Put a Role

  • Description: Update a Role specified by {name} using a JSON Role

Parameters

Name Position Description Type
Body* body Role
name* path string

Responses

Code Type
200 RoleResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

PATCH /roles/{name}

Patch a Role

  • Description: Update a Role specified by {name} using a RFC6902 Patch structure

Parameters

Name Position Description Type
Body* body Patch
name* path string

Responses

Code Type
200 RoleResponse
406 ErrorResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /roles/{name}

See if a Role exists

  • Description: Return 200 if the Role specifiec by {name} exists, or return NotFound.

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 NoContentResponse
404 NoContentResponse
403 NoContentResponse
401 NoContentResponse

DELETE /roles/{name}

Delete a Role

  • Description: Delete a Role specified by {name}

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 RoleResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
422 ErrorResponse
409 ErrorResponse

GET /roles/{name}

Get a Role

  • Description: Get the Role specified by {name} or return NotFound.

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 RoleResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

GET /roles/{name}/actions

List role actions Role

  • Description: List Role actions for a Role specified by {name} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
plugin query string

Responses

Code Type
200 ActionsResponse
404 ErrorResponse
403 NoRoleResponse
401 NoRoleResponse

20.4.1.18. Profiles

PUT /profiles/{name}

Put a Profile

  • Description: Update a Profile specified by {name} using a JSON Profile

Parameters

Name Position Description Type
Body* body Profile
decode query string
name* path string

Responses

Code Type
200 ProfileResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse

PATCH /profiles/{name}

Patch a Profile

  • Description: Update a Profile specified by {name} using a RFC6902 Patch structure

Parameters

Name Position Description Type
Body* body Patch
decode query string
name* path string

Responses

Code Type
200 ProfileResponse
406 ErrorResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /profiles/{name}

See if a Profile exists

  • Description: Return 200 if the Profile specifiec by {name} exists, or return NotFound.

Parameters

Name Position Description Type
decode query string
name* path string

Responses

Code Type
200 NoContentResponse
404 NoContentResponse
403 NoContentResponse
401 NoContentResponse

DELETE /profiles/{name}

Delete a Profile

  • Description: Delete a Profile specified by {name}

Parameters

Name Position Description Type
decode query string
name* path string

Responses

Code Type
200 ProfileResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
422 ErrorResponse
409 ErrorResponse

GET /profiles/{name}

Get a Profile

  • Description: Get the Profile specified by {name} or return NotFound.

Parameters

Name Position Description Type
decode query string
name* path string

Responses

Code Type
200 ProfileResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

GET /profiles/{name}/actions

List profile actions Profile

  • Description: List Profile actions for a Profile specified by {name} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
plugin query string

Responses

Code Type
200 ActionsResponse
404 ErrorResponse
403 NoProfileResponse
401 NoProfileResponse

POST /profiles/{name}/params/{key}

  • Description: Set as single Parameter {key} for a profile specified by {name}

Parameters

Name Position Description Type
decode query string
name* path string
key* path string
Body* body Raw Octet Stream

Responses

Code Type
200 ProfileParamResponse
404 ErrorResponse
403 NoContentResponse
409 ErrorResponse
401 NoContentResponse

GET /profiles/{name}/params/{key}

Delete a single profile parameter

  • Description: Delete a single parameter {key} for a Profile specified by {uuid}

Parameters

Name Position Description Type
decode query string
name* path string
key* path string

Responses

Code Type
200 ProfileParamResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

POST /profiles

Create a Profile

  • Description: Create a Profile from the provided object

Parameters

Name Position Description Type
Body* body Profile

Responses

Code Type
201 ProfileResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /profiles

Stats of the List Profiles filtered by some parameters.

  • Description: This will return headers with the stats of the list. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Name = string Available = boolean Valid = boolean ReadOnly = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred.

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Name query string

Responses

Code Type
200 NoContentResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

GET /profiles

Lists Profiles filtered by some parameters.

  • Description: This will show all Profiles by default. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Name = string Available = boolean Valid = boolean ReadOnly = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred.

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Name query string

Responses

Code Type
200 ProfilesResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

POST /profiles/{name}/params

  • Description: Sets parameters for a profile specified by {name}

Parameters

Name Position Description Type
decode query string
name* path string
Body* body map of strings to object

Responses

Code Type
200 ProfileParamsResponse
404 ErrorResponse
403 NoContentResponse
409 ErrorResponse
401 NoContentResponse

PATCH /profiles/{name}/params

  • Description: Update params for Profile {name} with the passed-in patch

Parameters

Name Position Description Type
Body* body Patch
decode query string
name* path string

Responses

Code Type
200 ProfileParamsResponse
404 ErrorResponse
403 NoContentResponse
409 ErrorResponse
401 NoContentResponse

GET /profiles/{name}/params

List profile params Profile

  • Description: List Profile parms for a Profile specified by {name}

Parameters

Name Position Description Type
decode query string
name* path string

Responses

Code Type
200 ProfileParamsResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

GET /profiles/{name}/pubkey

Get the public key for secure params on a profile

  • Description: Get the public key for a Profile specified by {name}

Parameters

Name Position Description Type
decode query string
name* path string

Responses

Code Type
200 PubKeyResponse
404 ErrorResponse
403 NoContentResponse
500 ErrorResponse
401 NoContentResponse

POST /profiles/{name}/actions/{cmd}

Call an action on the node.

  • Description: Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
cmd* path string
plugin query string
Body* body map of strings to object

Responses

Code Type
200 ActionPostResponse
404 ErrorResponse
403 NoProfileResponse
401 NoProfileResponse
400 ErrorResponse
409 ErrorResponse

GET /profiles/{name}/actions/{cmd}

List specific action for a profile Profile

  • Description: List specific {cmd} action for a Profile specified by {name} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
cmd* path string
plugin query string

Responses

Code Type
200 ActionResponse
404 ErrorResponse
403 NoProfileResponse
401 NoProfileResponse
400 ErrorResponse

DELETE /profiles/{uuid}/params/{key}

Delete a single profile parameter

  • Description: Delete a single parameter {key} for a Profile specified by {uuid}

Parameters

Name Position Description Type
decode query string
name* path string
key* path string

Responses

Code Type
200 ProfileParamResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

20.4.1.19. Stages

POST /stages/{name}/actions/{cmd}

Call an action on the node.

  • Description: Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
cmd* path string
plugin query string
Body* body map of strings to object

Responses

Code Type
200 ActionPostResponse
404 ErrorResponse
403 NoStageResponse
401 NoStageResponse
400 ErrorResponse
409 ErrorResponse

GET /stages/{name}/actions/{cmd}

List specific action for a stage Stage

  • Description: List specific {cmd} action for a Stage specified by {name} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
cmd* path string
plugin query string

Responses

Code Type
200 ActionResponse
404 ErrorResponse
403 NoStageResponse
401 NoStageResponse
400 ErrorResponse

POST /stages

Create a Stage

  • Description: Create a Stage from the provided object

Parameters

Name Position Description Type
Body* body Stage

Responses

Code Type
201 StageResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /stages

Stats of the List Stages filtered by some parameters.

  • Description: This will return headers with the stats of the list. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Name = string Reboot = boolean BootEnv = string Available = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred. Name=Lt(fred)&Available=true - returns items with Name less than fred and Available is true

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Name query string
Reboot query string
BootEnv query string

Responses

Code Type
200 NoContentResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

GET /stages

Lists Stages filtered by some parameters.

  • Description: This will show all Stages by default. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Name = string Reboot = boolean BootEnv = string Available = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred. Name=Lt(fred)&Available=true - returns items with Name less than fred and Available is true

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Name query string
Reboot query string
BootEnv query string

Responses

Code Type
200 StagesResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

PUT /stages/{name}

Put a Stage

  • Description: Update a Stage specified by {name} using a JSON Stage

Parameters

Name Position Description Type
Body* body Stage
name* path string

Responses

Code Type
200 StageResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

PATCH /stages/{name}

Patch a Stage

  • Description: Update a Stage specified by {name} using a RFC6902 Patch structure

Parameters

Name Position Description Type
Body* body Patch
name* path string

Responses

Code Type
200 StageResponse
406 ErrorResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /stages/{name}

See if a Stage exists

  • Description: Return 200 if the Stage specifiec by {name} exists, or return NotFound.

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 NoContentResponse
404 NoContentResponse
403 NoContentResponse
401 NoContentResponse

DELETE /stages/{name}

Delete a Stage

  • Description: Delete a Stage specified by {name}

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 StageResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
422 ErrorResponse
409 ErrorResponse

GET /stages/{name}

Get a Stage

  • Description: Get the Stage specified by {name} or return NotFound.

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 StageResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

GET /stages/{name}/actions

List stage actions Stage

  • Description: List Stage actions for a Stage specified by {name} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
plugin query string

Responses

Code Type
200 ActionsResponse
404 ErrorResponse
403 NoStageResponse
401 NoStageResponse

20.4.1.20. Tenants

POST /tenants/{name}/actions/{cmd}

Call an action on the node.

  • Description: Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
cmd* path string
plugin query string
Body* body map of strings to object

Responses

Code Type
200 ActionPostResponse
404 ErrorResponse
403 NoTenantResponse
401 NoTenantResponse
400 ErrorResponse
409 ErrorResponse

GET /tenants/{name}/actions/{cmd}

List specific action for a tenant Tenant

  • Description: List specific {cmd} action for a Tenant specified by {name} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
cmd* path string
plugin query string

Responses

Code Type
200 ActionResponse
404 ErrorResponse
403 NoTenantResponse
401 NoTenantResponse
400 ErrorResponse

POST /tenants

Create a Tenant

  • Description: Create a Tenant from the provided object

Parameters

Name Position Description Type
Body* body Tenant

Responses

Code Type
201 TenantResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /tenants

Stats of the List Tenants filtered by some parameters.

  • Description: This will return headers with the stats of the list. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Name = string Reboot = boolean BootEnv = string Available = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred. Name=Lt(fred)&Available=true - returns items with Name less than fred and Available is true

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Name query string

Responses

Code Type
200 NoContentResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

GET /tenants

Lists Tenants filtered by some parameters.

  • Description: This will show all Tenants by default. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Name = string Reboot = boolean BootEnv = string Available = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred. Name=Lt(fred)&Available=true - returns items with Name less than fred and Available is true

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Name query string

Responses

Code Type
200 TenantsResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

PUT /tenants/{name}

Put a Tenant

  • Description: Update a Tenant specified by {name} using a JSON Tenant

Parameters

Name Position Description Type
Body* body Tenant
name* path string

Responses

Code Type
200 TenantResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

PATCH /tenants/{name}

Patch a Tenant

  • Description: Update a Tenant specified by {name} using a RFC6902 Patch structure

Parameters

Name Position Description Type
Body* body Patch
name* path string

Responses

Code Type
200 TenantResponse
406 ErrorResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /tenants/{name}

See if a Tenant exists

  • Description: Return 200 if the Tenant specifiec by {name} exists, or return NotFound.

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 NoContentResponse
404 NoContentResponse
403 NoContentResponse
401 NoContentResponse

DELETE /tenants/{name}

Delete a Tenant

  • Description: Delete a Tenant specified by {name}

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 TenantResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
422 ErrorResponse
409 ErrorResponse

GET /tenants/{name}

Get a Tenant

  • Description: Get the Tenant specified by {name} or return NotFound.

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 TenantResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

GET /tenants/{name}/actions

List tenant actions Tenant

  • Description: List Tenant actions for a Tenant specified by {name} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
plugin query string

Responses

Code Type
200 ActionsResponse
404 ErrorResponse
403 NoTenantResponse
401 NoTenantResponse

20.4.1.21. Tasks

PUT /tasks/{name}

Put a Task

  • Description: Update a Task specified by {name} using a JSON Task

Parameters

Name Position Description Type
Body* body Task
name* path string

Responses

Code Type
200 TaskResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

PATCH /tasks/{name}

Patch a Task

  • Description: Update a Task specified by {name} using a RFC6902 Patch structure

Parameters

Name Position Description Type
Body* body Patch
name* path string

Responses

Code Type
200 TaskResponse
406 ErrorResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /tasks/{name}

See if a Task exists

  • Description: Return 200 if the Task specifiec by {name} exists, or return NotFound.

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 NoContentResponse
404 NoContentResponse
403 NoContentResponse
401 NoContentResponse

DELETE /tasks/{name}

Delete a Task

  • Description: Delete a Task specified by {name}

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 TaskResponse
404 ErrorResponse
403 NoContentResponse
422 ErrorResponse
401 NoContentResponse

GET /tasks/{name}

Get a Task

  • Description: Get the Task specified by {name} or return NotFound.

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 TaskResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

POST /tasks/{name}/actions/{cmd}

Call an action on the node.

  • Description: Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
cmd* path string
plugin query string
Body* body map of strings to object

Responses

Code Type
200 ActionPostResponse
404 ErrorResponse
403 NoTaskResponse
401 NoTaskResponse
400 ErrorResponse
409 ErrorResponse

GET /tasks/{name}/actions/{cmd}

List specific action for a task Task

  • Description: List specific {cmd} action for a Task specified by {name} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
cmd* path string
plugin query string

Responses

Code Type
200 ActionResponse
404 ErrorResponse
403 NoTaskResponse
401 NoTaskResponse
400 ErrorResponse

POST /tasks

Create a Task

  • Description: Create a Task from the provided object

Parameters

Name Position Description Type
Body* body Task

Responses

Code Type
201 TaskResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /tasks

Stats of the List Tasks filtered by some parameters.

  • Description: This will return headers with the stats of the list. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Name = string Provider = string Available = boolean Valid = boolean ReadOnly = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred. Name=Lt(fred)&Available=true - returns items with Name less than fred and Available is true

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Name query string

Responses

Code Type
200 NoContentResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

GET /tasks

Lists Tasks filtered by some parameters.

  • Description: This will show all Tasks by default. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Name = string Provider = string Available = boolean Valid = boolean ReadOnly = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred. Name=Lt(fred)&Available=true - returns items with Name less than fred and Available is true

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Name query string

Responses

Code Type
200 TasksResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

GET /tasks/{name}/actions

List task actions Task

  • Description: List Task actions for a Task specified by {name} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
plugin query string

Responses

Code Type
200 ActionsResponse
404 ErrorResponse
403 NoTaskResponse
401 NoTaskResponse

20.4.1.22. Logs

GET /logs

  • Produces: [u’application/json’]
  • Description: Return current contents of the log buffer

Responses

Code Type
200 LogResponse
403 NoContentResponse
500 ErrorResponse
401 NoContentResponse

20.4.1.23. Reservations

POST /reservations/{address}/actions/{cmd}

Call an action on the node.

  • Description: Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
address* path string
cmd* path string
plugin query string
Body* body map of strings to object

Responses

Code Type
200 ActionPostResponse
404 ErrorResponse
403 NoReservationResponse
401 NoReservationResponse
400 ErrorResponse
409 ErrorResponse

GET /reservations/{address}/actions/{cmd}

List specific action for a reservation Reservation

  • Description: List specific {cmd} action for a Reservation specified by {address} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
address* path string
cmd* path string
plugin query string

Responses

Code Type
200 ActionResponse
404 ErrorResponse
403 NoReservationResponse
401 NoReservationResponse
400 ErrorResponse

POST /reservations

Create a Reservation

  • Description: Create a Reservation from the provided object

Parameters

Name Position Description Type
Body* body Reservation

Responses

Code Type
201 ReservationResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /reservations

Stats of the List Reservations filtered by some parameters.

  • Description: This will return headers with the stats of the list. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Addr = IP Address Token = string Strategy = string NextServer = IP Address Available = boolean Valid = boolean ReadOnly = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred. Name=Lt(fred)&Available=true - returns items with Name less than fred and Available is true

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Addr query string
Token query string
Strategy query string
NextServer query string

Responses

Code Type
200 NoContentResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

GET /reservations

Lists Reservations filtered by some parameters.

  • Description: This will show all Reservations by default. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Addr = IP Address Token = string Strategy = string NextServer = IP Address Available = boolean Valid = boolean ReadOnly = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred. Name=Lt(fred)&Available=true - returns items with Name less than fred and Available is true

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Addr query string
Token query string
Strategy query string
NextServer query string

Responses

Code Type
200 ReservationsResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

GET /reservations/{address}/actions

List reservation actions Reservation

  • Description: List Reservation actions for a Reservation specified by {address} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
address* path string
plugin query string

Responses

Code Type
200 ActionsResponse
404 ErrorResponse
403 NoReservationResponse
401 NoReservationResponse

PUT /reservations/{address}

Put a Reservation

  • Description: Update a Reservation specified by {address} using a JSON Reservation

Parameters

Name Position Description Type
Body* body Reservation
address* path string

Responses

Code Type
200 ReservationResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

PATCH /reservations/{address}

Patch a Reservation

  • Description: Update a Reservation specified by {address} using a RFC6902 Patch structure

Parameters

Name Position Description Type
Body* body Patch
address* path string

Responses

Code Type
200 ReservationResponse
406 ErrorResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /reservations/{address}

See if a Reservation exists

  • Description: Return 200 if the Reservation specific by {address} exists, or return NotFound.

Parameters

Name Position Description Type
address* path string

Responses

Code Type
200 NoContentResponse
404 NoContentResponse
403 NoContentResponse
401 NoContentResponse

DELETE /reservations/{address}

Delete a Reservation

  • Description: Delete a Reservation specified by {address}

Parameters

Name Position Description Type
address* path string

Responses

Code Type
200 ReservationResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse

GET /reservations/{address}

Get a Reservation

  • Description: Get the Reservation specified by {address} or return NotFound.

Parameters

Name Position Description Type
address* path string

Responses

Code Type
200 ReservationResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse

20.4.1.24. BootEnvs

PUT /bootenvs/{name}

Put a BootEnv

  • Description: Update a BootEnv specified by {name} using a JSON BootEnv

Parameters

Name Position Description Type
Body* body BootEnv
name* path string

Responses

Code Type
200 BootEnvResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

PATCH /bootenvs/{name}

Patch a BootEnv

  • Description: Update a BootEnv specified by {name} using a RFC6902 Patch structure

Parameters

Name Position Description Type
Body* body Patch
name* path string

Responses

Code Type
200 BootEnvResponse
406 ErrorResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /bootenvs/{name}

See if a BootEnv exists

  • Description: Return 200 if the BootEnv specifiec by {name} exists, or return NotFound.

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 NoContentResponse
404 NoContentResponse
403 NoContentResponse
401 NoContentResponse

DELETE /bootenvs/{name}

Delete a BootEnv

  • Description: Delete a BootEnv specified by {name}

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 BootEnvResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
422 ErrorResponse
409 ErrorResponse

GET /bootenvs/{name}

Get a BootEnv

  • Description: Get the BootEnv specified by {name} or return NotFound.

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 BootEnvResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

POST /bootenvs

Create a BootEnv

  • Description: Create a BootEnv from the provided object

Parameters

Name Position Description Type
Body* body BootEnv

Responses

Code Type
201 BootEnvResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /bootenvs

Stats of the List BootEnvs filtered by some parameters.

  • Description: This will return headers with the stats of the list. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Name = string Available = boolean Valid = boolean ReadOnly = boolean OnlyUnknown = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred. Name=Lt(fred)&Available=true - returns items with Name less than fred and Available is true

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
OnlyUnknown query string
Name query string

Responses

Code Type
200 NoContentResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

GET /bootenvs

Lists BootEnvs filtered by some parameters.

  • Description: This will show all BootEnvs by default. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Name = string Available = boolean Valid = boolean ReadOnly = boolean OnlyUnknown = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred. Name=Lt(fred)&Available=true - returns items with Name less than fred and Available is true

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
OnlyUnknown query string
Name query string

Responses

Code Type
200 BootEnvsResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

POST /bootenvs/{name}/actions/{cmd}

Call an action on the node.

  • Description: Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
cmd* path string
plugin query string
Body* body map of strings to object

Responses

Code Type
200 ActionPostResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
409 ErrorResponse

GET /bootenvs/{name}/actions/{cmd}

List specific action for a bootenv BootEnv

  • Description: List specific {cmd} action for a BootEnv specified by {name} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
cmd* path string
plugin query string

Responses

Code Type
200 ActionResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse

GET /bootenvs/{name}/actions

List bootenv actions BootEnv

  • Description: List BootEnv actions for a BootEnv specified by {name} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
plugin query string

Responses

Code Type
200 ActionsResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

20.4.1.25. Meta

PATCH /meta/{type}/{id}

Patch metadata on an Object of {type} with an ID of {id}

  • Description: Update metadata on a specific Object using a RFC6902 Patch structure

Parameters

Name Position Description Type
type* path string
id* path string

Responses

Code Type
200 MetasResponse
406 ErrorResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

GET /meta/{type}/{id}

Get Metadata for an Object of {type} idendified by {id}

  • Description: Get the appropriate Metadata or return NotFound.

Parameters

Name Position Description Type
type* path string
id* path string

Responses

Code Type
200 MetaResponse
403 NoContentRespons
401 NoContentResponse

20.4.1.26. Machines

PUT /machines/{uuid}

Put a Machine

  • Description: Update a Machine specified by {uuid} using a JSON Machine

Parameters

Name Position Description Type
force query string
Body* body Machine
uuid* path string

Responses

Code Type
200 MachineResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

PATCH /machines/{uuid}

Patch a Machine

  • Description: Update a Machine specified by {uuid} using a RFC6902 Patch structure

Parameters

Name Position Description Type
force query string
Body* body Patch
uuid* path string

Responses

Code Type
200 MachineResponse
406 ErrorResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /machines/{uuid}

See if a Machine exists

  • Description: Return 200 if the Machine specifiec by {uuid} exists, or return NotFound.

Parameters

Name Position Description Type
uuid* path string

Responses

Code Type
200 NoContentResponse
404 NoContentResponse
403 NoContentResponse
401 NoContentResponse

DELETE /machines/{uuid}

Delete a Machine

  • Description: Delete a Machine specified by {uuid}

Parameters

Name Position Description Type
uuid* path string

Responses

Code Type
200 MachineResponse
404 ErrorResponse
403 NoContentResponse
422 ErrorResponse
401 NoContentResponse

GET /machines/{uuid}

Get a Machine

  • Description: Get the Machine specified by {uuid} or return NotFound.

Parameters

Name Position Description Type
uuid* path string

Responses

Code Type
200 MachineResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

GET /machines/{uuid}/actions

List machine actions Machine

  • Description: List Machine actions for a Machine specified by {uuid} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
uuid* path string
plugin query string

Responses

Code Type
200 ActionsResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

GET /machines/{uuid}/pubkey

Get the public key for secure params on a machine

  • Description: Get the public key for a Machine specified by {uuid}

Parameters

Name Position Description Type
uuid* path string

Responses

Code Type
200 PubKeyResponse
404 ErrorResponse
403 NoContentResponse
500 ErrorResponse
401 NoContentResponse

POST /machines

Create a Machine

  • Description: Create a Machine from the provided object

Parameters

Name Position Description Type
force query string
Body* body Machine

Responses

Code Type
201 MachineResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /machines

Stats of the List Machines filtered by some parameters.

  • Description: This will return headers with the stats of the list. X-DRP-LIST-COUNT - number of objects in the list. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Uuid = UUID string Name = string BootEnv = string Address = IP Address Runnable = true/false Available = boolean Valid = boolean ReadOnly = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred. Name=Lt(fred)&Available=true - returns items with Name less than fred and Available is true

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Uuid query string
Name query string
BootEnv query string
Address query string
Runnable query string

Responses

Code Type
200 NoContentResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

GET /machines

Lists Machines filtered by some parameters.

  • Description: This will show all Machines by default. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Uuid = UUID string Name = string BootEnv = string Address = IP Address Runnable = true/false Available = boolean Valid = boolean ReadOnly = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred. Name=Lt(fred)&Available=true - returns items with Name less than fred and Available is true

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Uuid query string
Name query string
BootEnv query string
Address query string
Runnable query string

Responses

Code Type
200 MachinesResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

POST /machines/{uuid}/actions/{cmd}

Call an action on the node.

  • Description: Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
uuid* path string
cmd* path string
plugin query string
Body* body map of strings to object

Responses

Code Type
200 ActionPostResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
409 ErrorResponse

GET /machines/{uuid}/actions/{cmd}

List specific action for a machine Machine

  • Description: List specific {cmd} action for a Machine specified by {uuid} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
uuid* path string
cmd* path string
plugin query string

Responses

Code Type
200 ActionResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse

POST /machines/{uuid}/params

  • Description: Sets parameters for a machine specified by {uuid}

Parameters

Name Position Description Type
Body* body map of strings to object
uuid* path string

Responses

Code Type
200 MachineParamsResponse
404 ErrorResponse
403 NoContentResponse
409 ErrorResponse
401 NoContentResponse

PATCH /machines/{uuid}/params

  • Description: Update params for Machine {uuid} with the passed-in patch

Parameters

Name Position Description Type
Body* body Patch
uuid* path string

Responses

Code Type
200 MachineParamsResponse
404 ErrorResponse
403 NoContentResponse
409 ErrorResponse
401 NoContentResponse

GET /machines/{uuid}/params

List machine params Machine

  • Description: List Machine parms for a Machine specified by {uuid}

Parameters

Name Position Description Type
aggregate query string
decode query string
uuid* path string

Responses

Code Type
200 MachineParamsResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

POST /machines/{uuid}/params/{key}

  • Description: Set as single Parameter {key} for a machine specified by {uuid}

Parameters

Name Position Description Type
Body* body Raw Octet Stream
uuid* path string
key* path string

Responses

Code Type
200 MachineParamResponse
404 ErrorResponse
403 NoContentResponse
409 ErrorResponse
401 NoContentResponse

DELETE /machines/{uuid}/params/{key}

Delete a single machine parameter

  • Description: Delete a single parameter {key} for a Machine specified by {uuid}

Parameters

Name Position Description Type
aggregate query string
decode query string
uuid* path string
key* path string

Responses

Code Type
200 MachineParamResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

GET /machines/{uuid}/params/{key}

Delete a single machine parameter

  • Description: Delete a single parameter {key} for a Machine specified by {uuid}

Parameters

Name Position Description Type
aggregate query string
decode query string
uuid* path string
key* path string

Responses

Code Type
200 MachineParamResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

20.4.1.27. Plugins

POST /plugins

Create a Plugin

  • Description: Create a Plugin from the provided object

Parameters

Name Position Description Type
Body* body Plugin

Responses

Code Type
201 PluginResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /plugins

Stats of the List Plugins filtered by some parameters.

  • Description: This will return headers with the stats of the list. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Name = string Provider = string Available = boolean Valid = boolean ReadOnly = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred. Name=Lt(fred)&Available=true - returns items with Name less than fred and Available is true

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Name query string
Provider query string

Responses

Code Type
200 NoContentResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

GET /plugins

Lists Plugins filtered by some parameters.

  • Description: This will show all Plugins by default. You may specify: Offset = integer, 0-based inclusive starting point in filter data. Limit = integer, number of items to return Functional Indexs: Name = string Provider = string Available = boolean Valid = boolean ReadOnly = boolean Functions: Eq(value) = Return items that are equal to value Lt(value) = Return items that are less than value Lte(value) = Return items that less than or equal to value Gt(value) = Return items that are greater than value Gte(value) = Return items that greater than or equal to value Between(lower,upper) = Return items that are inclusively between lower and upper Except(lower,upper) = Return items that are not inclusively between lower and upper Example: Name=fred - returns items named fred Name=Lt(fred) - returns items that alphabetically less than fred. Name=Lt(fred)&Available=true - returns items with Name less than fred and Available is true

Parameters

Name Position Description Type
offset query integer
limit query integer
Available query string
Valid query string
ReadOnly query string
Name query string
Provider query string

Responses

Code Type
200 PluginsResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

POST /plugins/{name}/params/{key}

  • Description: Set as single Parameter {key} for a plugin specified by {name}

Parameters

Name Position Description Type
decode query string
name* path string
key* path string
Body* body Raw Octet Stream

Responses

Code Type
200 PluginParamResponse
404 ErrorResponse
403 NoContentResponse
409 ErrorResponse
401 NoContentResponse

GET /plugins/{name}/params/{key}

Delete a single plugin parameter

  • Description: Delete a single parameter {key} for a Plugin specified by {uuid}

Parameters

Name Position Description Type
decode query string
name* path string
key* path string

Responses

Code Type
200 PluginParamResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

POST /plugins/{name}/params

  • Description: Sets parameters for a plugin specified by {name}

Parameters

Name Position Description Type
decode query string
name* path string
Body* body map of strings to object

Responses

Code Type
200 PluginParamsResponse
404 ErrorResponse
403 NoContentResponse
409 ErrorResponse
401 NoContentResponse

PATCH /plugins/{name}/params

  • Description: Update params for Plugin {name} with the passed-in patch

Parameters

Name Position Description Type
decode query string
name* path string

Responses

Code Type
200 PluginParamsResponse
404 ErrorResponse
403 NoContentResponse
409 ErrorResponse
401 NoContentResponse

GET /plugins/{name}/params

List plugin params Plugin

  • Description: List Plugin parms for a Plugin specified by {name}

Parameters

Name Position Description Type
decode query string
name* path string

Responses

Code Type
200 PluginParamsResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

GET /plugins/{name}/pubkey

Get the public key for secure params on a plugin

  • Description: Get the public key for a Plugin specified by {name}

Parameters

Name Position Description Type
decode query string
name* path string

Responses

Code Type
200 PubKeyResponse
404 ErrorResponse
403 NoContentResponse
500 ErrorResponse
401 NoContentResponse

DELETE /plugins/{uuid}/params/{key}

Delete a single plugin parameter

  • Description: Delete a single parameter {key} for a Plugin specified by {uuid}

Parameters

Name Position Description Type
decode query string
name* path string
key* path string

Responses

Code Type
200 PluginParamResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

PUT /plugins/{name}

Put a Plugin

  • Description: Update a Plugin specified by {name} using a JSON Plugin

Parameters

Name Position Description Type
Body* body Plugin
decode query string
name* path string

Responses

Code Type
200 PluginResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

PATCH /plugins/{name}

Patch a Plugin

  • Description: Update a Plugin specified by {name} using a RFC6902 Patch structure

Parameters

Name Position Description Type
Body* body Patch
decode query string
name* path string

Responses

Code Type
200 PluginResponse
406 ErrorResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 ErrorResponse
409 ErrorResponse

HEAD /plugins/{name}

See if a Plugin exists

  • Description: Return 200 if the Plugin specifiec by {name} exists, or return NotFound.

Parameters

Name Position Description Type
decode query string
name* path string

Responses

Code Type
200 NoContentResponse
404 NoContentResponse
403 NoContentResponse
401 NoContentResponse

DELETE /plugins/{name}

Delete a Plugin

  • Description: Delete a Plugin specified by {name}

Parameters

Name Position Description Type
decode query string
name* path string

Responses

Code Type
200 PluginResponse
404 ErrorResponse
403 NoContentResponse
422 ErrorResponse
401 NoContentResponse

GET /plugins/{name}

Get a Plugin

  • Description: Get the Plugin specified by {name} or return NotFound.

Parameters

Name Position Description Type
decode query string
name* path string

Responses

Code Type
200 PluginResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

GET /plugins/{name}/actions

List plugin actions Plugin

  • Description: List Plugin actions for a Plugin specified by {name} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
plugin query string

Responses

Code Type
200 ActionsResponse
404 ErrorResponse
403 NoPluginResponse
401 NoPluginResponse

POST /plugins/{name}/actions/{cmd}

Call an action on the node.

  • Description: Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
cmd* path string
plugin query string
Body* body map of strings to object

Responses

Code Type
200 ActionPostResponse
404 ErrorResponse
403 NoPluginResponse
401 NoPluginResponse
400 ErrorResponse
409 ErrorResponse

GET /plugins/{name}/actions/{cmd}

List specific action for a plugin Plugin

  • Description: List specific {cmd} action for a Plugin specified by {name} Optionally, a query parameter can be used to limit the scope to a specific plugin. e.g. ?plugin=fred

Parameters

Name Position Description Type
name* path string
cmd* path string
plugin query string

Responses

Code Type
200 ActionResponse
404 ErrorResponse
403 NoPluginResponse
401 NoPluginResponse
400 ErrorResponse

20.4.1.28. Contents

POST /contents

  • Description: Create content into Digital Rebar Provision

Parameters

Name Position Description Type
Body body Content

Responses

Code Type
201 ContentSummaryResponse
415 ErrorResponse
404 ErrorResponse
403 ErrorResponse
500 ErrorResponse
401 NoContentResponse
400 ErrorResponse
507 ErrorResponse
422 ErrorResponse
409 ErrorResponse

GET /contents

  • Produces: [u’application/json’]
  • Description: Lists possible contents on the system to serve DHCP

Responses

Code Type
200 ContentsResponse
403 NoContentResponse
500 ErrorResponse
401 NoContentResponse

PUT /contents/{name}

  • Description: Replace content in Digital Rebar Provision

Parameters

Name Position Description Type
Body body Content
name* path string

Responses

Code Type
200 ContentSummaryResponse
415 ErrorResponse
404 ErrorResponse
403 ErrorResponse
500 ErrorResponse
401 NoContentResponse
400 ErrorResponse
507 ErrorResponse
422 ErrorResponse
409 ErrorResponse

DELETE /contents/{name}

Delete a content set.

Parameters

Name Position Description Type
name* path string

Responses

Code Type
204 NoContentResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
422 ErrorResponse
409 ErrorResponse

GET /contents/{name}

Get a specific content with {name}

  • Produces: [u’application/json’]
  • Description: Get a specific content specified by {name}.

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 ContentResponse
404 ErrorResponse
403 NoContentResponse
500 ErrorResponse
401 NoContentResponse

20.4.2. Responses

20.4.2.1. ReservationsResponse

ReservationsResponse

  • Description: ReservationsResponse returned on a successful GET of all the reservations

Parameters

Name Position Description Type
Payload Body array of Reservation

20.4.2.2. IsoResponse

IsoResponse

  • Description: IsoResponse returned on a successful GET of an iso

Parameters

Name Position Description Type
Payload Body Raw Octet Stream

20.4.2.3. PluginParamsResponse

PluginParamsResponse

  • Description: PluginParamsResponse return on a successful GET of all Plugin’s Params

Parameters

Name Position Description Type
Payload Body map of strings to object

20.4.2.4. FileInfoResponse

FileInfoResponse

  • Description: FileInfoResponse returned on a successful upload of a file

Parameters

Name Position Description Type
Payload Body BlobInfo

20.4.2.5. IsosResponse

IsosResponse

  • Description: IsosResponse returned on a successful GET of isos

Parameters

Name Position Description Type
Payload Body IsoPaths

20.4.2.6. ActionResponse

ActionResponse

  • Description: ActionResponse return on a successful GET of a single Action

Parameters

Name Position Description Type
Payload Body AvailableAction

20.4.2.7. RoleResponse

RoleResponse

  • Description: RoleResponse returned on a successful GET, PUT, PATCH, or POST of a single role

Parameters

Name Position Description Type
Payload Body Role

20.4.2.8. PrefsResponse

PrefsResponse

  • Description: PrefsResponse returned on a successful GET of all preferences

Parameters

Name Position Description Type
Payload Body map of strings to string

20.4.2.9. IndexesResponse

IndexesResponse

  • Description: IndexesResponse lists all the static indexes for all the object types

Parameters

Name Position Description Type
Payload Body map of strings to object

20.4.2.10. ParamResponse

ParamResponse

  • Description: ParamResponse returned on a successful GET, PUT, PATCH, or POST of a single param

Parameters

Name Position Description Type
Payload Body Param

20.4.2.11. IndexResponse

IndexResponse

  • Description: IndexResponse lists all of the static indexes for a specific type of object

Parameters

Name Position Description Type
Payload Body map of strings to Unknown

20.4.2.12. PluginProviderInfoResponse

PluginProviderInfoResponse

  • Description: PluginProviderInfoResponse returned on a successful upload of an iso

Parameters

Name Position Description Type
Payload Body PluginProviderUploadInfo

20.4.2.13. LeaseResponse

LeaseResponse

  • Description: LeaseResponse returned on a successful GET, PUT, PATCH, or POST of a single lease

Parameters

Name Position Description Type
Payload Body Lease

20.4.2.14. ActionsResponse

ActionsResponse

  • Description: ActionsResponse return on a successful GET of all Actions

Parameters

Name Position Description Type
Payload Body array of AvailableAction

20.4.2.15. UsersResponse

UsersResponse

  • Description: UsersResponse returned on a successful GET of all the users

Parameters

Name Position Description Type
Payload Body array of User

20.4.2.16. JobsResponse

JobsResponse

  • Description: JobsResponse return on a successful GET of all Jobs

Parameters

Name Position Description Type
Payload Body array of Job

20.4.2.17. TasksResponse

TasksResponse

  • Description: TasksResponse return on a successful GET of all Tasks

Parameters

Name Position Description Type
Payload Body array of Task

20.4.2.18. RolesResponse

RolesResponse

  • Description: RolesResponse returned on a successful GET of all the roles

Parameters

Name Position Description Type
Payload Body array of Role

20.4.2.19. ErrorResponse

ErrorResponse

  • Description: ErrorResponse is returned whenever an error occurs

Parameters

Name Position Description Type
Payload Body Error

20.4.2.20. MachineResponse

MachineResponse

  • Description: MachineResponse return on a successful GET, PUT, PATCH or POST of a single Machine

Parameters

Name Position Description Type
Payload Body Machine

20.4.2.21. ReservationResponse

ReservationResponse

  • Description: ReservationResponse returned on a successful GET, PUT, PATCH, or POST of a single reservation

Parameters

Name Position Description Type
Payload Body Reservation

20.4.2.22. StagesResponse

StagesResponse

  • Description: StagesResponse returned on a successful GET of all the stages

Parameters

Name Position Description Type
Payload Body array of Stage

20.4.2.23. PluginParamResponse

PluginParamResponse

  • Description: PluginParamResponse return on a successful GET of one Plugin’s Param

Parameters

Name Position Description Type
Payload Body Raw Octet Stream

20.4.2.24. ProfilesResponse

ProfilesResponse

  • Description: ProfilesResponse returned on a successful GET of all the profiles

Parameters

Name Position Description Type
Payload Body array of Profile

20.4.2.25. BootEnvsResponse

BootEnvsResponse

  • Description: BootEnvsResponse returned on a successful GET of all the bootenvs

Parameters

Name Position Description Type
Payload Body array of BootEnv

20.4.2.26. PluginsResponse

PluginsResponse

  • Description: PluginsResponse return on a successful GET of all Plugins

Parameters

Name Position Description Type
Payload Body array of Plugin

20.4.2.27. InterfacesResponse

InterfacesResponse

  • Description: InterfacesResponse returned on a successful GET of all interfaces

Parameters

Name Position Description Type
Payload Body array of Interface

20.4.2.28. ParamParamsResponse

ParamParamsResponse

  • Description: ParamParamsResponse return on a successful GET of all Param’s Params

Parameters

Name Position Description Type
Payload Body map of strings to object

20.4.2.29. WorkflowResponse

WorkflowResponse

  • Description: WorkflowResponse returned on a successful GET, PUT, PATCH, or POST of a single workflow

Parameters

Name Position Description Type
Payload Body Workflow

20.4.2.30. SubnetResponse

SubnetResponse

  • Description: SubnetResponse returned on a successful GET, PUT, PATCH, or POST of a single subnet

Parameters

Name Position Description Type
Payload Body Subnet

20.4.2.31. PubKeyResponse

PubKeyResponse

  • Description: PubKeyResponse is returned on a successful GET of a Paramer public key for secure params.

Parameters

Name Position Description Type
Payload Body No Data Returned

20.4.2.32. JobParamsResponse

JobParamsResponse

  • Description: JobParamsResponse return on a successful GET of all Job’s Params

Parameters

Name Position Description Type
Payload Body map of strings to object

20.4.2.33. ProfileResponse

ProfileResponse

  • Description: ProfileResponse returned on a successful GET, PUT, PATCH, or POST of a single profile

Parameters

Name Position Description Type
Payload Body Profile

20.4.2.34. PluginResponse

PluginResponse

  • Description: PluginResponse return on a successful GET, PUT, PATCH or POST of a single Plugin

Parameters

Name Position Description Type
Payload Body Plugin

20.4.2.35. ProfileParamsResponse

ProfileParamsResponse

  • Description: ProfileParamsResponse return on a successful GET of all Profile’s Params

Parameters

Name Position Description Type
Payload Body map of strings to object

20.4.2.36. JobActionsResponse

JobActionsResponse

  • Description: JobActionsResponse return on a successful GET of a Job’s actions

Parameters

Name Position Description Type
Payload Body JobActions

20.4.2.37. LeasesResponse

LeasesResponse

  • Description: LeasesResponse returned on a successful GET of all the leases

Parameters

Name Position Description Type
Payload Body array of Lease

20.4.2.38. MachineParamResponse

MachineParamResponse

  • Description: MachineParamResponse return on a successful GET of a single Machine param

Parameters

Name Position Description Type
Payload Body Raw Octet Stream

20.4.2.39. ContentResponse

ContentResponse

  • Description: ContentsResponse returned on a successful GET of a contents

Parameters

Name Position Description Type
Payload Body Content

20.4.2.40. ContentSummaryResponse

ContentSummaryResponse

  • Description: ContentSummaryResponse returned on a successful Post of a content

Parameters

Name Position Description Type
Payload Body ContentSummary

20.4.2.41. TemplatesResponse

TemplatesResponse

  • Description: TemplatesResponse return on a successful GET of all templates

Parameters

Name Position Description Type
Payload Body array of Template

20.4.2.42. MachinesResponse

MachinesResponse

  • Description: MachinesResponse return on a successful GET of all Machines

Parameters

Name Position Description Type
Payload Body array of Machine

20.4.2.43. TenantsResponse

TenantsResponse

  • Description: TenantsResponse returned on a successful GET of all the tenants

Parameters

Name Position Description Type
Payload Body array of Tenant

20.4.2.44. ProfileParamResponse

ProfileParamResponse

  • Description: ProfileParamResponse return on a successful GET of a single Param for a Profile

Parameters

Name Position Description Type
Payload Body Raw Octet Stream

20.4.2.45. UserTokenResponse

UserTokenResponse

  • Description: UserTokenResponse returned on a successful GET of user token

Parameters

Name Position Description Type
Payload Body UserToken

20.4.2.46. InfoResponse

InfoResponse

  • Description: InfosResponse returned on a successful GET of an info

Parameters

Name Position Description Type
Payload Body Info

20.4.2.47. SubnetsResponse

SubnetsResponse

  • Description: SubnetsResponse returned on a successful GET of all the subnets

Parameters

Name Position Description Type
Payload Body array of Subnet

20.4.2.48. FilesResponse

FilesResponse

  • Description: FilesResponse returned on a successful GET of files

Parameters

Name Position Description Type
Payload Body FilePaths

20.4.2.49. ParamsResponse

ParamsResponse

  • Description: ParamsResponse returned on a successful GET of all the params

Parameters

Name Position Description Type
Payload Body array of Param

20.4.2.50. TemplateResponse

TemplateResponse

  • Description: TemplateResponse return on a successful GET, PUT, PATCH or POST of a single Template

Parameters

Name Position Description Type
Payload Body Template

20.4.2.51. BootEnvResponse

BootEnvResponse

  • Description: BootEnvResponse returned on a successful GET, PUT, PATCH, or POST of a single bootenv

Parameters

Name Position Description Type
Payload Body BootEnv

20.4.2.52. MachineParamsResponse

MachineParamsResponse

  • Description: MachineParamsResponse return on a successful GET of all Machine’s Params

Parameters

Name Position Description Type
Payload Body map of strings to object

20.4.2.53. PluginProvidersResponse

PluginProvidersResponse

  • Description: PluginProvidersResponse returned on a successful GET of all plugin_provider

Parameters

Name Position Description Type
Payload Body array of PluginProvider

20.4.2.54. NoContentResponse

NoContentResponse

  • Description: NoContentResponse is returned for deletes and auth errors

Parameters

Name Position Description Type
Payload Body No Data Returned

20.4.2.55. JobResponse

JobResponse

  • Description: JobResponse return on a successful GET, PUT, PATCH or POST of a single Job

Parameters

Name Position Description Type
Payload Body Job

20.4.2.56. UserResponse

UserResponse

  • Description: UserResponse returned on a successful GET, PUT, PATCH, or POST of a single user

Parameters

Name Position Description Type
Payload Body User

20.4.2.57. TaskParamsResponse

TaskParamsResponse

  • Description: TaskParamsResponse return on a successful GET of all Task’s Params

Parameters

Name Position Description Type
Payload Body map of strings to object

20.4.2.58. JobLogResponse

JobLogResponse

  • Description: This is a HACK - I can’t figure out how to get swagger to render this a binary. So we lie. We also override this object from the server directory to have a binary format which turns it into a stream. JobLogResponse returned on a successful GET of a log

Parameters

Name Position Description Type
Payload Body string

20.4.2.59. WorkflowsResponse

WorkflowsResponse

  • Description: WorkflowsResponse returned on a successful GET of all the workflows

Parameters

Name Position Description Type
Payload Body array of Workflow

20.4.2.60. TenantResponse

TenantResponse

  • Description: TenantResponse returned on a successful GET, PUT, PATCH, or POST of a single tenant

Parameters

Name Position Description Type
Payload Body Tenant

20.4.2.61. InterfaceResponse

InterfaceResponse

  • Description: InterfacesResponse returned on a successful GET of an interfaces

Parameters

Name Position Description Type
Payload Body Interface

20.4.2.62. IsoInfoResponse

IsoInfoResponse

  • Description: IsoInfoResponse returned on a successful upload of an iso

Parameters

Name Position Description Type
Payload Body BlobInfo

20.4.2.63. StageResponse

StageResponse

  • Description: StageResponse returned on a successful GET, PUT, PATCH, or POST of a single stage

Parameters

Name Position Description Type
Payload Body Stage

20.4.2.64. ContentsResponse

ContentsResponse

  • Description: ContentsResponse returned on a successful GET of all contents

Parameters

Name Position Description Type
Payload Body array of ContentSummary

20.4.2.65. PluginProviderResponse

PluginProviderResponse

  • Description: PluginProvidersResponse returned on a successful GET of an plugin_provider

Parameters

Name Position Description Type
Payload Body PluginProvider

20.4.2.66. ActionPostResponse

ActionPostResponse

  • Description: ActionPostResponse return on a successful POST of action

Parameters

Name Position Description Type
Payload Body Raw Octet Stream

20.4.2.67. LogResponse

LogResponse

  • Description: LogResponse is returned in response to a log dump request.

Parameters

Name Position Description Type
Payload Body array of Line

20.4.2.68. TaskResponse

TaskResponse

  • Description: TaskResponse return on a successful GET, PUT, PATCH or POST of a single Task

Parameters

Name Position Description Type
Payload Body Task

20.4.2.69. SingleIndexResponse

SingleIndexResponse

  • Description: SingleIndexResponse tests to see if a single specific index exists. Unlike the other index API endpoints, you can probe for dynamic indexes this way.

Parameters

Name Position Description Type
Payload Body Index

20.4.2.70. FileResponse

FileResponse

  • Description: This is a HACK - I can’t figure out how to get swagger to render this a binary. So we lie. We also override this object from the server directory to have a binary format which turns it into a stream. FileResponse returned on a successful GET of a file

Parameters

Name Position Description Type
Payload Body string

20.4.3. Definitions

20.4.3.1. Index

Index

  • Description: Index holds details on the index

Fields

Name Description Type
Unique Unique tells you whether there can be mutiple entries in the index for the same key that refer to different items. boolean
Type Type gives you a rough idea of how the string used to query this index should be formatted. string

20.4.3.2. JobAction

JobAction

  • Description: If path is specified, then the runner will place the contents into that location. If path is not specified, then the runner will attempt to bash exec the contents.

Fields

Name Description Type
Content* string
Path* string
Meta* map of strings to string
Name* string

20.4.3.3. Subnet

Subnet

  • Description: Subnet represents a DHCP Subnet

Fields

Name Description Type
Available Available tracks whether or not the model passed validation. boolean
Subnet* Subnet is the network address in CIDR form that all leases acquired in its range will use for options, lease times, and NextServer settings by default string
Errors If there are any errors in the validation process, they will be available here. array of string
Description A description of this Subnet. This should tell what it is for, any special considerations that should be taken into account when using it, etc. string
Pickers* Pickers is list of methods that will allocate IP addresses. Each string must refer to a valid address picking strategy. The current ones are: “none”, which will refuse to hand out an address and refuse to try any remaining strategies. “hint”, which will try to reuse the address that the DHCP packet is requesting, if it has one. If the request does not have a requested address, “hint” will fall through to the next strategy. Otherwise, it will refuse to try any remaining strategies whether or not it can satisfy the request. This should force the client to fall back to DHCPDISCOVER with no requsted IP address. “hint” will reuse expired leases and unexpired leases that match on the requested address, strategy, and token. “nextFree”, which will try to create a Lease with the next free address in the subnet active range. It will fall through to the next strategy if it cannot find a free IP. “nextFree” only considers addresses that do not have a lease, whether or not the lease is expired. “mostExpired” will try to recycle the most expired lease in the subnet’s active range. All of the address allocation strategies do not consider any addresses that are reserved, as lease creation will be handled by the reservation instead. We will consider adding more address allocation strategies in the future. array of string
OnlyReservations* OnlyReservations indicates that we will only allow leases for which there is a preexisting reservation. boolean
Validated Validated tracks whether or not the model has been validated. boolean
Documentation Documentation of this subnet. This should tell what the subnet is for, any special considerations that should be taken into account when using it, etc. in rich structured text (rst). string
Enabled* Enabled indicates if the subnet should hand out leases or continue operating leases if already running. boolean
Options array of DhcpOption
ReservedLeaseTime* ReservedLeasTime is the default lease time we will hand out to leases created from a reservation in our subnet. integer
ReadOnly ReadOnly tracks if the store for this object is read-only boolean
ActiveLeaseTime* ActiveLeaseTime is the default lease duration in seconds we will hand out to leases that do not have a reservation. integer
Proxy* Proxy indicates if the subnet should act as a proxy DHCP server. If true, the subnet will not manage ip addresses but will send offers to requests. It is an error for Proxy and Unmanaged to be true. boolean
Unmanaged* Unmanaged indicates that dr-provision will never send boot-related options to machines that get leases from this subnet. If false, dr-provision will send whatever boot-related options it would normally send. It is an error for Unmanaged and Proxy to both be true. boolean
NextServer* NextServer is the address of the next server in the DHCP/TFTP/PXE chain. You should only set this if you want to transfer control to a different DHCP or TFTP server. string
ActiveEnd* ActiveEnd is the last non-reserved IP address we will hand non-reserved leases from. string
Strategy* Strategy is the leasing strategy that will be used determine what to use from the DHCP packet to handle lease management. string
ActiveStart* ActiveStart is the first non-reserved IP address we will hand non-reserved leases from. string
Name* Name is the name of the subnet. Subnet names must be unique string

20.4.3.4. Section

Section

map of strings to object

20.4.3.5. Param

Param

  • Description: Specifically, it contains a description of what the information is for, detailed documentation about the param, and a JSON schema that the param must match to be considered valid.

Fields

Name Description Type
Available Available tracks whether or not the model passed validation. boolean
Errors If there are any errors in the validation process, they will be available here. array of string
Description Description is a one-line description of the parameter. string
Documentation Documentation details what the parameter does, what values it can take, what it is used for, etc. string
ReadOnly ReadOnly tracks if the store for this object is read-only boolean
Secure* Secure implies that any API interactions with this Param will deal with SecureData values. boolean
Schema* Schema must be a valid JSONSchema as of draft v4. Raw Octet Stream
Validated Validated tracks whether or not the model has been validated. boolean
Name* Name is the name of the param. Params must be uniquely named. string

20.4.3.6. Content

Content

  • Description: Files??

Fields

Name Description Type
meta* ContentMetaData
sections Sections

20.4.3.7. Role

Role

Fields

Name Description Type
Available Available tracks whether or not the model passed validation. boolean
Errors If there are any errors in the validation process, they will be available here. array of string
Description Description of role string
Documentation Documentation of this role. This should tell what the role is for, any special considerations that should be taken into account when using it, etc. in rich structured text (rst). string
ReadOnly ReadOnly tracks if the store for this object is read-only boolean
Claims Claims that the role support. array of Claim
Validated Validated tracks whether or not the model has been validated. boolean
Name* Name is the name of the user string

20.4.3.8. BlobInfo

BlobInfo

Fields

Name Description Type
Path string
Size integer

20.4.3.9. Template

Template

  • Description: Template represents a template that will be associated with a boot environment.

Fields

Name Description Type
Available Available tracks whether or not the model passed validation. boolean
Errors If there are any errors in the validation process, they will be available here. array of string
Description A description of this template string
ReadOnly ReadOnly tracks if the store for this object is read-only boolean
Validated Validated tracks whether or not the model has been validated. boolean
ID* ID is a unique identifier for this template. It cannot change once it is set. string
Contents* Contents is the raw template. It must be a valid template according to text/template. string

20.4.3.10. JobActions

JobActions

array of JobAction

20.4.3.11. OsInfo

OsInfo

  • Description: OsInfo holds information about the operating system this BootEnv maps to. Most of this information is optional for now.

Fields

Name Description Type
Name* The name of the OS this BootEnv has. It should be formatted as family-version. string
IsoFile The name of the ISO that the OS should install from. If non-empty, this is assumed to be for the amd64 hardware architecture. string
SupportedArchitectures SupportedArchitectures maps from hardware architecture (named according to the distro architecture naming scheme) to the architecture-specific parameters for this OS. map of strings to Unknown
IsoUrl The URL that the ISO can be downloaded from, if any. If non-empty, this is assumed to be for the amd64 hardware architecture. string
Version The version of the OS, if any. string
Family The family of operating system (linux distro lineage, etc) string
IsoSha256 The SHA256 of the ISO file. Used to check for corrupt downloads. If non-empty, this is assumed to be for the amd64 hardware architecture. string
Codename The codename of the OS, if any. string

20.4.3.12. BootEnv

BootEnv

  • Description: BootEnv encapsulates the machine-agnostic information needed by the provisioner to set up a boot environment.

Fields

Name Description Type
Available Available tracks whether or not the model passed validation. boolean
BootParams* A template that will be expanded to create the full list of boot parameters for the environment. string
Errors If there are any errors in the validation process, they will be available here. array of string
Description A description of this boot environment. This should tell what the boot environment is for, any special considerations that should be taken into account when using it, etc. string
Kernel* The partial path to the kernel for the boot environment. This should be path that the kernel is located at in the OS ISO or install archive. string
Initrds* Partial paths to the initrds that should be loaded for the boot environment. These should be paths that the initrds are located at in the OS ISO or install archive. array of string
Documentation Documentation of this boot environment. This should tell what the boot environment is for, any special considerations that should be taken into account when using it, etc. in rich structured text (rst). string
Templates* The templates that should be expanded into files for the boot environment. array of TemplateInfo
OptionalParams The list of extra optional parameters for this bootstate. They can be present as Machine.Params when the bootenv is applied to the machine. These are more other consumers of the bootenv to know what parameters could additionally be applied to the bootenv by the renderer based upon the Machine.Params array of string
ReadOnly ReadOnly tracks if the store for this object is read-only boolean
RequiredParams* The list of extra required parameters for this bootstate. They should be present as Machine.Params when the bootenv is applied to the machine. array of string
OnlyUnknown* OnlyUnknown indicates whether this bootenv can be used without a machine. Only bootenvs with this flag set to `true` be used for the unknownBootEnv preference. boolean
OS OsInfo
Validated Validated tracks whether or not the model has been validated. boolean
Name* The name of the boot environment. Boot environments that install an operating system must end in ‘-install’. string

20.4.3.13. Sections

Sections

map of strings to Unknown

20.4.3.14. Lease

Lease

Fields

Name Description Type
Available Available tracks whether or not the model passed validation. boolean
Errors If there are any errors in the validation process, they will be available here. array of string
Addr* Addr is the IP address that the lease handed out. string
SkipBoot SkipBoot indicates that the DHCP system is allowed to offer boot options for whatever boot protocol the machine wants to use. boolean
State* State is the current state of the lease. This field is for informational purposes only. string
Strategy* Strategy is the leasing strategy that will be used determine what to use from the DHCP packet to handle lease management. string
ExpireTime* ExpireTime is the time at which the lease expires and is no longer valid The DHCP renewal time will be half this, and the DHCP rebind time will be three quarters of this. string
NextServer NextServer is the IP address that we should have the machine talk to next. In most cases, this will be our address. string
ReadOnly ReadOnly tracks if the store for this object is read-only boolean
Via Via is the IP address used to select which subnet the lease belongs to. It is either an address present on a local interface that dr-provision is listening on, or the GIADDR field of the DHCP request. string
Token* Token is the unique token for this lease based on the Strategy this lease used. string
Duration Duration is the time in seconds for which a lease can be valid. ExpireTime is calculated from Duration. integer
Validated Validated tracks whether or not the model has been validated. boolean
Options Options are the DHCP options that the Lease is running with. array of DhcpOption

20.4.3.15. Profile

Profile

  • Description: There is one special profile named ‘global’ that acts as a global set of parameters for the system. These can be assigned to a machine’s profile list.

Fields

Name Description Type
Available Available tracks whether or not the model passed validation. boolean
Errors If there are any errors in the validation process, they will be available here. array of string
Description A description of this profile. This can contain any reference information for humans you want associated with the profile. string
Documentation Documentation of this profile. This should tell what the profile is for, any special considerations that should be taken into account when using it, etc. in rich structured text (rst). string
ReadOnly ReadOnly tracks if the store for this object is read-only boolean
Params Any additional parameters that may be needed to expand templates for BootEnv, as documented by that boot environment’s RequiredParams and OptionalParams. map of strings to object
Validated Validated tracks whether or not the model has been validated. boolean
Name* The name of the profile. This must be unique across all profiles. string

20.4.3.16. Stat

Stat

Fields

Name Description Type
count* integer
name* string

20.4.3.17. ArchInfo

ArchInfo

Fields

Name Description Type
BootParams* A template that will be expanded to create the full list of boot parameters for the environment. If empty, this will fall back to the top-level BootParams field in the BootEnv string
Kernel* The partial path to the kernel for the boot environment. This should be path that the kernel is located at in the OS ISO or install archive. If empty, this will fall back to the top-level Kernel field in the BootEnv string
IsoFile IsoFile is the name of the ISO file (or other archive) that contains all the necessacery information to be able to boot into this BootEnv for a given arch. At a minimum, it must contain a kernel and initrd that can be booted over the network. string
Initrds* Partial paths to the initrds that should be loaded for the boot environment. These should be paths that the initrds are located at in the OS ISO or install archive. If empty, this will fall back to the top-level Initrds field in the BootEnv array of string
IsoUrl IsoUrl is the location that IsoFile can be downloaded from, if any. This must be a full URL, including the filename. string
Loader Loader is the bootloader that should be used for this boot environment. If left unspecified and not overridden by a aubnet or reservation option, the following boot loaders will be used: lpxelinux.0 on 386-pcbios platforms that are not otherwise using ipxe. ipxe.pxe on 386-pcbios platforms that already use ipxe. ipxe.efi on amd64 EFI platforms. ipxe-arm64.efi on arm64 EFI platforms. This setting will be overridden by Subnet and Reservation options, and it will also only be in effect when dr-provison is the DHCP server of record. string
Sha256 Sha256 should contain the SHA256 checksum for the IsoFile. If it does, the IsoFile will be checked upon upload to make sure it has not been corrupted. string

20.4.3.18. Workflow

Workflow

Fields

Name Description Type
Available Available tracks whether or not the model passed validation. boolean
Errors If there are any errors in the validation process, they will be available here. array of string
Description string
Documentation string
ReadOnly ReadOnly tracks if the store for this object is read-only boolean
Stages array of string
Validated Validated tracks whether or not the model has been validated. boolean
Name string

20.4.3.19. PluginProvider

PluginProvider

  • Description: Plugin Provider describes the available functions that could be instantiated by a plugin.

Fields

Name Description Type
OptionalParams array of string
HasPublish boolean
Name string
StoreObjects Object prefixes that can be accessed by this plugin. The interface can be empty struct{} or a JSONSchema draft v4 map of strings to object
Documentation Documentation of this plugin provider. This should tell what the plugin provider is for, any special considerations that should be taken into account when using it, etc. in rich structured text (rst). string
Content Content Bundle Yaml string - can be optional or empty string
PluginVersion This is used to indicate what version the plugin is built for integer
Version string
AvailableActions array of AvailableAction
RequiredParams array of string

20.4.3.20. Plugin

Plugin

  • Description: This contains the configuration need to start this plugin instance.

Fields

Name Description Type
Available Available tracks whether or not the model passed validation. boolean
Errors If there are any errors in the validation process, they will be available here. array of string
Description A description of this plugin. This can contain any reference information for humans you want associated with the plugin. string
Documentation Documentation of this plugin. This should tell what the plugin is for, any special considerations that should be taken into account when using it, etc. in rich structured text (rst). string
ReadOnly ReadOnly tracks if the store for this object is read-only boolean
Params Any additional parameters that may be needed to configure the plugin. map of strings to object
Provider* The plugin provider for this plugin string
PluginErrors Error unrelated to the object validity, but the execution of the plugin. array of string
Validated Validated tracks whether or not the model has been validated. boolean
Name* The name of the plugin instance. THis must be unique across all plugins. string

20.4.3.21. DhcpOption

DhcpOption

Fields

Name Description Type
Code* Code is a DHCP Option Code. integer
Value* Value is a text/template that will be expanded and then converted into the proper format for the option code string

20.4.3.22. ContentSummary

ContentSummary

Fields

Name Description Type
Counts map of strings to integer
meta ContentMetaData
Warnings array of string

20.4.3.23. Job

Job

Fields

Name Description Type
Available Available tracks whether or not the model passed validation. boolean
Machine* The machine the job was created for. This field must be the UUID of the machine. string
Archived* boolean
Errors If there are any errors in the validation process, they will be available here. array of string
Uuid* The UUID of the job. The primary key. string
Workflow The workflow that the task was created in. string
Validated Validated tracks whether or not the model has been validated. boolean
State* The state the job is in. Must be one of “created”, “running”, “failed”, “finished”, “incomplete” string
ExitState The final disposition of the job. Can be one of “reboot”,”poweroff”,”stop”, or “complete” Other substates may be added as time goes on string
Current* Whether the job is the “current one” for the machine or if it has been superceded. boolean
ReadOnly ReadOnly tracks if the store for this object is read-only boolean
Task The task the job was created for. This will be the name of the task. string
NextIndex* The next task index that should be run when this job finishes. It is used in conjunction with the machine CurrentTask to implement the server side of the machine agent state machine. integer
CurrentIndex* The current index is the machine CurrentTask that created this job. integer
StartTime The time the job entered running. No Data Returned
BootEnv The bootenv that the task was created in. string
EndTime The time the job entered failed or finished. No Data Returned
Stage The stage that the task was created in. string
Previous The UUID of the previous job to run on this machine. string

20.4.3.24. User

User

  • Description: User is an API user of DigitalRebar Provision

Fields

Name Description Type
Available Available tracks whether or not the model passed validation. boolean
Errors If there are any errors in the validation process, they will be available here. array of string
Description Description of user string
Roles Roles is a list of Roles this User has. array of string
PasswordHash PasswordHash is the scrypt-hashed version of the user’s Password. array of integer
Secret Token secret - this is used when generating user token’s to allow for revocation by the grantor or the grantee. Changing this will invalidate all existing tokens that have this user as a user or a grantor. string
ReadOnly ReadOnly tracks if the store for this object is read-only boolean
Validated Validated tracks whether or not the model has been validated. boolean
Name* Name is the name of the user string

20.4.3.25. Interface

Interface

Fields

Name Description Type
Index Index of the interface integer
Addresses* A List of Addresses on the interface (CIDR) array of string
DnsDomain Possible DNS for domain for this interface string
DnsServers Possible DNS for this interface array of string
ReadOnly ReadOnly tracks if the store for this object is read-only boolean
ActiveAddress The interface to use for this interface when advertising or claiming access (CIDR) string
Gateway Possible gateway for this interface string
Name* Name of the interface string

20.4.3.26. Reservation

Reservation

Fields

Name Description Type
Available Available tracks whether or not the model passed validation. boolean
Subnet Subnet is the name of the Subnet that this Reservation is associated with. This property is read-only. string
Errors If there are any errors in the validation process, they will be available here. array of string
Addr* Addr is the IP address permanently assigned to the strategy/token combination. string
Documentation Documentation of this reservation. This should tell what the reservation is for, any special considerations that should be taken into account when using it, etc. in rich structured text (rst). string
Token* Token is the unique identifier that the strategy for this Reservation should use. string
Strategy* Strategy is the leasing strategy that will be used determine what to use from the DHCP packet to handle lease management. string
NextServer NextServer is the address the server should contact next. You should only set this if you want to talk to a DHCP or TFTP server other than the one provided by dr-provision. string
ReadOnly ReadOnly tracks if the store for this object is read-only boolean
Scoped* Scoped indicates that this reservation is tied to a particular Subnet, as determined by the reservation’s Addr. boolean
Duration Duration is the time in seconds for which a lease can be valid. ExpireTime is calculated from Duration. integer
Validated Validated tracks whether or not the model has been validated. boolean
Options Options is the list of DHCP options that apply to this Reservation array of DhcpOption
Description A description of this Reservation. This should tell what it is for, any special considerations that should be taken into account when using it, etc. string

20.4.3.27. Line

Line

Fields

Name Description Type
Group Group is an abstract number used to group Lines together integer
Service Service is the name of the log. string
Seq Seq is the sequence number that the Line was emitted in. Sequence numbers are globally unique. integer
Level Level
IgnorePublish Should the line be published or not as an event. boolean
File File is the source file that generated the line string
Time Time is when the Line was created. No Data Returned
Line Line is the line number of the line that generated the line. integer
Data Data is any auxillary data that was captured. array of Raw Octet Stream
Message Message is the message that was logged. string
Principal Principal is the user or system that caused the log line to be emitted string

20.4.3.28. AvailableAction

AvailableAction

  • Description: Plugins can provide actions for machines Assumes that there are parameters on the call in addition to the machine.

Fields

Name Description Type
OptionalParams array of string
Model string
RequiredParams array of string
Command string
Provider string

20.4.3.29. TemplateInfo

TemplateInfo

  • Description: TemplateInfo holds information on the templates in the boot environment that will be expanded into files.

Fields

Name Description Type
Path* A text/template that specifies how to create the final path the template should be written to. string
Meta Metadata for the TemplateInfo. This can be used by the job running system and the bootenvs to handle OS, arch, and firmware differences. map of strings to string
ID The ID of the template that should be expanded. Either this or Contents should be set string
Contents The contents that should be used when this template needs to be expanded. Either this or ID should be set. string
Name* Name of the template string

20.4.3.30. Tenant

Tenant

Fields

Name Description Type
Available Available tracks whether or not the model passed validation. boolean
Errors If there are any errors in the validation process, they will be available here. array of string
Description string
Documentation Documentation of this tenant. This should tell what the tenant is for, any special considerations that should be taken into account when using it, etc. in rich structured text (rst). string
ReadOnly ReadOnly tracks if the store for this object is read-only boolean
Members map of strings to array
Users array of string
Validated Validated tracks whether or not the model has been validated. boolean
Name string

20.4.3.31. Stage

Stage

  • Description: Stage encapsulates a set of tasks and profiles to apply to a Machine in a BootEnv.

Fields

Name Description Type
Available Available tracks whether or not the model passed validation. boolean
Templates* The templates that should be expanded into files for the stage. array of TemplateInfo
Errors If there are any errors in the validation process, they will be available here. array of string
Description A description of this stage. This should tell what it is for, any special considerations that should be taken into account when using it, etc. string
Documentation Documentation of this stage. This should tell what the stage is for, any special considerations that should be taken into account when using it, etc. in rich structured text (rst). string
Reboot Flag to indicate if a node should be PXE booted on this transition into this Stage. The nextbootpxe and reboot machine actions will be called if present and Reboot is true boolean
Profiles The list of profiles a machine should use while in this stage. These are used after machine profiles, but before global. array of string
OptionalParams The list of extra optional parameters for this stage. They can be present as Machine.Params when the stage is applied to the machine. These are more other consumers of the stage to know what parameters could additionally be applied to the stage by the renderer based upon the Machine.Params array of string
ReadOnly ReadOnly tracks if the store for this object is read-only boolean
Tasks The list of initial machine tasks that the stage should run array of string
BootEnv* The BootEnv the machine should be in to run this stage. If the machine is not in this bootenv, the bootenv of the machine will be changed. string
RequiredParams* The list of extra required parameters for this stage. They should be present as Machine.Params when the stage is applied to the machine. array of string
RunnerWait This flag is deprecated and will always be TRUE. boolean
Validated Validated tracks whether or not the model has been validated. boolean
Name* The name of the stage. string

20.4.3.32. Info

Info

Fields

Name Description Type
binl_port* integer
scopes map of strings to object
stats* array of Stat
features array of string
License LicenseBundle
tftp_port* integer
os* string
address* IP
dhcp_enabled* boolean
tftp_enabled* boolean
api_port* integer
version* string
file_port* integer
binl_enabled* boolean
dhcp_port* integer
arch* string
id* string
prov_enabled* boolean

20.4.3.33. Machine

Machine

  • Description: Machine represents a single bare-metal system that the provisioner should manage the boot environment for.

Fields

Name Description Type
Errors If there are any errors in the validation process, they will be available here. array of string
Uuid* The UUID of the machine. This is auto-created at Create time, and cannot change afterwards. string
Secret Secret for machine token revocation. Changing the secret will invalidate all existing tokens for this machine string
Params Replaces the Profile. map of strings to object
BootEnv The boot environment that the machine should boot into. This must be the name of a boot environment present in the backend. If this field is not present or blank, the global default bootenv will be used instead. string
Available Available tracks whether or not the model passed validation. boolean
Description A description of this machine. This can contain any reference information for humans you want associated with the machine. string
Workflow* Workflow is the workflow that is currently responsible for processing machine tasks. string
CurrentJob The UUID of the job that is currently running on the machine. string
CurrentTask* integer
Address The IPv4 address of the machine that should be used for PXE purposes. Note that this field does not directly tie into DHCP leases or reservations – the provisioner relies solely on this address when determining what to render for a specific machine. string
Arch* Arch is the machine architecture. It should be an arch that can be fed into $GOARCH. string
Stage An optional value to indicate tasks and profiles to apply. string
Profile Profile
Runnable* Indicates if the machine can run jobs or not. Failed jobs mark the machine not runnable. boolean
Name* The name of the machine. THis must be unique across all machines, and by convention it is the FQDN of the machine, although nothing enforces that. string
Profiles An array of profiles to apply to this machine in order when looking for a parameter during rendering. array of string
Tasks The tasks this machine has to run. array of string
ReadOnly ReadOnly tracks if the store for this object is read-only boolean
HardwareAddrs HardwareAddrs is a list of MAC addresses we expect that the system might boot from. array of string
Validated Validated tracks whether or not the model has been validated. boolean
OS OS is the operating system that the node is running in string

20.4.3.34. Task

Task

Fields

Name Description Type
Available Available tracks whether or not the model passed validation. boolean
Templates* Templates lists the templates that need to be rendered for the Task. array of TemplateInfo
Errors If there are any errors in the validation process, they will be available here. array of string
Description Description is a one-line description of this Task. string
Documentation Documentation should describe in detail what this task should do on a machine. string
OptionalParams* OptionalParams are extra optional parameters that a template rendered for the Task may use. array of string
ReadOnly ReadOnly tracks if the store for this object is read-only boolean
RequiredParams* RequiredParams is the list of parameters that are required to be present on Machine.Params or in a profile attached to the machine. array of string
Validated Validated tracks whether or not the model has been validated. boolean
Name* Name is the name of this Task. Task names must be globally unique string

20.4.3.35. License

License

Fields

Name Description Type
StartDate No Data Returned
Version string
Name string
PurchaseDate No Data Returned
SoftExpireDate No Data Returned
LongLicense string
ShortLicense string
HardExpireDate No Data Returned
Active boolean
Data Raw Octet Stream

20.4.3.36. Level

Level

integer

20.4.3.37. IP

IP

  • Description: Note that in this documentation, referring to an IP address as an IPv4 address or an IPv6 address is a semantic property of the address, not just the length of the byte slice: a 16-byte slice can still be an IPv4 address.

array of integer

20.4.3.38. UserPassword

UserPassword

Fields

Name Description Type
Password string

20.4.3.39. ContentMetaData

ContentMetaData

  • Description: All fields must be strings

Fields

Name Description Type
Description string
Documentation Optional fields string
Writable Informational Fields boolean
Source string
RequiredFeatures string
Version string
Type string
Overwritable boolean
Name* string

20.4.3.40. Error

Error

Fields

Name Description Type
Type string
Model string
Code code is the HTTP status code that should be used for this Error integer
Messages Messages are any additional messages related to this Error array of string
Key string

20.4.3.41. UserToken

UserToken

Fields

Name Description Type
Info Info
Token string

20.4.3.42. Patch

20.4.3.43. IsoPaths

IsoPaths

array of string

20.4.3.44. Claim

Claim

  • Description: User is an API user of DigitalRebar Provision

Fields

Name Description Type
action string
scope string
specific string

20.4.3.45. UUID

UUID

  • Description: A UUID is a 128 bit (16 byte) Universal Unique IDentifier as defined in RFC 4122.

array of integer

20.4.3.46. LicenseBundle

LicenseBundle

Fields

Name Description Type
OwnerEmail string
Grantor string
GrantorEmail string
ContactEmail string
Owner string
ContactId string
Contact string
Licenses array of License
OwnerId string
GenerationVersion string

20.4.3.47. FilePaths

FilePaths

array of string

20.4.3.48. PluginProviderUploadInfo

PluginProviderUploadInfo

Fields

Name Description Type
path string
size integer

20.4.3.49. Operation

Operation

  • Description: operation represents a valid JSON Patch operation as defined by RFC 6902

Fields

Name Description Type
path Path is a JSON Pointer as defined in RFC 6901 All Operations must have a Path string
from From is a JSON pointer indicating where a value should be copied/moved from. From is only used by copy and move operations. string
value Value is the Value to be used for add, replace, and test operations. Raw Octet Stream
op Op can be one of: “add” “remove” “replace” “move” “copy” “test” All Operations must have an Op. string

20.4.3.50. Event

Event

  • Description: In general, the event generates for a subject of the form: type.action.key

Fields

Name Description Type
Object Object - the data of the object. Raw Octet Stream
Key Key - the id of the object string
Time Time of the event. string
Action Action - what happened string
Type Type - object type string
Principal Principal - the user or subsystem that caused the event to be emitted string