Break or repair a simulated device
const url = 'https://example.com/api/v1/components/example/impairment';const options = { method: 'PUT', headers: {'Content-Type': 'application/json'}, body: '{"jitter_ms":1,"latency_ms":1,"loss_pct":1,"rate_kbit":1,"unplugged":true}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://example.com/api/v1/components/example/impairment \ --header 'Content-Type: application/json' \ --data '{ "jitter_ms": 1, "latency_ms": 1, "loss_pct": 1, "rate_kbit": 1, "unplugged": true }'Sets what is broken on a simulated component: unplugged, or a link with added latency, jitter, loss or a rate limit. It replaces the whole impairment, so a field left out reads as zero (setting a latency on an unplugged device plugs it back in); an empty body repairs it. Returns the impairment as stored, loss rounded to hundredths. Audited. The simulator beside the component’s node applies it on its next pull. Gated by simulation:update, whose scope is resolved on the component tier; a component outside the caller’s component:read is a non-disclosing 404, and one it can read but not impair is a 403. Jitter above latency, or a value outside its range, is a 422.
Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The simulated component’s name, or a dotted address
The simulated component’s name, or a dotted address
Request Body required
Section titled “Request Body required ”object
A URL to the JSON Schema for this object.
Variation on the delay, in milliseconds; at most the latency
Delay added to traffic toward the device, in milliseconds
Share of packets toward the device dropped, in percent, to hundredths
Bandwidth limit on the device’s link, both ways, in kilobits per second; 0 is unlimited
Dark on every protocol: connects time out, datagrams and pings go unanswered
Responses
Section titled “ Responses ”OK
object
A URL to the JSON Schema for this object.
Variation on the delay, in milliseconds; at most the latency
Delay added to traffic toward the device, in milliseconds
Share of packets toward the device dropped, in percent, to hundredths
Bandwidth limit on the device’s link, both ways, in kilobits per second; 0 is unlimited
Dark on every protocol: connects time out, datagrams and pings go unanswered
Example
{ "$schema": "/api/v1/schemas/ImpairmentFields.json"}default
Section titled “default ”Error
object
A URL to the JSON Schema for this object.
A human-readable explanation specific to this occurrence of the problem.
Optional list of individual error details
object
Where the error occurred, e.g. ‘body.items[3].tags’ or ‘path.thing-id’
Error message text
The value at the given location
A URI reference that identifies the specific occurrence of the problem.
HTTP status code
A short, human-readable summary of the problem type. This value should not change between occurrences of the error.
A URI reference to human-readable documentation for the error.
Example
{ "$schema": "/api/v1/schemas/ErrorModel.json", "detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "about:blank"}