Skip to content

Depot profilerollouts

Registers the rollout routes.

This page is generated from the Depot route table. Every operation carries the permission it needs and the anchor an agent can link to.

GETprofile:readtenant facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

listProfileRollouts lists rollouts, newest first, optionally for one profile or in some stages.

NameInTypeRequiredDescription
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
profileIdquerystringNo
stagequerystring, one of broad, completed, paused, pilot, rolled_backNoComma-separated set. An unrecognised value is refused.
StatusBodyDescription
200application/json, PagedResultRolloutViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold profile:read.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
itemsrequiredarray of RolloutView
items[].autoPromoteAfterSecondsinteger or null
items[].completedAtstring (date-time) or null
items[].fromVersioninteger or null
items[].pausedFromStagestring or null
items[].pilotScopeIdrequiredstring
items[].pilotScopeTyperequiredstring
items[].profileIdrequiredstring
items[].promotedAtstring (date-time) or null
items[].publicIdrequiredstring
items[].rolledBackAtstring (date-time) or null
items[].rowVersionrequiredinteger

int64.

items[].stagerequiredstring
items[].startedAtrequiredstring (date-time)
items[].successThresholdPctinteger or null
items[].toVersionrequiredinteger
pagerequiredinteger
pageSizerequiredinteger
totalrequiredinteger
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/profile-rollouts?page=0&pageSize=0&profileId=<profileId>&stage=broad' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/profile-rollouts/{rolloutID}/pause

Section titled “POST /api/v1/profile-rollouts/{rolloutID}/pause”

POSTprofile:managetenant facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

Rollout stage handler

NameInTypeRequiredDescription
rolloutIDpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
rowVersionrequiredinteger

int64.

StatusBodyDescription
200application/json, RolloutViewSuccess.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold profile:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe rollout changed since you loaded it, or it cannot move to that stage. Reload and try again.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
autoPromoteAfterSecondsinteger or null
completedAtstring (date-time) or null
fromVersioninteger or null
pausedFromStagestring or null
pilotScopeIdrequiredstring
pilotScopeTyperequiredstring
profileIdrequiredstring
promotedAtstring (date-time) or null
publicIdrequiredstring
rolledBackAtstring (date-time) or null
rowVersionrequiredinteger

int64.

stagerequiredstring
startedAtrequiredstring (date-time)
successThresholdPctinteger or null
toVersionrequiredinteger
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X POST 'https://depot.example.com/api/v1/profile-rollouts/<rolloutID>/pause' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"rowVersion": 0
}'

POST /api/v1/profile-rollouts/{rolloutID}/promote

Section titled “POST /api/v1/profile-rollouts/{rolloutID}/promote”

POSTprofile:managetenant facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

Rollout stage handler

NameInTypeRequiredDescription
rolloutIDpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
rowVersionrequiredinteger

int64.

StatusBodyDescription
200application/json, RolloutViewSuccess.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold profile:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe rollout changed since you loaded it, or it cannot move to that stage. Reload and try again.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
autoPromoteAfterSecondsinteger or null
completedAtstring (date-time) or null
fromVersioninteger or null
pausedFromStagestring or null
pilotScopeIdrequiredstring
pilotScopeTyperequiredstring
profileIdrequiredstring
promotedAtstring (date-time) or null
publicIdrequiredstring
rolledBackAtstring (date-time) or null
rowVersionrequiredinteger

int64.

stagerequiredstring
startedAtrequiredstring (date-time)
successThresholdPctinteger or null
toVersionrequiredinteger
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X POST 'https://depot.example.com/api/v1/profile-rollouts/<rolloutID>/promote' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"rowVersion": 0
}'

POST /api/v1/profile-rollouts/{rolloutID}/resume

Section titled “POST /api/v1/profile-rollouts/{rolloutID}/resume”

POSTprofile:managetenant facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

Rollout stage handler

NameInTypeRequiredDescription
rolloutIDpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
rowVersionrequiredinteger

int64.

