LinkCompute link.compute@1
Generated at from
openvibe-contracts v0.419.0 and
openvibe-sdk v0.161.0.
- Version
- 1.0.0
- Owner
- network
- Visibility
- public
- Status
- active
- Compatibility
- backward
- Schema
https://openvibe.network/contracts/link/compute.v1.json
Where a person's work can run. Only ready candidates may be picked; a missing rental quote is never a price.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
sources | https://openvibe.network/contracts/link/compute.v1.json#/$defs/source | yes | ||
candidates | https://openvibe.network/contracts/link/compute.v1.json#/$defs/candidate | yes |
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: personal-and-coming-soon
{
"sources": [
{
"kind": "personal",
"name": "Your Link machines",
"status": "ready",
"reason": null
},
{
"kind": "cloud",
"name": "OpenVibe cloud machines",
"status": "coming_soon",
"reason": "No cloud pool is accepting jobs yet."
},
{
"kind": "exchange",
"name": "Exchange GPU rentals",
"status": "coming_soon",
"reason": "A live quote is required.",
"price": null
},
{
"kind": "community",
"name": "Community machines",
"status": "coming_soon",
"reason": "Shared placement is being connected."
}
],
"candidates": [
{
"id": "dev_01J0000000000000000000000",
"kind": "personal",
"name": "Studio",
"status": "ready",
"reason": null,
"price": {
"amount_usd": 0,
"unit": "hour"
}
}
]
}Rejected: unknown-source
{
"sources": [
{
"kind": "invalid",
"name": "Unknown",
"status": "ready",
"reason": null
}
],
"candidates": []
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('link.compute@1', value); // { valid, errors: [{ path, message }] }