ObjectZoneCreateRequest zone.object-zone-create-request@1

Generated at from openvibe-contracts v0.97.0 and openvibe-sdk v0.26.0.

Version
1.0.0
Owner
zone
Visibility
public
Status
planned
Compatibility
backward
Decision
ADR-031
Schema
https://openvibe.network/contracts/zone/object-zone-create-request.v1.json

zone.object-zone-create-request@1 (PLANNED; ADR-031 amendment 2026-10-02): the body of POST /api/v1/projects/{project_id}/zones on OpenVibe.Zone, sent with an Idempotency-Key header. The answer is 201 with a zone.object-zone@1 in state provisioning or active. A name held by a zone of that environment in state provisioning or active answers 409 zone.name_taken, and one held by a zone in state deleting or deleted answers 409 zone.name_retired, because a name belongs to one zone for ever; and going over the project's zones quota answers 403 zone.quota_exceeded. `default` cannot be requested, because Zone creates that zone with the environment.

Fields

FieldTypeRequiredDescriptionConstraints
envenumyes
  • one of "sandbox", "production"
namestringyes
  • pattern ^[a-z0-9]+(-[a-z0-9]+)*$
  • minLength 3
  • maxLength 63
descriptionstring | null
  • maxLength 200
quota_bytesinteger | null
  • minimum 1

Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

Valid: minimal
{
  "env": "sandbox",
  "name": "scratch"
}
Valid: named-with-quota
{
  "env": "production",
  "name": "agent-artifacts",
  "description": "Run outputs",
  "quota_bytes": 5368709120
}
Rejected: double-hyphen
{
  "env": "production",
  "name": "my--zone"
}
Rejected: public-access
{
  "env": "production",
  "name": "scratch",
  "access": "public"
}
Rejected: reserved-default
{
  "env": "production",
  "name": "default"
}
Rejected: too-short
{
  "env": "production",
  "name": "ab"
}
Rejected: unknown-env
{
  "env": "staging",
  "name": "scratch"
}

Validate

const contracts = require('openvibe-contracts');
contracts.validate('zone.object-zone-create-request@1', value);   // { valid, errors: [{ path, message }] }