18. 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.

18.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.

18.2. API Exception 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

Machines.Profile
What would otherwise be Machine.Params is actually embedded under Machines.Profile.Params. This 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.

18.2.1. Methods

18.2.1.1. PluginProviders

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

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

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

18.2.1.2. 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}/{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

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

18.2.1.3. Params

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

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

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

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
422 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 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

18.2.1.4. 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

18.2.1.5. 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

18.2.1.6. Templates

PUT /templates/{name}

Put a Template

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

Parameters

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

Responses

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

PATCH /templates/{name}

Patch a Template

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

Parameters

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

Responses

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

HEAD /templates/{name}

See if a Template exists

  • Description: Return 200 if the Template 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 /templates/{name}

Delete a Template

  • Description: Delete a Template specified by {name}

Parameters

Name Position Description Type
name* path string

Responses

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

GET /templates/{name}

Get a Template

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

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 TemplateResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

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
422 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 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

18.2.1.7. 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

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

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

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
422 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 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 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

Responses

Code Type
200 SubnetsResponse
403 NoContentResponse
401 NoContentResponse
406 ErrorResponse

18.2.1.8. Jobs

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

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

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

Get actions for this job

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

Parameters

Name Position Description Type
uuid* path string

Responses

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

18.2.1.9. Users

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

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

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

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
scope query string
action query string
specific query string

Responses

Code Type
200 UserTokenResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 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
422 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 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

18.2.1.10. 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

18.2.1.11. 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

18.2.1.12. Leases

PUT /leases/{address}

Put a Lease

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

Parameters

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

Responses

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

PATCH /leases/{address}

Patch a Lease

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

Parameters

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

Responses

Code Type
200 LeaseResponse
406 ErrorResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 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

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

POST /leases

Create a Lease

  • Description: Create a Lease from the provided object

Parameters

Name Position Description Type
Body* body Lease

Responses

Code Type
201 LeaseResponse
422 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 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

18.2.3.25. Info

GET /info

Return current system info.

  • Produces: [u’application/json’]

Responses

Code Type
200 InfoResponse
403 NoContentResponse
500 ErrorResponse
401 NoContentResponse

18.2.1.14. Files

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

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

18.2.1.15. 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
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
name* path string

Responses

Code Type
200 ProfileResponse
406 ErrorResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 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
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
name* path string

Responses

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

GET /profiles/{name}

Get a Profile

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

Parameters

Name Position Description Type
name* path string

Responses

Code Type
200 ProfileResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

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

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

Parameters

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

Responses

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

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

Get a single profile parameter

  • Description: Get a single parameter {key} for a Profile specified by {name}

Parameters

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

Responses

Code Type
200 ProfileParamResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

POST /profiles/{name}/params

  • Description: Set/Replace all the Parameters for a profile specified by {name}

Parameters

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

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
name* path string

Responses

Code Type
200 ProfileParamsResponse
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
422 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 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

18.2.1.16. Stages

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
422 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 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

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

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

18.2.1.17. 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

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

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

Create a Task

  • Description: Create a Task from the provided object

Parameters

Name Position Description Type
Body* body Task

Responses

Code Type
201 TaskResponse
422 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 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

18.2.1.18. Reservations

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

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

HEAD /reservations/{address}

See if a Reservation exists

  • Description: Return 200 if the Reservation 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 /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

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
422 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 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

18.2.1.19. 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

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

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
422 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 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

18.2.1.20. 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

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

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

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
422 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 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/{name}

Call an action on the node.

Parameters

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

Responses

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

GET /machines/{uuid}/actions/{name}

List specific action for a machine Machine

  • Description: List specific {name} action for a Machine specified by {uuid}

Parameters

Name Position Description Type
uuid* path string
name* path string

Responses

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

POST /machines/{uuid}/params

  • Description: Set/Replace all the Parameters for a machine specified by {uuid}

Parameters

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

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
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
uuid* path string
key* path string
Body* body Raw Octet Stream

Responses

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

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

Get a single machine parameter

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

Parameters

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

Responses

Code Type
200 MachineParamResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

GET /machines/{uuid}/actions

List machine actions Machine

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

Parameters

Name Position Description Type
uuid* path string

Responses

Code Type
200 MachineActionsResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

18.2.1.21. Plugins

POST /plugins/{name}/params

  • Description: Set/Replace all the Parameters for a plugin specified by {name}

Parameters

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

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
name* path string

Responses

Code Type
200 PluginParamsResponse
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
name* path string

Responses

Code Type
200 PluginResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 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
name* path string

Responses

Code Type
200 PluginResponse
406 ErrorResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 ErrorResponse
422 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
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
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
name* path string

Responses

Code Type
200 PluginResponse
404 ErrorResponse
403 NoContentResponse
401 NoContentResponse

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
422 ErrorResponse
403 NoContentResponse
401 NoContentResponse
400 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

18.2.1.22. 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

18.2.2. Responses

18.2.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

18.2.2.2. IsoResponse

IsoResponse

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

Parameters

Name Position Description Type
Payload Body Raw Octet Stream

18.2.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

18.2.2.4. FileInfoResponse

FileInfoResponse

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

Parameters

Name Position Description Type
Payload Body FileInfo

18.2.2.5. InterfacesResponse

InterfacesResponse

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

Parameters

Name Position Description Type
Payload Body array of Interface

18.2.2.6. PrefsResponse

PrefsResponse

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

Parameters

Name Position Description Type
Payload Body map of strings to string

18.2.2.7. 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

18.2.2.8. 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

18.2.2.9. 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

18.2.2.10. PluginProviderInfoResponse

PluginProviderInfoResponse

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

Parameters

Name Position Description Type
Payload Body PluginProviderUploadInfo

18.2.2.11. 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

18.2.2.12. MachineActionPostResponse

MachineActionPostResponse

  • Description: MachineActionPostResponse return on a successful POST of action

Parameters

Name Position Description Type
Payload Body No Data Returned

18.2.2.13. UsersResponse

UsersResponse

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

Parameters

Name Position Description Type
Payload Body array of User

18.2.2.14. JobsResponse

JobsResponse

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

Parameters

Name Position Description Type
Payload Body array of Job

18.2.2.15. TasksResponse

TasksResponse

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

Parameters

Name Position Description Type
Payload Body array of Task

18.2.2.16. ErrorResponse

ErrorResponse

  • Description: ErrorResponse is returned whenever an error occurs

Parameters

Name Position Description Type
Payload Body Error

18.2.2.17. 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

18.2.2.18. 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

18.2.2.19. StagesResponse

StagesResponse

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

Parameters

Name Position Description Type
Payload Body array of Stage

18.2.2.20. ProfilesResponse

ProfilesResponse

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

Parameters

Name Position Description Type
Payload Body array of Profile

18.2.2.21. BootEnvsResponse

BootEnvsResponse

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

Parameters

Name Position Description Type
Payload Body array of BootEnv

18.2.2.22. PluginsResponse

PluginsResponse

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

Parameters

Name Position Description Type
Payload Body array of Plugin

18.2.2.23. IsosResponse

IsosResponse

  • Description: IsosResponse returned on a successful GET of isos

Parameters

Name Position Description Type
Payload Body IsoPaths

18.2.2.24. 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

18.2.2.25. 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

18.2.2.26. 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

18.2.2.27. 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

18.2.2.28. 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

18.2.2.29. 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

18.2.2.30. JobActionsResponse

JobActionsResponse

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

Parameters

Name Position Description Type
Payload Body array of JobAction

18.2.2.31. LeasesResponse

LeasesResponse

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

Parameters

Name Position Description Type
Payload Body array of Lease

18.2.2.32. MachineParamResponse

MachineParamResponse

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

Parameters

Name Position Description Type
Payload Body Raw Octet Stream

18.2.2.33. ContentResponse

ContentResponse

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

Parameters

Name Position Description Type
Payload Body Content

18.2.2.34. ContentSummaryResponse

ContentSummaryResponse

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

Parameters

Name Position Description Type
Payload Body ContentSummary

18.2.2.35. TemplatesResponse

TemplatesResponse

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

Parameters

Name Position Description Type
Payload Body array of Template

18.2.2.36. MachinesResponse

MachinesResponse

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

Parameters

Name Position Description Type
Payload Body array of Machine

18.2.2.37. MachineActionResponse

MachineActionResponse

  • Description: MachineActionResponse return on a successful GET of a single Machine Action

Parameters

Name Position Description Type
Payload Body AvailableAction

18.2.2.38. 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

18.2.2.39. UserTokenResponse

UserTokenResponse

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

Parameters

Name Position Description Type
Payload Body UserToken

18.2.2.40. InfoResponse

InfoResponse

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

Parameters

Name Position Description Type
Payload Body Info

18.2.2.41. MachineActionsResponse

MachineActionsResponse

  • Description: MachineActionsResponse return on a successful GET of all Machine Actions

Parameters

Name Position Description Type
Payload Body array of AvailableAction

18.2.2.42. SubnetsResponse

SubnetsResponse

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

Parameters

Name Position Description Type
Payload Body array of Subnet

18.2.2.43. FilesResponse

FilesResponse

  • Description: FilesResponse returned on a successful GET of files

Parameters

Name Position Description Type
Payload Body FilePaths

18.2.2.44. ParamsResponse

ParamsResponse

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

Parameters

Name Position Description Type
Payload Body array of Param

18.2.2.45. 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

18.2.2.46. 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

18.2.2.47. 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

18.2.2.48. PluginProvidersResponse

PluginProvidersResponse

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

Parameters

Name Position Description Type
Payload Body array of PluginProvider

18.2.2.49. 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

18.2.2.50. 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

18.2.2.51. 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

18.2.2.52. 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

18.2.2.53. InterfaceResponse

InterfaceResponse

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

Parameters

Name Position Description Type
Payload Body Interface

18.2.2.54. IsoInfoResponse

IsoInfoResponse

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

Parameters

Name Position Description Type
Payload Body IsoInfo

18.2.2.55. 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

18.2.2.56. ContentsResponse

ContentsResponse

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

Parameters

Name Position Description Type
Payload Body array of ContentSummary

18.2.2.57. PluginProviderResponse

PluginProviderResponse

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

Parameters

Name Position Description Type
Payload Body PluginProvider

18.2.2.58. NoContentResponse

NoContentResponse

  • Description: NoContentResponse is returned for deletes and auth errors

Parameters

Name Position Description Type
Payload Body No Data Returned

18.2.2.59. 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

18.2.2.60. 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

18.2.2.61. 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

18.2.3. Definitions

18.2.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

18.2.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
Name* string

18.2.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
Name* Name is the name of the subnet. Subnet names must be unique 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 ant reamining 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
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
Meta map of strings to string
ActiveLeaseTime* ActiveLeaseTime is the default lease duration in seconds we will hand out to leases that do not have a reservation. integer
NextServer* NextServer is the address of the next 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

18.2.3.4. Section

Section

map of strings to object

18.2.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
Name* Name is the name of the param. Params must be uniquely named. 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
Meta map of strings to string
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
Description Description is a one-line description of the parameter. string

18.2.3.6. Content

Content

  • Description: Files??

Fields

Name Description Type
meta* ContentMetaData
sections Sections

18.2.3.7. 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
Meta map of strings to string
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

18.2.3.8. 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 shoudl 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
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
Meta map of strings to string
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

18.2.3.9. Sections

Sections

map of strings to Unknown

18.2.3.10. 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
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
ReadOnly ReadOnly tracks if the store for this object is read-only boolean
Meta map of strings to string
Token* Token is the unique token for this lease based on the Strategy this lease used. string
Validated Validated tracks whether or not the model has been validated. boolean

18.2.3.11. 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
Name* The name of the profile. This must be unique across all profiles. string
ReadOnly ReadOnly tracks if the store for this object is read-only boolean
Meta map of strings to string
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
Description A description of this profile. This can contain any reference information for humans you want associated with the profile. string

18.2.3.12. Stat

Stat

Fields

Name Description Type
count* integer
name* string

18.2.3.13. 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. string
IsoFile The name of the ISO that the OS should install from. string
IsoUrl The URL that the ISO can be downloaded from, if any. 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. string
Codename The codename of the OS, if any. string

18.2.3.14. PluginProvider

PluginProvider

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

Fields

Name Description Type
Version string
Name string
Parameters Ensure that these are in the system. array of Param
HasPublish boolean
OptionalParams array of string
Meta map of strings to string
AvailableActions array of AvailableAction
RequiredParams array of string

18.2.3.15. OptionCode

OptionCode

integer

18.2.3.16. DhcpOption

DhcpOption

Fields

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

18.2.3.17. ContentSummary

ContentSummary

Fields

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

18.2.3.18. Job

Job

Fields

Name Description Type
Available Available tracks whether or not the model passed validation. boolean
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
Validated Validated tracks whether or not the model has been validated. boolean
LogPath DRP Filesystem path to the log for this job string
State* The state the job is in. Must be one of “created”, “running”, “failed”, “finished”, “incomplete” string
Machine* The machine the job was created for. This field must be the UUID of the machine. string
ReadOnly ReadOnly tracks if the store for this object is read-only boolean
Meta map of strings to string
StartTime The time the job entered running. No Data Returned
Task The task the job was created for. This will be the name of the task. 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

18.2.3.19. 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
Name* Name is the name of the user 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
Meta map of strings to string
Validated Validated tracks whether or not the model has been validated. boolean

18.2.3.20. Interface

Interface

Fields

Name Description Type
Index Index of the interface integer
Name* Name of the interface string
ReadOnly ReadOnly tracks if the store for this object is read-only boolean
Meta map of strings to string
ActiveAddress The interface to use for this interface when advertising or claiming access (CIDR) string
Addresses* A List of Addresses on the interface (CIDR) array of string

18.2.3.21. Reservation

Reservation

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 permanently assigned to the strategy/token combination. 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
ReadOnly ReadOnly tracks if the store for this object is read-only boolean
Meta map of strings to string
NextServer NextServer is the address the server should contact next. string
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

18.2.3.22. 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
RequiredParams array of string
Command string
Provider string

18.2.3.23. 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
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

18.2.3.24. 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
Name* The name of the boot environment. Boot environments that install an operating system must end in ‘-install’. 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 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
Meta map of strings to string
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 bootstate. They should be present as Machine.Params when the bootenv is applied to the machine. array of string
RunnerWait Flag to indicate if the runner should wait for more tasks while in this stage. boolean
Validated Validated tracks whether or not the model has been validated. boolean
Description A description of this boot environment. This should tell what the boot environment is for, any special considerations that shoudl be taken into account when using it, etc. string

18.2.3.25. Info

Info

Fields

Name Description Type
tftp_enabled* boolean
stats* array of Stat
Features array of string
os* string
dhcp_enabled* boolean
api_port* integer
version* string
file_port* integer
arch* string
id* string
prov_enabled* boolean

18.2.3.26. 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
Name* Name is the name of this Task. Task names must be globally unique 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
Meta map of strings to string
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
Description Description is a one-line description of this Task. string

18.2.3.27. 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
Name* The name of the plugin instance. THis must be unique across all plugins. string
ReadOnly ReadOnly tracks if the store for this object is read-only boolean
Meta map of strings to string
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
Description A description of this plugin. This can contain any reference information for humans you want associated with the plugin. string

18.2.3.28. 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

18.2.3.29. UserPassword

UserPassword

Fields

Name Description Type
Password string

18.2.3.30. ContentMetaData

ContentMetaData

Fields

Name Description Type
Version string
Description string
Writable Informational Fields boolean
Source string
Meta map of strings to string
Type string
Overwritable boolean
Name* string

18.2.3.31. Error

Error

Fields

Name Description Type
Type string
Model string
Messages Messages are any additional messages related to this Error array of string
Key string

18.2.3.32. UserToken

UserToken

Fields

Name Description Type
Info Info
Token string

18.2.3.33. FileInfo

FileInfo

Fields

Name Description Type
Path string
Size integer

18.2.3.34. Patch

18.2.3.35. IsoPaths

IsoPaths

array of string

18.2.3.36. Machine

Machine

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

Fields

Name Description Type
Available Available tracks whether or not the model passed validation. boolean
Profile Profile
Errors If there are any errors in the validation process, they will be available here. array of string
Description A description of this machine. This can contain any reference information for humans you want associated with the machine. string
Tasks The tasks this machine has to run. array of string
Runnable* Indicates if the machine can run jobs or not. Failed jobs mark the machine not runnable. boolean
Secret Secret for machine token revocation. Changing the secret will invalidate all existing tokens for this machine string
CurrentJob The UUID of the job that is currently running on the machine. string
CurrentTask* integer
ReadOnly ReadOnly tracks if the store for this object is read-only boolean
Meta map of strings to string
Profiles An array of profiles to apply to this machine in order when looking for a parameter during rendering. array of string
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
Uuid* The UUID of the machine. This is auto-created at Create time, and cannot change afterwards. string
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
Stage An optional value to indicate tasks and profiles to apply. string
Validated Validated tracks whether or not the model has been validated. 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

18.2.3.37. IsoInfo

IsoInfo

Fields

Name Description Type
path string
size integer

18.2.3.38. UUID

UUID

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

array of integer

18.2.3.39. FilePaths

FilePaths

array of string

18.2.3.40. PluginProviderUploadInfo

PluginProviderUploadInfo

Fields

Name Description Type
path string
size integer

18.2.3.41. 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

18.2.3.42. Event

Event

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

Fields

Name Description Type
Action Action - what happened string
Object Object - the data of the object. Raw Octet Stream
Type Type - object type string
Key Key - the id of the object string
Time Time of the event. string