Decide Registry Change

POST
/v1/admin/registry-changes/{registry_change_id}/approvals

Not available yet. This operation is part of the published contract and answers 501 not_implemented until it is built. The request and response shapes below are final for this contract version.

Approve or reject. The author cannot approve their own change.

Authorization

HTTPBearer
headerAuthorizationBearer <token>

Bearer credential. API keys look like sqk_<geo>_<key_id>_<secret>: treat them as opaque and never put one in a browser. Older keys without the geo part stay valid until rotated. Find a geo's endpoints through GET /.well-known/sparq-discovery before sending a key.

Path Parameters

registry_change_id*Registry Change Id
Formatuuid

Header Parameters

Sparq-Workspace?string

For a person signed in to a console with several workspaces: the workspace this call is for, one of their memberships (listMyMemberships). Without it such a person gets workspace_required (400); a workspace they are not a member of is forbidden. It never grants anything, and other callers' credentials ignore it.

Formatuuid
Idempotency-Key?string

Makes a retry safe: the same key, route and body within 24 hours returns the stored response and the same result id. The same key with a different body or route is idempotency_conflict; while the first request runs, idempotency_in_progress.

Length8 <= length <= 128

Request Body

application/json
  1. body
decision*Decision
Value in"approve""reject"
comment?|null

Response Body

Successful Response

application/json
  1. response

A proposed registry change. The author cannot approve it (maker != checker).

registry_change_id*Registry Change Id
Formatuuid
title*Title
reason*Reason
items*array<||>
status*RegistryChangeStatus
Value in"open""approved""rejected""applied""withdrawn"
created_by*Created By
credential_id*Credential Id
Formatuuid
approvals*array<>
created_at*Created At
Formatdate-time
applied_at*|null
Example Request
curl -X POST 'http://dev-sparq.centralindia.cloudapp.azure.com:8000/v1/admin/registry-changes/497f6eca-6276-4993-bfeb-53cbbbba6f08/approvals' \  -H 'Content-Type: application/json' \  -d '{  "decision": "approve"}'
Example Response
{  "registry_change_id": "dfd97f41-5dc5-439c-8a35-070cb5e03dae",  "title": "string",  "reason": "string",  "items": [    {      "kind": "deployment",      "operation": "create",      "deployment_id": "6ef0ac85-9892-4664-a2a5-58bf2af5a8a6",      "spec": {        "provider": "string",        "deployment": "string",        "model_class": "fast",        "region": "eu",        "retention": "zero_retention_required",        "capabilities": [          "string"        ],        "context_window": 1,        "deprecates_at": "2019-08-24T14:15:22Z"      },      "connection": {        "adapter": "azure_openai",        "model": "string",        "endpoint": "string",        "api_version": "string",        "secret_ref": "string",        "max_classification": "public",        "self_hosted": false      }    }  ],  "status": "open",  "created_by": "string",  "credential_id": "13c40afa-2996-4a0c-b2e9-68fba9462242",  "approvals": [    {      "approver": "string",      "credential_id": "13c40afa-2996-4a0c-b2e9-68fba9462242",      "decision": "approve",      "comment": "string",      "decided_at": "2019-08-24T14:15:22Z"    }  ],  "created_at": "2019-08-24T14:15:22Z",  "applied_at": "2019-08-24T14:15:22Z"}