Interface .sunset
POST /{namespace}/interfaces/{interface}/sunset
Sunset stops serving a deprecated API version once no Tenant pins it.
- Noun
- Interface
- Mode
do- Event
Interface.sunsetted
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
interface | Interface | required | The API. |
version | string | required | The deprecated version. |
Outputs
| Output | Type | Required | Description |
|---|---|---|---|
interface | Interface | required | The API, without the version. |
Effects
| Fact | Value |
|---|---|
| Action class | None: no approval rule names it, so it runs within its seat's Permissions and Limits |
| Stakes | The Startup's own records only |
| Door | One-way: it waits out its 1 business hour delay window, then runs |
| Modes | try previews it and stores nothing; send returns a pending Action; do (default) waits for the result |
| Idempotent | Only with a key: a repeat with the same Idempotency-Key and input returns the first Action, the same key with other input is refused with 409, and a repeat without a key runs again |
| Undo | Action.undo reverses its records |
| Emits | Interface.sunsetted |
| Performed by | The Engineering Lead |
- Refuses while any Tenant still pins the version.
Refuses when
| Check | Error | Fix | Then call |
|---|---|---|---|
| The key is valid, but its scopes do not allow this operation | forbidden | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |
| Any Tenant still pins the version | refused | Clear what the check names, then call it again. | None. |
interface is missing, or is not a interface | invalid-input | Send interface as a interface, then call it again. | None. |
version is missing, or is not a string | invalid-input | Send version as a string, then call it again. | None. |
The Idempotency-Key was sent before with another operation or other input | idempotency-mismatch | Send a new key for new input; reuse a key only to retry the same request. | None. |
When it waits
| Gate | Default |
|---|---|
| Decision class | Medium: one-way, bounded |
| Delay window | 1 business hour, in which a watcher can pause, redirect or cancel it; then it runs. |
| Limit | The call Limit of the Permission it runs under. |
| Over the Limit | It waits pending for an Approval, which a Human answers: the owner of record, or a Human they named to approve for the Founder seat. Approved, it runs; refused, it ends refused with limit-exceeded; unanswered by its deadline, it ends canceled. |
To retry, send the same Idempotency-Key: the retry returns the first Action and runs nothing twice. A new key runs the call again.