StatusBodyDescription
200application/json, RolloutViewSuccess.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold profile:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe rollout changed since you loaded it, or it cannot move to that stage. Reload and try again.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
autoPromoteAfterSecondsinteger or null
completedAtstring (date-time) or null
fromVersioninteger or null
pausedFromStagestring or null
pilotScopeIdrequiredstring
pilotScopeTyperequiredstring
profileIdrequiredstring
promotedAtstring (date-time) or null
publicIdrequiredstring
rolledBackAtstring (date-time) or null
rowVersionrequiredinteger

int64.

stagerequiredstring
startedAtrequiredstring (date-time)
successThresholdPctinteger or null
toVersionrequiredinteger
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X POST 'https://depot.example.com/api/v1/profile-rollouts/<rolloutID>/resume' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"rowVersion": 0
}'

POST /api/v1/profile-rollouts/{rolloutID}/rollback

Section titled “POST /api/v1/profile-rollouts/{rolloutID}/rollback”

POSTprofile:managetenant facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

rollbackProfileRollout ends a rollout and restores the profile to the version it started from, as a new version.

A rollout of a new assignment (no starting version) removes the profile’s assignments instead.

NameInTypeRequiredDescription
rolloutIDpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
rowVersionrequiredinteger

int64.

StatusBodyDescription
200application/json, RolloutViewSuccess.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
401application/problem+json, ProblemDetailsAuthentication is required.
403application/problem+json, ProblemDetailsThe identity does not hold profile:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe rollout changed since you loaded it, or it cannot move to that stage. Reload and try again.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
autoPromoteAfterSecondsinteger or null
completedAtstring (date-time) or null
fromVersioninteger or null
pausedFromStagestring or null
pilotScopeIdrequiredstring
pilotScopeTyperequiredstring
profileIdrequiredstring
promotedAtstring (date-time) or null
publicIdrequiredstring
rolledBackAtstring (date-time) or null
rowVersionrequiredinteger

int64.

stagerequiredstring
startedAtrequiredstring (date-time)
successThresholdPctinteger or null
toVersionrequiredinteger
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X POST 'https://depot.example.com/api/v1/profile-rollouts/<rolloutID>/rollback' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"rowVersion": 0
}'

POST /api/v1/profiles/{profileID}/rollouts

Section titled “POST /api/v1/profiles/{profileID}/rollouts”

POSTprofile:managetenant facehosteditmspremote

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

createProfileRollout starts a staged rollout of a profile to a pilot site, device group or endpoint.

NameInTypeRequiredDescription
profileIDpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
autoPromoteAfterSecondsinteger or null
fromVersioninteger or null
pilotScopeIdrequiredstring
pilotScopeTyperequiredstring
successThresholdPctinteger or null
toVersioninteger or null
StatusBodyDescription
201application/json, RolloutViewCreated.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold profile:manage.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThis profile already has a rollout in progress. Promote, complete or roll it back first.
500application/problem+json, ProblemDetailsNo client store in request context.
503application/problem+json, ProblemDetailsCould not verify the profile’s required capabilities.

201 response body

FieldTypeDescription
autoPromoteAfterSecondsinteger or null
completedAtstring (date-time) or null
fromVersioninteger or null
pausedFromStagestring or null
pilotScopeIdrequiredstring
pilotScopeTyperequiredstring
profileIdrequiredstring
promotedAtstring (date-time) or null
publicIdrequiredstring
rolledBackAtstring (date-time) or null
rowVersionrequiredinteger

int64.

stagerequiredstring
startedAtrequiredstring (date-time)
successThresholdPctinteger or null
toVersionrequiredinteger
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
curl -X POST 'https://depot.example.com/api/v1/profiles/<profileID>/rollouts' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"autoPromoteAfterSeconds": 0,
"fromVersion": 0,
"pilotScopeId": "string",
"pilotScopeType": "string",
"successThresholdPct": 0,
"toVersion": 0
}'

Content is licensed CC BY 4.0. Code samples are MIT. Outpost and the Outpost mark are trademarks of Outpost Business Solutions, PBC and are not covered by either license.