object — Additional properties rejected
| Field | Required at this level | Type | Description and constraints |
|---|---|---|---|
id |
Yes | string |
Pattern: ^[a-z0-9][a-z0-9_-]{0,63}$ |
version |
Yes | string |
Pattern: ^[a-z0-9][a-z0-9_-]{0,63}$ |
name |
Yes | string |
Min length: 1; Max length: 80 |
description |
Yes | string |
Min length: 1; Max length: 500 |
price |
Yes | object |
Additional properties rejected |
price.currency |
Yes | Constant USD |
— |
price.amountMinor |
Yes | string |
Exact USD minor units as a string. Preview terms, not an accepted invoice. Pattern: ^(0|[1-9][0-9]{0,17})$ |
price.billingBasis |
Yes | string |
Allowed: ONE_TIME, MONTHLY, ANNUAL |
features |
Yes | Array of string |
Min items: 1; Max items: 7; Items must be unique |
limits |
Yes | object |
Additional properties rejected |
limits.projects |
Yes | integer |
Minimum: 1; Maximum: 100000 |
limits.teamSeats |
Yes | integer |
Minimum: 1; Maximum: 100000 |
limits.analyses |
Yes | integer |
Minimum: 1; Maximum: 100000 |
limits.analysisPeriod |
Yes | string |
Must match billingBasis. These are preview allowances, not current tenant entitlements. Allowed: ONE_TIME, MONTHLY, ANNUAL |
limits.monitoringIntervalMinutes |
Yes | At least one of: integer; null |
— |
overagePolicy |
Yes | Constant NO_AUTOMATIC_OVERAGE |
— |
cancellationTerms |
Yes | string |
Min length: 1; Max length: 1000 |
Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.
Exact definition: #/components/schemas/WorkspacePlan in the OpenAPI contract.