Provision Resource
POST
/v1/installations/{installationId}/resourcesProvisions a Resource. This is a synchronous operation but the provisioning can be asynchronous as the Resource does not need to be immediately available however the secrets must be known ahead of time.
/v1/installations/{installationId}/resources
const response = await fetch('/v1/installations/installationId/resources', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_ACCESS_TOKEN', 'Content-Type': 'application/json', }, body: JSON.stringify({ "productId": "example_id", "name": "Example Name", "metadata": "value", "billingPlanId": "example_id", "externalId": "example_id", "protocolSettings": { "experimentation": { "edgeConfigId": "example_id", "globalConfigId": "example_id" }, "authentication": { "appUrls": [ { "url": "https://example.com", "target": "development" } ] } } }),});
const data = await response.json();console.log(data);Response
{ "id": "icfg_1234567890", "productId": "example_id", "protocolSettings": { "experimentation": { "edgeConfigSyncingEnabled": "true", "edgeConfigId": "example_id", "globalConfigId": "example_id", "globalConfigSyncingEnabled": "true", "edgeConfigTokenId": "example_id" }, "authentication": { "appUrls": [ { "url": "https://example.com", "target": "development" } ] } }, "billingPlan": { "id": "icfg_1234567890", "type": "prepayment", "name": "Example Name", "scope": "installation", "description": "string", "paymentMethodRequired": "true", "preauthorizationAmount": "123", "initialCharge": "string", "minimumAmount": "100.00", "maximumAmount": "100.00", "maximumAmountAutoPurchasePerPeriod": "100.00", "cost": "string", "details": [ { "label": "string", "value": "string" } ], "highlightedDetails": [ { "label": "string", "value": "string" } ], "quote": [ { "line": "string", "amount": "100.00" } ], "effectiveDate": "2024-01-01T00:00:00Z", "disabled": "true" }, "name": "Example Name", "metadata": "value", "status": "ready", "notification": { "level": "info", "title": "string", "message": "string", "href": "https://example.com" }, "secrets": [ { "name": "Example Name", "value": "string", "prefix": "string", "environmentOverrides": { "development": "string", "preview": "string", "production": "string" } } ]}Errors
{ "error": { "code": "validation_error", "message": "string", "user": { "message": "string", "url": "https://example.com" }, "fields": [ { "key": "string", "message": "string" } ] }}AuthorizationUser Authentication
Default authentication mechanism
installationIdstringRequired
X-Vercel-AuthstringOptional
The auth style used in the request (system, user, etc)
Idempotency-KeystringOptional
A unique key to identify a request across multiple retries
This endpoint expects an object.
productIdstringRequired
The partner-specific ID/slug of the product. Example: "redis"
namestringRequired
User-inputted name for the resource.
metadataobjectRequired
User-inputted metadata based on the registered metadata schema.
billingPlanIdstringRequired
Partner-provided billing plan. Example: "pro200"
externalIdstringOptional
An partner-provided identifier used to indicate the source of the resource provisioning. In the Deploy Button flow, the
externalId will equal the external-id query parameter.protocolSettingsobjectOptional
200Return the newly provisioned resource
idstringRequired
The partner-specific ID of the resource
productIdstringRequired
The partner-specific ID/slug of the product. Example: "redis"
protocolSettingsobjectOptional
billingPlanobjectOptional
The billing plan for the resource. If not set, the resource is billed on installation level.
namestringRequired
User-inputted name for the resource.
metadataobjectRequired
User-inputted metadata based on the registered metadata schema.
statusstringRequired
notificationobjectOptional
Resource's active notification. Example: { "level": "warn", "title": "Database is nearing maximum planned size" }
secretsarrayRequired
400Input has failed validation
errorobjectRequired
403Operation failed because the authentication is not allowed to perform this operation
errorobjectRequired
409Operation failed because of a conflict with the current state of the resource
errorobjectRequired