From cc201f11bd86212ae877b939c32f65584fc999fd Mon Sep 17 00:00:00 2001 From: "kong[bot]" <123129154+kong[bot]@users.noreply.github.com> Date: Tue, 1 Sep 2026 06:45:07 +0000 Subject: [PATCH] chore(api): sync OpenAPI contract --- internal/apiclient/client.gen.go | 2785 +++++++++++++++++++++++++----- openapi/openapi.yaml | 1154 +++++++++++-- 2 files changed, 3378 insertions(+), 561 deletions(-) diff --git a/internal/apiclient/client.gen.go b/internal/apiclient/client.gen.go index 8eb0f96..c541173 100644 --- a/internal/apiclient/client.gen.go +++ b/internal/apiclient/client.gen.go @@ -17,6 +17,7 @@ import ( "go.yaml.in/yaml/v3" + "github.com/oapi-codegen/nullable" "github.com/oapi-codegen/runtime" openapi_types "github.com/oapi-codegen/runtime/types" ) @@ -70,6 +71,135 @@ func (e AuthInsightsInterval) Valid() bool { } } +// Defines values for AuthPageDensity. +const ( + Comfortable AuthPageDensity = "comfortable" + Compact AuthPageDensity = "compact" + Spacious AuthPageDensity = "spacious" +) + +// Valid indicates whether the value is a known member of the AuthPageDensity enum. +func (e AuthPageDensity) Valid() bool { + switch e { + case Comfortable: + return true + case Compact: + return true + case Spacious: + return true + default: + return false + } +} + +// Defines values for AuthPageFont. +const ( + AuthPageFontGeometric AuthPageFont = "geometric" + AuthPageFontHumanist AuthPageFont = "humanist" + AuthPageFontMono AuthPageFont = "mono" + AuthPageFontSlab AuthPageFont = "slab" + AuthPageFontSystem AuthPageFont = "system" +) + +// Valid indicates whether the value is a known member of the AuthPageFont enum. +func (e AuthPageFont) Valid() bool { + switch e { + case AuthPageFontGeometric: + return true + case AuthPageFontHumanist: + return true + case AuthPageFontMono: + return true + case AuthPageFontSlab: + return true + case AuthPageFontSystem: + return true + default: + return false + } +} + +// Defines values for AuthPageLayout. +const ( + Centered AuthPageLayout = "centered" + SplitLeft AuthPageLayout = "split-left" + SplitRight AuthPageLayout = "split-right" +) + +// Valid indicates whether the value is a known member of the AuthPageLayout enum. +func (e AuthPageLayout) Valid() bool { + switch e { + case Centered: + return true + case SplitLeft: + return true + case SplitRight: + return true + default: + return false + } +} + +// Defines values for AuthPageRadius. +const ( + AuthPageRadiusLarge AuthPageRadius = "large" + AuthPageRadiusMedium AuthPageRadius = "medium" + AuthPageRadiusNone AuthPageRadius = "none" + AuthPageRadiusSmall AuthPageRadius = "small" +) + +// Valid indicates whether the value is a known member of the AuthPageRadius enum. +func (e AuthPageRadius) Valid() bool { + switch e { + case AuthPageRadiusLarge: + return true + case AuthPageRadiusMedium: + return true + case AuthPageRadiusNone: + return true + case AuthPageRadiusSmall: + return true + default: + return false + } +} + +// Defines values for AuthPageScale. +const ( + AuthPageScaleDefault AuthPageScale = "default" + AuthPageScaleLarge AuthPageScale = "large" + AuthPageScaleSmall AuthPageScale = "small" +) + +// Valid indicates whether the value is a known member of the AuthPageScale enum. +func (e AuthPageScale) Valid() bool { + switch e { + case AuthPageScaleDefault: + return true + case AuthPageScaleLarge: + return true + case AuthPageScaleSmall: + return true + default: + return false + } +} + +// Defines values for AuthPageThemeVersion. +const ( + AuthPageThemeVersionN1 AuthPageThemeVersion = 1 +) + +// Valid indicates whether the value is a known member of the AuthPageThemeVersion enum. +func (e AuthPageThemeVersion) Valid() bool { + switch e { + case AuthPageThemeVersionN1: + return true + default: + return false + } +} + // Defines values for AuthSessionProvider. const ( AuthSessionProviderAnonymous AuthSessionProvider = "anonymous" @@ -1021,6 +1151,42 @@ func (e FunctionDeploymentStatus) Valid() bool { } } +// Defines values for FunctionHTTPAuthMode. +const ( + None FunctionHTTPAuthMode = "none" + Volcano FunctionHTTPAuthMode = "volcano" +) + +// Valid indicates whether the value is a known member of the FunctionHTTPAuthMode enum. +func (e FunctionHTTPAuthMode) Valid() bool { + switch e { + case None: + return true + case Volcano: + return true + default: + return false + } +} + +// Defines values for FunctionInvocationMode. +const ( + Http FunctionInvocationMode = "http" + Rpc FunctionInvocationMode = "rpc" +) + +// Valid indicates whether the value is a known member of the FunctionInvocationMode enum. +func (e FunctionInvocationMode) Valid() bool { + switch e { + case Http: + return true + case Rpc: + return true + default: + return false + } +} + // Defines values for FunctionSchedulerScheduleKind. const ( FunctionSchedulerScheduleKindCron FunctionSchedulerScheduleKind = "cron" @@ -1038,17 +1204,29 @@ func (e FunctionSchedulerScheduleKind) Valid() bool { // Defines values for HostedAuthPageType. const ( - HostedAuthPageTypeLogin HostedAuthPageType = "login" - HostedAuthPageTypeResetPassword HostedAuthPageType = "reset-password" + HostedAuthPageTypeDevice HostedAuthPageType = "device" + HostedAuthPageTypeForgotPassword HostedAuthPageType = "forgot-password" + HostedAuthPageTypeLogin HostedAuthPageType = "login" + HostedAuthPageTypeResetPassword HostedAuthPageType = "reset-password" + HostedAuthPageTypeSignup HostedAuthPageType = "signup" + HostedAuthPageTypeVerifyEmail HostedAuthPageType = "verify-email" ) // Valid indicates whether the value is a known member of the HostedAuthPageType enum. func (e HostedAuthPageType) Valid() bool { switch e { + case HostedAuthPageTypeDevice: + return true + case HostedAuthPageTypeForgotPassword: + return true case HostedAuthPageTypeLogin: return true case HostedAuthPageTypeResetPassword: return true + case HostedAuthPageTypeSignup: + return true + case HostedAuthPageTypeVerifyEmail: + return true default: return false } @@ -1056,14 +1234,26 @@ func (e HostedAuthPageType) Valid() bool { // Defines values for HostedRenderablePageType. const ( - HostedRenderablePageTypeResetPassword HostedRenderablePageType = "reset-password" + HostedRenderablePageTypeDevice HostedRenderablePageType = "device" + HostedRenderablePageTypeForgotPassword HostedRenderablePageType = "forgot-password" + HostedRenderablePageTypeResetPassword HostedRenderablePageType = "reset-password" + HostedRenderablePageTypeSignup HostedRenderablePageType = "signup" + HostedRenderablePageTypeVerifyEmail HostedRenderablePageType = "verify-email" ) // Valid indicates whether the value is a known member of the HostedRenderablePageType enum. func (e HostedRenderablePageType) Valid() bool { switch e { + case HostedRenderablePageTypeDevice: + return true + case HostedRenderablePageTypeForgotPassword: + return true case HostedRenderablePageTypeResetPassword: return true + case HostedRenderablePageTypeSignup: + return true + case HostedRenderablePageTypeVerifyEmail: + return true default: return false } @@ -1287,13 +1477,13 @@ func (e ProjectStatus) Valid() bool { // Defines values for ProjectConfigVersion. const ( - N1 ProjectConfigVersion = 1 + ProjectConfigVersionN1 ProjectConfigVersion = 1 ) // Valid indicates whether the value is a known member of the ProjectConfigVersion enum. func (e ProjectConfigVersion) Valid() bool { switch e { - case N1: + case ProjectConfigVersionN1: return true default: return false @@ -2074,6 +2264,30 @@ func (e ProjectMetricsUnit) Valid() bool { } } +// Defines values for ProjectSourceExportStateMode. +const ( + Git ProjectSourceExportStateMode = "git" + GitExporting ProjectSourceExportStateMode = "git_exporting" + GitPending ProjectSourceExportStateMode = "git_pending" + Platform ProjectSourceExportStateMode = "platform" +) + +// Valid indicates whether the value is a known member of the ProjectSourceExportStateMode enum. +func (e ProjectSourceExportStateMode) Valid() bool { + switch e { + case Git: + return true + case GitExporting: + return true + case GitPending: + return true + case Platform: + return true + default: + return false + } +} + // Defines values for ResourceReferenceType. const ( ResourceReferenceTypeDatabase ResourceReferenceType = "database" @@ -2232,28 +2446,28 @@ func (e UploadSessionStatusResponseStatus) Valid() bool { // Defines values for VariableDeploySource. const ( - Api VariableDeploySource = "api" - Cli VariableDeploySource = "cli" - Git VariableDeploySource = "git" - System VariableDeploySource = "system" - Unknown VariableDeploySource = "unknown" - Web VariableDeploySource = "web" + VariableDeploySourceApi VariableDeploySource = "api" + VariableDeploySourceCli VariableDeploySource = "cli" + VariableDeploySourceGit VariableDeploySource = "git" + VariableDeploySourceSystem VariableDeploySource = "system" + VariableDeploySourceUnknown VariableDeploySource = "unknown" + VariableDeploySourceWeb VariableDeploySource = "web" ) // Valid indicates whether the value is a known member of the VariableDeploySource enum. func (e VariableDeploySource) Valid() bool { switch e { - case Api: + case VariableDeploySourceApi: return true - case Cli: + case VariableDeploySourceCli: return true - case Git: + case VariableDeploySourceGit: return true - case System: + case VariableDeploySourceSystem: return true - case Unknown: + case VariableDeploySourceUnknown: return true - case Web: + case VariableDeploySourceWeb: return true default: return false @@ -2964,16 +3178,16 @@ func (e ListUserSessionsParamsSort) Valid() bool { // Defines values for ListUserSessionsParamsStatus. const ( - Active ListUserSessionsParamsStatus = "active" - Expired ListUserSessionsParamsStatus = "expired" + ListUserSessionsParamsStatusActive ListUserSessionsParamsStatus = "active" + ListUserSessionsParamsStatusExpired ListUserSessionsParamsStatus = "expired" ) // Valid indicates whether the value is a known member of the ListUserSessionsParamsStatus enum. func (e ListUserSessionsParamsStatus) Valid() bool { switch e { - case Active: + case ListUserSessionsParamsStatusActive: return true - case Expired: + case ListUserSessionsParamsStatusExpired: return true default: return false @@ -2998,6 +3212,33 @@ func (e GetProjectConfigParamsFormat) Valid() bool { } } +// Defines values for ListDatabasesParamsStatus. +const ( + ListDatabasesParamsStatusActive ListDatabasesParamsStatus = "active" + ListDatabasesParamsStatusDeleting ListDatabasesParamsStatus = "deleting" + ListDatabasesParamsStatusFailed ListDatabasesParamsStatus = "failed" + ListDatabasesParamsStatusProvisioning ListDatabasesParamsStatus = "provisioning" + ListDatabasesParamsStatusRestoring ListDatabasesParamsStatus = "restoring" +) + +// Valid indicates whether the value is a known member of the ListDatabasesParamsStatus enum. +func (e ListDatabasesParamsStatus) Valid() bool { + switch e { + case ListDatabasesParamsStatusActive: + return true + case ListDatabasesParamsStatusDeleting: + return true + case ListDatabasesParamsStatusFailed: + return true + case ListDatabasesParamsStatusProvisioning: + return true + case ListDatabasesParamsStatusRestoring: + return true + default: + return false + } +} + // Defines values for GetDatabaseStatsParamsGranularity. const ( Daily GetDatabaseStatsParamsGranularity = "daily" @@ -3607,6 +3848,71 @@ type AuthMethodsResponse struct { Methods []AuthMethodSummary `json:"methods"` } +// AuthPageAppearanceDefaults defines model for AuthPageAppearanceDefaults. +type AuthPageAppearanceDefaults struct { + Layout AuthPageLayout `json:"layout"` + Theme AuthPageTheme `json:"theme"` +} + +// AuthPageAppearanceOptions defines model for AuthPageAppearanceOptions. +type AuthPageAppearanceOptions struct { + Densities []AuthPageDensity `json:"densities"` + Fonts []AuthPageFont `json:"fonts"` + Layouts []AuthPageLayout `json:"layouts"` + Pages []HostedAuthPageType `json:"pages"` + Radii []AuthPageRadius `json:"radii"` + Scales []AuthPageScale `json:"scales"` +} + +// AuthPageAppearanceResponse defines model for AuthPageAppearanceResponse. +type AuthPageAppearanceResponse struct { + CustomisationAllowed bool `json:"customisation_allowed"` + Defaults AuthPageAppearanceDefaults `json:"defaults"` + Layouts map[string]AuthPageLayout `json:"layouts"` + Options AuthPageAppearanceOptions `json:"options"` + + // Parked Per-page saved-but-not-live state. + Parked map[string]bool `json:"parked"` + Theme AuthPageTheme `json:"theme"` +} + +// AuthPageDensity defines model for AuthPageDensity. +type AuthPageDensity string + +// AuthPageFont defines model for AuthPageFont. +type AuthPageFont string + +// AuthPageLayout defines model for AuthPageLayout. +type AuthPageLayout string + +// AuthPageRadius defines model for AuthPageRadius. +type AuthPageRadius string + +// AuthPageScale defines model for AuthPageScale. +type AuthPageScale string + +// AuthPageTheme defines model for AuthPageTheme. +type AuthPageTheme struct { + Colors AuthPageThemeColors `json:"colors"` + Density AuthPageDensity `json:"density"` + Font AuthPageFont `json:"font"` + Radius AuthPageRadius `json:"radius"` + Scale AuthPageScale `json:"scale"` + Version AuthPageThemeVersion `json:"version"` +} + +// AuthPageThemeVersion defines model for AuthPageTheme.Version. +type AuthPageThemeVersion int + +// AuthPageThemeColors defines model for AuthPageThemeColors. +type AuthPageThemeColors struct { + Accent string `json:"accent"` + AccentText string `json:"accent_text"` + Background string `json:"background"` + Surface string `json:"surface"` + Text string `json:"text"` +} + // AuthPasswordPolicy Effective backend-enforced password policy. type AuthPasswordPolicy struct { // CompromisedPasswordsRejected Whether common and known-compromised passwords are rejected by the backend. @@ -3841,7 +4147,12 @@ type CreateDatabaseRequestRegion string // CreateDatabaseRestoreRequest Names what to restore. Supply exactly one of `backup_name` or // `restore_to`. type CreateDatabaseRestoreRequest struct { - // BackupName A backup of this database to restore. + // BackupName A backup of this database to restore, exactly as returned by the list + // endpoint. + // + // Deliberately looser than the names you can create, like the backup + // path parameter: a backup made by a schedule is named for you, so + // restoring one accepts any name a backup can have. BackupName *string `json:"backup_name,omitempty"` // RestoreTo A point in time to restore to, which must fall inside the @@ -3907,27 +4218,6 @@ type CreateOAuthConfigRequest struct { // CreateOAuthConfigRequestProvider defines model for CreateOAuthConfigRequest.Provider. type CreateOAuthConfigRequestProvider string -// CreateProjectGitRepositoryRequest defines model for CreateProjectGitRepositoryRequest. -type CreateProjectGitRepositoryRequest struct { - // Description Repository description shown on GitHub. - Description *string `json:"description,omitempty"` - - // Name Repository name, unique within the owner account. - Name string `json:"name"` - - // Owner GitHub account to create the repository under, as returned in account_login by /user/git/connections/{id}/installations. Omit for the connected user's own account. Must be an organization the app is installed on, or your own account. - Owner *string `json:"owner,omitempty"` - - // Private Whether the new repository is private. Defaults to true: the next step is pushing the project's source into it, so an omitted field must not publish it. - Private *bool `json:"private,omitempty"` - - // ProductionBranch The branch to deploy from — name the one you are about to push. The repository is created empty, so it has no real default branch to follow: omitting this binds whatever branch name GitHub reports for the new repository (falling back to "main" if it reports none), which is the account's configured default and a prediction, and pushing anything else then deploys nothing. Naming the branch GitHub already reports is not treated as pinning it, so the project still tracks a later default-branch rename; naming any other branch pins it. Rejected before the repository is created if it is not a valid Git branch name; it does not have to exist. - ProductionBranch *string `json:"production_branch,omitempty"` - - // RootDirectory Monorepo subdirectory the project builds from, as a relative path inside the repository. Omit for the repo root. Absolute paths and ".." traversal are rejected before the repository is created, because the build applies the same rule and nothing would deploy. - RootDirectory *string `json:"root_directory,omitempty"` -} - // CreateProjectRequest Request to create a new project type CreateProjectRequest struct { // AllRegions Optional region policy. @@ -4007,16 +4297,6 @@ type CreateVariableRequest struct { Value string `json:"value"` } -// CreatedProjectGitConnection A newly created repository's project binding, plus whether the Volcano GitHub App can actually see it. -type CreatedProjectGitConnection struct { - // AppInstalled Whether the App installation covers the new repository. False means the binding is complete but no push will deploy until the user grants access at install_url. An installation scoped to selected repositories never picks up a new repo on its own. - AppInstalled bool `json:"app_installed"` - Connection ProjectGitConnection `json:"connection"` - - // InstallUrl Where the user grants the App access to the new repository. Present only when app_installed is false. - InstallUrl *string `json:"install_url,omitempty"` -} - // Database PostgreSQL database with automatic scalability and security features. type Database struct { // ConnectionString Secure PostgreSQL connection URI for your database. @@ -4116,8 +4396,12 @@ type DatabaseBackupSource string type DatabaseBackupList struct { Data []DatabaseBackup `json:"data"` - // RestoreWindow The span a point-in-time restore may target. Empty when the owner's plan - // does not include point-in-time restore. + // RestoreWindow The span a point-in-time restore may target. Absent from the response + // when the owner's plan does not include point-in-time restore, and while + // the storage provider has no history window in place yet — briefly the + // case after an upgrade, since the window is applied asynchronously. The + // window is read from the provider rather than from the plan, so it never + // advertises a point a restore could not actually reach. RestoreWindow *DatabaseRestoreWindow `json:"restore_window,omitempty"` } @@ -4421,8 +4705,12 @@ type DatabaseRestoreList struct { Data []DatabaseRestore `json:"data"` } -// DatabaseRestoreWindow The span a point-in-time restore may target. Empty when the owner's plan -// does not include point-in-time restore. +// DatabaseRestoreWindow The span a point-in-time restore may target. Absent from the response +// when the owner's plan does not include point-in-time restore, and while +// the storage provider has no history window in place yet — briefly the +// case after an upgrade, since the window is applied asynchronously. The +// window is read from the provider rather than from the plan, so it never +// advertises a point a restore could not actually reach. type DatabaseRestoreWindow struct { // EarliestRestoreAt The oldest point that can still be restored. Moves forward // continuously as history ages out, so treat it as a lower bound at @@ -4601,6 +4889,12 @@ type Error struct { Error string `json:"error"` } +// ExportProjectSourceRequest defines model for ExportProjectSourceRequest. +type ExportProjectSourceRequest struct { + // ProductionBranch The currently configured production branch the user confirmed for export. + ProductionBranch string `json:"production_branch"` +} + // Frontend defines model for Frontend. type Frontend struct { // AppRoot Optional relative POSIX path from the uploaded archive root to the Next.js app that is deployed. @@ -4809,9 +5103,20 @@ type Function struct { CurrentDeploymentId *openapi_types.UUID `json:"current_deployment_id,omitempty"` // DeployedRegions Regions where this function is currently deployed - DeployedRegions []string `json:"deployed_regions"` - Handler *string `json:"handler,omitempty"` - Id openapi_types.UUID `json:"id"` + DeployedRegions []string `json:"deployed_regions"` + Handler *string `json:"handler,omitempty"` + + // HasOpenapiSpec Whether OpenAPI metadata is configured; list responses omit the document itself. + HasOpenapiSpec bool `json:"has_openapi_spec"` + + // HttpAuthMode Authentication applied by the HTTP ingress. `none` is valid only for public + // HTTP-mode functions and is intended for externally signed webhooks. + HttpAuthMode FunctionHTTPAuthMode `json:"http_auth_mode"` + Id openapi_types.UUID `json:"id"` + + // InvocationMode Invocation contract. `rpc` preserves the existing POST `{payload: ...}` contract; + // `http` forwards HTTP request semantics to the function runtime. + InvocationMode FunctionInvocationMode `json:"invocation_mode"` // InvokeUrl Canonical GeoDNS endpoint URL for invoking this function (always HTTPS) InvokeUrl *string `json:"invoke_url,omitempty"` @@ -4825,6 +5130,9 @@ type Function struct { LastInvokedAt *time.Time `json:"last_invoked_at,omitempty"` Name string `json:"name"` + // OpenapiSpec Optional OpenAPI 3.0 or 3.1 document describing an HTTP-mode function. + OpenapiSpec *map[string]interface{} `json:"openapi_spec"` + // PendingDeploymentId Newest queued deployment that will run after the current operation PendingDeploymentId *openapi_types.UUID `json:"pending_deployment_id,omitempty"` ProjectId openapi_types.UUID `json:"project_id"` @@ -4881,6 +5189,14 @@ type FunctionDeploymentOperation string // FunctionDeploymentStatus defines model for FunctionDeployment.Status. type FunctionDeploymentStatus string +// FunctionHTTPAuthMode Authentication applied by the HTTP ingress. `none` is valid only for public +// HTTP-mode functions and is intended for externally signed webhooks. +type FunctionHTTPAuthMode string + +// FunctionInvocationMode Invocation contract. `rpc` preserves the existing POST `{payload: ...}` contract; +// `http` forwards HTTP request semantics to the function runtime. +type FunctionInvocationMode string + // FunctionInvocationRequest defines model for FunctionInvocationRequest. type FunctionInvocationRequest struct { // Payload Payload to send to the function. @@ -5035,8 +5351,11 @@ type GitRepository struct { FullName string `json:"full_name"` // Id Stable GitHub repository id (repository.id), unchanged by renames. - Id int64 `json:"id"` - Private bool `json:"private"` + Id int64 `json:"id"` + + // IsEmpty Whether the repository has no commits and can receive an initial source export. + IsEmpty bool `json:"is_empty"` + Private bool `json:"private"` } // HostedAuthPageType defines model for HostedAuthPageType. @@ -5737,6 +6056,18 @@ type PlatformExchangeResponse struct { UserId string `json:"user_id"` } +// PreviewAuthPageRequest defines model for PreviewAuthPageRequest. +type PreviewAuthPageRequest struct { + Action *string `json:"action,omitempty"` + Layout AuthPageLayout `json:"layout"` + Theme AuthPageTheme `json:"theme"` +} + +// PreviewAuthPageResponse defines model for PreviewAuthPageResponse. +type PreviewAuthPageResponse struct { + Html string `json:"html"` +} + // Project defines model for Project. type Project struct { // AllRegions Region policy for function deployment. @@ -5926,6 +6257,8 @@ type ProjectConfigAuthEmailVerification struct { // ProjectConfigAuthManagedPages defines model for ProjectConfigAuthManagedPages. type ProjectConfigAuthManagedPages struct { + Appearance *ProjectConfigAuthPageAppearance `json:"appearance,omitempty"` + // Enabled Enable or disable managed auth hosted pages Enabled *bool `json:"enabled,omitempty"` @@ -5935,6 +6268,22 @@ type ProjectConfigAuthManagedPages struct { Redirects *ProjectConfigAuthRedirects `json:"redirects,omitempty"` } +// ProjectConfigAuthPageAppearance defines model for ProjectConfigAuthPageAppearance. +type ProjectConfigAuthPageAppearance struct { + Layouts *ProjectConfigAuthPageLayouts `json:"layouts,omitempty"` + Theme *AuthPageTheme `json:"theme,omitempty"` +} + +// ProjectConfigAuthPageLayouts defines model for ProjectConfigAuthPageLayouts. +type ProjectConfigAuthPageLayouts struct { + Device *AuthPageLayout `json:"device,omitempty"` + ForgotPassword *AuthPageLayout `json:"forgot_password,omitempty"` + Login *AuthPageLayout `json:"login,omitempty"` + ResetPassword *AuthPageLayout `json:"reset_password,omitempty"` + Signup *AuthPageLayout `json:"signup,omitempty"` + VerifyEmail *AuthPageLayout `json:"verify_email,omitempty"` +} + // ProjectConfigAuthPassword defines model for ProjectConfigAuthPassword. type ProjectConfigAuthPassword struct { MinLength *int `json:"min_length,omitempty"` @@ -6131,7 +6480,17 @@ type ProjectConfigFrontend struct { // it is fully synced (schedulers absent from the list are deleted); // omitting `schedulers` leaves the function's schedulers untouched. type ProjectConfigFunction struct { - Name string `json:"name"` + // HttpAuthMode Authentication applied by the HTTP ingress. `none` is valid only for public + // HTTP-mode functions and is intended for externally signed webhooks. + HttpAuthMode *FunctionHTTPAuthMode `json:"http_auth_mode,omitempty"` + + // InvocationMode Invocation contract. `rpc` preserves the existing POST `{payload: ...}` contract; + // `http` forwards HTTP request semantics to the function runtime. + InvocationMode *FunctionInvocationMode `json:"invocation_mode,omitempty"` + Name string `json:"name"` + + // OpenapiSpec OpenAPI 3.0 or 3.1 metadata for an HTTP-mode function + OpenapiSpec nullable.Nullable[map[string]interface{}] `json:"openapi_spec,omitempty"` // Public Function visibility for anon-key invocation Public *bool `json:"public,omitempty"` @@ -6150,8 +6509,12 @@ type ProjectConfigHostedPage struct { // ProjectConfigHostedPages Hosted auth pages keyed by page type (PRO plan). Upsert-only: omitted // pages are left untouched (there is no delete for hosted pages). type ProjectConfigHostedPages struct { - Login *ProjectConfigHostedPage `json:"login,omitempty"` - ResetPassword *ProjectConfigHostedPage `json:"reset_password,omitempty"` + Device *ProjectConfigHostedPage `json:"device,omitempty"` + ForgotPassword *ProjectConfigHostedPage `json:"forgot_password,omitempty"` + Login *ProjectConfigHostedPage `json:"login,omitempty"` + ResetPassword *ProjectConfigHostedPage `json:"reset_password,omitempty"` + Signup *ProjectConfigHostedPage `json:"signup,omitempty"` + VerifyEmail *ProjectConfigHostedPage `json:"verify_email,omitempty"` } // ProjectConfigMissingResource defines model for ProjectConfigMissingResource. @@ -6652,6 +7015,55 @@ type ProjectMetricsWindow struct { To time.Time `json:"to"` } +// ProjectSourceExport The initial production-branch commit, and everything export could not carry. +type ProjectSourceExport struct { + // Branch The production branch that was created. + Branch string `json:"branch"` + CommitSha string `json:"commit_sha"` + FileCount int `json:"file_count"` + + // Omitted Things deliberately left out of the branch. + Omitted []ProjectSourceExportOmission `json:"omitted"` + RepoFullName string `json:"repo_full_name"` + + // Skipped Resources whose source could not be taken, with the reason. Most often a resource that has never deployed successfully. + Skipped []ProjectSourceExportSkip `json:"skipped"` +} + +// ProjectSourceExportOmission defines model for ProjectSourceExportOmission. +type ProjectSourceExportOmission struct { + // Kind What was left out: migrations Volcano stores no copy of, variable values, a credential-shaped file, installed dependencies, or an archive entry a repository cannot carry. + Kind string `json:"kind"` + Path string `json:"path"` + + // Resource The resource it came from, empty when project-wide. + Resource string `json:"resource"` +} + +// ProjectSourceExportSkip defines model for ProjectSourceExportSkip. +type ProjectSourceExportSkip struct { + // Kind The kind of resource, "function" or "frontend". Deliberately not an enum: the generated constants would collide with an existing resource-type enum and rename its members. + Kind string `json:"kind"` + Name string `json:"name"` + Reason string `json:"reason"` +} + +// ProjectSourceExportState The project's source of truth and any pending Git transition. +type ProjectSourceExportState struct { + // ExportedAt When the initial export push entered deployment, or when a transition was canceled after its commit was reserved. Once set, the one-time export is consumed. + ExportedAt *time.Time `json:"exported_at"` + + // HandedOverAt When a complete production-branch deployment first proved the repository could drive the project, null until then. Once set, the repository is the project's source of truth. + HandedOverAt *time.Time `json:"handed_over_at"` + Mode ProjectSourceExportStateMode `json:"mode"` + + // TransitionStartedAt When source export started, cleared if an incomplete transition is canceled. + TransitionStartedAt *time.Time `json:"transition_started_at"` +} + +// ProjectSourceExportStateMode defines model for ProjectSourceExportState.Mode. +type ProjectSourceExportStateMode string + // ProjectUsageResponse Aggregated usage metrics for a project. type ProjectUsageResponse struct { // Frontends Per-frontend request totals for the current usage month @@ -7085,6 +7497,16 @@ type UpdateAuthHostedPageRequest struct { Html string `json:"html"` } +// UpdateAuthPageLayoutRequest defines model for UpdateAuthPageLayoutRequest. +type UpdateAuthPageLayoutRequest struct { + Layout AuthPageLayout `json:"layout"` +} + +// UpdateAuthPageThemeRequest defines model for UpdateAuthPageThemeRequest. +type UpdateAuthPageThemeRequest struct { + Theme AuthPageTheme `json:"theme"` +} + // UpdateDatabaseBranchRequest Replace the branch's lifetime and restart its countdown from now. type UpdateDatabaseBranchRequest struct { // TtlSeconds The new lifetime, between one hour and 30 days. @@ -7109,10 +7531,21 @@ type UpdateEmailTemplateRequest struct { // UpdateFunctionRequest defines model for UpdateFunctionRequest. type UpdateFunctionRequest struct { + // HttpAuthMode Authentication applied by the HTTP ingress. `none` is valid only for public + // HTTP-mode functions and is intended for externally signed webhooks. + HttpAuthMode *FunctionHTTPAuthMode `json:"http_auth_mode,omitempty"` + + // InvocationMode Invocation contract. `rpc` preserves the existing POST `{payload: ...}` contract; + // `http` forwards HTTP request semantics to the function runtime. + InvocationMode *FunctionInvocationMode `json:"invocation_mode,omitempty"` + // IsPublic Function visibility for anon-key invocation. // - `false` (default): private function // - `true`: public function (anon keys with `functions.invoke` can invoke) - IsPublic bool `json:"is_public"` + IsPublic *bool `json:"is_public,omitempty"` + + // OpenapiSpec OpenAPI 3.0 or 3.1 metadata for HTTP mode. Send null to clear it. + OpenapiSpec *map[string]interface{} `json:"openapi_spec,omitempty"` } // UpdateFunctionSchedulerRequest defines model for UpdateFunctionSchedulerRequest. @@ -7356,6 +7789,9 @@ type VariableName = string // BandwidthCapExceeded defines model for BandwidthCapExceeded. type BandwidthCapExceeded = Error +// DatabaseBranchQueryUnavailable defines model for DatabaseBranchQueryUnavailable. +type DatabaseBranchQueryUnavailable = Error + // DatabaseQueryCapExceeded defines model for DatabaseQueryCapExceeded. type DatabaseQueryCapExceeded = Error @@ -8098,8 +8534,14 @@ type ListDatabasesParams struct { // Search Case-insensitive substring match on the resource `name`. See the // endpoint description for supported pagination modes. Search *Search `form:"search,omitempty" json:"search,omitempty"` + + // Status Return only the databases in this status. + Status *ListDatabasesParamsStatus `form:"status,omitempty" json:"status,omitempty"` } +// ListDatabasesParamsStatus defines parameters for ListDatabases. +type ListDatabasesParamsStatus string + // GetProjectDatabaseQueriesParams defines parameters for GetProjectDatabaseQueries. type GetProjectDatabaseQueriesParams struct { // Limit Maximum number of queries to return. @@ -8352,9 +8794,23 @@ type CreateFunctionMultipartBody struct { // - Ruby: def handler() (in main.rb) Handler *string `json:"handler,omitempty"` + // HttpAuthMode Authentication applied by the HTTP ingress. `none` is valid only for public + // HTTP-mode functions and is intended for externally signed webhooks. + HttpAuthMode *FunctionHTTPAuthMode `json:"http_auth_mode,omitempty"` + + // InvocationMode Invocation contract. `rpc` preserves the existing POST `{payload: ...}` contract; + // `http` forwards HTTP request semantics to the function runtime. + InvocationMode *FunctionInvocationMode `json:"invocation_mode,omitempty"` + + // IsPublic Whether the function can be reached through public invocation ingress. + IsPublic *bool `json:"is_public,omitempty"` + // Name DNS-safe function name (lowercase letters, numbers, hyphens; cannot start or end with hyphen) Name string `json:"name"` + // OpenapiSpec JSON-encoded OpenAPI 3.0 or 3.1 metadata for an HTTP-mode function. + OpenapiSpec *string `json:"openapi_spec,omitempty"` + // Runtime Runtime environment. Required. // - Node.js: nodejs22.x, nodejs24.x // - Python: python3.10, python3.11, python3.12, python3.13, python3.14 @@ -8831,6 +9287,15 @@ type HostedLoginCheckEmailJSONRequestBody = HostedLoginEmailCheckRequest // ConfigureAuthMethodsJSONRequestBody defines body for ConfigureAuthMethods for application/json ContentType. type ConfigureAuthMethodsJSONRequestBody ConfigureAuthMethodsJSONBody +// UpdateAuthPageThemeJSONRequestBody defines body for UpdateAuthPageTheme for application/json ContentType. +type UpdateAuthPageThemeJSONRequestBody = UpdateAuthPageThemeRequest + +// UpdateAuthPageLayoutJSONRequestBody defines body for UpdateAuthPageLayout for application/json ContentType. +type UpdateAuthPageLayoutJSONRequestBody = UpdateAuthPageLayoutRequest + +// PreviewAuthPageJSONRequestBody defines body for PreviewAuthPage for application/json ContentType. +type PreviewAuthPageJSONRequestBody = PreviewAuthPageRequest + // BanAuthUserJSONRequestBody defines body for BanAuthUser for application/json ContentType. type BanAuthUserJSONRequestBody BanAuthUserJSONBody @@ -8891,9 +9356,6 @@ type ConnectProjectGitJSONRequestBody = ConnectProjectGitRequest // SetProjectGitProductionBranchJSONRequestBody defines body for SetProjectGitProductionBranch for application/json ContentType. type SetProjectGitProductionBranchJSONRequestBody = SetProjectGitProductionBranchRequest -// CreateProjectGitRepositoryJSONRequestBody defines body for CreateProjectGitRepository for application/json ContentType. -type CreateProjectGitRepositoryJSONRequestBody = CreateProjectGitRepositoryRequest - // UpdateProjectGitDeploySettingsJSONRequestBody defines body for UpdateProjectGitDeploySettings for application/json ContentType. type UpdateProjectGitDeploySettingsJSONRequestBody = UpdateProjectGitDeploySettingsRequest @@ -8924,6 +9386,9 @@ type UpdateRealtimeConfigJSONRequestBody = UpdateRealtimeConfigRequest // CreateServiceKeyJSONRequestBody defines body for CreateServiceKey for application/json ContentType. type CreateServiceKeyJSONRequestBody CreateServiceKeyJSONBody +// ExportProjectSourceJSONRequestBody defines body for ExportProjectSource for application/json ContentType. +type ExportProjectSourceJSONRequestBody = ExportProjectSourceRequest + // CreateStorageBucketJSONRequestBody defines body for CreateStorageBucket for application/json ContentType. type CreateStorageBucketJSONRequestBody = CreateStorageBucketRequest @@ -10102,6 +10567,30 @@ type ClientInterface interface { ConfigureAuthMethods(ctx context.Context, id ProjectId, body ConfigureAuthMethodsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + // GetAuthPageAppearance request + GetAuthPageAppearance(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*http.Response, error) + + // DeleteAuthPageTheme request + DeleteAuthPageTheme(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*http.Response, error) + + // UpdateAuthPageThemeWithBody request with any body + UpdateAuthPageThemeWithBody(ctx context.Context, id ProjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + UpdateAuthPageTheme(ctx context.Context, id ProjectId, body UpdateAuthPageThemeJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // DeleteAuthPageLayout request + DeleteAuthPageLayout(ctx context.Context, id ProjectId, pageType HostedAuthPageType, reqEditors ...RequestEditorFn) (*http.Response, error) + + // UpdateAuthPageLayoutWithBody request with any body + UpdateAuthPageLayoutWithBody(ctx context.Context, id ProjectId, pageType HostedAuthPageType, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + UpdateAuthPageLayout(ctx context.Context, id ProjectId, pageType HostedAuthPageType, body UpdateAuthPageLayoutJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // PreviewAuthPageWithBody request with any body + PreviewAuthPageWithBody(ctx context.Context, id ProjectId, pageType HostedAuthPageType, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + PreviewAuthPage(ctx context.Context, id ProjectId, pageType HostedAuthPageType, body PreviewAuthPageJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + // ListAuthUsers request ListAuthUsers(ctx context.Context, id ProjectId, params *ListAuthUsersParams, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -10340,11 +10829,6 @@ type ClientInterface interface { SetProjectGitProductionBranch(ctx context.Context, id ProjectId, body SetProjectGitProductionBranchJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) - // CreateProjectGitRepositoryWithBody request with any body - CreateProjectGitRepositoryWithBody(ctx context.Context, id ProjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) - - CreateProjectGitRepository(ctx context.Context, id ProjectId, body CreateProjectGitRepositoryJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) - // GetProjectGitDeploySettings request GetProjectGitDeploySettings(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -10438,6 +10922,17 @@ type ClientInterface interface { // RegenerateServiceKey request RegenerateServiceKey(ctx context.Context, id ProjectId, keyId openapi_types.UUID, reqEditors ...RequestEditorFn) (*http.Response, error) + // CancelProjectSourceExport request + CancelProjectSourceExport(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*http.Response, error) + + // GetProjectSourceExport request + GetProjectSourceExport(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*http.Response, error) + + // ExportProjectSourceWithBody request with any body + ExportProjectSourceWithBody(ctx context.Context, id ProjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + ExportProjectSource(ctx context.Context, id ProjectId, body ExportProjectSourceJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + // ListStorageBuckets request ListStorageBuckets(ctx context.Context, id ProjectId, params *ListStorageBucketsParams, reqEditors ...RequestEditorFn) (*http.Response, error) @@ -12116,6 +12611,114 @@ func (c *Client) ConfigureAuthMethods(ctx context.Context, id ProjectId, body Co return c.Client.Do(req) } +func (c *Client) GetAuthPageAppearance(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetAuthPageAppearanceRequest(c.Server, id) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) DeleteAuthPageTheme(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewDeleteAuthPageThemeRequest(c.Server, id) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) UpdateAuthPageThemeWithBody(ctx context.Context, id ProjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewUpdateAuthPageThemeRequestWithBody(c.Server, id, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) UpdateAuthPageTheme(ctx context.Context, id ProjectId, body UpdateAuthPageThemeJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewUpdateAuthPageThemeRequest(c.Server, id, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) DeleteAuthPageLayout(ctx context.Context, id ProjectId, pageType HostedAuthPageType, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewDeleteAuthPageLayoutRequest(c.Server, id, pageType) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) UpdateAuthPageLayoutWithBody(ctx context.Context, id ProjectId, pageType HostedAuthPageType, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewUpdateAuthPageLayoutRequestWithBody(c.Server, id, pageType, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) UpdateAuthPageLayout(ctx context.Context, id ProjectId, pageType HostedAuthPageType, body UpdateAuthPageLayoutJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewUpdateAuthPageLayoutRequest(c.Server, id, pageType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PreviewAuthPageWithBody(ctx context.Context, id ProjectId, pageType HostedAuthPageType, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPreviewAuthPageRequestWithBody(c.Server, id, pageType, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) PreviewAuthPage(ctx context.Context, id ProjectId, pageType HostedAuthPageType, body PreviewAuthPageJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewPreviewAuthPageRequest(c.Server, id, pageType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + func (c *Client) ListAuthUsers(ctx context.Context, id ProjectId, params *ListAuthUsersParams, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewListAuthUsersRequest(c.Server, id, params) if err != nil { @@ -13136,30 +13739,6 @@ func (c *Client) SetProjectGitProductionBranch(ctx context.Context, id ProjectId return c.Client.Do(req) } -func (c *Client) CreateProjectGitRepositoryWithBody(ctx context.Context, id ProjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewCreateProjectGitRepositoryRequestWithBody(c.Server, id, contentType, body) - if err != nil { - return nil, err - } - req = req.WithContext(ctx) - if err := c.applyEditors(ctx, req, reqEditors); err != nil { - return nil, err - } - return c.Client.Do(req) -} - -func (c *Client) CreateProjectGitRepository(ctx context.Context, id ProjectId, body CreateProjectGitRepositoryJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { - req, err := NewCreateProjectGitRepositoryRequest(c.Server, id, body) - if err != nil { - return nil, err - } - req = req.WithContext(ctx) - if err := c.applyEditors(ctx, req, reqEditors); err != nil { - return nil, err - } - return c.Client.Do(req) -} - func (c *Client) GetProjectGitDeploySettings(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewGetProjectGitDeploySettingsRequest(c.Server, id) if err != nil { @@ -13568,6 +14147,54 @@ func (c *Client) RegenerateServiceKey(ctx context.Context, id ProjectId, keyId o return c.Client.Do(req) } +func (c *Client) CancelProjectSourceExport(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewCancelProjectSourceExportRequest(c.Server, id) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) GetProjectSourceExport(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewGetProjectSourceExportRequest(c.Server, id) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) ExportProjectSourceWithBody(ctx context.Context, id ProjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewExportProjectSourceRequestWithBody(c.Server, id, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) ExportProjectSource(ctx context.Context, id ProjectId, body ExportProjectSourceJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewExportProjectSourceRequest(c.Server, id, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + func (c *Client) ListStorageBuckets(ctx context.Context, id ProjectId, params *ListStorageBucketsParams, reqEditors ...RequestEditorFn) (*http.Response, error) { req, err := NewListStorageBucketsRequest(c.Server, id, params) if err != nil { @@ -18328,7 +18955,329 @@ func NewRenderManagedAuthPageRequest(server string, id ProjectId, pageType Hoste return nil, err } - operationPath := fmt.Sprintf("/projects/%s/auth/hosted/%s", pathParam0, pathParam1) + operationPath := fmt.Sprintf("/projects/%s/auth/hosted/%s", pathParam0, pathParam1) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest(http.MethodGet, queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetAuthInsightsRequest generates requests for GetAuthInsights +func NewGetAuthInsightsRequest(server string, id ProjectId, params *GetAuthInsightsParams) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithOptions("simple", false, "id", id, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationPath, Type: "string", Format: "uuid"}) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/projects/%s/auth/insights", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + if params != nil { + // queryValues collects non-styled parameters (passthrough, JSON) + // that are safe to round-trip through url.Values.Encode(). + queryValues := queryURL.Query() + // rawQueryFragments collects pre-encoded query fragments from + // styled parameters, preserving literal commas as delimiters + // per the OpenAPI spec (e.g. "color=blue,black,brown"). + var rawQueryFragments []string + + if params.From != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "from", *params.From, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "string", Format: "date"}); err != nil { + return nil, err + } else { + for _, qp := range strings.Split(queryFrag, "&") { + rawQueryFragments = append(rawQueryFragments, qp) + } + } + + } + + if params.To != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "to", *params.To, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "string", Format: "date"}); err != nil { + return nil, err + } else { + for _, qp := range strings.Split(queryFrag, "&") { + rawQueryFragments = append(rawQueryFragments, qp) + } + } + + } + + if params.Interval != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "interval", *params.Interval, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "string", Format: ""}); err != nil { + return nil, err + } else { + for _, qp := range strings.Split(queryFrag, "&") { + rawQueryFragments = append(rawQueryFragments, qp) + } + } + + } + + if encoded := queryValues.Encode(); encoded != "" { + rawQueryFragments = append(rawQueryFragments, encoded) + } + queryURL.RawQuery = strings.Join(rawQueryFragments, "&") + } + + req, err := http.NewRequest(http.MethodGet, queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetAuthMethodsRequest generates requests for GetAuthMethods +func NewGetAuthMethodsRequest(server string, id ProjectId) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithOptions("simple", false, "id", id, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationPath, Type: "string", Format: "uuid"}) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/projects/%s/auth/methods", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest(http.MethodGet, queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewConfigureAuthMethodsRequest calls the generic ConfigureAuthMethods builder with application/json body +func NewConfigureAuthMethodsRequest(server string, id ProjectId, body ConfigureAuthMethodsJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewConfigureAuthMethodsRequestWithBody(server, id, "application/json", bodyReader) +} + +// NewConfigureAuthMethodsRequestWithBody generates requests for ConfigureAuthMethods with any type of body +func NewConfigureAuthMethodsRequestWithBody(server string, id ProjectId, contentType string, body io.Reader) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithOptions("simple", false, "id", id, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationPath, Type: "string", Format: "uuid"}) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/projects/%s/auth/methods", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest(http.MethodPut, queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewGetAuthPageAppearanceRequest generates requests for GetAuthPageAppearance +func NewGetAuthPageAppearanceRequest(server string, id ProjectId) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithOptions("simple", false, "id", id, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationPath, Type: "string", Format: "uuid"}) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/projects/%s/auth/pages/appearance", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest(http.MethodGet, queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewDeleteAuthPageThemeRequest generates requests for DeleteAuthPageTheme +func NewDeleteAuthPageThemeRequest(server string, id ProjectId) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithOptions("simple", false, "id", id, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationPath, Type: "string", Format: "uuid"}) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/projects/%s/auth/pages/theme", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest(http.MethodDelete, queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewUpdateAuthPageThemeRequest calls the generic UpdateAuthPageTheme builder with application/json body +func NewUpdateAuthPageThemeRequest(server string, id ProjectId, body UpdateAuthPageThemeJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewUpdateAuthPageThemeRequestWithBody(server, id, "application/json", bodyReader) +} + +// NewUpdateAuthPageThemeRequestWithBody generates requests for UpdateAuthPageTheme with any type of body +func NewUpdateAuthPageThemeRequestWithBody(server string, id ProjectId, contentType string, body io.Reader) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithOptions("simple", false, "id", id, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationPath, Type: "string", Format: "uuid"}) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/projects/%s/auth/pages/theme", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest(http.MethodPut, queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewDeleteAuthPageLayoutRequest generates requests for DeleteAuthPageLayout +func NewDeleteAuthPageLayoutRequest(server string, id ProjectId, pageType HostedAuthPageType) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithOptions("simple", false, "id", id, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationPath, Type: "string", Format: "uuid"}) + if err != nil { + return nil, err + } + + var pathParam1 string + + pathParam1, err = runtime.StyleParamWithOptions("simple", false, "pageType", pageType, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationPath, Type: "string", Format: ""}) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/projects/%s/auth/pages/%s/layout", pathParam0, pathParam1) if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -18338,7 +19287,7 @@ func NewRenderManagedAuthPageRequest(server string, id ProjectId, pageType Hoste return nil, err } - req, err := http.NewRequest(http.MethodGet, queryURL.String(), nil) + req, err := http.NewRequest(http.MethodDelete, queryURL.String(), nil) if err != nil { return nil, err } @@ -18346,98 +19295,31 @@ func NewRenderManagedAuthPageRequest(server string, id ProjectId, pageType Hoste return req, nil } -// NewGetAuthInsightsRequest generates requests for GetAuthInsights -func NewGetAuthInsightsRequest(server string, id ProjectId, params *GetAuthInsightsParams) (*http.Request, error) { - var err error - - var pathParam0 string - - pathParam0, err = runtime.StyleParamWithOptions("simple", false, "id", id, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationPath, Type: "string", Format: "uuid"}) - if err != nil { - return nil, err - } - - serverURL, err := url.Parse(server) - if err != nil { - return nil, err - } - - operationPath := fmt.Sprintf("/projects/%s/auth/insights", pathParam0) - if operationPath[0] == '/' { - operationPath = "." + operationPath - } - - queryURL, err := serverURL.Parse(operationPath) +// NewUpdateAuthPageLayoutRequest calls the generic UpdateAuthPageLayout builder with application/json body +func NewUpdateAuthPageLayoutRequest(server string, id ProjectId, pageType HostedAuthPageType, body UpdateAuthPageLayoutJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) if err != nil { return nil, err } + bodyReader = bytes.NewReader(buf) + return NewUpdateAuthPageLayoutRequestWithBody(server, id, pageType, "application/json", bodyReader) +} - if params != nil { - // queryValues collects non-styled parameters (passthrough, JSON) - // that are safe to round-trip through url.Values.Encode(). - queryValues := queryURL.Query() - // rawQueryFragments collects pre-encoded query fragments from - // styled parameters, preserving literal commas as delimiters - // per the OpenAPI spec (e.g. "color=blue,black,brown"). - var rawQueryFragments []string - - if params.From != nil { - - if queryFrag, err := runtime.StyleParamWithOptions("form", true, "from", *params.From, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "string", Format: "date"}); err != nil { - return nil, err - } else { - for _, qp := range strings.Split(queryFrag, "&") { - rawQueryFragments = append(rawQueryFragments, qp) - } - } - - } - - if params.To != nil { - - if queryFrag, err := runtime.StyleParamWithOptions("form", true, "to", *params.To, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "string", Format: "date"}); err != nil { - return nil, err - } else { - for _, qp := range strings.Split(queryFrag, "&") { - rawQueryFragments = append(rawQueryFragments, qp) - } - } - - } - - if params.Interval != nil { - - if queryFrag, err := runtime.StyleParamWithOptions("form", true, "interval", *params.Interval, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "string", Format: ""}); err != nil { - return nil, err - } else { - for _, qp := range strings.Split(queryFrag, "&") { - rawQueryFragments = append(rawQueryFragments, qp) - } - } - - } +// NewUpdateAuthPageLayoutRequestWithBody generates requests for UpdateAuthPageLayout with any type of body +func NewUpdateAuthPageLayoutRequestWithBody(server string, id ProjectId, pageType HostedAuthPageType, contentType string, body io.Reader) (*http.Request, error) { + var err error - if encoded := queryValues.Encode(); encoded != "" { - rawQueryFragments = append(rawQueryFragments, encoded) - } - queryURL.RawQuery = strings.Join(rawQueryFragments, "&") - } + var pathParam0 string - req, err := http.NewRequest(http.MethodGet, queryURL.String(), nil) + pathParam0, err = runtime.StyleParamWithOptions("simple", false, "id", id, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationPath, Type: "string", Format: "uuid"}) if err != nil { return nil, err } - return req, nil -} - -// NewGetAuthMethodsRequest generates requests for GetAuthMethods -func NewGetAuthMethodsRequest(server string, id ProjectId) (*http.Request, error) { - var err error - - var pathParam0 string + var pathParam1 string - pathParam0, err = runtime.StyleParamWithOptions("simple", false, "id", id, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationPath, Type: "string", Format: "uuid"}) + pathParam1, err = runtime.StyleParamWithOptions("simple", false, "pageType", pageType, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationPath, Type: "string", Format: ""}) if err != nil { return nil, err } @@ -18447,7 +19329,7 @@ func NewGetAuthMethodsRequest(server string, id ProjectId) (*http.Request, error return nil, err } - operationPath := fmt.Sprintf("/projects/%s/auth/methods", pathParam0) + operationPath := fmt.Sprintf("/projects/%s/auth/pages/%s/layout", pathParam0, pathParam1) if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -18457,27 +19339,29 @@ func NewGetAuthMethodsRequest(server string, id ProjectId) (*http.Request, error return nil, err } - req, err := http.NewRequest(http.MethodGet, queryURL.String(), nil) + req, err := http.NewRequest(http.MethodPut, queryURL.String(), body) if err != nil { return nil, err } + req.Header.Add("Content-Type", contentType) + return req, nil } -// NewConfigureAuthMethodsRequest calls the generic ConfigureAuthMethods builder with application/json body -func NewConfigureAuthMethodsRequest(server string, id ProjectId, body ConfigureAuthMethodsJSONRequestBody) (*http.Request, error) { +// NewPreviewAuthPageRequest calls the generic PreviewAuthPage builder with application/json body +func NewPreviewAuthPageRequest(server string, id ProjectId, pageType HostedAuthPageType, body PreviewAuthPageJSONRequestBody) (*http.Request, error) { var bodyReader io.Reader buf, err := json.Marshal(body) if err != nil { return nil, err } bodyReader = bytes.NewReader(buf) - return NewConfigureAuthMethodsRequestWithBody(server, id, "application/json", bodyReader) + return NewPreviewAuthPageRequestWithBody(server, id, pageType, "application/json", bodyReader) } -// NewConfigureAuthMethodsRequestWithBody generates requests for ConfigureAuthMethods with any type of body -func NewConfigureAuthMethodsRequestWithBody(server string, id ProjectId, contentType string, body io.Reader) (*http.Request, error) { +// NewPreviewAuthPageRequestWithBody generates requests for PreviewAuthPage with any type of body +func NewPreviewAuthPageRequestWithBody(server string, id ProjectId, pageType HostedAuthPageType, contentType string, body io.Reader) (*http.Request, error) { var err error var pathParam0 string @@ -18487,12 +19371,19 @@ func NewConfigureAuthMethodsRequestWithBody(server string, id ProjectId, content return nil, err } + var pathParam1 string + + pathParam1, err = runtime.StyleParamWithOptions("simple", false, "pageType", pageType, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationPath, Type: "string", Format: ""}) + if err != nil { + return nil, err + } + serverURL, err := url.Parse(server) if err != nil { return nil, err } - operationPath := fmt.Sprintf("/projects/%s/auth/methods", pathParam0) + operationPath := fmt.Sprintf("/projects/%s/auth/pages/%s/preview", pathParam0, pathParam1) if operationPath[0] == '/' { operationPath = "." + operationPath } @@ -18502,7 +19393,7 @@ func NewConfigureAuthMethodsRequestWithBody(server string, id ProjectId, content return nil, err } - req, err := http.NewRequest(http.MethodPut, queryURL.String(), body) + req, err := http.NewRequest(http.MethodPost, queryURL.String(), body) if err != nil { return nil, err } @@ -19293,6 +20184,18 @@ func NewListDatabasesRequest(server string, id ProjectId, params *ListDatabasesP } + if params.Status != nil { + + if queryFrag, err := runtime.StyleParamWithOptions("form", true, "status", *params.Status, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationQuery, Type: "string", Format: ""}); err != nil { + return nil, err + } else { + for _, qp := range strings.Split(queryFrag, "&") { + rawQueryFragments = append(rawQueryFragments, qp) + } + } + + } + if encoded := queryValues.Encode(); encoded != "" { rawQueryFragments = append(rawQueryFragments, encoded) } @@ -22419,53 +23322,6 @@ func NewSetProjectGitProductionBranchRequestWithBody(server string, id ProjectId return req, nil } -// NewCreateProjectGitRepositoryRequest calls the generic CreateProjectGitRepository builder with application/json body -func NewCreateProjectGitRepositoryRequest(server string, id ProjectId, body CreateProjectGitRepositoryJSONRequestBody) (*http.Request, error) { - var bodyReader io.Reader - buf, err := json.Marshal(body) - if err != nil { - return nil, err - } - bodyReader = bytes.NewReader(buf) - return NewCreateProjectGitRepositoryRequestWithBody(server, id, "application/json", bodyReader) -} - -// NewCreateProjectGitRepositoryRequestWithBody generates requests for CreateProjectGitRepository with any type of body -func NewCreateProjectGitRepositoryRequestWithBody(server string, id ProjectId, contentType string, body io.Reader) (*http.Request, error) { - var err error - - var pathParam0 string - - pathParam0, err = runtime.StyleParamWithOptions("simple", false, "id", id, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationPath, Type: "string", Format: "uuid"}) - if err != nil { - return nil, err - } - - serverURL, err := url.Parse(server) - if err != nil { - return nil, err - } - - operationPath := fmt.Sprintf("/projects/%s/git-connection/repository", pathParam0) - if operationPath[0] == '/' { - operationPath = "." + operationPath - } - - queryURL, err := serverURL.Parse(operationPath) - if err != nil { - return nil, err - } - - req, err := http.NewRequest(http.MethodPost, queryURL.String(), body) - if err != nil { - return nil, err - } - - req.Header.Add("Content-Type", contentType) - - return req, nil -} - // NewGetProjectGitDeploySettingsRequest generates requests for GetProjectGitDeploySettings func NewGetProjectGitDeploySettingsRequest(server string, id ProjectId) (*http.Request, error) { var err error @@ -23774,6 +24630,121 @@ func NewRegenerateServiceKeyRequest(server string, id ProjectId, keyId openapi_t return req, nil } +// NewCancelProjectSourceExportRequest generates requests for CancelProjectSourceExport +func NewCancelProjectSourceExportRequest(server string, id ProjectId) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithOptions("simple", false, "id", id, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationPath, Type: "string", Format: "uuid"}) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/projects/%s/source-export", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest(http.MethodDelete, queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewGetProjectSourceExportRequest generates requests for GetProjectSourceExport +func NewGetProjectSourceExportRequest(server string, id ProjectId) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithOptions("simple", false, "id", id, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationPath, Type: "string", Format: "uuid"}) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/projects/%s/source-export", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest(http.MethodGet, queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewExportProjectSourceRequest calls the generic ExportProjectSource builder with application/json body +func NewExportProjectSourceRequest(server string, id ProjectId, body ExportProjectSourceJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewExportProjectSourceRequestWithBody(server, id, "application/json", bodyReader) +} + +// NewExportProjectSourceRequestWithBody generates requests for ExportProjectSource with any type of body +func NewExportProjectSourceRequestWithBody(server string, id ProjectId, contentType string, body io.Reader) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithOptions("simple", false, "id", id, runtime.StyleParamOptions{ParamLocation: runtime.ParamLocationPath, Type: "string", Format: "uuid"}) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/projects/%s/source-export", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest(http.MethodPost, queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + // NewListStorageBucketsRequest generates requests for ListStorageBuckets func NewListStorageBucketsRequest(server string, id ProjectId, params *ListStorageBucketsParams) (*http.Request, error) { var err error @@ -25985,6 +26956,30 @@ type ClientWithResponsesInterface interface { ConfigureAuthMethodsWithResponse(ctx context.Context, id ProjectId, body ConfigureAuthMethodsJSONRequestBody, reqEditors ...RequestEditorFn) (*ConfigureAuthMethodsClientResponse, error) + // GetAuthPageAppearanceWithResponse request + GetAuthPageAppearanceWithResponse(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*GetAuthPageAppearanceClientResponse, error) + + // DeleteAuthPageThemeWithResponse request + DeleteAuthPageThemeWithResponse(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*DeleteAuthPageThemeClientResponse, error) + + // UpdateAuthPageThemeWithBodyWithResponse request with any body + UpdateAuthPageThemeWithBodyWithResponse(ctx context.Context, id ProjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateAuthPageThemeClientResponse, error) + + UpdateAuthPageThemeWithResponse(ctx context.Context, id ProjectId, body UpdateAuthPageThemeJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateAuthPageThemeClientResponse, error) + + // DeleteAuthPageLayoutWithResponse request + DeleteAuthPageLayoutWithResponse(ctx context.Context, id ProjectId, pageType HostedAuthPageType, reqEditors ...RequestEditorFn) (*DeleteAuthPageLayoutClientResponse, error) + + // UpdateAuthPageLayoutWithBodyWithResponse request with any body + UpdateAuthPageLayoutWithBodyWithResponse(ctx context.Context, id ProjectId, pageType HostedAuthPageType, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateAuthPageLayoutClientResponse, error) + + UpdateAuthPageLayoutWithResponse(ctx context.Context, id ProjectId, pageType HostedAuthPageType, body UpdateAuthPageLayoutJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateAuthPageLayoutClientResponse, error) + + // PreviewAuthPageWithBodyWithResponse request with any body + PreviewAuthPageWithBodyWithResponse(ctx context.Context, id ProjectId, pageType HostedAuthPageType, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PreviewAuthPageClientResponse, error) + + PreviewAuthPageWithResponse(ctx context.Context, id ProjectId, pageType HostedAuthPageType, body PreviewAuthPageJSONRequestBody, reqEditors ...RequestEditorFn) (*PreviewAuthPageClientResponse, error) + // ListAuthUsersWithResponse request ListAuthUsersWithResponse(ctx context.Context, id ProjectId, params *ListAuthUsersParams, reqEditors ...RequestEditorFn) (*ListAuthUsersClientResponse, error) @@ -26223,11 +27218,6 @@ type ClientWithResponsesInterface interface { SetProjectGitProductionBranchWithResponse(ctx context.Context, id ProjectId, body SetProjectGitProductionBranchJSONRequestBody, reqEditors ...RequestEditorFn) (*SetProjectGitProductionBranchClientResponse, error) - // CreateProjectGitRepositoryWithBodyWithResponse request with any body - CreateProjectGitRepositoryWithBodyWithResponse(ctx context.Context, id ProjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateProjectGitRepositoryClientResponse, error) - - CreateProjectGitRepositoryWithResponse(ctx context.Context, id ProjectId, body CreateProjectGitRepositoryJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateProjectGitRepositoryClientResponse, error) - // GetProjectGitDeploySettingsWithResponse request GetProjectGitDeploySettingsWithResponse(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*GetProjectGitDeploySettingsClientResponse, error) @@ -26321,6 +27311,17 @@ type ClientWithResponsesInterface interface { // RegenerateServiceKeyWithResponse request RegenerateServiceKeyWithResponse(ctx context.Context, id ProjectId, keyId openapi_types.UUID, reqEditors ...RequestEditorFn) (*RegenerateServiceKeyClientResponse, error) + // CancelProjectSourceExportWithResponse request + CancelProjectSourceExportWithResponse(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*CancelProjectSourceExportClientResponse, error) + + // GetProjectSourceExportWithResponse request + GetProjectSourceExportWithResponse(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*GetProjectSourceExportClientResponse, error) + + // ExportProjectSourceWithBodyWithResponse request with any body + ExportProjectSourceWithBodyWithResponse(ctx context.Context, id ProjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ExportProjectSourceClientResponse, error) + + ExportProjectSourceWithResponse(ctx context.Context, id ProjectId, body ExportProjectSourceJSONRequestBody, reqEditors ...RequestEditorFn) (*ExportProjectSourceClientResponse, error) + // ListStorageBucketsWithResponse request ListStorageBucketsWithResponse(ctx context.Context, id ProjectId, params *ListStorageBucketsParams, reqEditors ...RequestEditorFn) (*ListStorageBucketsClientResponse, error) @@ -27727,6 +28728,7 @@ type QueryDatabaseBranchDeleteClientResponse struct { JSON403 *Error JSON404 *Error JSON429 *DatabaseQueryCapExceeded + JSON503 *DatabaseBranchQueryUnavailable } // Status returns HTTPResponse.Status @@ -27762,6 +28764,7 @@ type QueryDatabaseBranchInsertClientResponse struct { JSON403 *Error JSON404 *Error JSON429 *DatabaseQueryCapExceeded + JSON503 *DatabaseBranchQueryUnavailable } // Status returns HTTPResponse.Status @@ -27796,6 +28799,7 @@ type QueryDatabaseBranchPingClientResponse struct { JSON403 *Error JSON404 *Error JSON429 *DatabaseQueryCapExceeded + JSON503 *DatabaseBranchQueryUnavailable } // Status returns HTTPResponse.Status @@ -27831,6 +28835,7 @@ type QueryDatabaseBranchSelectClientResponse struct { JSON403 *Error JSON404 *Error JSON429 *DatabaseQueryCapExceeded + JSON503 *DatabaseBranchQueryUnavailable } // Status returns HTTPResponse.Status @@ -27866,6 +28871,7 @@ type QueryDatabaseBranchUpdateClientResponse struct { JSON403 *Error JSON404 *Error JSON429 *DatabaseQueryCapExceeded + JSON503 *DatabaseBranchQueryUnavailable } // Status returns HTTPResponse.Status @@ -29450,6 +30456,212 @@ func (r ConfigureAuthMethodsClientResponse) ContentType() string { return "" } +type GetAuthPageAppearanceClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *AuthPageAppearanceResponse + JSON401 *Error + JSON403 *Error + JSON404 *Error + JSON500 *Error +} + +// Status returns HTTPResponse.Status +func (r GetAuthPageAppearanceClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetAuthPageAppearanceClientResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +// ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers +func (r GetAuthPageAppearanceClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + +type DeleteAuthPageThemeClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON401 *Error + JSON403 *Error + JSON404 *Error + JSON500 *Error +} + +// Status returns HTTPResponse.Status +func (r DeleteAuthPageThemeClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r DeleteAuthPageThemeClientResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +// ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers +func (r DeleteAuthPageThemeClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + +type UpdateAuthPageThemeClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *UpdateAuthPageThemeRequest + JSON400 *Error + JSON401 *Error + JSON403 *Error + JSON404 *Error + JSON500 *Error +} + +// Status returns HTTPResponse.Status +func (r UpdateAuthPageThemeClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r UpdateAuthPageThemeClientResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +// ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers +func (r UpdateAuthPageThemeClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + +type DeleteAuthPageLayoutClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON400 *Error + JSON401 *Error + JSON403 *Error + JSON404 *Error + JSON500 *Error +} + +// Status returns HTTPResponse.Status +func (r DeleteAuthPageLayoutClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r DeleteAuthPageLayoutClientResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +// ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers +func (r DeleteAuthPageLayoutClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + +type UpdateAuthPageLayoutClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *UpdateAuthPageLayoutRequest + JSON400 *Error + JSON401 *Error + JSON403 *Error + JSON404 *Error + JSON500 *Error +} + +// Status returns HTTPResponse.Status +func (r UpdateAuthPageLayoutClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r UpdateAuthPageLayoutClientResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +// ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers +func (r UpdateAuthPageLayoutClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + +type PreviewAuthPageClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *PreviewAuthPageResponse + JSON400 *Error + JSON401 *Error + JSON403 *Error + JSON404 *Error + JSON500 *Error +} + +// Status returns HTTPResponse.Status +func (r PreviewAuthPageClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r PreviewAuthPageClientResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +// ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers +func (r PreviewAuthPageClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + type ListAuthUsersClientResponse struct { Body []byte HTTPResponse *http.Response @@ -29854,6 +31066,7 @@ type DeleteDatabaseClientResponse struct { } JSON404 *Error JSON409 *Error + JSON503 *Error } // Status returns HTTPResponse.Status @@ -30405,6 +31618,7 @@ type ResetDatabasePasswordClientResponse struct { JSON400 *Error JSON404 *Error JSON409 *Error + JSON503 *Error } // Status returns HTTPResponse.Status @@ -30570,6 +31784,7 @@ type UpdateDatabaseTypeClientResponse struct { HTTPResponse *http.Response JSON200 *Database JSON409 *Error + JSON503 *Error } // Status returns HTTPResponse.Status @@ -31589,6 +32804,7 @@ type DisconnectProjectGitClientResponse struct { JSON401 *Error JSON403 *Error JSON404 *Error + JSON409 *Error JSON500 *Error } @@ -31658,6 +32874,7 @@ type ConnectProjectGitClientResponse struct { JSON401 *Error JSON403 *Error JSON404 *Error + JSON409 *Error JSON500 *Error JSON503 *Error } @@ -31694,6 +32911,7 @@ type SetProjectGitProductionBranchClientResponse struct { JSON401 *Error JSON403 *Error JSON404 *Error + JSON409 *Error JSON500 *Error } @@ -31721,45 +32939,6 @@ func (r SetProjectGitProductionBranchClientResponse) ContentType() string { return "" } -type CreateProjectGitRepositoryClientResponse struct { - Body []byte - HTTPResponse *http.Response - JSON201 *CreatedProjectGitConnection - JSON400 *Error - JSON401 *Error - JSON403 *Error - JSON404 *Error - JSON409 *Error - JSON422 *Error - JSON429 *Error - JSON500 *Error - JSON503 *Error -} - -// Status returns HTTPResponse.Status -func (r CreateProjectGitRepositoryClientResponse) Status() string { - if r.HTTPResponse != nil { - return r.HTTPResponse.Status - } - return http.StatusText(0) -} - -// StatusCode returns HTTPResponse.StatusCode -func (r CreateProjectGitRepositoryClientResponse) StatusCode() int { - if r.HTTPResponse != nil { - return r.HTTPResponse.StatusCode - } - return 0 -} - -// ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers -func (r CreateProjectGitRepositoryClientResponse) ContentType() string { - if r.HTTPResponse != nil { - return r.HTTPResponse.Header.Get("Content-Type") - } - return "" -} - type GetProjectGitDeploySettingsClientResponse struct { Body []byte HTTPResponse *http.Response @@ -31802,6 +32981,7 @@ type UpdateProjectGitDeploySettingsClientResponse struct { JSON401 *Error JSON403 *Error JSON404 *Error + JSON409 *Error JSON500 *Error } @@ -32561,6 +33741,116 @@ func (r RegenerateServiceKeyClientResponse) ContentType() string { return "" } +type CancelProjectSourceExportClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON401 *Error + JSON403 *Error + JSON404 *Error + JSON409 *Error + JSON500 *Error + JSON501 *Error +} + +// Status returns HTTPResponse.Status +func (r CancelProjectSourceExportClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r CancelProjectSourceExportClientResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +// ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers +func (r CancelProjectSourceExportClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + +type GetProjectSourceExportClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *ProjectSourceExportState + JSON401 *Error + JSON403 *Error + JSON404 *Error + JSON500 *Error + JSON501 *Error +} + +// Status returns HTTPResponse.Status +func (r GetProjectSourceExportClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r GetProjectSourceExportClientResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +// ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers +func (r GetProjectSourceExportClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + +type ExportProjectSourceClientResponse struct { + Body []byte + HTTPResponse *http.Response + JSON201 *ProjectSourceExport + JSON400 *Error + JSON401 *Error + JSON403 *Error + JSON404 *Error + JSON409 *Error + JSON422 *Error + JSON429 *Error + JSON500 *Error + JSON501 *Error + JSON503 *Error +} + +// Status returns HTTPResponse.Status +func (r ExportProjectSourceClientResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r ExportProjectSourceClientResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +// ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers +func (r ExportProjectSourceClientResponse) ContentType() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Header.Get("Content-Type") + } + return "" +} + type ListStorageBucketsClientResponse struct { Body []byte HTTPResponse *http.Response @@ -34735,6 +36025,84 @@ func (c *ClientWithResponses) ConfigureAuthMethodsWithResponse(ctx context.Conte return ParseConfigureAuthMethodsClientResponse(rsp) } +// GetAuthPageAppearanceWithResponse request returning *GetAuthPageAppearanceClientResponse +func (c *ClientWithResponses) GetAuthPageAppearanceWithResponse(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*GetAuthPageAppearanceClientResponse, error) { + rsp, err := c.GetAuthPageAppearance(ctx, id, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetAuthPageAppearanceClientResponse(rsp) +} + +// DeleteAuthPageThemeWithResponse request returning *DeleteAuthPageThemeClientResponse +func (c *ClientWithResponses) DeleteAuthPageThemeWithResponse(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*DeleteAuthPageThemeClientResponse, error) { + rsp, err := c.DeleteAuthPageTheme(ctx, id, reqEditors...) + if err != nil { + return nil, err + } + return ParseDeleteAuthPageThemeClientResponse(rsp) +} + +// UpdateAuthPageThemeWithBodyWithResponse request with arbitrary body returning *UpdateAuthPageThemeClientResponse +func (c *ClientWithResponses) UpdateAuthPageThemeWithBodyWithResponse(ctx context.Context, id ProjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateAuthPageThemeClientResponse, error) { + rsp, err := c.UpdateAuthPageThemeWithBody(ctx, id, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseUpdateAuthPageThemeClientResponse(rsp) +} + +func (c *ClientWithResponses) UpdateAuthPageThemeWithResponse(ctx context.Context, id ProjectId, body UpdateAuthPageThemeJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateAuthPageThemeClientResponse, error) { + rsp, err := c.UpdateAuthPageTheme(ctx, id, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseUpdateAuthPageThemeClientResponse(rsp) +} + +// DeleteAuthPageLayoutWithResponse request returning *DeleteAuthPageLayoutClientResponse +func (c *ClientWithResponses) DeleteAuthPageLayoutWithResponse(ctx context.Context, id ProjectId, pageType HostedAuthPageType, reqEditors ...RequestEditorFn) (*DeleteAuthPageLayoutClientResponse, error) { + rsp, err := c.DeleteAuthPageLayout(ctx, id, pageType, reqEditors...) + if err != nil { + return nil, err + } + return ParseDeleteAuthPageLayoutClientResponse(rsp) +} + +// UpdateAuthPageLayoutWithBodyWithResponse request with arbitrary body returning *UpdateAuthPageLayoutClientResponse +func (c *ClientWithResponses) UpdateAuthPageLayoutWithBodyWithResponse(ctx context.Context, id ProjectId, pageType HostedAuthPageType, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateAuthPageLayoutClientResponse, error) { + rsp, err := c.UpdateAuthPageLayoutWithBody(ctx, id, pageType, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseUpdateAuthPageLayoutClientResponse(rsp) +} + +func (c *ClientWithResponses) UpdateAuthPageLayoutWithResponse(ctx context.Context, id ProjectId, pageType HostedAuthPageType, body UpdateAuthPageLayoutJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateAuthPageLayoutClientResponse, error) { + rsp, err := c.UpdateAuthPageLayout(ctx, id, pageType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseUpdateAuthPageLayoutClientResponse(rsp) +} + +// PreviewAuthPageWithBodyWithResponse request with arbitrary body returning *PreviewAuthPageClientResponse +func (c *ClientWithResponses) PreviewAuthPageWithBodyWithResponse(ctx context.Context, id ProjectId, pageType HostedAuthPageType, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PreviewAuthPageClientResponse, error) { + rsp, err := c.PreviewAuthPageWithBody(ctx, id, pageType, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePreviewAuthPageClientResponse(rsp) +} + +func (c *ClientWithResponses) PreviewAuthPageWithResponse(ctx context.Context, id ProjectId, pageType HostedAuthPageType, body PreviewAuthPageJSONRequestBody, reqEditors ...RequestEditorFn) (*PreviewAuthPageClientResponse, error) { + rsp, err := c.PreviewAuthPage(ctx, id, pageType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParsePreviewAuthPageClientResponse(rsp) +} + // ListAuthUsersWithResponse request returning *ListAuthUsersClientResponse func (c *ClientWithResponses) ListAuthUsersWithResponse(ctx context.Context, id ProjectId, params *ListAuthUsersParams, reqEditors ...RequestEditorFn) (*ListAuthUsersClientResponse, error) { rsp, err := c.ListAuthUsers(ctx, id, params, reqEditors...) @@ -35483,23 +36851,6 @@ func (c *ClientWithResponses) SetProjectGitProductionBranchWithResponse(ctx cont return ParseSetProjectGitProductionBranchClientResponse(rsp) } -// CreateProjectGitRepositoryWithBodyWithResponse request with arbitrary body returning *CreateProjectGitRepositoryClientResponse -func (c *ClientWithResponses) CreateProjectGitRepositoryWithBodyWithResponse(ctx context.Context, id ProjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateProjectGitRepositoryClientResponse, error) { - rsp, err := c.CreateProjectGitRepositoryWithBody(ctx, id, contentType, body, reqEditors...) - if err != nil { - return nil, err - } - return ParseCreateProjectGitRepositoryClientResponse(rsp) -} - -func (c *ClientWithResponses) CreateProjectGitRepositoryWithResponse(ctx context.Context, id ProjectId, body CreateProjectGitRepositoryJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateProjectGitRepositoryClientResponse, error) { - rsp, err := c.CreateProjectGitRepository(ctx, id, body, reqEditors...) - if err != nil { - return nil, err - } - return ParseCreateProjectGitRepositoryClientResponse(rsp) -} - // GetProjectGitDeploySettingsWithResponse request returning *GetProjectGitDeploySettingsClientResponse func (c *ClientWithResponses) GetProjectGitDeploySettingsWithResponse(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*GetProjectGitDeploySettingsClientResponse, error) { rsp, err := c.GetProjectGitDeploySettings(ctx, id, reqEditors...) @@ -35797,6 +37148,41 @@ func (c *ClientWithResponses) RegenerateServiceKeyWithResponse(ctx context.Conte return ParseRegenerateServiceKeyClientResponse(rsp) } +// CancelProjectSourceExportWithResponse request returning *CancelProjectSourceExportClientResponse +func (c *ClientWithResponses) CancelProjectSourceExportWithResponse(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*CancelProjectSourceExportClientResponse, error) { + rsp, err := c.CancelProjectSourceExport(ctx, id, reqEditors...) + if err != nil { + return nil, err + } + return ParseCancelProjectSourceExportClientResponse(rsp) +} + +// GetProjectSourceExportWithResponse request returning *GetProjectSourceExportClientResponse +func (c *ClientWithResponses) GetProjectSourceExportWithResponse(ctx context.Context, id ProjectId, reqEditors ...RequestEditorFn) (*GetProjectSourceExportClientResponse, error) { + rsp, err := c.GetProjectSourceExport(ctx, id, reqEditors...) + if err != nil { + return nil, err + } + return ParseGetProjectSourceExportClientResponse(rsp) +} + +// ExportProjectSourceWithBodyWithResponse request with arbitrary body returning *ExportProjectSourceClientResponse +func (c *ClientWithResponses) ExportProjectSourceWithBodyWithResponse(ctx context.Context, id ProjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ExportProjectSourceClientResponse, error) { + rsp, err := c.ExportProjectSourceWithBody(ctx, id, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseExportProjectSourceClientResponse(rsp) +} + +func (c *ClientWithResponses) ExportProjectSourceWithResponse(ctx context.Context, id ProjectId, body ExportProjectSourceJSONRequestBody, reqEditors ...RequestEditorFn) (*ExportProjectSourceClientResponse, error) { + rsp, err := c.ExportProjectSource(ctx, id, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseExportProjectSourceClientResponse(rsp) +} + // ListStorageBucketsWithResponse request returning *ListStorageBucketsClientResponse func (c *ClientWithResponses) ListStorageBucketsWithResponse(ctx context.Context, id ProjectId, params *ListStorageBucketsParams, reqEditors ...RequestEditorFn) (*ListStorageBucketsClientResponse, error) { rsp, err := c.ListStorageBuckets(ctx, id, params, reqEditors...) @@ -37673,6 +39059,13 @@ func ParseQueryDatabaseBranchDeleteClientResponse(rsp *http.Response) (*QueryDat } response.JSON429 = &dest + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 503: + var dest DatabaseBranchQueryUnavailable + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON503 = &dest + } return response, nil @@ -37734,6 +39127,13 @@ func ParseQueryDatabaseBranchInsertClientResponse(rsp *http.Response) (*QueryDat } response.JSON429 = &dest + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 503: + var dest DatabaseBranchQueryUnavailable + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON503 = &dest + } return response, nil @@ -37788,6 +39188,13 @@ func ParseQueryDatabaseBranchPingClientResponse(rsp *http.Response) (*QueryDatab } response.JSON429 = &dest + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 503: + var dest DatabaseBranchQueryUnavailable + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON503 = &dest + } return response, nil @@ -37849,6 +39256,13 @@ func ParseQueryDatabaseBranchSelectClientResponse(rsp *http.Response) (*QueryDat } response.JSON429 = &dest + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 503: + var dest DatabaseBranchQueryUnavailable + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON503 = &dest + } return response, nil @@ -37910,6 +39324,13 @@ func ParseQueryDatabaseBranchUpdateClientResponse(rsp *http.Response) (*QueryDat } response.JSON429 = &dest + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 503: + var dest DatabaseBranchQueryUnavailable + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON503 = &dest + } return response, nil @@ -39883,65 +41304,403 @@ func ParseGetAuthInsightsClientResponse(rsp *http.Response) (*GetAuthInsightsCli return response, nil } -// ParseGetAuthMethodsClientResponse parses an HTTP response from a GetAuthMethodsWithResponse call -func ParseGetAuthMethodsClientResponse(rsp *http.Response) (*GetAuthMethodsClientResponse, error) { +// ParseGetAuthMethodsClientResponse parses an HTTP response from a GetAuthMethodsWithResponse call +func ParseGetAuthMethodsClientResponse(rsp *http.Response) (*GetAuthMethodsClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetAuthMethodsClientResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest struct { + Anonymous *struct { + Enabled *bool `json:"enabled,omitempty"` + Method *string `json:"method,omitempty"` + Name *string `json:"name,omitempty"` + } `json:"anonymous,omitempty"` + AvailableMethods *[]string `json:"available_methods,omitempty"` + EmailPassword *struct { + Enabled *bool `json:"enabled,omitempty"` + Method *string `json:"method,omitempty"` + Name *string `json:"name,omitempty"` + } `json:"email_password,omitempty"` + OauthProviders *[]struct { + Enabled *bool `json:"enabled,omitempty"` + Method *string `json:"method,omitempty"` + Name *string `json:"name,omitempty"` + Provider *string `json:"provider,omitempty"` + RedirectUrl *string `json:"redirect_url,omitempty"` + Scopes *[]string `json:"scopes,omitempty"` + } `json:"oauth_providers,omitempty"` + } + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + } + + return response, nil +} + +// ParseConfigureAuthMethodsClientResponse parses an HTTP response from a ConfigureAuthMethodsWithResponse call +func ParseConfigureAuthMethodsClientResponse(rsp *http.Response) (*ConfigureAuthMethodsClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &ConfigureAuthMethodsClientResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + return response, nil +} + +// ParseGetAuthPageAppearanceClientResponse parses an HTTP response from a GetAuthPageAppearanceWithResponse call +func ParseGetAuthPageAppearanceClientResponse(rsp *http.Response) (*GetAuthPageAppearanceClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetAuthPageAppearanceClientResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest AuthPageAppearanceResponse + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON401 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON403 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON404 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON500 = &dest + + } + + return response, nil +} + +// ParseDeleteAuthPageThemeClientResponse parses an HTTP response from a DeleteAuthPageThemeWithResponse call +func ParseDeleteAuthPageThemeClientResponse(rsp *http.Response) (*DeleteAuthPageThemeClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &DeleteAuthPageThemeClientResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON401 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON403 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON404 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON500 = &dest + + } + + return response, nil +} + +// ParseUpdateAuthPageThemeClientResponse parses an HTTP response from a UpdateAuthPageThemeWithResponse call +func ParseUpdateAuthPageThemeClientResponse(rsp *http.Response) (*UpdateAuthPageThemeClientResponse, error) { bodyBytes, err := io.ReadAll(rsp.Body) defer func() { _ = rsp.Body.Close() }() if err != nil { return nil, err } - response := &GetAuthMethodsClientResponse{ + response := &UpdateAuthPageThemeClientResponse{ Body: bodyBytes, HTTPResponse: rsp, } switch { case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest struct { - Anonymous *struct { - Enabled *bool `json:"enabled,omitempty"` - Method *string `json:"method,omitempty"` - Name *string `json:"name,omitempty"` - } `json:"anonymous,omitempty"` - AvailableMethods *[]string `json:"available_methods,omitempty"` - EmailPassword *struct { - Enabled *bool `json:"enabled,omitempty"` - Method *string `json:"method,omitempty"` - Name *string `json:"name,omitempty"` - } `json:"email_password,omitempty"` - OauthProviders *[]struct { - Enabled *bool `json:"enabled,omitempty"` - Method *string `json:"method,omitempty"` - Name *string `json:"name,omitempty"` - Provider *string `json:"provider,omitempty"` - RedirectUrl *string `json:"redirect_url,omitempty"` - Scopes *[]string `json:"scopes,omitempty"` - } `json:"oauth_providers,omitempty"` + var dest UpdateAuthPageThemeRequest + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON400 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err } + response.JSON401 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON403 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON404 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON500 = &dest + + } + + return response, nil +} + +// ParseDeleteAuthPageLayoutClientResponse parses an HTTP response from a DeleteAuthPageLayoutWithResponse call +func ParseDeleteAuthPageLayoutClientResponse(rsp *http.Response) (*DeleteAuthPageLayoutClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &DeleteAuthPageLayoutClientResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON400 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON401 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON403 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON404 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON500 = &dest + + } + + return response, nil +} + +// ParseUpdateAuthPageLayoutClientResponse parses an HTTP response from a UpdateAuthPageLayoutWithResponse call +func ParseUpdateAuthPageLayoutClientResponse(rsp *http.Response) (*UpdateAuthPageLayoutClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &UpdateAuthPageLayoutClientResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest UpdateAuthPageLayoutRequest if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } response.JSON200 = &dest + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON400 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON401 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON403 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON404 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON500 = &dest + } return response, nil } -// ParseConfigureAuthMethodsClientResponse parses an HTTP response from a ConfigureAuthMethodsWithResponse call -func ParseConfigureAuthMethodsClientResponse(rsp *http.Response) (*ConfigureAuthMethodsClientResponse, error) { +// ParsePreviewAuthPageClientResponse parses an HTTP response from a PreviewAuthPageWithResponse call +func ParsePreviewAuthPageClientResponse(rsp *http.Response) (*PreviewAuthPageClientResponse, error) { bodyBytes, err := io.ReadAll(rsp.Body) defer func() { _ = rsp.Body.Close() }() if err != nil { return nil, err } - response := &ConfigureAuthMethodsClientResponse{ + response := &PreviewAuthPageClientResponse{ Body: bodyBytes, HTTPResponse: rsp, } + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest PreviewAuthPageResponse + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON400 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON401 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON403 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON404 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON500 = &dest + + } + return response, nil } @@ -40381,6 +42140,13 @@ func ParseDeleteDatabaseClientResponse(rsp *http.Response) (*DeleteDatabaseClien } response.JSON409 = &dest + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 503: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON503 = &dest + } return response, nil @@ -41198,6 +42964,13 @@ func ParseResetDatabasePasswordClientResponse(rsp *http.Response) (*ResetDatabas } response.JSON409 = &dest + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 503: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON503 = &dest + } return response, nil @@ -41433,6 +43206,13 @@ func ParseUpdateDatabaseTypeClientResponse(rsp *http.Response) (*UpdateDatabaseT } response.JSON409 = &dest + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 503: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON503 = &dest + } return response, nil @@ -42847,6 +44627,13 @@ func ParseDisconnectProjectGitClientResponse(rsp *http.Response) (*DisconnectPro } response.JSON404 = &dest + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 409: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON409 = &dest + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: var dest Error if err := json.Unmarshal(bodyBytes, &dest); err != nil { @@ -42962,6 +44749,13 @@ func ParseConnectProjectGitClientResponse(rsp *http.Response) (*ConnectProjectGi } response.JSON404 = &dest + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 409: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON409 = &dest + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: var dest Error if err := json.Unmarshal(bodyBytes, &dest); err != nil { @@ -43030,6 +44824,13 @@ func ParseSetProjectGitProductionBranchClientResponse(rsp *http.Response) (*SetP } response.JSON404 = &dest + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 409: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON409 = &dest + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: var dest Error if err := json.Unmarshal(bodyBytes, &dest); err != nil { @@ -43042,33 +44843,26 @@ func ParseSetProjectGitProductionBranchClientResponse(rsp *http.Response) (*SetP return response, nil } -// ParseCreateProjectGitRepositoryClientResponse parses an HTTP response from a CreateProjectGitRepositoryWithResponse call -func ParseCreateProjectGitRepositoryClientResponse(rsp *http.Response) (*CreateProjectGitRepositoryClientResponse, error) { +// ParseGetProjectGitDeploySettingsClientResponse parses an HTTP response from a GetProjectGitDeploySettingsWithResponse call +func ParseGetProjectGitDeploySettingsClientResponse(rsp *http.Response) (*GetProjectGitDeploySettingsClientResponse, error) { bodyBytes, err := io.ReadAll(rsp.Body) defer func() { _ = rsp.Body.Close() }() if err != nil { return nil, err } - response := &CreateProjectGitRepositoryClientResponse{ + response := &GetProjectGitDeploySettingsClientResponse{ Body: bodyBytes, HTTPResponse: rsp, } switch { - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 201: - var dest CreatedProjectGitConnection - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSON201 = &dest - - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: - var dest Error + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest ProjectGitDeploySettings if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } - response.JSON400 = &dest + response.JSON200 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: var dest Error @@ -43091,27 +44885,6 @@ func ParseCreateProjectGitRepositoryClientResponse(rsp *http.Response) (*CreateP } response.JSON404 = &dest - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 409: - var dest Error - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSON409 = &dest - - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 422: - var dest Error - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSON422 = &dest - - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 429: - var dest Error - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSON429 = &dest - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: var dest Error if err := json.Unmarshal(bodyBytes, &dest); err != nil { @@ -43119,27 +44892,20 @@ func ParseCreateProjectGitRepositoryClientResponse(rsp *http.Response) (*CreateP } response.JSON500 = &dest - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 503: - var dest Error - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSON503 = &dest - } return response, nil } -// ParseGetProjectGitDeploySettingsClientResponse parses an HTTP response from a GetProjectGitDeploySettingsWithResponse call -func ParseGetProjectGitDeploySettingsClientResponse(rsp *http.Response) (*GetProjectGitDeploySettingsClientResponse, error) { +// ParseUpdateProjectGitDeploySettingsClientResponse parses an HTTP response from a UpdateProjectGitDeploySettingsWithResponse call +func ParseUpdateProjectGitDeploySettingsClientResponse(rsp *http.Response) (*UpdateProjectGitDeploySettingsClientResponse, error) { bodyBytes, err := io.ReadAll(rsp.Body) defer func() { _ = rsp.Body.Close() }() if err != nil { return nil, err } - response := &GetProjectGitDeploySettingsClientResponse{ + response := &UpdateProjectGitDeploySettingsClientResponse{ Body: bodyBytes, HTTPResponse: rsp, } @@ -43152,6 +44918,13 @@ func ParseGetProjectGitDeploySettingsClientResponse(rsp *http.Response) (*GetPro } response.JSON200 = &dest + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON400 = &dest + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: var dest Error if err := json.Unmarshal(bodyBytes, &dest); err != nil { @@ -43173,66 +44946,12 @@ func ParseGetProjectGitDeploySettingsClientResponse(rsp *http.Response) (*GetPro } response.JSON404 = &dest - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: - var dest Error - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSON500 = &dest - - } - - return response, nil -} - -// ParseUpdateProjectGitDeploySettingsClientResponse parses an HTTP response from a UpdateProjectGitDeploySettingsWithResponse call -func ParseUpdateProjectGitDeploySettingsClientResponse(rsp *http.Response) (*UpdateProjectGitDeploySettingsClientResponse, error) { - bodyBytes, err := io.ReadAll(rsp.Body) - defer func() { _ = rsp.Body.Close() }() - if err != nil { - return nil, err - } - - response := &UpdateProjectGitDeploySettingsClientResponse{ - Body: bodyBytes, - HTTPResponse: rsp, - } - - switch { - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: - var dest ProjectGitDeploySettings - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSON200 = &dest - - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: - var dest Error - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSON400 = &dest - - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: - var dest Error - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSON401 = &dest - - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403: - var dest Error - if err := json.Unmarshal(bodyBytes, &dest); err != nil { - return nil, err - } - response.JSON403 = &dest - - case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404: + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 409: var dest Error if err := json.Unmarshal(bodyBytes, &dest); err != nil { return nil, err } - response.JSON404 = &dest + response.JSON409 = &dest case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: var dest Error @@ -44084,6 +45803,224 @@ func ParseRegenerateServiceKeyClientResponse(rsp *http.Response) (*RegenerateSer return response, nil } +// ParseCancelProjectSourceExportClientResponse parses an HTTP response from a CancelProjectSourceExportWithResponse call +func ParseCancelProjectSourceExportClientResponse(rsp *http.Response) (*CancelProjectSourceExportClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &CancelProjectSourceExportClientResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON401 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON403 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON404 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 409: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON409 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON500 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 501: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON501 = &dest + + } + + return response, nil +} + +// ParseGetProjectSourceExportClientResponse parses an HTTP response from a GetProjectSourceExportWithResponse call +func ParseGetProjectSourceExportClientResponse(rsp *http.Response) (*GetProjectSourceExportClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &GetProjectSourceExportClientResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest ProjectSourceExportState + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON401 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON403 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON404 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON500 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 501: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON501 = &dest + + } + + return response, nil +} + +// ParseExportProjectSourceClientResponse parses an HTTP response from a ExportProjectSourceWithResponse call +func ParseExportProjectSourceClientResponse(rsp *http.Response) (*ExportProjectSourceClientResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &ExportProjectSourceClientResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 201: + var dest ProjectSourceExport + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON201 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 400: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON400 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 401: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON401 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 403: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON403 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 404: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON404 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 409: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON409 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 422: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON422 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 429: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON429 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 500: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON500 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 501: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON501 = &dest + + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 503: + var dest Error + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON503 = &dest + + } + + return response, nil +} + // ParseListStorageBucketsClientResponse parses an HTTP response from a ListStorageBucketsWithResponse call func ParseListStorageBucketsClientResponse(rsp *http.Response) (*ListStorageBucketsClientResponse, error) { bodyBytes, err := io.ReadAll(rsp.Body) diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index cd5175f..30a6b91 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -1527,33 +1527,99 @@ paths: application/json: schema: $ref: '#/components/schemas/ProjectConfigValidationErrorResponse' - /projects/{id}/git-connection/repository: + /projects/{id}/source-export: + get: + tags: + - Projects + - Git Connections + summary: Report the project's source-of-truth state + operationId: getProjectSourceExport + description: | + Volcano stores the source of the functions and frontend it runs for a + project. This reports whether that source has been written to the + connected repository, and whether the repository has taken over as the + project's source of truth. + + `mode` is `platform`, `git_exporting`, `git_pending`, or `git`. Export + enters `git_exporting` before reading stored source. GitHub's signed + push event confirms that the initial commit reached the production + branch. That push or a newer production push changes the mode to + `git_pending` when it starts a deployment. `exported_at` records that + transition. + + A successful Git run completes the transition when it matches the + recorded repository, production branch, and root directory and actually + dispatches every recorded resource. Ordinary production-branch pushes + deploy without changing a platform-managed project's source ownership. + security: + - UserToken: [] + parameters: + - $ref: '#/components/parameters/ProjectId' + responses: + '200': + description: The project's source-of-truth state + content: + application/json: + schema: + $ref: '#/components/schemas/ProjectSourceExportState' + '401': + description: Unauthorized - invalid or missing token + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Forbidden - project not owned by the caller + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Project not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '501': + description: Source export is not available in this deployment mode + content: + application/json: + schema: + $ref: '#/components/schemas/Error' post: tags: - Projects - Git Connections - summary: Create a GitHub repository for a project and connect it + summary: Initialize an empty repository with a project's stored source + operationId: exportProjectSource description: | - Creates a new, empty repository under the caller's GitHub account or an - organization they have the App installed on, then binds the project to - it. This is the "Create on Git" counterpart to importing an existing - repo with PUT /projects/{id}/git-connection. + Creates the first commit in the connected repository and pushes it + directly to the configured production branch. The push enters the + ordinary Git auto-deploy flow. Direct source writes remain frozen until + that deployment succeeds and the repository becomes the source of truth. - The repository is created without an initial commit: its first commit - comes from the client that already holds the project's source, pushed - with the user's own Git credentials. Volcano never pushes on the user's - behalf. + The caller confirms the production branch shown before export. Starting + export pins that branch: later GitHub default-branch changes do not + repoint the project. If the configured branch changed after the caller + read it, the request fails without exporting so the caller can show and + confirm the new value. - Because it has no commits, it has no real default branch either — so - name the branch you are about to push in production_branch. Omitting it - binds the branch name GitHub reports for the new repository, which is - the account's configured default and only a guess at what will be - pushed; a push to anything else deploys nothing. + The response lists what the export could not carry: resources with no + successful deployment to take source from (`skipped`), and things no + export can hand back (`omitted`) — migrations, which Volcano stores no + copy of, and credential-shaped files, which are left for their owner to + add. - A 201 with app_installed false means the repository and the binding both - exist but the App cannot see the repo, so no push will ever deploy until - the user grants access at install_url. - operationId: createProjectGitRepository + Requires a connected repository with no commits or branches, and runs + once. Volcano never creates the repository. If GitHub did not confirm + the push, retrying creates the same commit and adopts it when it already + reached the repository. security: - UserToken: [] parameters: @@ -1563,64 +1629,53 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/CreateProjectGitRepositoryRequest' + $ref: '#/components/schemas/ExportProjectSourceRequest' responses: '201': - description: Repository created and connected to the project + description: The initial production-branch commit that was pushed content: application/json: schema: - $ref: '#/components/schemas/CreatedProjectGitConnection' + $ref: '#/components/schemas/ProjectSourceExport' '400': - description: | - Malformed request body, a missing repository name, a root_directory - that is not a relative path inside the repository, or a - production_branch that is not a valid Git branch name. All are - refused before the repository is created, so none of them means a - repository exists. + description: Malformed request body content: application/json: schema: $ref: '#/components/schemas/Error' '401': - description: Unauthorized, or the stored GitHub connection needs reconnecting + description: Unauthorized - invalid or missing token content: application/json: schema: $ref: '#/components/schemas/Error' '403': - description: | - Project not owned by the caller, or the GitHub account refused the - creation + description: Forbidden - project not owned by the caller content: application/json: schema: $ref: '#/components/schemas/Error' '404': - description: | - Project not found, no GitHub connection, or the App is not installed - on the requested owner account + description: Project not found, or it has no repository connected content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: | - The project already has a repository connected, or a concurrent - request connected one first, or the created repository landed under - a different account than the one selected. A body naming a - repository means that repository exists on GitHub and was not - connected; a body that names none means nothing was created. + The source has already been exported, the repository has already + taken over as the source of truth, the confirmed production branch + is stale, a function or frontend deployment is still in progress, + or the project has no stored source to export content: application/json: schema: $ref: '#/components/schemas/Error' '422': description: | - GitHub refused to create the repository. The name may already exist - on the account, the organization may forbid member repository - creation, or the account may be at its repository limit — GitHub - reports all of these identically, so the cause is not distinguished. + The repository refused the branch, or its contents cannot be laid + out as a repository — a stored file that only ever carries + credentials, or a layout Git auto-deploy would not read back content: application/json: schema: @@ -1632,20 +1687,73 @@ paths: schema: $ref: '#/components/schemas/Error' '500': - description: | - The repository was created but could not be connected, its creation - could not be confirmed, or the request failed before reaching - GitHub. The body is the discriminator, as it is for 409: one that - names a repository, or says the outcome could not be confirmed, - means a repository may exist — check the account before retrying - with another name. One that says no repository was created means - exactly that, and the same name can be retried. + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '501': + description: Source export is not available in this deployment mode content: application/json: schema: $ref: '#/components/schemas/Error' '503': - description: Git provider integration is not configured + description: GitHub integration is not configured + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + delete: + tags: + - Projects + - Git Connections + summary: Cancel an incomplete source export + operationId: cancelProjectSourceExport + description: | + Restores platform source writes while the project is in + `git_exporting` or `git_pending`. If Volcano reserved or deployed the + root commit, export remains consumed and cannot be run again. The + connected repository and any commit already pushed to it are unchanged. + security: + - UserToken: [] + parameters: + - $ref: '#/components/parameters/ProjectId' + responses: + '204': + description: The incomplete source transition was canceled + '401': + description: Unauthorized - invalid or missing token + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Forbidden - project not owned by the caller + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Project not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '409': + description: No incomplete transition exists, or Git already took ownership + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '501': + description: Source export is not available in this deployment mode content: application/json: schema: @@ -1717,6 +1825,12 @@ paths: application/json: schema: $ref: '#/components/schemas/Error' + '409': + description: A Git source transition is pending + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': description: Failed to set the production branch content: @@ -1829,6 +1943,14 @@ paths: application/json: schema: $ref: '#/components/schemas/Error' + '409': + description: | + A Git source transition is pending or complete, so the recorded + repository and root cannot be changed + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': description: Failed to connect project git content: @@ -1872,6 +1994,14 @@ paths: application/json: schema: $ref: '#/components/schemas/Error' + '409': + description: | + A Git source transition is pending or complete, so the recorded + repository cannot be disconnected + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': description: Failed to disconnect project git content: @@ -1979,6 +2109,14 @@ paths: application/json: schema: $ref: '#/components/schemas/Error' + '409': + description: | + A Git source transition is pending, or this change would remove + deploy coverage after Git has taken over + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '500': description: Failed to update project git deploy settings content: @@ -2458,6 +2596,17 @@ paths: - Ruby: def handler() (in main.rb) default: handler example: handler + is_public: + type: boolean + default: false + description: Whether the function can be reached through public invocation ingress. + invocation_mode: + $ref: '#/components/schemas/FunctionInvocationMode' + http_auth_mode: + $ref: '#/components/schemas/FunctionHTTPAuthMode' + openapi_spec: + type: string + description: JSON-encoded OpenAPI 3.0 or 3.1 metadata for an HTTP-mode function. responses: '200': description: Existing function updated; its deployment was started or queued @@ -2619,9 +2768,16 @@ paths: - Function receives payload only (no `__volcano_auth`) **Transport and CORS:** - - Direct invocation endpoint is intended for `http://api./functions/{functionId}/invoke` - - DNS invocation endpoint is `https://{functionId}.functions./` - - CORS preflight for invocation allows only `POST, OPTIONS` + - This operation is the authenticated direct RPC endpoint and always uses the + POST `{payload: ...}` contract, including for functions whose DNS ingress is + configured in HTTP mode. + - The geo-routed DNS ingress is `https://{functionId}.functions./`. + - RPC-mode DNS ingress accepts POST at `/`. HTTP-mode DNS ingress accepts GET, + HEAD, POST, PUT, PATCH, and DELETE at `/` and nested paths. + - Direct and RPC-mode CORS preflight advertises `POST, OPTIONS`. HTTP-mode DNS + preflight advertises `GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS`. + - `http_auth_mode: none` applies only to public HTTP-mode DNS ingress; this + direct operation always requires a Volcano credential. operationId: invokeFunction security: - AnonKey: [] @@ -2698,7 +2854,7 @@ paths: '429': description: | Rate limit exceeded (per-function or project-wide limit), or the - owning platform user's monthly bandwidth cap (aggregate ingress + + owning platform user's billing-cycle bandwidth allowance (aggregate ingress + egress) was exceeded. content: application/json: @@ -3305,7 +3461,7 @@ paths: 22.x or 24.x. The Node.js runtime is inferred from `package.json` `engines.node`; if omitted, Volcano uses Node.js 22.x. The selected Node.js family must also satisfy the installed Next.js package's - `engines.node` constraint. Volcano tests Next 15.5.23 (`^18.18.0 || ^19.8.0 || >=20.0.0`) and Next 16.3.2 (`>=20.9.0`). + `engines.node` constraint. Volcano tests Next 15.5.25 (`^18.18.0 || ^19.8.0 || >=20.0.0`) and Next 16.3.4 (`>=20.9.0`). Source archive size is enforced by the API with `SOURCE_ARCHIVE_SIZE_LIMIT_MB`; the CLI does not apply its own source archive size limit. After the final container images are built, the publish build enforces `LAMBDA_TARGET_CONTAINER_SIZE_LIMIT_MB` before pushing. @@ -3681,7 +3837,7 @@ paths: schema: $ref: '#/components/schemas/Error' '409': - description: Conflict - custom domain already in use or frontend already has a custom domain + description: Conflict - custom domain already in use, still detaching, or frontend already has a custom domain content: application/json: schema: @@ -3942,6 +4098,18 @@ paths: - $ref: '#/components/parameters/EndingBefore' - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Search' + - name: status + in: query + required: false + schema: + type: string + enum: + - provisioning + - active + - restoring + - failed + - deleting + description: Return only the databases in this status. responses: '200': description: Successful response @@ -3955,7 +4123,8 @@ paths: summary: Create a new serverless PostgreSQL database description: | Creates a serverless PostgreSQL database in the project. - Each project can contain up to 100 databases. Requests over this cap return 403. + Each project can hold 1 database on Free and up to 10,000 on Pro. + Requests over the plan's cap return 403. operationId: createDatabase security: - UserToken: [] @@ -4051,6 +4220,14 @@ paths: application/json: schema: $ref: '#/components/schemas/Error' + '503': + description: | + Volcano could not check whether a restore is running, and will not + delete a database that might be mid-restore. Retry. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /projects/{id}/databases/{databaseName}/branches: get: tags: @@ -4145,7 +4322,7 @@ paths: description: | A branch of that name already exists on this database, or the database cannot be branched right now because it is still - provisioning, failed, or being deleted. + provisioning, being restored, failed, or being deleted. content: application/json: schema: @@ -4253,7 +4430,8 @@ paths: branch half-deleted. Deleting a branch that is still provisioning is allowed and stops the - build. Deleting a branch that is already gone succeeds. + build, and repeating the call while teardown is in progress is accepted + again. Once the branch is gone the call returns `404`. operationId: deleteDatabaseBranch security: - UserToken: [] @@ -4329,7 +4507,10 @@ paths: $ref: '#/components/schemas/Error' '409': description: | - The branch is not active, or a reset is already in progress. + The branch is not active, a reset is already in progress, the parent + database is being restored, or the parent was restored within the + last 24 hours — a reset re-forks from the parent, and the provider + holds a child's reset shut for that long afterwards. content: application/json: schema: @@ -4348,7 +4529,9 @@ paths: description: | Issues a new password for the branch and invalidates the previous connection string. Existing connections are not interrupted; new ones - must use the returned string. + must use the returned string. Proxies pick the rotation up within a few + seconds, so the previous password can still open new connections until + then. The parent database's credentials are untouched. operationId: resetDatabaseBranchPassword @@ -4485,8 +4668,8 @@ paths: $ref: '#/components/schemas/Error' '409': description: | - A backup of that name already exists, the database is not active, or - a backup was taken too recently. + A backup of that name already exists, the database is not active, a + restore is running on it, or a backup was taken too recently. content: application/json: schema: @@ -4551,7 +4734,6 @@ paths: Deletes the backup and frees its storage. Scheduled backups can be deleted too. A backup that is already gone reports `404`, so a name that never existed and a name that no longer does read the same. - Refused with `409` while the database is being restored. operationId: deleteDatabaseBackup security: @@ -4681,7 +4863,10 @@ paths: schema: $ref: '#/components/schemas/DatabaseBackupSchedule' '400': - description: Invalid schedule + description: | + The schedule names a recurrence that cannot fire: a weekly or + monthly one with no `day`, or a `day` outside its frequency's range + (1-7 for weekly, 1-28 for monthly). The response says which. content: application/json: schema: @@ -4699,7 +4884,10 @@ paths: schema: $ref: '#/components/schemas/Error' '409': - description: The database is not active + description: | + The database is not active, or a restore is running on it — a restore + moves the data to a new branch, and the provider keeps the schedule + per branch. content: application/json: schema: @@ -4874,6 +5062,10 @@ paths: through pgproxy. This does not rotate or expose the internal owner password. The returned password and connection string are the only client credentials that will authenticate through pgproxy after reset. + + Existing connections are not interrupted; new ones must use the returned + string. Proxies pick the rotation up within a few seconds, so the previous + password can still open new connections until then. operationId: resetDatabasePassword security: - UserToken: [] @@ -4920,6 +5112,14 @@ paths: application/json: schema: $ref: '#/components/schemas/Error' + '503': + description: | + Volcano could not check whether a restore is running, and will not + rotate a credential a restore might be about to replace. Retry. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /projects/{id}/databases/{databaseName}/type: patch: tags: @@ -4966,6 +5166,14 @@ paths: application/json: schema: $ref: '#/components/schemas/Error' + '503': + description: | + Volcano could not check whether a restore is running, and will not + reconfigure compute a restore might be moving. Retry. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /projects/{id}/databases/{databaseName}/stats: get: tags: @@ -5405,6 +5613,8 @@ paths: $ref: '#/components/schemas/Error' '429': $ref: '#/components/responses/DatabaseQueryCapExceeded' + '503': + $ref: '#/components/responses/DatabaseBranchQueryUnavailable' /databases/{databaseName}/branches/{branchName}/query/select: post: tags: @@ -5481,6 +5691,8 @@ paths: $ref: '#/components/schemas/Error' '429': $ref: '#/components/responses/DatabaseQueryCapExceeded' + '503': + $ref: '#/components/responses/DatabaseBranchQueryUnavailable' /databases/{databaseName}/branches/{branchName}/query/insert: post: tags: @@ -5553,6 +5765,8 @@ paths: $ref: '#/components/schemas/Error' '429': $ref: '#/components/responses/DatabaseQueryCapExceeded' + '503': + $ref: '#/components/responses/DatabaseBranchQueryUnavailable' /databases/{databaseName}/branches/{branchName}/query/update: post: tags: @@ -5624,6 +5838,8 @@ paths: $ref: '#/components/schemas/Error' '429': $ref: '#/components/responses/DatabaseQueryCapExceeded' + '503': + $ref: '#/components/responses/DatabaseBranchQueryUnavailable' /databases/{databaseName}/branches/{branchName}/query/delete: post: tags: @@ -5691,6 +5907,8 @@ paths: $ref: '#/components/schemas/Error' '429': $ref: '#/components/responses/DatabaseQueryCapExceeded' + '503': + $ref: '#/components/responses/DatabaseBranchQueryUnavailable' /databases/regions: get: tags: @@ -7748,16 +7966,280 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AuthHostedPageResponse' - put: + $ref: '#/components/schemas/AuthHostedPageResponse' + put: + tags: + - Auth Configuration + summary: Update hosted auth page + description: | + Saves the current HTML/CSS for this page type. + Security validation rejects script tags, javascript: URLs, inline event handlers, iframe/object/embed/meta/link tags in HTML, + and closing style/head tags in CSS. + operationId: updateAuthHostedPage + security: + - UserToken: [] + parameters: + - $ref: '#/components/parameters/ProjectId' + - name: pageType + in: path + required: true + schema: + $ref: '#/components/schemas/HostedAuthPageType' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateAuthHostedPageRequest' + responses: + '200': + description: Hosted page updated + content: + application/json: + schema: + $ref: '#/components/schemas/AuthHostedPageResponse' + '400': + description: Invalid input or unsafe markup + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Project not found + /projects/{id}/auth/pages/appearance: + get: + tags: + - Auth Configuration + summary: Get managed auth page appearance + operationId: getAuthPageAppearance + security: + - UserToken: [] + parameters: + - $ref: '#/components/parameters/ProjectId' + responses: + '200': + description: Saved appearance and effective plan state + content: + application/json: + schema: + $ref: '#/components/schemas/AuthPageAppearanceResponse' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Project not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Appearance could not be read + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /projects/{id}/auth/pages/theme: + put: + tags: + - Auth Configuration + summary: Save the managed auth page theme + operationId: updateAuthPageTheme + security: + - UserToken: [] + parameters: + - $ref: '#/components/parameters/ProjectId' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateAuthPageThemeRequest' + responses: + '200': + description: Theme saved + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateAuthPageThemeRequest' + '400': + description: Invalid or unreadable theme + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Plan does not permit customisation + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Project not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Theme could not be saved + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + delete: + tags: + - Auth Configuration + summary: Clear the managed auth page theme + operationId: deleteAuthPageTheme + security: + - UserToken: [] + parameters: + - $ref: '#/components/parameters/ProjectId' + responses: + '204': + description: Theme cleared + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Plan does not permit customisation + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Project not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Theme could not be cleared + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /projects/{id}/auth/pages/{pageType}/layout: + parameters: + - $ref: '#/components/parameters/ProjectId' + - name: pageType + in: path + required: true + schema: + $ref: '#/components/schemas/HostedAuthPageType' + put: + tags: + - Auth Configuration + summary: Save one managed auth page layout + operationId: updateAuthPageLayout + security: + - UserToken: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateAuthPageLayoutRequest' + responses: + '200': + description: Layout saved + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateAuthPageLayoutRequest' + '400': + description: Invalid page type or layout + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Plan does not permit customisation + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Project not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Layout could not be saved + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + delete: + tags: + - Auth Configuration + summary: Clear one managed auth page layout + operationId: deleteAuthPageLayout + security: + - UserToken: [] + responses: + '204': + description: Layout cleared + '400': + description: Invalid page type + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Plan does not permit customisation + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Project not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Layout could not be cleared + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /projects/{id}/auth/pages/{pageType}/preview: + post: tags: - Auth Configuration - summary: Update hosted auth page - description: | - Saves the current HTML/CSS for this page type. - Security validation rejects script tags, javascript: URLs, inline event handlers, iframe/object/embed/meta/link tags in HTML, - and closing style/head tags in CSS. - operationId: updateAuthHostedPage + summary: Preview an unsaved managed auth page appearance + operationId: previewAuthPage security: - UserToken: [] parameters: @@ -7772,29 +8254,53 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/UpdateAuthHostedPageRequest' + $ref: '#/components/schemas/PreviewAuthPageRequest' responses: '200': - description: Hosted page updated + description: Complete HTML preview document content: application/json: schema: - $ref: '#/components/schemas/AuthHostedPageResponse' + $ref: '#/components/schemas/PreviewAuthPageResponse' '400': - description: Invalid input or unsafe markup + description: Invalid page type or draft + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '401': description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '403': - description: Forbidden + description: Access denied + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '404': description: Project not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '500': + description: Preview could not be rendered + content: + application/json: + schema: + $ref: '#/components/schemas/Error' /projects/{id}/auth/hosted/{pageType}: get: tags: - Auth Configuration - summary: Render managed reset-password page + summary: Render a managed auth page description: | - Public HTML endpoint for the managed reset-password page. + Public HTML endpoint for signup, forgot-password, device approval, + verify-email, and reset-password pages. Login uses the path without a + page type. Requires `Accept: text/html`. Returns 404 when managed hosted pages are disabled for the project. security: [] @@ -10116,6 +10622,12 @@ paths: **Complete Resumable Session:** Complete a session after all parts are uploaded. Requires: `X-Upload-Session` header with session ID and `X-Upload-Complete: true` header. + + **Resumable Session Ownership:** + A session created with a user access token remains bound to that user. A session + created with an anon key remains bound to that exact anon key. Reuse the same + identity or anon key for part uploads, status, completion, and abort requests; + an ownership mismatch returns `404`. operationId: uploadStorageObject security: - AnonKey: [] @@ -10183,6 +10695,8 @@ paths: - Invalid request body or missing required fields '403': description: Access denied by storage policy + '404': + description: Resumable upload session not found or not owned by this credential '413': description: | File size exceeds plan-based limits. This occurs when: @@ -10203,6 +10717,7 @@ paths: - Maximum part size is 25MB - Parts can be uploaded in any order - Re-uploading a part overwrites the previous upload + - Anonymous sessions must reuse the exact anon key that created the session operationId: uploadPart security: - AnonKey: [] @@ -10249,7 +10764,7 @@ paths: '403': description: Access denied '404': - description: Session not found + description: Session not found or not owned by this credential get: tags: - Storage Objects @@ -10262,6 +10777,7 @@ paths: **Session Status (with X-Upload-Session header):** Returns the status of a resumable upload session, including which parts have been uploaded. + Anonymous sessions must reuse the exact anon key that created the session. operationId: downloadStorageObject security: - AnonKey: [] @@ -10319,7 +10835,7 @@ paths: '403': description: Access denied by storage policy '404': - description: Object or session not found + description: Object or session not found, or session not owned by this credential '429': $ref: '#/components/responses/BandwidthCapExceeded' delete: @@ -10334,8 +10850,10 @@ paths: **Abort Session (with X-Upload-Session header):** Aborts a resumable upload session and cleans up any uploaded parts. + Anonymous sessions must reuse the exact anon key that created the session. operationId: deleteStorageObject security: + - AnonKey: [] - ServiceRoleKey: [] - AuthUserAccessToken: [] parameters: @@ -10358,7 +10876,7 @@ paths: '403': description: Access denied by storage policy '404': - description: Object or session not found + description: Object or session not found, or session not owned by this credential '429': $ref: '#/components/responses/BandwidthCapExceeded' /storage/{bucketName}/{path}/visibility: @@ -10782,21 +11300,30 @@ components: responses: BandwidthCapExceeded: description: | - The platform user exceeded their monthly bandwidth cap (aggregate + The platform user exceeded their billing-cycle bandwidth allowance (aggregate ingress + egress across owned projects). Enforcement is eventual: - requests are rejected until the cap increases (plan/override) or the - calendar-month meter resets. + requests are rejected until the allowance increases or the next + anniversary cycle begins. content: application/json: schema: $ref: '#/components/schemas/Error' DatabaseQueryCapExceeded: description: | - The query was rejected by a monthly usage cap: either the platform user's - bandwidth cap (aggregate ingress + egress across owned projects) or the - project's monthly database-request cap. Enforcement is eventual: queries - are rejected until the relevant cap increases (plan/override) or the - calendar-month meter resets. The error message identifies which cap. + The query was rejected by a billing-cycle allowance: either the owning + platform user's bandwidth allowance (aggregate ingress + egress across + owned projects) or their database-request allowance. Enforcement is + eventual: queries are rejected until the allowance increases or the + next anniversary cycle begins. The error message identifies the resource. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + DatabaseBranchQueryUnavailable: + description: | + The branch exists but cannot serve queries: it is still provisioning, + being reset, expired, or its parent is being restored. Distinct from + `404` so a caller waiting on a branch can tell it apart from a typo. content: application/json: schema: @@ -11152,6 +11679,91 @@ components: updated_at: type: string format: date-time + AuthPageAppearanceResponse: + type: object + required: + - theme + - layouts + - customisation_allowed + - parked + - defaults + - options + properties: + theme: + $ref: '#/components/schemas/AuthPageTheme' + layouts: + type: object + additionalProperties: + $ref: '#/components/schemas/AuthPageLayout' + customisation_allowed: + type: boolean + parked: + type: object + additionalProperties: + type: boolean + description: Per-page saved-but-not-live state. + defaults: + $ref: '#/components/schemas/AuthPageAppearanceDefaults' + options: + $ref: '#/components/schemas/AuthPageAppearanceOptions' + AuthPageDensity: + type: string + enum: + - compact + - comfortable + - spacious + AuthPageFont: + type: string + enum: + - system + - humanist + - geometric + - slab + - mono + AuthPageLayout: + type: string + enum: + - centered + - split-left + - split-right + AuthPageRadius: + type: string + enum: + - none + - small + - medium + - large + AuthPageScale: + type: string + enum: + - small + - default + - large + AuthPageTheme: + type: object + additionalProperties: false + required: + - version + - colors + - font + - scale + - density + - radius + properties: + version: + type: integer + enum: + - 1 + colors: + $ref: '#/components/schemas/AuthPageThemeColors' + font: + $ref: '#/components/schemas/AuthPageFont' + scale: + $ref: '#/components/schemas/AuthPageScale' + density: + $ref: '#/components/schemas/AuthPageDensity' + radius: + $ref: '#/components/schemas/AuthPageRadius' AuthHostedPageResponse: type: object required: @@ -11582,9 +12194,15 @@ components: properties: backup_name: type: string - description: A backup of this database to restore. - pattern: ^[a-z0-9][a-z0-9_-]{0,62}$ - maxLength: 63 + minLength: 1 + maxLength: 128 + description: | + A backup of this database to restore, exactly as returned by the list + endpoint. + + Deliberately looser than the names you can create, like the backup + path parameter: a backup made by a schedule is named for you, so + restoring one accepts any name a backup can have. example: before_migration restore_to: type: string @@ -12430,8 +13048,12 @@ components: DatabaseRestoreWindow: type: object description: | - The span a point-in-time restore may target. Empty when the owner's plan - does not include point-in-time restore. + The span a point-in-time restore may target. Absent from the response + when the owner's plan does not include point-in-time restore, and while + the storage provider has no history window in place yet — briefly the + case after an upgrade, since the window is applied asynchronously. The + window is read from the provider rather than from the plan, so it never + advertises a point a restore could not actually reach. properties: earliest_restore_at: type: string @@ -13119,11 +13741,15 @@ components: type: string private: type: boolean + is_empty: + type: boolean + description: Whether the repository has no commits and can receive an initial source export. required: - id - full_name - default_branch - private + - is_empty GitRepositoriesResponse: type: object properties: @@ -13255,36 +13881,106 @@ components: description: Current holder's fencing token. Present only when held. required: - held - CreateProjectGitRepositoryRequest: + ProjectSourceExportState: type: object + description: The project's source of truth and any pending Git transition. properties: - owner: + mode: type: string - maxLength: 39 - pattern: ^[A-Za-z0-9-]+$ - description: GitHub account to create the repository under, as returned in account_login by /user/git/connections/{id}/installations. Omit for the connected user's own account. Must be an organization the app is installed on, or your own account. - name: + enum: + - platform + - git_exporting + - git_pending + - git + transition_started_at: type: string - minLength: 1 - maxLength: 100 - description: Repository name, unique within the owner account. - private: - type: boolean - default: true - description: 'Whether the new repository is private. Defaults to true: the next step is pushing the project''s source into it, so an omitted field must not publish it.' - description: + format: date-time + nullable: true + description: When source export started, cleared if an incomplete transition is canceled. + exported_at: type: string - maxLength: 350 - description: Repository description shown on GitHub. - root_directory: + format: date-time + nullable: true + description: When the initial export push entered deployment, or when a transition was canceled after its commit was reserved. Once set, the one-time export is consumed. + handed_over_at: + type: string + format: date-time + nullable: true + description: When a complete production-branch deployment first proved the repository could drive the project, null until then. Once set, the repository is the project's source of truth. + required: + - mode + - transition_started_at + - exported_at + - handed_over_at + ProjectSourceExport: + type: object + description: The initial production-branch commit, and everything export could not carry. + properties: + repo_full_name: type: string - description: Monorepo subdirectory the project builds from, as a relative path inside the repository. Omit for the repo root. Absolute paths and ".." traversal are rejected before the repository is created, because the build applies the same rule and nothing would deploy. + branch: + type: string + description: The production branch that was created. + commit_sha: + type: string + file_count: + type: integer + skipped: + type: array + description: Resources whose source could not be taken, with the reason. Most often a resource that has never deployed successfully. + items: + $ref: '#/components/schemas/ProjectSourceExportSkip' + omitted: + type: array + description: Things deliberately left out of the branch. + items: + $ref: '#/components/schemas/ProjectSourceExportOmission' + required: + - repo_full_name + - branch + - commit_sha + - file_count + - skipped + - omitted + ExportProjectSourceRequest: + type: object + additionalProperties: false + properties: production_branch: type: string - maxLength: 255 - description: 'The branch to deploy from — name the one you are about to push. The repository is created empty, so it has no real default branch to follow: omitting this binds whatever branch name GitHub reports for the new repository (falling back to "main" if it reports none), which is the account''s configured default and a prediction, and pushing anything else then deploys nothing. Naming the branch GitHub already reports is not treated as pinning it, so the project still tracks a later default-branch rename; naming any other branch pins it. Rejected before the repository is created if it is not a valid Git branch name; it does not have to exist.' + minLength: 1 + description: The currently configured production branch the user confirmed for export. required: + - production_branch + ProjectSourceExportSkip: + type: object + properties: + kind: + type: string + description: 'The kind of resource, "function" or "frontend". Deliberately not an enum: the generated constants would collide with an existing resource-type enum and rename its members.' + name: + type: string + reason: + type: string + required: + - kind - name + - reason + ProjectSourceExportOmission: + type: object + properties: + kind: + type: string + description: 'What was left out: migrations Volcano stores no copy of, variable values, a credential-shaped file, installed dependencies, or an archive entry a repository cannot carry.' + resource: + type: string + description: The resource it came from, empty when project-wide. + path: + type: string + required: + - kind + - resource + - path SetProjectGitProductionBranchRequest: type: object properties: @@ -13295,21 +13991,6 @@ components: description: The branch a push must land on to deploy. Validated as a Git branch name only — it does not have to exist yet. required: - production_branch - CreatedProjectGitConnection: - type: object - description: A newly created repository's project binding, plus whether the Volcano GitHub App can actually see it. - properties: - connection: - $ref: '#/components/schemas/ProjectGitConnection' - app_installed: - type: boolean - description: Whether the App installation covers the new repository. False means the binding is complete but no push will deploy until the user grants access at install_url. An installation scoped to selected repositories never picks up a new repo on its own. - install_url: - type: string - description: Where the user grants the App access to the new repository. Present only when app_installed is false. - required: - - connection - - app_installed ConnectProjectGitRequest: type: object properties: @@ -13713,6 +14394,18 @@ components: Function visibility for anon-key invocation. - `false` (default): only auth user tokens and service keys can invoke - `true`: anon keys with `functions.invoke` can invoke + invocation_mode: + $ref: '#/components/schemas/FunctionInvocationMode' + http_auth_mode: + $ref: '#/components/schemas/FunctionHTTPAuthMode' + openapi_spec: + type: object + nullable: true + additionalProperties: true + description: Optional OpenAPI 3.0 or 3.1 document describing an HTTP-mode function. + has_openapi_spec: + type: boolean + description: Whether OpenAPI metadata is configured; list responses omit the document itself. aws_function_arn: type: string invoke_url: @@ -13751,9 +14444,29 @@ components: - name - status - is_public + - invocation_mode + - http_auth_mode + - openapi_spec + - has_openapi_spec - deployed_regions - created_at - updated_at + FunctionInvocationMode: + type: string + enum: + - rpc + - http + description: | + Invocation contract. `rpc` preserves the existing POST `{payload: ...}` contract; + `http` forwards HTTP request semantics to the function runtime. + FunctionHTTPAuthMode: + type: string + enum: + - volcano + - none + description: | + Authentication applied by the HTTP ingress. `none` is valid only for public + HTTP-mode functions and is intended for externally signed webhooks. FunctionDeployment: type: object properties: @@ -14165,6 +14878,10 @@ components: type: string enum: - login + - signup + - forgot-password + - device + - verify-email - reset-password HostedLoginEmailCheckRequest: type: object @@ -14197,6 +14914,10 @@ components: HostedRenderablePageType: type: string enum: + - signup + - forgot-password + - device + - verify-email - reset-password LogEvent: type: object @@ -15048,6 +15769,8 @@ components: $ref: '#/components/schemas/ProjectConfigAuthRedirects' pages: $ref: '#/components/schemas/ProjectConfigHostedPages' + appearance: + $ref: '#/components/schemas/ProjectConfigAuthPageAppearance' ProjectConfigAuthPassword: type: object additionalProperties: false @@ -15343,6 +16066,17 @@ components: public: type: boolean description: Function visibility for anon-key invocation + invocation_mode: + $ref: '#/components/schemas/FunctionInvocationMode' + http_auth_mode: + $ref: '#/components/schemas/FunctionHTTPAuthMode' + openapi_spec: + type: object + nullable: true + additionalProperties: true + x-go-type: nullable.Nullable[map[string]interface{}] + x-go-type-skip-optional-pointer: true + description: OpenAPI 3.0 or 3.1 metadata for an HTTP-mode function schedulers: type: array items: @@ -15374,6 +16108,34 @@ components: $ref: '#/components/schemas/ProjectConfigHostedPage' reset_password: $ref: '#/components/schemas/ProjectConfigHostedPage' + signup: + $ref: '#/components/schemas/ProjectConfigHostedPage' + forgot_password: + $ref: '#/components/schemas/ProjectConfigHostedPage' + device: + $ref: '#/components/schemas/ProjectConfigHostedPage' + verify_email: + $ref: '#/components/schemas/ProjectConfigHostedPage' + PreviewAuthPageRequest: + type: object + additionalProperties: false + required: + - theme + - layout + properties: + theme: + $ref: '#/components/schemas/AuthPageTheme' + layout: + $ref: '#/components/schemas/AuthPageLayout' + action: + type: string + PreviewAuthPageResponse: + type: object + required: + - html + properties: + html: + type: string ProjectConfigMissingResource: type: object properties: @@ -16607,6 +17369,22 @@ components: css: type: string description: Optional CSS injected at render time. Max 256 KiB. + UpdateAuthPageLayoutRequest: + type: object + additionalProperties: false + required: + - layout + properties: + layout: + $ref: '#/components/schemas/AuthPageLayout' + UpdateAuthPageThemeRequest: + type: object + additionalProperties: false + required: + - theme + properties: + theme: + $ref: '#/components/schemas/AuthPageTheme' UpdateDatabaseTypeRequest: type: object description: Update database compute size tier @@ -16635,6 +17413,8 @@ components: type: string UpdateFunctionRequest: type: object + additionalProperties: false + minProperties: 1 properties: is_public: type: boolean @@ -16642,8 +17422,15 @@ components: Function visibility for anon-key invocation. - `false` (default): private function - `true`: public function (anon keys with `functions.invoke` can invoke) - required: - - is_public + invocation_mode: + $ref: '#/components/schemas/FunctionInvocationMode' + http_auth_mode: + $ref: '#/components/schemas/FunctionHTTPAuthMode' + openapi_spec: + type: object + nullable: true + additionalProperties: true + description: OpenAPI 3.0 or 3.1 metadata for HTTP mode. Send null to clear it. UpdateFunctionSchedulerRequest: type: object properties: @@ -16872,6 +17659,55 @@ components: - value - created_at - updated_at + AuthPageThemeColors: + type: object + additionalProperties: false + required: + - background + - surface + - text + - accent + - accent_text + properties: + background: + type: string + pattern: ^#[0-9a-fA-F]{6}$ + surface: + type: string + pattern: ^#[0-9a-fA-F]{6}$ + text: + type: string + pattern: ^#[0-9a-fA-F]{6}$ + accent: + type: string + pattern: ^#[0-9a-fA-F]{6}$ + accent_text: + type: string + pattern: ^#[0-9a-fA-F]{6}$ + ProjectConfigAuthPageLayouts: + type: object + additionalProperties: false + properties: + login: + $ref: '#/components/schemas/AuthPageLayout' + signup: + $ref: '#/components/schemas/AuthPageLayout' + forgot_password: + $ref: '#/components/schemas/AuthPageLayout' + device: + $ref: '#/components/schemas/AuthPageLayout' + verify_email: + $ref: '#/components/schemas/AuthPageLayout' + reset_password: + $ref: '#/components/schemas/AuthPageLayout' + ProjectConfigAuthPageAppearance: + type: object + additionalProperties: false + properties: + theme: + $ref: '#/components/schemas/AuthPageTheme' + layouts: + $ref: '#/components/schemas/ProjectConfigAuthPageLayouts' DatabaseQueryPerformanceDatabase: type: object properties: @@ -17258,3 +18094,47 @@ components: mock_prelude: type: string description: Preview harness that supplies request params and stubs the hosted-auth API. Never served on a real page. + AuthPageAppearanceDefaults: + type: object + required: + - theme + - layout + properties: + theme: + $ref: '#/components/schemas/AuthPageTheme' + layout: + $ref: '#/components/schemas/AuthPageLayout' + AuthPageAppearanceOptions: + type: object + required: + - pages + - fonts + - scales + - densities + - radii + - layouts + properties: + pages: + type: array + items: + $ref: '#/components/schemas/HostedAuthPageType' + fonts: + type: array + items: + $ref: '#/components/schemas/AuthPageFont' + scales: + type: array + items: + $ref: '#/components/schemas/AuthPageScale' + densities: + type: array + items: + $ref: '#/components/schemas/AuthPageDensity' + radii: + type: array + items: + $ref: '#/components/schemas/AuthPageRadius' + layouts: + type: array + items: + $ref: '#/components/schemas/AuthPageLayout'