Skip to content

Recovery Objective routes: create, get, list

The Recovery Objective Verbs create, get, list as api.sb routes, with inputs, result, refusals and an example.

Reference for Recovery Objective, one group of Recovery Objective routes.

RecoveryObjective.create

Creates a Recovery Objective. Verb page.

Text
POST /{namespace}/recovery-objectives

Body, as JSON: the inputs. Emits RecoveryObjective.created.

Inputs

InputTypeRequiredDescription
recoveryPointstringrequiredThe most data a failure may lose, as a window such as 15m.
recoveryTimestringrequiredHow fast the Capability returns after a failure, as a window such as 4h.
drillEverystringrequiredThe restore drill cadence, such as quarterly.
lastDrilldatetimeWhen the last restore drill met both objectives.
capabilityCapabilityThe Capability the objective restores.

Returns

OutputTypeRequiredDescription
recoveryObjectiveRecovery ObjectiverequiredThe Recovery Objective.

Refuses when

CheckErrorFixThen call
The key is valid, but its scopes do not allow this operation.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.

Example

Terminal
curl -X POST https://api.sb/leaseline.app/recovery-objectives \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"recoveryPoint":"Example recovery point","recoveryTime":"Example recovery time","drillEvery":"Example drill every"}'
JSON
{
  "api": "https://api.sb/leaseline.app",
  "recoveryObjective": {
    "$id": "https://api.sb/leaseline.app/recovery-objectives/recovery_MSAgl5dysq",
    "$type": "RecoveryObjective",
    "recoveryPoint": "Example recovery point",
    "recoveryTime": "Example recovery time",
    "drillEvery": "Example drill every"
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/act_br07HsG8MG",
    "operation": "RecoveryObjective.create",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}

RecoveryObjective.get

Returns one Recovery Objective by id. Verb page.

Text
GET /{namespace}/recovery-objectives/{id}

Path: id. Query: the other inputs. Reads only: it emits no Event.

Inputs

InputTypeRequiredDescription
idstringrequiredThe id of the Recovery Objective.
atstringA time or Version name: the record as it stood then. Unset: as it stands now.

Returns

OutputTypeRequiredDescription
recoveryObjectiveRecovery ObjectiverequiredThe Recovery Objective.

Refuses when

CheckErrorFixThen call
The key is valid, but its scopes do not allow this operation.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.

Example

Terminal
curl https://api.sb/leaseline.app/recovery-objectives/recovery_MSAgl5dysq \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
JSON
{
  "api": "https://api.sb/leaseline.app",
  "$type": "RecoveryObjective",
  "$id": "https://api.sb/leaseline.app/recovery-objectives/recovery_MSAgl5dysq",
  "recoveryObjective": {
    "$id": "https://api.sb/leaseline.app/recovery-objectives/recovery_MSAgl5dysq",
    "$type": "RecoveryObjective",
    "recoveryPoint": "Example recovery point",
    "recoveryTime": "Example recovery time",
    "drillEvery": "Example drill every"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/recovery-objectives/recovery_MSAgl5dysq",
    "up": "https://api.sb/leaseline.app/recovery-objectives"
  },
  "actions": {
    "drill": "https://api.sb/leaseline.app/recovery-objectives/recovery_MSAgl5dysq/drill"
  }
}

RecoveryObjective.list

Returns Recovery Objectives, newest first, one page at a time. Verb page.

Text
GET /{namespace}/recovery-objectives

Query: the inputs. Reads only: it emits no Event.

Inputs

InputTypeRequiredDescription
limitintegerAt most this many records, up to 100. The default is 20.
afterstringThe cursor from the previous page.
wherestringA filter over the properties, such as paidAt = null and total.amount > 500.
sortstringProperties to sort by, comma-separated; a leading minus sorts descending.
totalbooleanTrue adds the match count as meta.total, exact up to 10,000 matches and estimated above.
facetsstringProperties to count by value, comma-separated, returned as meta.facets.
fieldsstringProperties to return on each record, comma-separated; $id and $type always return.
includestringRelated records to embed in place of their URLs, comma-separated.
depthintegerHow many levels of related records to embed. The default is 1.
qstringWords to match across the text properties, ranked by relevance.
matchstringRanks the search by words, or meaning; words is the default.

Returns

OutputTypeRequiredDescription
recoveryObjectiveslist of Recovery ObjectiverequiredOne page of Recovery Objectives.

Refuses when

CheckErrorFixThen call
The key is valid, but its scopes do not allow this operation.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.

Example

Terminal
curl "https://api.sb/leaseline.app/recovery-objectives?limit=20" \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
JSON
{
  "api": "https://api.sb/leaseline.app",
  "$type": "RecoveryObjective",
  "recoveryObjectives": [
    {
      "$id": "https://api.sb/leaseline.app/recovery-objectives/recovery_MSAgl5dysq",
      "$type": "RecoveryObjective",
      "recoveryPoint": "Example recovery point",
      "recoveryTime": "Example recovery time",
      "drillEvery": "Example drill every"
    }
  ],
  "meta": {
    "limit": 20,
    "after": "recovery_MSAgl5dysq"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/recovery-objectives?limit=20",
    "next": "https://api.sb/leaseline.app/recovery-objectives?after=recovery_MSAgl5dysq"
  }
}