Skip to content
Console
Menu

Generated Assets

Workflows

Getting Started

Authentication

KV Store

Create an usage reservation

Reserves usage before the work starts.

Reserves usage before the work starts. Refused with PLAN_LIMIT_REACHED (spend limit, no payment method) or INVALID_STATE (suspended) only while enforcement is on; while it is dark the reservation is granted and the refusal is recorded.

  • Path POST https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/usage_reservations
  • Scope billing:metering:write
  • Effect write — a successful call changes state.
  • Collection usage_reservations

#Request

FieldTypeWhat it is
parentstringThe environment to create in. Required.
usage_reservationUsageReservationThe reservation. Required.

#UsageReservation

FieldTypeWhat it is
namestringorgs/{org}/projects/{project}/envs/{env}/usage_reservations/{usage_reservation}.
metaResourceMetaResource metadata.
subjectSubjectWho uses it. Required.
subject_proofstringThe acting end user's access token, required on every reserve: Money proves the subject itself, fresh, with the caller's own key (auth:sessions:verify) or the merchant's configured issuer. Never stored. A raw id is refused with PERMISSION_DENIED (reason subject_unverified). Required.
actor_proofstringFor a customer organization: the token of the acting user, whose membership of the organization is checked fresh. The subject is Sylphx Auth's bare organization id (acme), never a resource name. Never stored.
meterstringThe meter's lookup key. Required.
max_quantityint64The most the work may use, in the meter's base unit. Required.
ttldurationHow long the hold lasts, at most 600s; default 600s.

#ResourceMeta

FieldTypeWhat it is
labelsmap<string, string>Caller-writable, indexed labels (AIP-122 label rules).
annotationsmap<string, string>Caller-writable, unindexed annotations.
display_namestringCaller-writable human-readable name.

#Subject

FieldTypeWhat it is
end_userstringAn end user's id (Sylphx Auth, or the app's own OIDC issuer). One of the kind group.
customer_organizationstringA customer organization's id. One of the kind group.

#Response

FieldTypeWhat it is
namestringorgs/{org}/projects/{project}/envs/{env}/usage_reservations/{usage_reservation}.
uidstringures_<cell><ulid>; never reused. Output only.
metaResourceMetaResource metadata.
subjectSubjectWho uses it. Required.
subject_proofstringThe acting end user's access token, required on every reserve: Money proves the subject itself, fresh, with the caller's own key (auth:sessions:verify) or the merchant's configured issuer. Never stored. A raw id is refused with PERMISSION_DENIED (reason subject_unverified). Required.
actor_proofstringFor a customer organization: the token of the acting user, whose membership of the organization is checked fresh. The subject is Sylphx Auth's bare organization id (acme), never a resource name. Never stored.
meterstringThe meter's lookup key. Required.
max_quantityint64The most the work may use, in the meter's base unit. Required.
ttldurationHow long the hold lasts, at most 600s; default 600s.
granted_quantityint64What was granted: at most max_quantity, less under headroom. Output only.
statestringheld, settled, or released. Output only.
expire_timetimestampWhen the hold ends. Output only.
dark_refusalstringWhile enforcement is dark: why it would have been refused (spend_limit_reached, no_payment_method, account_suspended); empty otherwise. Output only.

#ResourceMeta

FieldTypeWhat it is
generationint64Increases by one on every change to spec. Output only.
etagstringStrong ETag (AIP-154): changes on any change to spec, status, or metadata. Send it back as If-Match or etag to make Update and Delete conditional; a mismatch fails with ABORTED / 409 ETAG_MISMATCH. Output only.
create_timetimestampWhen the Resource was created. Output only.
update_timetimestampWhen the Resource last changed. Output only.
delete_timetimestampSet while the Resource is being deleted. Output only.
labelsmap<string, string>Caller-writable, indexed labels (AIP-122 label rules).
annotationsmap<string, string>Caller-writable, unindexed annotations.
display_namestringCaller-writable human-readable name.
creatorstringThe principal that created the Resource. Output only.

#Subject

FieldTypeWhat it is
end_userstringAn end user's id (Sylphx Auth, or the app's own OIDC issuer). One of the kind group.
customer_organizationstringA customer organization's id. One of the kind group.

#Errors

Every error arrives in the body Errors describes.

#Examples

curl -X POST "https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/usage_reservations" \
  -H "Authorization: Bearer $SYLPHX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"max_quantity":1,"meter":"…","subject":{},"subject_proof":"…"}'