feat: regenerate api types from production (#51019)

## Summary

- Regenerates `packages/api-types/types/{api-v2,platform}.d.ts` from the
live production OpenAPI specs (via the new `pnpm --filter=api-types run
codegen:prod`), picking up everything that's shipped to production since
the committed types were last regenerated.
- Notably includes `high_availability` on the `available-regions` and
`available-versions` project-creation pre-flight endpoints, which
unblocks the Studio-side wiring in #50902.
- Fixes one collateral typecheck break the regen surfaces: the invoice
schema's `prepaid_credits_applied_cents` field became required, and
`InvoicesSettings.test.tsx`'s mock invoice builder didn't set it.

## Description

`api-v1.d.ts` needed no changes — it was already in sync with
production. `api-v2.d.ts` and `platform.d.ts` pick up unrelated drift
that has landed on production independently of this change (a few new
fields/endpoints), verified against `pnpm api:verify-types` passing
clean and `pnpm typecheck` passing across the whole monorepo.

This PR is intentionally separate from #50902 (the Studio-side High
Availability pre-flight fix) so that PR's diff stays focused on the
actual feature work. #50902 will be rebased once this merges.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Tests**
* Updated the invoice test fixture to default prepaid credits applied to
zero.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: GuptaManan100 <guptamanan100@gmail.com>
This commit is contained in:
Manan Gupta authored and GitHub committed 2026-09-29 17:24:16 +05:30
1 parent 8b8569bd1a
commit 951a22183a
3 files changed
+81

No files matched your search

@@ -59,6 +59,7 @@ const createMockInvoice = (details: Partial<Invoice> = {}): Invoice => ({
payment_attempted: false,
payment_is_processing: false,
period_end: 1_700_000_000,
prepaid_credits_applied_cents: 0,
status: 'draft',
subscription: null,
subtotal: 0,
+4
View File
@@ -1922,6 +1922,8 @@ export interface components {
account_name?: string
/** @description The AWS account ID this PrivateLink share is associated with. */
aws_account_id: string
/** @description The custom DNS name configured on the AWS VPC Lattice resource configuration. */
custom_dns_name: string
/** @description Identifier of the database this PrivateLink share targets - the project ref for the primary, or the read replica identifier. */
database_identifier: string
/**
@@ -2237,6 +2239,8 @@ export interface components {
account_name?: string
/** @description The AWS account ID this PrivateLink share is associated with. */
aws_account_id: string
/** @description The custom DNS name configured on the AWS VPC Lattice resource configuration. */
custom_dns_name: string
/** @description Identifier of the database this PrivateLink share targets - the project ref for the primary, or the read replica identifier. */
database_identifier: string
/**
+76
View File
@@ -2425,6 +2425,23 @@ export interface paths {
patch?: never
trace?: never
}
'/platform/profile/permissions/v2': {
parameters: {
query?: never
header?: never
path?: never
cookie?: never
}
/** Gets the user's role and effective permissions per organization and project */
get: operations['getPermissionsV2']
put?: never
post?: never
delete?: never
options?: never
head?: never
patch?: never
trace?: never
}
'/platform/profile/scoped-access-tokens': {
parameters: {
query?: never
@@ -8951,6 +8968,8 @@ export interface components {
private_link_associations: {
account_name?: string
aws_account_id: string
/** @description The custom DNS name configured on the AWS VPC Lattice resource configuration. */
custom_dns_name: string
/** @description Identifier of the database this PrivateLink share targets - the project ref for the primary, or the read replica identifier. */
database_identifier: string
/**
@@ -9735,6 +9754,7 @@ export interface components {
payment_attempted: boolean
payment_is_processing: boolean
period_end: number
prepaid_credits_applied_cents: number
status: string
subscription: string | null
subtotal: number
@@ -10437,6 +10457,7 @@ export interface components {
}[]
}
OrganizationSlugAvailableVersionsBody: {
high_availability?: boolean
/** @enum {string} */
provider: 'AWS' | 'AWS_K8S' | 'AWS_NIMBUS'
region: string
@@ -15306,6 +15327,20 @@ export interface components {
role?: string
updated_at?: string
}
UserPermissionsResponse_Output: {
organizations: {
permissions: string[]
projects: {
permissions: string[]
ref: string
/** @enum {string} */
role: 'member' | 'readonly' | 'developer' | 'administrator' | 'owner'
}[]
/** @enum {string} */
role: 'member' | 'readonly' | 'developer' | 'administrator' | 'owner'
slug: string
}[]
}
ValidateDestinationBody: {
/** @description Destination configuration */
config:
@@ -17984,6 +18019,27 @@ export interface operations {
'application/json': components['schemas']['SendFeedbackResponse_Output']
}
}
/** @description Unauthorized */
401: {
headers: {
[name: string]: unknown
}
content?: never
}
/** @description Forbidden action */
403: {
headers: {
[name: string]: unknown
}
content?: never
}
/** @description Rate limit exceeded */
429: {
headers: {
[name: string]: unknown
}
content?: never
}
/** @description Failed to send feedback */
500: {
headers: {
@@ -24731,6 +24787,25 @@ export interface operations {
}
}
}
getPermissionsV2: {
parameters: {
query?: never
header?: never
path?: never
cookie?: never
}
requestBody?: never
responses: {
200: {
headers: {
[name: string]: unknown
}
content: {
'application/json': components['schemas']['UserPermissionsResponse_Output']
}
}
}
}
ScopedAccessTokensController_getAccessTokens: {
parameters: {
query?: never
@@ -29754,6 +29829,7 @@ export interface operations {
| '48xlarge_optimized_memory'
| '48xlarge_optimized_cpu'
| '48xlarge_high_memory'
high_availability?: string
organization_slug: string
}
header?: never