Sensorium Interface Control Request v1¶
Source schema: doc/schemas/sensorium-interface-control-request.v1.schema.json
Fields¶
| Field | Required | Shape | Description |
|---|---|---|---|
schema |
yes |
const: sensorium-interface-control-request.v1 |
|
schema/v |
yes |
const: 1 |
|
action |
yes |
enum: claim, cancel, renew, release, handoff |
|
interface/id |
yes |
ref: #/$defs/interface_ref |
|
caller/ref |
yes |
ref: #/$defs/ref |
|
grant/id |
yes |
ref: #/$defs/ref |
|
source/generation-ref |
yes |
ref: #/$defs/ref |
|
claim/id |
no |
ref: #/$defs/claim_ref |
|
handoff/accept |
no |
boolean | |
target/claim-id |
no |
ref: #/$defs/claim_ref |
|
lease/id |
no |
ref: #/$defs/lease_ref |
|
lease/epoch |
no |
integer | |
lease/requested-ms |
no |
integer | |
deadline/at |
yes |
string | |
causal/context |
yes |
ref: causal-context.v1.schema.json |
Definitions¶
| Definition | Shape | Description |
|---|---|---|
ref |
string | |
interface_ref |
string | |
claim_ref |
string | |
lease_ref |
string |
Conditional Rules¶
Rule 1¶
When:
{
"properties": {
"action": {
"const": "claim"
}
},
"required": [
"action"
]
}
Then:
{
"required": [
"claim/id",
"handoff/accept",
"lease/requested-ms"
],
"not": {
"anyOf": [
{
"required": [
"target/claim-id"
]
},
{
"required": [
"lease/id"
]
},
{
"required": [
"lease/epoch"
]
}
]
}
}
Rule 2¶
When:
{
"properties": {
"action": {
"const": "cancel"
}
},
"required": [
"action"
]
}
Then:
{
"required": [
"claim/id"
],
"not": {
"anyOf": [
{
"required": [
"target/claim-id"
]
},
{
"required": [
"lease/id"
]
},
{
"required": [
"lease/epoch"
]
},
{
"required": [
"lease/requested-ms"
]
}
]
}
}
Rule 3¶
When:
{
"properties": {
"action": {
"enum": [
"renew",
"release",
"handoff"
]
}
},
"required": [
"action"
]
}
Then:
{
"required": [
"lease/id",
"lease/epoch"
]
}
Rule 4¶
When:
{
"properties": {
"action": {
"const": "renew"
}
},
"required": [
"action"
]
}
Then:
{
"required": [
"lease/requested-ms"
]
}
Rule 5¶
When:
{
"properties": {
"action": {
"const": "handoff"
}
},
"required": [
"action"
]
}
Then:
{
"required": [
"target/claim-id"
]
}
Field Semantics¶
schema¶
- Required:
yes - Shape: const:
sensorium-interface-control-request.v1
schema/v¶
- Required:
yes - Shape: const:
1
action¶
- Required:
yes - Shape: enum:
claim,cancel,renew,release,handoff
interface/id¶
- Required:
yes - Shape: ref:
#/$defs/interface_ref
caller/ref¶
- Required:
yes - Shape: ref:
#/$defs/ref
grant/id¶
- Required:
yes - Shape: ref:
#/$defs/ref
source/generation-ref¶
- Required:
yes - Shape: ref:
#/$defs/ref
claim/id¶
- Required:
no - Shape: ref:
#/$defs/claim_ref
handoff/accept¶
- Required:
no - Shape: boolean
target/claim-id¶
- Required:
no - Shape: ref:
#/$defs/claim_ref
lease/id¶
- Required:
no - Shape: ref:
#/$defs/lease_ref
lease/epoch¶
- Required:
no - Shape: integer
lease/requested-ms¶
- Required:
no - Shape: integer
deadline/at¶
- Required:
yes - Shape: string
causal/context¶
- Required:
yes - Shape: ref:
causal-context.v1.schema.json
Definition Semantics¶
$defs.ref¶
- Shape: string
$defs.interface_ref¶
- Shape: string
$defs.claim_ref¶
- Shape: string
$defs.lease_ref¶
- Shape: string