OpenVibe.Zone API

Generated at from openvibe-contracts v0.177.0 and openvibe-sdk v0.44.0.

Server https://openvibe.zone. 9 routes performing 8 capabilities. OpenAPI 3.1 document.

GET /api/v1/projects/{project_id}/zones

List a project's object zones: GET /api/v1/projects/:project_id/zones, filtered by env and paged.

Capabilities
zone.zone.list
Visibility
public
Parameters
  • project_id (path, required)
  • env (query)
  • include_deleted (query) — Also list zones in state deleted. Default false.
  • limit (query) — Items per page, 1 to 200. A query string carries it as a string, which must name the same range.
  • cursor (query) — next_cursor of the previous page.
Input
zone.object-zone-list-query@1
Response
application/json zone.object-zone-list@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>zone.zone.list</strong> (public): List a project&#39;s object zones: GET /api/v1/projects/:project_id/zones, filtered by env and paged. Callers: a developer app of the project with this capability, or a person who administers the project, signed in on openvibe.zone.</p>

POST /api/v1/projects/{project_id}/zones

Create a named object zone in one environment of a project.

Capabilities
zone.zone.create
Visibility
public
Parameters
  • project_id (path, required)
Request body
application/json zone.object-zone-create-request@1
Response
application/json zone.object-zone@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>zone.zone.create</strong> (public): Create a named object zone in one environment of a project. POST /api/v1/projects/:project_id/zones with an Idempotency-Key header answers 201 with the zone. A name held by a provisioning or active zone of that environment answers 409 zone.name_taken, a name held by a deleting or deleted one answers 409 zone.name_retired, and going over the project&#39;s zones quota answers 403 zone.quota_exceeded. Zone provisions the zone in Media before it becomes active. Callers: a developer app of the project with this capability, or a person who administers the project, signed in on openvibe.zone.</p>

GET /api/v1/resources

Read OpenVibe.Zone's resource index (ADR-048): GET /api/v1/resources lists the zones Zone owns as a page of common.resource-summary@1 (common.resource-list-result@1, kind zone.object-zone, id zon_<ULI

Capabilities
zone.resource.read
Visibility
first-party
Response
application/json common.resource-list-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>zone.resource.read</strong> (first-party): Read OpenVibe.Zone&#39;s resource index (ADR-048): GET /api/v1/resources lists the zones Zone owns as a page of common.resource-summary@1 (common.resource-list-result@1, kind zone.object-zone, id zon_&lt;ULID&gt;, with the project_id of the Network project that owns it), and GET /api/v1/resources/:ovrn reads one. Every authority serves these for OpenVibe.Services to fan out and merge.</p>

GET /api/v1/resources/{ovrn}

Read OpenVibe.Zone's resource index (ADR-048): GET /api/v1/resources lists the zones Zone owns as a page of common.resource-summary@1 (common.resource-list-result@1, kind zone.object-zone, id zon_<ULI

Capabilities
zone.resource.read
Visibility
first-party
Parameters
  • ovrn (path, required)
Response
application/json common.resource-list-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>zone.resource.read</strong> (first-party): Read OpenVibe.Zone&#39;s resource index (ADR-048): GET /api/v1/resources lists the zones Zone owns as a page of common.resource-summary@1 (common.resource-list-result@1, kind zone.object-zone, id zon_&lt;ULID&gt;, with the project_id of the Network project that owns it), and GET /api/v1/resources/:ovrn reads one. Every authority serves these for OpenVibe.Services to fan out and merge.</p>

POST /api/v1/resources/control

Control a zone through OpenVibe.Zone's control API (ADR-048, plan T13 step 10): POST /api/v1/resources/control takes one common.resource-control-request@1 naming a zone.object-zone by its OVRN, from a

Capabilities
zone.resource.control
Visibility
first-party
Request body
application/json common.resource-control-request@1
Response
application/json common.resource-control-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>zone.resource.control</strong> (first-party): Control a zone through OpenVibe.Zone&#39;s control API (ADR-048, plan T13 step 10): POST /api/v1/resources/control takes one common.resource-control-request@1 naming a zone.object-zone by its OVRN, from a first-party service (OpenVibe.Services) acting for the person in on_behalf_of, who must be an admin or owner of the project. Action: delete (recursive: the zone answers NoSuchBucket at once, Media tombstones and purges every object with no restore window, and the name is retired). The default zone, and a zone holding an object under a retention hold, are refused. Any other action is refused unsupported. dry_run decides and explains without applying. The first answer per (caller, project, idempotency_key) is kept and returned for a repeat; the same key with another request is refused. Answers common.resource-control-result@1.</p>

GET /api/v1/zones/{zone_id}

Read one object zone: GET /api/v1/zones/:zone_id.

Capabilities
zone.zone.read
Visibility
public
Parameters
  • zone_id (path, required)
Response
application/json zone.object-zone@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>zone.zone.read</strong> (public): Read one object zone: GET /api/v1/zones/:zone_id. Callers: a developer app of the project with this capability, or a person who administers the project, signed in on openvibe.zone.</p>

PATCH /api/v1/zones/{zone_id}

Change an object zone's quota_bytes or description: PATCH /api/v1/zones/:zone_id.

Capabilities
zone.zone.manage
Visibility
public
Parameters
  • zone_id (path, required)
Request body
application/json zone.object-zone-update-request@1
Response
application/json zone.object-zone@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>zone.zone.manage</strong> (public): Change an object zone&#39;s quota_bytes or description: PATCH /api/v1/zones/:zone_id. Name, environment and access are immutable. A quota change takes effect once Media acknowledges it. Callers: a developer app of the project with this capability, or a person who administers the project, signed in on openvibe.zone.</p>

DELETE /api/v1/zones/{zone_id}

Delete an object zone: DELETE /api/v1/zones/:zone_id answers 202 with the zone in state deleting.

Capabilities
zone.zone.delete
Visibility
public
Parameters
  • zone_id (path, required)
  • recursive (query) — Delete the zone's objects too. Default false.
Input
zone.object-zone-delete-query@1
Response
application/json zone.object-zone@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>zone.zone.delete</strong> (public): Delete an object zone: DELETE /api/v1/zones/:zone_id answers 202 with the zone in state deleting. A zone with objects needs recursive=true (else 409 zone.not_empty), a zone with a held object answers 409 zone.held, and the default zone answers 409 zone.default. Media tombstones every object at once, with no restore window, and erases every copy within 24 hours. A hold placed after the request delays only that object&#39;s purge. The name is retired, never reused. Callers: a developer app of the project with this capability, or a person who administers the project, signed in on openvibe.zone.</p>

GET /api/v1/zones/{zone_id}/usage

Read an object zone's usage: GET /api/v1/zones/:zone_id/usage.

Capabilities
zone.usage.read
Visibility
public
Parameters
  • zone_id (path, required)
Response
application/json zone.object-zone-usage@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>zone.usage.read</strong> (public): Read an object zone&#39;s usage: GET /api/v1/zones/:zone_id/usage. It answers Media&#39;s live-object snapshot and the month&#39;s hourly rollups. Zone never counts. Callers: a developer app of the project with this capability, or a person who administers the project, signed in on openvibe.zone.</p>