diff --git a/apps/studio/components/interfaces/Database/Backups/RestoreToNewProject/RestoreToNewProject.utils.ts b/apps/studio/components/interfaces/Database/Backups/RestoreToNewProject/RestoreToNewProject.utils.ts index 631b7500373..04fc434812d 100644 --- a/apps/studio/components/interfaces/Database/Backups/RestoreToNewProject/RestoreToNewProject.utils.ts +++ b/apps/studio/components/interfaces/Database/Backups/RestoreToNewProject/RestoreToNewProject.utils.ts @@ -56,7 +56,7 @@ export function projectSpecToMonthlyPrice({ } function getComputeHourlyPrice(computeSize: InfraInstanceSize): number { - if (computeSize === 'nano') { + if (computeSize === 'pico' || computeSize === 'nano') { return 0 } diff --git a/apps/studio/components/interfaces/DiskManagement/DiskManagement.types.ts b/apps/studio/components/interfaces/DiskManagement/DiskManagement.types.ts index 8b56b456fb1..e516739f943 100644 --- a/apps/studio/components/interfaces/DiskManagement/DiskManagement.types.ts +++ b/apps/studio/components/interfaces/DiskManagement/DiskManagement.types.ts @@ -30,6 +30,7 @@ export type ComputeInstanceSize = | '16XL' export type InfraInstanceSize = + | 'pico' | 'nano' | 'micro' | 'small' diff --git a/apps/studio/components/interfaces/DiskManagement/DiskManagement.utils.ts b/apps/studio/components/interfaces/DiskManagement/DiskManagement.utils.ts index 8584b821861..162ee824607 100644 --- a/apps/studio/components/interfaces/DiskManagement/DiskManagement.utils.ts +++ b/apps/studio/components/interfaces/DiskManagement/DiskManagement.utils.ts @@ -295,6 +295,7 @@ export const mapComputeSizeNameToAddonVariantId = ( computeSize: ProjectDetail['infra_compute_size'] ): ComputeInstanceAddonVariantId => { return { + pico: 'ci_pico', nano: 'ci_nano', micro: 'ci_micro', small: 'ci_small', diff --git a/apps/studio/components/interfaces/Organization/OAuthApps/PublishAppSidePanel/index.tsx b/apps/studio/components/interfaces/Organization/OAuthApps/PublishAppSidePanel/index.tsx index 560ad3e127d..984c74018f6 100644 --- a/apps/studio/components/interfaces/Organization/OAuthApps/PublishAppSidePanel/index.tsx +++ b/apps/studio/components/interfaces/Organization/OAuthApps/PublishAppSidePanel/index.tsx @@ -166,7 +166,7 @@ const PublishAppSidePanel = ({ website, redirect_uris, scopes, - icon: uploadedIconUrl === undefined ? null : uploadedIconUrl, + icon: uploadedIconUrl, }) } } diff --git a/apps/studio/components/interfaces/Settings/Database/ConnectionPooling/ConnectionPooling.tsx b/apps/studio/components/interfaces/Settings/Database/ConnectionPooling/ConnectionPooling.tsx index ce504bc50c7..51cf386d407 100644 --- a/apps/studio/components/interfaces/Settings/Database/ConnectionPooling/ConnectionPooling.tsx +++ b/apps/studio/components/interfaces/Settings/Database/ConnectionPooling/ConnectionPooling.tsx @@ -104,6 +104,7 @@ export const ConnectionPooling = () => { const defaultPoolSize = poolingOptimizations.poolSize ?? 15 const defaultMaxClientConn = poolingOptimizations.maxClientConn ?? 200 const connectionPoolingUnavailable = pgbouncerConfig?.pool_mode === null + const ignoreStartupParameters = pgbouncerConfig?.ignore_startup_parameters const onSubmit: SubmitHandler> = async (data) => { const { default_pool_size } = data @@ -114,6 +115,7 @@ export const ConnectionPooling = () => { { ref: projectRef, default_pool_size: default_pool_size === null ? undefined : default_pool_size, + ignore_startup_parameters: ignoreStartupParameters ?? '', }, { onSuccess: (data) => { diff --git a/apps/studio/data/database/pgbouncer-config-update-mutation.ts b/apps/studio/data/database/pgbouncer-config-update-mutation.ts index 377eea7b276..0fe0f4819ad 100644 --- a/apps/studio/data/database/pgbouncer-config-update-mutation.ts +++ b/apps/studio/data/database/pgbouncer-config-update-mutation.ts @@ -10,13 +10,14 @@ export type PgbouncerConfigurationUpdateVariables = { ref: string } & Pick< components['schemas']['UpdatePgbouncerConfigBody'], - 'default_pool_size' | 'max_client_conn' + 'default_pool_size' | 'max_client_conn' | 'ignore_startup_parameters' > export async function updatePgbouncerConfiguration({ ref, default_pool_size, max_client_conn, + ignore_startup_parameters, }: PgbouncerConfigurationUpdateVariables) { if (!ref) return console.error('Project ref is required') @@ -25,7 +26,7 @@ export async function updatePgbouncerConfiguration({ body: { default_pool_size, max_client_conn, - ignore_startup_parameters: '', + ignore_startup_parameters, }, }) diff --git a/apps/studio/data/oauth/oauth-app-update-mutation.ts b/apps/studio/data/oauth/oauth-app-update-mutation.ts index 61a3987284d..0978f6f8b82 100644 --- a/apps/studio/data/oauth/oauth-app-update-mutation.ts +++ b/apps/studio/data/oauth/oauth-app-update-mutation.ts @@ -11,7 +11,7 @@ export type OAuthAppUpdateVariables = { slug: string name: string website: string - icon?: string | null + icon?: string scopes?: OAuthScope[] redirect_uris: string[] } @@ -36,7 +36,7 @@ export async function updateOAuthApp({ body: { name, website, - icon: icon as undefined, // Generated type is incorrect an allows for `string | undefined` only, while we need `null` here. + icon, scopes, redirect_uris, }, diff --git a/apps/studio/data/organizations/organization-payment-methods-query.ts b/apps/studio/data/organizations/organization-payment-methods-query.ts index e6350c0ff45..dc59d530506 100644 --- a/apps/studio/data/organizations/organization-payment-methods-query.ts +++ b/apps/studio/data/organizations/organization-payment-methods-query.ts @@ -8,7 +8,7 @@ import type { ResponseError } from 'types' import { organizationKeys } from './keys' export type OrganizationPaymentMethodsVariables = { slug?: string } -export type OrganizationPaymentMethod = components['schemas']['Payment'] +export type OrganizationPaymentMethod = components['schemas']['PaymentsResponse']['data'][0] export async function getOrganizationPaymentMethods( { slug }: OrganizationPaymentMethodsVariables, diff --git a/apps/studio/data/projects/project-detail-query.ts b/apps/studio/data/projects/project-detail-query.ts index cae4dbe7320..67df9283bc2 100644 --- a/apps/studio/data/projects/project-detail-query.ts +++ b/apps/studio/data/projects/project-detail-query.ts @@ -17,7 +17,7 @@ export interface Project extends Omit { * If not we will show ConnectingState and run a polling until it's back online */ postgrestStatus?: 'ONLINE' | 'OFFLINE' - status: components['schemas']['project_status'] + status: components['schemas']['ProjectDetailResponse']['status'] } export async function getProjectDetail({ ref }: ProjectDetailVariables, signal?: AbortSignal) { diff --git a/apps/studio/data/projects/projects-query.ts b/apps/studio/data/projects/projects-query.ts index 42e5aae08a7..12f01b7036d 100644 --- a/apps/studio/data/projects/projects-query.ts +++ b/apps/studio/data/projects/projects-query.ts @@ -12,9 +12,7 @@ export type ProjectsVariables = { ref?: string } -export type ProjectInfo = components['schemas']['ProjectInfo'] & { - status: components['schemas']['project_status'] -} +export type ProjectInfo = components['schemas']['ProjectInfo'] export async function getProjects(signal?: AbortSignal) { const { data, error } = await get('/platform/projects', { signal }) diff --git a/apps/studio/lib/constants/infrastructure.ts b/apps/studio/lib/constants/infrastructure.ts index 14bfdb0db6e..cbbd4693372 100644 --- a/apps/studio/lib/constants/infrastructure.ts +++ b/apps/studio/lib/constants/infrastructure.ts @@ -49,7 +49,7 @@ export const PROVIDERS = { } as const export const PROJECT_STATUS: { - [key: string]: components['schemas']['project_status'] + [key: string]: components['schemas']['ProjectDetailResponse']['status'] } = { INACTIVE: 'INACTIVE', ACTIVE_HEALTHY: 'ACTIVE_HEALTHY', diff --git a/packages/api-types/types/api.d.ts b/packages/api-types/types/api.d.ts index d2f9189100f..d2641b382cb 100644 --- a/packages/api-types/types/api.d.ts +++ b/packages/api-types/types/api.d.ts @@ -677,6 +677,30 @@ export interface paths { patch?: never trace?: never } + '/v1/projects/{ref}/database/migrations': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + /** + * [Beta] List applied migration versions + * @description Only available to selected partner OAuth apps + */ + get: operations['v1-list-migrations'] + put?: never + /** + * [Beta] Apply a database migration + * @description Only available to selected partner OAuth apps + */ + post: operations['v1-apply-a-migration'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } '/v1/projects/{ref}/database/query': { parameters: { query?: never @@ -1619,6 +1643,7 @@ export interface components { branch_name: string /** @enum {string} */ desired_instance_size?: + | 'pico' | 'nano' | 'micro' | 'small' @@ -2632,6 +2657,10 @@ export interface components { /** @description Database version */ version: string } + V1ListMigrationsResponse: { + name?: string + version: string + }[] V1OrganizationMemberResponse: { email?: string mfa_enabled: boolean @@ -4711,6 +4740,74 @@ export interface operations { } } } + 'v1-list-migrations': { + parameters: { + query?: never + header?: never + path: { + ref: string + } + cookie?: never + } + requestBody?: never + responses: { + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': components['schemas']['V1ListMigrationsResponse'] + } + } + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Failed to list database migrations */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'v1-apply-a-migration': { + parameters: { + query?: never + header?: never + path: { + ref: string + } + cookie?: never + } + requestBody?: never + responses: { + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': Record + } + } + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Failed to apply database migration */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } 'v1-run-a-query': { parameters: { query?: never diff --git a/packages/api-types/types/platform.d.ts b/packages/api-types/types/platform.d.ts index 22cf13f82ea..25a81227ae5 100644 --- a/packages/api-types/types/platform.d.ts +++ b/packages/api-types/types/platform.d.ts @@ -2765,6 +2765,23 @@ export interface paths { patch?: never trace?: never } + '/platform/projects/{ref}/notifications/advisor/exceptions/{id}': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get?: never + put?: never + post?: never + delete?: never + options?: never + head?: never + /** Updates advisor notification exceptions */ + patch: operations['ProjectAdvisorNotificationsController_updateNotificationExceptions'] + trace?: never + } '/platform/projects/{ref}/pause': { parameters: { query?: never @@ -4032,7 +4049,32 @@ export interface components { result?: Record[] } ApiResponse: { - autoApiService: components['schemas']['AutoApiService'] + autoApiService: { + app: { + id: number + name: string + } + app_config: { + [key: string]: unknown + } + defaultApiKey: string + endpoint: string + id: number + name: string + project: { + /** @description Project ref */ + ref: string + } + /** @enum {string} */ + protocol: 'https' + restUrl: string + service_api_keys: { + api_key_encrypted?: string + name: string + tags: string + }[] + serviceApiKey: string + } } ApproveAuthorizationResponse: { url: string @@ -4098,24 +4140,6 @@ export interface components { title: string }[] } - AutoApiService: { - app: { - id?: number - name?: string - } - app_config: Record - defaultApiKey: string - endpoint: string - id: number - name: string - project: { - ref?: string - } - protocol: string - restUrl: string - service_api_keys: components['schemas']['ServiceApiKey'][] - serviceApiKey: string - } AvailableAddonResponse: { name: string type: components['schemas']['ProjectAddonType'] @@ -4301,36 +4325,47 @@ export interface components { role_id: number role_scoped_projects?: string[] } - CreateNotificationExceptionsDto: { + CreateNotificationExceptionsBodyDto: { exceptions: { /** Format: uuid */ assigned_to?: string is_disabled: boolean /** @enum {string} */ - lint_category?: 'ALL' | 'PERFORMANCE' | 'SECURITY' - /** @enum {string} */ + lint_category?: 'PERFORMANCE' | 'SECURITY' + lint_metadata?: { + [key: string]: unknown + } lint_name?: - | 'ssl_not_enforced' - | 'network_restrictions_not_set' - | 'pitr_not_enabled' - | 'password_requirements_min_length' - | 'unindexed_foreign_keys' - | 'auth_users_exposed' - | 'auth_rls_initplan' - | 'no_primary_key' - | 'unused_index' - | 'multiple_permissive_policies' - | 'policy_exists_rls_disabled' - | 'rls_enabled_no_policy' - | 'duplicate_index' - | 'security_definer_view' - | 'function_search_path_mutable' - | 'rls_disabled_in_public' - | 'extension_in_public' - | 'rls_references_user_metadata' - | 'materialized_view_in_api' - | 'foreign_table_in_api' - | 'unsupported_reg_types' + | ( + | 'ssl_not_enforced' + | 'network_restrictions_not_set' + | 'pitr_not_enabled' + | 'password_requirements_min_length' + | 'unindexed_foreign_keys' + | 'auth_users_exposed' + | 'auth_rls_initplan' + | 'no_primary_key' + | 'unused_index' + | 'multiple_permissive_policies' + | 'policy_exists_rls_disabled' + | 'rls_enabled_no_policy' + | 'duplicate_index' + | 'security_definer_view' + | 'function_search_path_mutable' + | 'rls_disabled_in_public' + | 'extension_in_public' + | 'rls_references_user_metadata' + | 'materialized_view_in_api' + | 'foreign_table_in_api' + | 'unsupported_reg_types' + | 'auth_otp_long_expiry' + | 'auth_otp_short_length' + | 'auth_leaked_password_protection' + | 'auth_insufficient_mfa_options' + | 'auth_password_policy_missing' + | 'no_backup_admin' + ) + | string note?: string }[] } @@ -4346,6 +4381,9 @@ export interface components { /** Format: uuid */ last_updated_by: string lint_category: string | null + lint_metadata?: { + [key: string]: unknown + } lint_name: string | null note: string | null project_ref: string @@ -4658,22 +4696,6 @@ export interface components { CustomSupabaseInternalRequests: { ami: components['schemas']['AmiSearchOptions'] } - /** @enum {string} */ - database_status: - | 'ACTIVE_HEALTHY' - | 'ACTIVE_UNHEALTHY' - | 'COMING_UP' - | 'GOING_DOWN' - | 'INIT_FAILED' - | 'REMOVED' - | 'RESTORING' - | 'UNKNOWN' - | 'INIT_READ_REPLICA' - | 'INIT_READ_REPLICA_FAILED' - | 'RESTARTING' - | 'RESIZING' - /** @enum {string} */ - database_type: 'PRIMARY' | 'READ_REPLICA' DatabaseDetailResponse: { /** @enum {string} */ cloud_provider: 'AWS' | 'AWS_K8S' | 'FLY' @@ -4722,6 +4744,7 @@ export interface components { } /** @enum {string} */ DbInstanceSize: + | 'pico' | 'nano' | 'micro' | 'small' @@ -5543,6 +5566,9 @@ export interface components { /** Format: uuid */ last_updated_by: string lint_category: string | null + lint_metadata?: { + [key: string]: unknown + } lint_name: string | null note: string | null project_ref: string @@ -5662,7 +5688,69 @@ export interface components { website: string } OrganizationProjectsResponse: { - projects: components['schemas']['ProjectWithDatabases'][] + projects: { + databases: { + cloud_provider: string + disk_last_modified_at?: string + disk_throughput_mbps?: number + /** @enum {string} */ + disk_type?: 'gp3' | 'io2' + disk_volume_size_gb?: number + identifier: string + /** @enum {string} */ + infra_compute_size?: + | 'pico' + | 'nano' + | 'micro' + | 'small' + | 'medium' + | 'large' + | 'xlarge' + | '2xlarge' + | '4xlarge' + | '8xlarge' + | '12xlarge' + | '16xlarge' + region: string + /** @enum {string} */ + status: + | 'ACTIVE_HEALTHY' + | 'ACTIVE_UNHEALTHY' + | 'COMING_UP' + | 'GOING_DOWN' + | 'INIT_FAILED' + | 'REMOVED' + | 'RESTORING' + | 'UNKNOWN' + | 'INIT_READ_REPLICA' + | 'INIT_READ_REPLICA_FAILED' + | 'RESTARTING' + | 'RESIZING' + /** @enum {string} */ + type: 'PRIMARY' | 'READ_REPLICA' + }[] + is_branch: boolean + name: string + ref: string + region: string + /** @enum {string} */ + status: + | 'INACTIVE' + | 'ACTIVE_HEALTHY' + | 'ACTIVE_UNHEALTHY' + | 'COMING_UP' + | 'UNKNOWN' + | 'GOING_DOWN' + | 'INIT_FAILED' + | 'REMOVED' + | 'RESTORING' + | 'UPGRADING' + | 'PAUSING' + | 'RESTORE_FAILED' + | 'RESTARTING' + | 'PAUSE_FAILED' + | 'RESIZING' + }[] } OrganizationResponse: { billing_email: string | null @@ -5709,6 +5797,7 @@ export interface components { id: number /** @enum {string} */ infra_compute_size?: + | 'pico' | 'nano' | 'micro' | 'small' @@ -5830,21 +5919,19 @@ export interface components { max_days_till_restore_disabled: number remaining_days_till_restore_disabled: number | null } - Payment: { - card?: components['schemas']['PaymentMethodCard'] - created: number - id: string - is_default: boolean - type: string - } - PaymentMethodCard: { - brand: string - exp_month: number - exp_year: number - last4: string - } PaymentsResponse: { - data: components['schemas']['Payment'][] + data: { + card?: { + brand: string + exp_month: number + exp_year: number + last4: string + } + created: number + id: string + is_default: boolean + type: string + }[] defaultPaymentMethodId: string | null } PgbouncerConfigResponse: { @@ -6179,23 +6266,6 @@ export interface components { username: string } /** @enum {string} */ - project_status: - | 'INACTIVE' - | 'ACTIVE_HEALTHY' - | 'ACTIVE_UNHEALTHY' - | 'COMING_UP' - | 'UNKNOWN' - | 'GOING_DOWN' - | 'INIT_FAILED' - | 'REMOVED' - | 'RESTORING' - | 'UPGRADING' - | 'PAUSING' - | 'RESTORE_FAILED' - | 'RESTARTING' - | 'PAUSE_FAILED' - | 'RESIZING' - /** @enum {string} */ ProjectAddonPricingInterval: 'monthly' | 'hourly' ProjectAddonsResponse: { available_addons: components['schemas']['AvailableAddonResponse'][] @@ -6243,19 +6313,6 @@ export interface components { release_channel: components['schemas']['ReleaseChannel'] version: string } - ProjectDatabase: { - cloud_provider: string - disk_last_modified_at?: string - disk_throughput_mbps?: number - /** @enum {string} */ - disk_type?: 'gp3' | 'io2' - disk_volume_size_gb?: number - identifier: string - infra_compute_size?: components['schemas']['DbInstanceSize'] - region: string - status: components['schemas']['database_status'] - type: components['schemas']['database_type'] - } ProjectDetailResponse: { cloud_provider: string connectionString: string @@ -6347,23 +6404,6 @@ export interface components { need_pitr: 'critical' | 'warning' | null project: string } - ProjectResponse: { - cloud_provider: string - db_dns_name: string - db_host: string - db_name: string - db_port: string - db_user: string - id: number - inserted_at: string - jwt_secret: string - name: string - ref: string - region: string - services?: components['schemas']['ServiceResponse'][] - ssl_enforced: boolean - status: string - } ProjectSensitivityResponse: { is_sensitive: boolean } @@ -6398,14 +6438,6 @@ export interface components { release_channel: 'internal' | 'alpha' | 'beta' | 'ga' | 'withdrawn' | 'preview' version: string } - ProjectWithDatabases: { - databases: components['schemas']['ProjectDatabase'][] - is_branch: boolean - name: string - ref: string - region: string - status: components['schemas']['project_status'] - } PublicUrlResponse: { publicUrl: string } @@ -6559,29 +6591,28 @@ export interface components { RestartProjectBody: { database_identifier?: string } - RestartServiceRequest: { - database_identifier?: string - region: string - services: ( - | 'adminapi' - | 'api-gateway' - | 'envoy' - | 'functions' - | 'gotrue' - | 'kong' - | 'pgbouncer' - | 'pgsodium' - | 'postgresql' - | 'postgrest' - | 'realtime' - | 'storage' - | 'walg' - | 'autoshutdown' - )[] - source_notification_id?: string - } RestartServicesBody: { - restartRequest: components['schemas']['RestartServiceRequest'] + restartRequest: { + database_identifier?: string + region: string + services: ( + | 'adminapi' + | 'api-gateway' + | 'envoy' + | 'functions' + | 'gotrue' + | 'kong' + | 'pgbouncer' + | 'pgsodium' + | 'postgresql' + | 'postgrest' + | 'realtime' + | 'storage' + | 'walg' + | 'autoshutdown' + )[] + source_notification_id?: string + } } RestoreCancellation: Record RestoreLogicalBackupBody: { @@ -6662,35 +6693,62 @@ export interface components { prevPlan?: string reasons: string[] } - ServiceApiKey: { - api_key_encrypted?: string - name: string - tags: string - } - ServiceApiKeyResponse: { - api_key?: string - api_key_encrypted?: string - name: string - tags: string - } - ServiceResponse: { - app: { - id?: number - name?: string - } - app_config: Record - id: number - name: string - service_api_keys: components['schemas']['ServiceApiKeyResponse'][] - } ServiceVersions: { gotrue?: string postgrest?: string 'supabase-postgres': string } SettingsResponse: { - project: components['schemas']['ProjectResponse'] - services: components['schemas']['ServiceResponse'][] + project: { + cloud_provider: string + db_dns_name: string + db_host: string + db_name: string + db_port: number + db_user: string + id: number + inserted_at: string + jwt_secret: string + name: string + ref: string + region: string + services?: { + app: { + id: number + name: string + } + app_config: { + [key: string]: unknown + } + id: number + name: string + service_api_keys: { + api_key?: string + api_key_encrypted?: string + name: string + tags: string + }[] + }[] + ssl_enforced: boolean + status: string + } + services: { + app: { + id: number + name: string + } + app_config: { + [key: string]: unknown + } + id: number + name: string + service_api_keys: { + api_key?: string + api_key_encrypted?: string + name: string + tags: string + }[] + }[] } SetupIntentResponse: { client_secret: string @@ -6716,7 +6774,9 @@ export interface components { redirectTo?: string } StorageBucketResponse: { + allowed_mime_types?: string[] created_at: string + file_size_limit?: number id: string name: string owner: string @@ -6741,7 +6801,9 @@ export interface components { StorageObject: { bucket_id: string buckets: { + allowed_mime_types?: string[] created_at: string + file_size_limit?: number id: string name: string owner: string @@ -6799,13 +6861,12 @@ export interface components { target_project_id: number updated_at: string | null } - TaxId: { - country: string - type: string - value: string - } TaxIdResponse: { - tax_id: components['schemas']['TaxId'] | null + tax_id: { + country: string + type: string + value: string + } | null } TelemetryCallFeatureFlagsResponseDto: { [key: string]: unknown @@ -7179,6 +7240,12 @@ export interface components { /** @enum {string} */ status: 'new' | 'seen' | 'archived' } + UpdateNotificationExceptionParamsDto: { + /** Format: uuid */ + id: string + /** @description Project ref */ + ref: string + } UpdateNotificationsBodyV1: { ids: string[] } @@ -7341,8 +7408,8 @@ export interface components { message: string } UpdateStorageBucketBody: { - allowed_mime_types?: string[] - file_size_limit?: number + allowed_mime_types?: string[] | null + file_size_limit?: number | null public: boolean } UpdateStorageConfigBody: { @@ -7715,7 +7782,6 @@ export interface operations { query?: never header?: never path: { - /** @description Project ref */ ref: string } cookie?: never @@ -7754,7 +7820,6 @@ export interface operations { query?: never header?: never path: { - /** @description Project ref */ ref: string } cookie?: never @@ -7793,7 +7858,6 @@ export interface operations { query?: never header?: never path: { - /** @description Project ref */ ref: string } cookie?: never @@ -7832,7 +7896,6 @@ export interface operations { query?: never header?: never path: { - /** @description Project ref */ ref: string } cookie?: never @@ -8017,7 +8080,6 @@ export interface operations { header?: never path: { id: string - /** @description Project ref */ ref: string } cookie?: never @@ -10636,7 +10698,6 @@ export interface operations { query?: never header?: never path: { - /** @description Organization slug */ slug: string } cookie?: never @@ -10671,7 +10732,6 @@ export interface operations { query?: never header?: never path: { - /** @description Organization slug */ slug: string } cookie?: never @@ -10708,7 +10768,6 @@ export interface operations { query?: never header?: never path: { - /** @description Organization slug */ slug: string } cookie?: never @@ -10784,7 +10843,6 @@ export interface operations { query?: never header?: never path: { - /** @description Organization slug */ slug: string } cookie?: never @@ -10848,7 +10906,6 @@ export interface operations { query?: never header?: never path: { - /** @description Organization slug */ slug: string } cookie?: never @@ -10883,7 +10940,6 @@ export interface operations { query?: never header?: never path: { - /** @description Organization slug */ slug: string } cookie?: never @@ -10922,7 +10978,6 @@ export interface operations { query?: never header?: never path: { - /** @description Organization slug */ slug: string } cookie?: never @@ -13371,7 +13426,6 @@ export interface operations { } header?: never path: { - /** @description Project ref */ ref: string } cookie?: never @@ -15159,12 +15213,11 @@ export interface operations { | 'total_storage_patch_requests' | 'total_logdrain_egress' endDate: string - interval: string + interval?: string startDate: string } header?: never path: { - /** @description Project ref */ ref: string } cookie?: never @@ -15507,7 +15560,6 @@ export interface operations { } header?: never path: { - /** @description Project ref */ ref: string } cookie?: never @@ -15625,7 +15677,7 @@ export interface operations { } requestBody: { content: { - 'application/json': components['schemas']['CreateNotificationExceptionsDto'] + 'application/json': components['schemas']['CreateNotificationExceptionsBodyDto'] } } responses: { @@ -15674,6 +15726,37 @@ export interface operations { } } } + ProjectAdvisorNotificationsController_updateNotificationExceptions: { + parameters: { + query?: never + header?: never + path: { + id: string + ref: string + } + cookie?: never + } + requestBody: { + content: { + 'application/json': components['schemas']['UpdateNotificationExceptionParamsDto'] + } + } + responses: { + 200: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Failed to update advisor notification exceptions */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } PauseController_pauseProject: { parameters: { query?: never @@ -16280,7 +16363,6 @@ export interface operations { query?: never header?: never path: { - /** @description Project ref */ ref: string } cookie?: never